이번 포스팅의 주제는 네트워크 계층.
그 중에서 TCP/IP 4계층과 OSI 7계층에 대해 써 보도록 하겠다.
우리가 흔히 사용하는 인터넷 프로토콜의 모음들이다.
Application Layer 의 DHCP, FTP, HTTP, IMAP 부터 해서 Transfort Layer 의 TCP, UDP 등 이러한 프로토콜을 통틀어서 Internet Protocol Suite라고 부른다.
흔히 TCP와 IP가 가장 많이 쓰이므로 Internet Protocol Suite는 TCP/IP 프로토콜 슈트라고도 부른다.
기존의 OSI 7계층과는 다르게 TCP/IP 계층은 Application Layer, Presentation Layer, Session Layer를 Application Layer로 통합한다.
그리고 DataLink Layer와 Physical Layer를 Network Access Layer로 통합한다. 그러므로 총 4개의 계층 구조를 가진다.
어떻게 구별하든 각 레이어 별로 어떤 프로토콜이 존재하는 지 정도는 알아 둘 필요가 있다. 정리하면 아래와 같다.
말 그대로 응용프로그램이 사용되는 프로토콜 계층.
실질적으로 사람에게 서비스를 제공하는 층이다. 예를 들면 Email(POP3, SMTP)
FTP와 SSH, HTTP, DNS 등 자주 들어 본 프로토콜이 서비스된다.
혹시나 헷깔릴 수 있으니 정리하면 아래와 같다.
송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층.
연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공한다.
Application Layer와 Internet Layer 사이의 데이터가 전달 될 때 중계자 역할을 하는 계층이다.
대표적인 프로토콜로는 TCP, UDP가 있다.
TCP
UDP
장치로부터 받은 네트워크 패킷을 IP 주소로 지정 된 목적지로 전송하기 위해 사용 되는 계층이다.
대표적인 프로토콜로는 IP, ARP, ICMP가 있다.
실질적으로 데이터를 전달하는 전선, 광섬유, 무선 등의 계층이며 장치간에 신호를 주고받는 규칙을 정하는 계층이다.
이 계층과 관련 된 지식 중 반드시 알아 둬야 할 개념들을 좀 정리하자면 다음과 같다.
클라이언트가 서버에 데이터를 요청한다면 Data Encapsulation 과정을 거쳐서 전달 된다. 반대 방향도 마찬가지.
각 계층에 맞는 헤더들이 붙었다 떨어지면서 각각의 계층에서 처리 되어야 할 작업들이 처리되어 데이터가 전달 된다.
Protocol Data Unit 이라고 부른다. 네트워크의 어떠한 계층에서 계층으로 데이터가 전달 될 때 한 덩어리의 단위다. 제어 관련 정보들이 담긴 헤더, 데이터를 의미하는 페이로드로 구성되며 계층마다 이것들을 부르는 명칭이 조금 씩 다르다.
예를 들면 Application Layer는 메시지, Transport Layer에서는 Segment, Datagram 이런 식으로 말이다.
HTTP를 통해 전달 한 후 받은 Request를 개발자 도구를 통해 확인 해 보면 Application Layer 상에서 PDU 가 어떻게 생겼는 지 알 수 있다.
Date: Tue, 02 Aug 2022 07:52:10 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=UTF-8
Strict-Transport-Security: max-age=31536000
Accept-CH: Sec-CH-UA-Platform
Accept-CH: Sec-CH-UA-Platform-Version
Accept-CH: Sec-CH-UA-Full-Version
Accept-CH: Sec-CH-UA-Arch
Accept-CH: Sec-CH-UA-Model
Accept-CH: Sec-CH-UA-Bitness
Accept-CH: Sec-CH-UA-Full-Version-List
Accept-CH: Sec-CH-UA-WoW64
BFCache-Opt-In: unload
P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info."
Content-Encoding: gzip
Server: gws
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
Set-Cookie: 1P_JAR=2022-08-02-07; expires=Thu, 01-Sep-2022 07:52:10 GMT; path=/; domain=.google.com; Secure; SameSite=none
Set-Cookie: AEC=AakniGP9UyFgjeMK0OMa5SovnDAqjDb-SA9EAzCkGMX4ytNRC8jJd2m8v0U; expires=Sun, 29-Jan-2023 07:52:10 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax
Set-Cookie: NID=511=mb13M5bEPzLI_XBKJX9Sd1WWdpos_12Gi3lJ4EAooFIVWluWfs10IHOVg1UrNw8dU5anUxLFCj-taFmFIbV6ZYMY70aMGDAwyL4I1S6In6v6Urcsvfd9Rnu9vMrBUNMEahyWnf8fs8TgFSXRXP4t4FGduh8FU8C7Ty2YQn7zvJU; expires=Wed, 01-Feb-2023 07:52:10 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=none
Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
Transfer-Encoding: chunked
위는 google에 실제로 HTTP 명령을 보냈을 때 돌아온 Header 값들이다.
단순히 계층을 나누는 기준의 차이도 있지만, TCP/IP 4 계층은 TCP/IP와 관련 된 프로토콜을 설명하는 데 도움이 된다면, OSI 7계층은 SSL, TLS에 대해 설명할 때 더욱 적합하다.
지금까지 TCP/IP 4계층과 OSI 7계층을 비교 해 보았고, TCP/IP 4계층의 계층 별 특징, 프로토콜, 그리고 주요한 용어들을 정리 해 보았다.
다음 포스팅은 IP 주소에 대해서 포스팅 해 보도록 하겠다.