1.TCP/IP 네트워크 소개
네트워크는 송신자와 수신자 사이에 메시지를 주고 받기 위해 구성하고 있는 것들의 집합입니다. 그리고 네트워크를 구성하는 모습이 그물 구조와 비슷하여 네트워크 망이라고 부릅니다.
네트워크 망에는 전화 망과 디지털 통신 망 등이 있는데 이 책에서는 IEEE표준인 이더넷(Ethernet) 망을 기준으로 기술하였습니다. 네트워크 망에서 송신자와 수신자 사이에 메시지를 주고 받기 위해서는 통신 규칙과 방법에 관한 약속이 필요한데 이를 네트워크 프로토콜이라 부릅니다. 이 책에서는 이더넷 망의 기본 프로토콜인 TCP/IP 프로토콜로 통신하는 방법을 소개합니다.
1.1 통신 모델
통신 개체 사이에 통신을 효과적으로 진행할 수 있게 표준 기구에서는 역할에 따라 여러 개의 계층으로 나누고 있습니다. 그 중에 대표적인 것이 OSI 모델과 인터넷 프로토콜 스위트, DoD 모델이 있습니다.
1990년 이전에는 개방 시스템 상호 연결 모델인 OSI(Open System Interconnection) 7 계층으로 표준 프로토콜을 정의하였지만 인터넷에서 TCP/IP 프로토콜이 차지하는 비중이 커지면서 OSI 7계층을 모두 구현하지 않았습니다.
이러한 이유로 TCP/IP 프로토콜을 중심으로 인터넷 프로토콜 스위트(Internet Protocol Suite)로 통신 계층을 표현하고 있습니다. 그리고 인터넷 프로토콜 스위트는 TCP/IP 프로토콜 스위트라고도 부릅니다.
TCP/IP를 개발한 미 국방성 DARPA에서는 4계층으로 분류하였는데 이를 DoD(Department of Defence) 모델입니다. 이를 TCP/IP 프로토콜 4계층이라고도 부릅니다.
먼저 가장 많이 사용하는 OSI 모델을 얘기한 후에 나머지 두 가지와 비교해서 설명할게요.
1.1.1 OSI 모델
[그림 1.1] OSI 7계층
OSI모델에서는 역할에 따라 7개의 계층으로 나누었습니다.
물리(Physical) 계층이 1계층이며 데이터 링크(Data Link) 계층, 네트워크(Network) 계층, 전송(Transport) 계층, 세션(Session) 계층, 표현(Presentation) 계층, 응용(Application) 계층이 있습니다.
데이터를 처음으로 전송하는 호스트는 응용 계층에서 물리 계층까지 데이터를 캡슐화합니다. 그리고 물리 계층에서는 통신 회선을 통해 이웃하는 네트워크 장치에게 전달합니다. 데이터를 전송하기 위한 경로를 설정하고 판단하는 라우터에서는 목적지가 지역망의 호스트인지 확인합니다. 만약 지역망의 호스트가 맞다면 지역 호스트에게 전달하고 그렇지 않다면 이웃하는 라우터에게 전달합니다. 목적 호스트는 물리 계층으로부터 수신하여 응용 계층까지 디캡슐화하여 상대가 보낸 데이터를 받습니다.
이제 계층에 따라 어떠한 역할을 하는지 살펴봅시다.
물리 계층은 통신 회선을 통해 비트 스트림을 전달하는 역할을 수행합니다. 이는 통신 회선의 인터페이스와 물리 매체에 따른 전자적인 규격을 따릅니다.
데이터 링크 계층은 물리 계층에 도착한 비트 스트림을 네트워크 계층으로 전달하고 네트워크 계층의 패킷을 물리 계층으로 전달하는 역할을 수행합니다. 데이터 계층의 데이터를 프레임(Frame)이라 부릅니다. 프레임에는 물리 주소 정보를 포함하고 있습니다.
네트워크 계층은 통신에 사용하는 논리 주소(예: IP 주소)를 지정하고 송신자와 수신자 사이에 경로를 지정하는 역할을 수행합니다. 네트워크 계층의 데이터를 패킷(Packet)이라 부릅니다. 패킷에는 논리 주소 정보를 포함하고 있습니다.
전송 계층은 메시지를 프로세스 별로 구분하는 역할을 담당합니다. 따라서 발신지와 목적지의 프로세스 간의 메시지 전달 책임을 맡고 있는 것입니다. 따라서 전송 계층에서는 연결을 제어하고 흐름을 제어합니다. 전송 계층의 데이터는 메시지(Message)라 부릅니다. 메시지에는 서비스 지점 주소 정보와 연결 및 흐름 제어에 필요한 정보를 포함하고 있습니다.
세션 계층은 통신 시스템 사이에 대화를 설정하고 동기화 역할을 담당합니다. 그리고 표현 계층에서는 암호화 및 암축 및 부호화 역할을 수행하며 응용 계층은 실질적인 서비스(예: 전자 메일, 파일 전송)등을 담당합니다.
TCP/IP에서는 세션 계층과 표현 계층과 응용 계층은 하나의 프로토콜로 규정할 때가 많습니다.
[그림 1.2] 계층별 데이터
1.1.2 통신 모델과 TCP/IP 프로토콜
[그림 1.3] 통신 모델과 TCP/IP 프로토콜
인터넷 프로토콜 스위트는 OSI 모델에서 실제 역할에 맞게 상위 3계층을 응용 계층으로 통합하였습니다. 따라서 인터넷 프로토콜 스위트는 5 계층으로 구성하며 TCP/IP 5계층이라고도 부릅니다.
실제 TCP/IP는 미 국방성 산하기관인 DARPA에서 개발한 것으로 DoD 모델로 표현할 때 계층별로 프로토콜을 나누기 쉽습니다. DoD 모델에서는 물리 계층과 데이터 링크 계층이 네트워크 인터페이스(Network Interface) 계층입니다.
네트워크 인터페이스 계층에는 Ethernet, Token Ring 프로토콜 등이 있습니다. 이 책에서는 Ethernet 프로토콜을 다룹니다.
인터넷 계층에는 호스트 주소를 지정하는 IP 프로토콜, 주소를 변환하는 ARP와 RARP 프로토콜, IP 프로토콜 제어를 담당하는 ICMP, 멀티캐스팅을 지원하는 IGMP, 라우팅 프로토콜인 OSPF 등이 있습니다. 전송 계층에는 신뢰성 있는 스트림 방식의 TCP 프로토콜과 데이터 그램 방식의 UDP 프로토콜이 있습니다. 이 책에서는 TCP, UDP 프로토콜을 다룹니다.
응용 계층에는 도메인 네임 서비스를 제공하는 DNS 프로토콜, 동적 호스트 설정 서비스를 제공하는 DHCP 프로토콜, 가상 터미널 서비스를 제공하는 TELNET 프로토콜, 파일 전송 서비스를 제공하는 FTP 프로토콜, 웹에서의 하이퍼텍스트 전송 서비스를 제공하는 HTTP 프로토콜, 메시지 전송 서비스를 제공하는 SMTP 등이 있습니다.
'네트워크 및 보안 > 윈도우즈 소켓 통신 프로그램' 카테고리의 다른 글
5. WSAEventSelect를 이용한 멀티플렉싱, 채팅 [TCP/IP 소켓 통신 프로그래밍 with 윈도우즈] (1) | 2016.04.07 |
---|---|
4. 스레드를 이용한 멀티플레싱 [TCP/IP 소켓 통신 프로그래밍 with 윈도우즈] (0) | 2016.04.07 |
3. TCP 에코 서버/클라이언트 만들기 [TCP/IP 소켓 통신 프로그래밍 with 윈도우즈] (1) | 2016.04.07 |
2.5 자주 사용하는 윈속 함수[TCP/IP 소켓 통신 프로그래밍 with 윈도우즈] (0) | 2016.04.07 |
2. 윈도우즈 소켓 [TCP/IP 소켓 통신 프로그래밍 with 윈도우즈] (0) | 2016.04.07 |
1.2 프로토콜 [TCP/IP 소켓 프로그래밍 with 윈도우즈] (0) | 2016.04.06 |