TCP/IP
TCP/IP(Internet Rrotocol Suite)는 컴퓨터들이 인터넷에서 서로 데이터를 전송하는 데 사용되는 프로토콜의 모음이다. 주요 목표는 데이터를 신뢰성 있고 정확하게 전송하여 수신자가 발신자가 보낸 동일한 정보를 받을 수 있도록 하는 것이다. 이를 위해 TCP/IP 모델은 데이터를 패킷으로 나누어 전송하고, 목적지에서 다시 조립한다.
TCP/IP Model의 계층

사진 출처: geeksforgeeks.org
- Application Layer
특정 서비스를 제공하기 위해 어플리케이션끼리 데이터를 송수신 할 수 있도록 한다.
대표적인 protocol: HTTP, SSH, DNS, FTP, SMTP
- Transport Layer
데이터 전송에 대한 신뢰성을 보장한다. 자세히 말하자면, 데이터 수신 확인을 교환하고 누락된 패킷을 재전송하여 오류없이 순서대로 도착하는지 확인한다.
Port 번호를 사용하여 Application을 찾아주는 역할을 한다.
대표적인 protocol: TCP, UDP
- Internet Layer
수신측까지 데이터 전송을 담당하는 계층으로, 송신측과 수신측 모두 IP 주소를 가지고 있어야 한다.
IP주소를 바탕으로 올바른 목적지까지 찾아갈 수 있게 하며, 복잡한 네트워크망에서 가장 효율적으로 Packet을 보내는 역할을 한다. 이를 Routing이라고 한다.
대표적인 protocol: IP, ARP
- Network Access Layer
물리적인 데이터의 전송을 담당하는 계층으로 같은 네트워크 내에서 데이터가 전송된다.
물리적인 주소인 MAC를 참조하여 네트워크에 직접 연결된 Node-To-Node간의 신뢰성 있는 데이터 전송을 한다.
대표적인 protocol: Ethernet, LAN
TCP/IP 흐름
http://www.google.com(:80)
을 web browser에 입력하면 아래같은 과정이 발생한다.
-
Application Layer
송신측 Client의 Application Layer에서 HTTP Request를 보낸다.
-
Transport Layer
- Source Port: 요청한 컴퓨터에서 생성된 소켓의 포트 번호를 사용한다.
- Destination Port: 목적지 포트 번호로, 웹 서버의 포트 번호인 80번을 사용한다.

사진 출처: geeksforgeeks.org
- Internet Layer
- Source Address: 송신자의 IP 주소.
- Destination Address: 목적지 IP 주소. 현재는 도메인 정보만 알고 있으므로, DNS 서버에 도메인에 대한 IP 주소를 요청해야 한다.

사진 출처: geeksforgeeks.org
- Network Access Layer
구글의 MAC 주소가 아닌, 물리적으로 연결된 공유기(게이트웨이)의 MAC 주소가 필요하다.
IP 주소로 MAC 주소를 찾기 위해 ARP 프로토콜을 사용한다.
- ARP (Address Resolution Protocol): 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응시키기 위해 사용되는 프로토콜이다.

사진 출처: geeksforgeeks.org
-
3-way handshaking
위의 과정을 거쳐 네트워크를 통해 송신할 준비가 완료된다. 데이터를 전송하기 전, 3-way handshaking을 통해 송신측과 수신측을 연결한 후 데이터를 전송한다.
-
Routing
목적지 서버에 도착하기 위해(여기서는 google server) 여러 router를 거쳐야 한다. 이렇게 여러 Router들을 거쳐서 목적지 경로를 찾는 과정이 Routing이다.
- Router: 네트워크와 네트워크 간의 경로(Route)를 설정하고 가장 빠른 길로 트래픽을 이끌어주는 네트워크 장비.
-
ARP
공유기를 거쳐 라우팅을 통해 구글 서버가 연결된 라우터까지 데이터가 도착한다.패킷의 IP 헤더에 기록된 구글 서버 IP 주소를 이용하여 MAC 주소를 얻는다. ARP는 router가 연결된 Network에 브로드캐스팅을 하고 google 서버는 이 ARP 요청을 받고 MAC 주소를 응답한다. 이로인해 물리적으로 데이터가 전달될 수 있다.
-
Transport Layer
Destination Port: 80번 포트를 사용하고 있는 애플리케이션에 데이터를 전달한다.
-
Application Layer
웹 서버가 HTTP 요청 데이터를 받아 응답을 보낸다.
-
4-way handshaking
HTTP 요청과 응답이 끝나면, 4-way handshaking을 통해 연결을 종료한다.
English version
TCP/IP Model
📂 Reference
[10분 테코톡] 🔮 수리의 TCP/IP
Internet Protocol Suite
TCP/IP Model
TCP / IP 4계층 모델
The Best Guide To Understand What Is TCP/IP Model
tcp-ip-packet-format