1.1.1 OSI 모델 [TCP/IP 소켓 프로그래밍 with 윈도우즈]

[그림 1.1] OSI 7계층

 OSI모델에서는 역할에 따라 7개의 계층으로 나누었습니다.

물리(Physical) 계층이 1계층이며 데이터 링크(Data Link) 계층, 네트워크(Network) 계층, 전송(Transport) 계층, 세션(Session) 계층, 표현(Presentation) 계층, 응용(Application) 계층이 있습니다.

데이터를 처음으로 전송하는 호스트는 응용 계층에서 물리 계층까지 데이터를 캡슐화합니다. 그리고 물리 계층에서는 통신 회선을 통해 이웃하는 네트워크 장치에게 전달합니다. 데이터를 전송하기 위한 경로를 설정하고 판단하는 라우터에서는 목적지가 지역망의 호스트인지 확인합니다. 만약 지역망의 호스트가 맞다면 지역 호스트에게 전달하고 그렇지 않다면 이웃하는 라우터에게 전달합니다. 목적 호스트는 물리 계층으로부터 수신하여 응용 계층까지 디캡슐화하여 상대가 보낸 데이터를 받습니다.

이제 계층에 따라 어떠한 역할을 하는지 살펴봅시다.

물리 계층은 통신 회선을 통해 비트 스트림을 전달하는 역할을 수행합니다. 이는 통신 회선의 인터페이스와 물리 매체에 따른 전자적인 규격을 따릅니다.

데이터 링크 계층은 물리 계층에 도착한 비트 스트림을 네트워크 계층으로 전달하고 네트워크 계층의 패킷을 물리 계층으로 전달하는 역할을 수행합니다. 데이터 계층의 데이터를 프레임(Frame)이라 부릅니다. 프레임에는 물리 주소 정보를 포함하고 있습니다.

네트워크 계층은 통신에 사용하는 논리 주소(예: IP 주소)를 지정하고 송신자와 수신자 사이에 경로를 지정하는 역할을 수행합니다. 네트워크 계층의 데이터를 패킷(Packet)이라 부릅니다. 패킷에는 논리 주소 정보를 포함하고 있습니다.

전송 계층은 메시지를 프로세스 별로 구분하는 역할을 담당합니다. 따라서 발신지와 목적지의 프로세스 간의 메시지 전달 책임을 맡고 있는 것입니다. 따라서 전송 계층에서는 연결을 제어하고 흐름을 제어합니다. 전송 계층의 데이터는 메시지(Message)라 부릅니다. 메시지에는 서비스 지점 주소 정보와 연결 및 흐름 제어에 필요한 정보를 포함하고 있습니다.

세션 계층은 통신 시스템 사이에 대화를 설정하고 동기화 역할을 담당합니다. 그리고 표현 계층에서는 암호화 및 암축 및 부호화 역할을 수행하며 응용 계층은 실질적인 서비스(예: 전자 메일, 파일 전송)등을 담당합니다.

TCP/IP에서는 세션 계층과 표현 계층과 응용 계층은 하나의 프로토콜로 규정할 때가 많습니다.

[그림 1.2] 계층별 데이터