TCP/IP

Nahyeon.In·2024년 5월 23일
0

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에 입력하면 아래같은 과정이 발생한다.

  1. Application Layer
    송신측 Client의 Application Layer에서 HTTP Request를 보낸다.

  2. Transport Layer

  • Source Port: 요청한 컴퓨터에서 생성된 소켓의 포트 번호를 사용한다.
  • Destination Port: 목적지 포트 번호로, 웹 서버의 포트 번호인 80번을 사용한다.
    TCP 패킷 형식
    사진 출처: geeksforgeeks.org
  1. Internet Layer
  • Source Address: 송신자의 IP 주소.
  • Destination Address: 목적지 IP 주소. 현재는 도메인 정보만 알고 있으므로, DNS 서버에 도메인에 대한 IP 주소를 요청해야 한다.
    IP 패킷 형식
    사진 출처: geeksforgeeks.org
  1. Network Access Layer
    구글의 MAC 주소가 아닌, 물리적으로 연결된 공유기(게이트웨이)의 MAC 주소가 필요하다.
    IP 주소로 MAC 주소를 찾기 위해 ARP 프로토콜을 사용한다.
  • ARP (Address Resolution Protocol): 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응시키기 위해 사용되는 프로토콜이다.
    이더넷 프레임 형식
    사진 출처: geeksforgeeks.org
  1. 3-way handshaking
    위의 과정을 거쳐 네트워크를 통해 송신할 준비가 완료된다. 데이터를 전송하기 전, 3-way handshaking을 통해 송신측과 수신측을 연결한 후 데이터를 전송한다.

  2. Routing
    목적지 서버에 도착하기 위해(여기서는 google server) 여러 router를 거쳐야 한다. 이렇게 여러 Router들을 거쳐서 목적지 경로를 찾는 과정이 Routing이다.

  • Router: 네트워크와 네트워크 간의 경로(Route)를 설정하고 가장 빠른 길로 트래픽을 이끌어주는 네트워크 장비.
  1. ARP
    공유기를 거쳐 라우팅을 통해 구글 서버가 연결된 라우터까지 데이터가 도착한다.패킷의 IP 헤더에 기록된 구글 서버 IP 주소를 이용하여 MAC 주소를 얻는다. ARP는 router가 연결된 Network에 브로드캐스팅을 하고 google 서버는 이 ARP 요청을 받고 MAC 주소를 응답한다. 이로인해 물리적으로 데이터가 전달될 수 있다.

  2. Transport Layer
    Destination Port: 80번 포트를 사용하고 있는 애플리케이션에 데이터를 전달한다.

  3. Application Layer
    웹 서버가 HTTP 요청 데이터를 받아 응답을 보낸다.

  4. 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

0개의 댓글