본문 바로가기
네트워크/HTTP 기초

HTTP 웹 기초 - TCP, UDP

by Programmer.Junny 2024. 12. 8.

인터넷 프로토콜 스택의 4계층

클라이언트가 서버로 데이터를 전송하기 위해선 위 사진과 같은 단계를 거친다.

  1. 프로그램 내용 작성
  2. SOCKET 라이브러리를 통해 OS로 전달
  3. OS에서 TCP 정보를 씌운다.
  4. 이후 IP 계층에서 TCP정보에 IP 패킷 정보를 씌운다.
  5. 마지막으로 LAN 카드를 통해 나갈 때 이더넷 프레임을 포함이 되어서 나간다. 참고로 이더넷 프레임은 LAN 카드에 등록된 MAC 주소 등 물리적인 정보가 포함된다.

TCP 특징

전송 제어 프로토콜 (Transmission Control Protocol)

  • 연결지향 - TCP 3 way handshake (가상 연결)
  • 데이터 전달 보증
  • 순서 보장

신뢰할 수 있는 프로토콜
현재 대부분 TCP 를 사용

TCP 3 way handshake

  1. 클라이언트에서 서버로 SYN
  2. 서버에서 받은 후 클라이언트로 SYN + ACK
  3. 클라이언트에서 받은 후 다시 서버로 ACK

이렇게 세 번의 연결(통신)로 서로가 연결되었다고 신뢰하고 통신을 실행한다. 중요한건 실제로 실시간으로 연결이 보장된다는 것은 아니다. 그저 논리적으로 연결이 되었다고 판단하는 것일 뿐이다.

데이터를 전송하고(Request), 데이터 수신(Response) 를 통해 데이터 전달을 보증할 수 있다.

서버에서 내부적으로 최적화를 할 수는 있겠지만, 기본적으로 패킷 순서가 잘못되면 다시 전송요청을 통해 패킷을 순서대로 보내도록 보장할 수 있다.

UDP 특징

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

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

 

해당 내용은 김영한님의 HTTP 웹 기초 강의(인프런)의 자료와 내용을 사용하였습니다.

'네트워크 > HTTP 기초' 카테고리의 다른 글

HTTP 특징  (1) 2024.12.13
웹 브라우저 요청 흐름  (0) 2024.12.11
URI, URL, URN  (1) 2024.12.11
HTTP 웹 기초 - DNS  (0) 2024.12.10
HTTP 웹 기초 - IP(IP Address)  (0) 2024.12.07

최근댓글

최근글

skin by © 2024 ttuttak