📌 TCP/IP
인터넷을 비롯한 네트워크는 TCP/IP라는 프로토콜에서 움직이고 있다.
서로 다른 환경에서 통신을 하기 위해서 필요한 규칙을 프로토콜이라고 한다.
🔗 TCP/IP의 계층
각 계층의 내부는 자유롭고 편하게 설계할 수 있다.

- 애플리케이션 계층
: 유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임을 결정한다.
TCP/IP에 있는 공통 애플리케이션은 FTP, DNS 등이 있다. HTTP도 이 계층에 포함된다.
- 트랜스포트 계층
: 애플리케이션 계층에 네트워크로 접속되어 있는 2대의 컴퓨터 사이의 데이터 흐름을 제공한다.
TCP (Transmission Control Protocol)과 UDP (User Data Protocol)이 있다.
- 네트워크 계층 (= 인터넷 계층)
: 네트워크 상에서의 패킷을 이동을 다룬다. 이 때 패킷은 전송하는 데이터의 최소 단위이다.
여러 가지 선택지 중에서 하나의 경로를 결정한다.
- 링크 계층 (= 데이터 링크 / 네트워크 인터페이스 / 네트워크 접근 계층)
: 네트워크에 접속하는 하드웨어적인 면을 다룬다.
디바이스 드라이버, 네트워크 인터페이스 카드(NIC), 케이블 등을 포함한다.
🔗 TCP/IP의 통신 흐름

송신측
- 애플리케이션 계층 : 웹 페이지 클릭하면 HTTP Request를 지시한다.
- 트랜스포트 계층(TCP) : 위 계층에서 받은 데이터(HTTP 메시지)를 통신하기 쉽게 조각내어 안내번호와 포트번호를 붙인다.
- 네트워크 계층(IP) : 수신지인 MAC 주소를 추가해서 링크 계층으로 전달한다.
↓
수신측
- 링크 계층 : 데이터를 받아들여 순서대로 위로 전달한다.
- ...
- 애플리케이션 계층: HTTP Request 내용을 수신한다.
위 그림과 같이, 송신측에서 각 계층을 거칠 때 필요한 정보를 추가한다.
반대로, 수신측에서 각 계층을 거칠 때 사용한 헤더를 삭제한다.