Operation/Network

Network - OSI 7 Layer 제대로 이해하기! (심화)

JaeHoney 2022. 10. 20. 18:13

OSI7 Layer는 어떠한 의미를 가질까..?

 

제대로 이해해보자.

7계층으로 왜 나눌까?

  • 책임을 분산시킬 수 있다.
    • 특정한 곳에 이상이 생기면 해당 단계만 수정할 수 있다.
  • 통신이 일어나는 과정을 단계별로 알 수 있다.

OSI 7 계층 전체 구성도

OSI 7 계층의 전체 구성은 아래와 같다.

많은 분들은 OSI 7 계층이 책임을 분산하는 것에만 목적이 있다고 알고 있다.

 

하지만 각 계층은 서로 독립적인 것이 아니다.

 

해당 구성을 보면 1 계층으로 갈 수록 전송하는 데이터가 많은 것을 알 수 있다.

 

그것이 어떠한 의미를 가지는 지 생각해보자.

각 단계의 역할

아래는 각 단계가 하는 역할을 그린 것이다.

해당 과정을 이해하기 위해 HTTP 요청을 예로 들어보자.

응용 계층 (application layer)

HTTP 요청을 하기 위해서는 Application Layer를 거친다.

 

작성한 요청 본문을 데이터에 담고 브라우저 등의 응용 프로그램을 통해 전송한다.

표현 계층 (presentation layer)

다음으로 표현 계층은 해당 메시지를 표현하는 계층으로 해당 메시지를 읽는 방법을 데이터에 포함한다.

 

더불어 응용 계층의 메시지를 암호화, 인코딩, 압축 등을 처리하여 세션 계층에 넘겨준다.

 

수신 측의 표현 계층에서는 세션 계층이 보낸 메시지의 송신 측 표현 계층이 남긴 데이터를 보고 복호화 또는 디코딩하여 응용 계층에서 해당 메시지를 읽을 수 있게 돕는다.

세션 계층 (session layer)

데이터를 보내려면 연결이 필요하다. 세션 계층은 연결을 담당한다.

 

세션 계층은 연결의 생성(created), 유지(establish), 종료(close)를 관리한다.

 

해당 세션 정보를 담으면 전송 계층으로 메시지를 보낸다.

전송 계층 (trasnport layer)

전송 계층은 전송을 위해 포트를 지정하는 계층이다.

 

예를 들어 TCP / UDP 중 어떤 방식을 사용할 지를 결정한다.

네트워크 계층 (network layer)

이제 포트도 지정했으면 도착지를 지정해야 한다.

 

DNS 질의 후 라우팅을 통해 해당 IP로 최단 경로를 구하게 된다.

데이터 링크 계층 (datalink layer)

네트워크 계층을 통해 IP 주소는 알고 있지만, MAC 주소를 모른다.

 

즉, 해당 공인 IP로 찾아갈 수는 있지만, 해당 주소의 많은 장비 중 내가 요청을 보낼 장비(랜카드)의 고유 번호를 알아야 한다.

 

데이터 링크 계층은 해당 MAC 주소를 데이터에 담는다.

물리 계층 (physical layer)

지금까지 넣었던 모든 데이터(메시지)를 0과 1의 전기 신호로 바꿔주는 계층이다.

 

이를 통해 전선 혹은 무선 망을 통해 데이터가 전송되게 된다.

수신자 관점에서

수신자(요청을 받는 쪽)에서는 지금까지 헤더를 쌓아왔던 것과 역순(물리 계층부터)으로 데이터를 꺼내면서 처리하게 된다.

 

그래서 마지막에는 HTTP 메시지 본문응용 계층을 통해 볼 수 있게 되고,

 

다시 응용 계층부터 동일한 과정을 거쳐서 응답을 보내게 된다.

마무리

OSI 7계층은 책임 분리의 목적도 있지만 메시지가 전송하는 과정에서 일어나는 일을 계층화하고 있다!

 

메시지를 송신할 때는 7-계층부터 1-계층 순으로 데이터를 쌓아서 전송하게 되고,

 

메시지를 수신할 때는 1-계층부터 7-계층 순으로 데이터를 처리하면서 수신하게 된다.

 

각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공한다!

참고