시작하며

보통 웹개발을 하면서 OSI 모델을 신경써야 할 일은 거의 없다. 실제로도 네트워크 어플리케이션을 개발할 때에는 TCP/IP 모델로 개발되는 것이 절대 다수이며 OSI 모델을 준수하여 개발되지는 않는다.

그래도 한 번씩 궁금해서 인터넷에서 OSI 관련 자료를 뒤져보면 뭔가가 부족하다.각 계층에서 어떤 일을 하는지에 대해서는 찾기 쉬우나 의외로 각 계층의 정의에 대해서 명확하게 적어놓은 문서가 잘 없다. 그러다보니 각 계층 간의 차이를 한 번에 명확하게 이해하기가 힘들다. 특히 2~6계층이 그렇다. 그래서 여기에서는 각 계층이 결국 무엇인가에 대해서 짧게나마 적어보기로 한다.

OSI 모델과 TCP/IP 모델

물리 계층

통신 장치들 간에 데이터를 전송하는 물리적 방법들을 정의한 계층이다. 웹개발을 하면서 일절 신경쓸 일이 없는 계층이다. OSI 계층에서 가장 복잡한 계층. 실제 전기신호를 어떻게 전달할 건지가 여기서 모두 결정되기 때문에 통신 속도를 결정짓는 계층이기도 하다.

출처 : https://www.lifewire.com/

데이터 링크 계층

두 장치 사이에서 데이터를 어떻게 주고 받을 것인지에 대한 방법들을 정의한 계층이다. 물리 계층은 전기 신호를 주고 받는 방법을 정의하고 있다면 이 계층은 전기 신호를 디지털로 변환한 비트 데이터를 주고 받는 방법에 대해 정의한다.

2계층의 중요한 일 중 하나인 체크섬. \n출처: https://image.slidesharecdn.com/datalinklayermukesh-150130061041-conversion-gate01/95/data-link-layer-44-638.jpg

네트워크 계층

2계층 까지는 두 장치 간에 데이터를 주고 받는 방법을 정의 했다면 이 계층은 두 장치를 넘어서 장치들의 집단, 즉 네트워크 간에 데이터를 주고 받을 수 있는 방법을 정의한 계층이다. 대표적으로 IP가 있다.

네트워크 계층 = IP

전송 계층

3계층에서는 네트워크에서 데이터를 주고 받는 방법을 정의하고 있다. 전송 계층은 양 끝단(End to End) 간에 데이터를 주고 받는 방법을 정의한 계층이다. 여기서 말하는 양 끝단이란 장치를 말하는게 아니라 장치에서 구동되는 하나의 프로세스를 말한다. 이 계층부터 개발자의 영향권에 들어간다고 볼 수 있다. 이 계층을 대표하는 것으로는 TCP가 있다.

세션 계층

흔히 세션이라고 하면 웹서버에서 사용하는 HTTP 세션을 떠올리기 마련이지만, 큰 의미에서 세션은 논리적 연결을 의미한다. HTTP 세션은 양 호스트 간의 HTTP 연결이며, TCP 세션은 양 호스트 간의 TCP 연결이다. 즉, 세션 계층은 논리적 연결을 하는 방법 및 규약에 대해 정의하고 있는 계층이다.

표현 계층

응용계층에서 사용하는 데이터를 네트워크에서 전송가능한 형태로 변환하거나 또는 네트워크에서 받은 데이터를 응용계층에서 사용하는 데이터의 형태로 변환하는 계층이다. 대표적으로 데이터 직렬화, 역직렬화가 이 계층에서 이루어지는 작업이다.

응용 계층

어플리케이션 계층. 더 이상의 자세한 설명은 생략한다.

azooasul's profile image

azooasul

2020-06-11 13:30

azooasul 님이 작성하신 글 더 보기