네트워크
네트워크는 그물에서 파생된 단어로 어떤 물건이나 사람 등의 상호 연결되어 있는 체계를 말한다.
보통 우리가 이야기하는 네트워크는 컴퓨터들이 상호 연결되어 있는 "컴퓨터 통신 네트워크"입니다.
TCP/IP 스택
컴퓨터끼리 네트워크에서 데이터를 주고받기 위해서는 그 네트워크에서 통용되는 프로토콜을 따라야한다.
프로토콜은 규약, 규칙이라는 뜻의 낱말로, 여기에서는 컴퓨터들이 네트워크를 통해 데이터를 주고받기 위한 "통신 규약"을 말한다.
인터넷은 분명히 전 세계에서 가장 거대한 네트워크이긴 하지만, 유일한 네트워크는 아니다. 이 말은 즉, 인터넷 외에도 다양한 통신 네트워크가 존재한다는 뜻이다.
TCP/IP
-
사실상 표준 프로토콜, 인터넷에서 데이터를 주고받는 데 필요한 일련의 프로토콜 모음이다.
-
TCP/IP는 크게 네 개의 계층으로 구성되어 있고, 한 계층 위에 다른 계층이 포개어져 있는 형태 때문에 이것을 "TCP/IP 스택"이라 한다.
링크 계층 ( Link Protocol )
TCP/IP는 네트워크의 물리적인 구성으로부터 독립적인 프로토콜이다. 컴퓨터가 네트워크에 전화선의 모뎀으로 연결되어 있든, LAN에 이더넷 케이블로 연결되어 있든, 혹은 WI-FI에 연결되어 있든 간에 전혀 신경 쓰지 않는다.
-> 이것은 링크 계층에서 네트워크의 물리적인 연결 매체를 통해 패킷을 주고받는 작업을 담당해주기 때문에 가능한 일이다.
인터넷 계층 ( Internet Protocol )
인터넷 계층은 패킷을 수신해야할 상대의 주소를 지정하고, 나가는 패킷에 대해서는 적잘한 크기로 분할하며 들어오는 패킷에 대해서는 재조립을 수행한다.
이 계층에서 사용하는 프로토콜이 '인터넷 프로토콜 ( IP, Internet Protocol )이다.
전송 계층 ( Transport Later )
패킷의 운송을 담당하는 프로토콜들이 정의 되어 있다. 그 중에서도 전송 제어 프로토콜(TCP, Transmission Control Protocol)은 송신측과 수신측 간의 연결성을 제공하며, 신뢰할 수 있는 패킷 전송 서비스를 제공하낟. 여러 개의 패킷을 송신하는 경우 패킷사이의 순서를 보장하며, 패킷이 유실되기라도 하면 재전송을 해준다.
TCP/IP 프로토콜에서 TCP가 바로 이 프로토콜을 가리키는 것이다. TCP는 IP가 제공하지 않는 " 연결성, 신뢰성"을 제공한다.
웹 문서를 전달하는 기능을 하는 HTTP를 비롯한 수 많은 응용 프로토콜들이 바로 이 TCP/IP 프로토콜 위에서 동작한다.
애플리케이션 계층 ( Application Layer )
각 응용 프로그램 나름의 프로토콜들이 정의되는 곳이다.
-
웹문서를 주고받기 위한 HTTP(Hyper Text Transfer Protocol)
-
파일 교환을 위한 FTP ( File Transfer Protocol )
-
네트워크 관리를 위한 SNMP ( Simple Network Management Protocol )
위 프로토콜들을 포함한 추가적인 프로토콜들이 애플리케이션 계층에서 정의된 프로토콜의 대표적인 예이다.
애플리케이션 계층의 프로토콜들은 전송 꼐층의 프로토콜 중 TCP에 기반할 수도 있고, UDP에 기반할 수도 있습니다.
포트 ( Port )
컴퓨터는 네트워크 패킷의 출입을 위해 주소 뿐만 아니라 출입문이 필요하다. 이 출입문을 일컬어 포트(Port)라고 부릅니다.
Port란 컴퓨터 네트워크에서 패킷이 드나드는 출입구를 뜻합니다. 포트는 부호가 없는 16비트 정수로 0~65535사이의 값을 이용한다.
HTTP 나 FTP, Telnet과 같은 표준 프로토콜이 사용하고 있는 포트 번호는 전 세계적으로 합의된 값이다. 이러한 포트 번호를 일컬어 "잘 알려진 포트 번호"라 부릅니다.
-
HTTP : 80번
-
HTTPS : 443번
-
FTP : 21QJS
-
Telnet : 23qjs
-
SMTP : 25번
-
IRC : 194번
-
IIOP : 535번
서버와 클라이언트 정보 전송 과정
서버 생성
클라이언트 생성
서버와 클라이언트 응답과정
1. 서버를 먼저 실행
2. 서버 실행 후 "서버 시작"이 출력된 이후 클라이언트 소스를 실행
3. 클라이언트에 수신된 정보 출력
4. 서버에 재수신된 정보 출력
'Programming > C#' 카테고리의 다른 글
c# 17 : Thread(스레드) (0) | 2020.06.17 |
---|---|
C# 16 : File(파일) (0) | 2020.06.17 |
c# 15 : 리플랙션 (0) | 2020.06.15 |
C# 14 : 람다식 (0) | 2020.06.15 |
C#_13 : WinForm으로 만드는 사용자 인터페이스1 (0) | 2020.06.12 |