[HTTP] TCP, UDP

미밈·2023년 3월 21일
0
post-thumbnail

인터넷 프로토콜 스택(TCP/IP) 4계층

네트워크 인터페이스 계층 -> 인터넷 계층 (IP)
-> 전송 계층 ( TCP, UDP ) -> 애플리케이션 계층( HTTP, FTP )

전달 정보(HTTP) -> SOCKET 라이브러리 통해 전달 -> TCP 정보 생성 ( 한겹 씌운다 ) -> IP 패킷 생성 ( 한겹 또 씌운다 ) -> LAN카드를 통해 나갈때 Ethernet frame포함되어 나감


TCP ( Transmission Control Protocol )

전송 제어 프로토콜
1. 연결 지향 : TCP 3 way handshake (가상 연결)(연결을 하고 메세지를 보냄)
2. 데이터 전달 보증
3. 순서 보장

TCP 세그먼트 : 출발지, 목적지PORT, 전송제어, 순서, 검증정보 +...

👉 3way handshake
SYN->SYN+ACK->ACK->데이터 전송 ( 클라이언트, 서버 )

(SYN : 접속 요청) (ACK : 요청 수락 )

  • 서로 확인을 하니까 서로 신뢰 가능
    => 3번 주고 받음 : 3way handshake
    진짜 연결이 된게 아니고 (물리적 연결이 아니고) 가상으로 연결된것.

👉 데이터 전달 보증

  • 데이터 전송시 서버가 잘 받았다고 서버에서 응답 보내줌

👉 순서 보장

  • 손실 된 패킷이 있다면 그 위치부터 재전송 요청
    TCP 세그먼트 안에 원하는 정보들이 다 저장되어있기 때문에 가능

UDP ( User Datagram Protocol )

사용자 데이터그램 프로토콜

  • 기능이 거의 없음
  • 비연결지향, 비신뢰성, 순서보장 x
  • 데이터 전달 및 순서가 보장되지 않지만 단순하고 빠르다
  • IP와 거의 비슷 + PORT + 체크섬
  • 애플리케이션에서 추가 작업 필요
    ( 원하는 추가작업이 있을때 주로 UDP사용)
  • HTTP 3에서 UDP사용하며 최근 각광받고 있음
profile
하나씩 차근차근 해보는 초초초급개발자

0개의 댓글