네트워크

OSI 7계층 (TCP/IP 계층)

Parker Park 2021. 8. 21. 17:22

osi 7 계층은 네트워크라는 거대한 시스템을 설명하는 구조라고 볼 수 있다. 7계층은 각자 맡은 역할이 나누어져있다.

네트워크 통신은 모두 각 계층의 역할 수행으로 이루어질 수 있는 것이다.

OSI 7 계층이 등장한 이유?

기존에 네트워크는 서로 다른 통신 기법을 사용해 통일성이 없는 구조였다. 이에 osi는 7계층으로 된 표준을 제시했다. 하지만 시간이 흘러 현재는 osi 7계층에 근간을 둔 tcp/ip 5계층이 사용되고 있다.

TCP/IP 5계층

각 계층을 TCP/IP 계층을 기반으로 작성했다.

Application Layer (응용 계층)

어플리케이션 계층은 우리에게 익숙한 HTTP, SMTP, FTP 등 응용프로그램들이 네트워크를 사용하기 위한 인터페이스를 제공한다.
전송을 위해 HTTP를 사용했다면, 이미 어플리케이션 계층을 사용하고 있는 것이다.
osi 7계층에서는 Presentation 계층, Session 계층이 추가로 존재하는데, TCP/IP 계층에서는 어플리케이션 계층이 해당 계층들을 모두 흡수했다.

요청하는 데이터에 헤더 정보를 추가한다. 이를 메세지라고 부른다. (요청 메세지, 응답 메세지)

Transport Layer (전송 계층)

전송 계층은 쉽게 말해 네트워크로 전달 받은 데이터를 PC내 어떤 프로세스에 전달을 할지를 결정하는 계층이라고 할 수 있다.
PC 에서 프로세스를 띄울 때, 특정 포트를 통해 데이터 연결 통로를 열어둘 수 있는데 전송 계층은 이 포트를 사용하여 데이터를 프로세스에 전달한다.

대표적으로 TCP/UDP 프로토콜을 사용하는데, TCP는 데이터 전송이 잘 이뤄졌는지 확인(3 way handshaking)을 통해 신로도를 보장하는 프로토콜이고, UDP는 전송 후 상황을 체크하지 않아 신뢰도가 낮지만 속도면에서 좋은 프로토콜이다.

응용 계층에서 만들어진 메세지에 송/수신지의 포트 정보를 더해 세그먼트 단위로 데이터를 그룹핑하여 전송한다.

예를 들어)

  • 네트워크를 통해 들어온 데이터 A, B, C가 있고 현재 실행중인 프로세스 P_A, P_B 가 있을 때, 데이터 A → P_A 로 B, C → P_B 로 전달하려고 한다.
  • 그 때, 프로세스를 선택하는 기준이 포트가 된다.
  • 데이터를 전송하는 원격지 PC는 메세지에 이런 포트 정보를 헤더에 담아 세그멘테이션을 한다.

Internet Layer (인터넷 계층)

인터넷 계층은 IP, 라우터가 속한 장비의 계층으로 데이터의 전송을 담당하고 있다.
인터넷 계층은 전송 계층에서 생성한 세그먼트에 원격지 PC의 IP 주소와 데이터를 포함하여 패킷을 만든다. 해당 패킷을 라우터에게 전달하면 원격지까지 갈 수 있는 가장 빠른 연결 정보를 얻을 수 있다. 이를 라우팅이라고 한다.

Network Interface Layer (네트워크 인터페이스 계층)

네트워크 인터페이스 계층은 인터넷 계층과 그 역할은 유사하지만 같은 네트워크 상에서 데이터 전송을 담당하는 차이점을 두고 있다.
데이터 전송의 단위는 인터넷 계층에서 생성한 패킷에 송/수신지의 MAC 주소를 추가한 프레임이다.

동일한 네트워크에서 무차별적으로 데이터를 전달하게 되면 원하지 않은 PC들도 데이터를 받게 되는 문제가 발생할 수 있다. 해당 계층에서는 데이터 내에 식별자를 추가하여 프레임을 만들고 원하는 PC에게만 데이터가 전달되도록 하는 역할을 담당한다.

Physical Layer (물리 계층)

물리계층은 전기 신호 ↔ 비트 로 변환하여 실제적인 데이터 송수신을 한다.

참고

물리계층, 네트워크 인터페이스 계층은 하드웨어에 구현이 되어 있고, 인터넷 계층과 전송 계층은 OS별 커널에 소프트웨어로 구현이 되어 있다.