IP, TCP, UDP 간단 정리

2021. 1. 12. 21:03HTTP

TCP/IP 4계층

애플리케이션 계층 — HTTP, FTP

전송 계층 — TCP, UDP

인터넷 계층 — IP

네트워크 엑세스 계층 — Ehternet(이더넷)

 

1. IP — 인터넷 프로토콜

  • 지정한 IP 주소(IP Address)에 데이터 전달
  • 패킷(Packet)이라는 통신 단위로 데이터 전달
  • 하지만 IP 프로토콜은 패킷의 순서 보장도 할 수 없고 패킷이 중간에 유실되도 이에대한 방안이 없다.

2. TCP — 전송 제어 프로토콜(Transmission Control Protocol)

  • 연결지향 — TCP 3 way handshake (가상 연결)
  • 데이터 전달 보증
  • 순서 보장
  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분 TCP 사용

3. UDP — 사용자 데이터그램 프로토콜(User Datagram Protocol)

  • 하얀 도화지에 비유(기능이 거의 없음)
  • 연결지향 — TCP 3 way handshake X
  • 데이터 전달 보증 X
  • 순서 보장 X
  • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
  • IP와 거의 같다. +PORT +체크섬 정도만 추가
  • 애플리케이션에서 추가 작업 필요

 

TCP 네트워크 프로세스(네이버 접속 시나리오)

  1. 웹 브라우저에 www.naver.com 입력.
  2. DNS로 네이버 서버 IP주소 할당.
  3. 애플리케이션 계층에서 메세지 데이터 패킹(HTTP 메시지).
  4. 전송 계층에서 PORT정보(출발지, 목적지), 전송제어 정보, 순서 정보, 검증 정보 패킹.
  5. 인터넷 계층에서 IP정보(출발지, 목적지) 패킹
  6. 네트워크 엑세스 계층에서 MAC주소 패킹
  7. 게이트웨이를 통해 인터넷망 접속.
  8. 라우터를 통해 목적지(네이버 서버)를 찾아 연결.
  9. 네이버 서버에 도착하면 패킷을 하나 하나 까면서 목적 포트에 메세지 데이터 전달하여 다시 응답.

 

TCP 3 way handshake

  1. 클라이언트 -> 서버: SYN패킷 전송
  2. 서버 -> 클라이언트: SYN+ACK패킷 전송
  3. 클라이언트 -> 서버: ACK+데이터 패킷 전송
  4. 데이터 패킷 전송

 

TCP 순서 보장

  1. 클라이언트에서 패킷1, 패킷2, 패킷3 순서로 전송
  2. 서버에서 패킷1, 패킷3, 패킷2 순서로 받음
  3. 서버에서 패킷2번부터 다시 보내라고 클라이언트에게 요청(TCP 기본 동작)

'HTTP' 카테고리의 다른 글

HTTP 메시지 구조  (0) 2021.01.12
HTTP 지속연결  (0) 2021.01.12
STATELESS, STATEFUL  (0) 2021.01.12