Lined Notebook

[모든 개발자를 위한 HTTP 웹 기본 지식 강의] 05. HTTP의 TCP와 UDP 통신

by ymkim

✔ TCP & UDP

TCP/UDP가 어떻게 통신을 하는지 알아보자

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

  • 애플리케이션 계층
    • HTTP, FTP
  • 전송 계층
    • TCP, UDP
  • 인터넷 계층
    • IP
  • 네트워크 인터페이스 계층
    • LAN Driver
    • LAN 장비

✔ 인터넷 프로토콜 4계층

채팅 프로그램을 통한 메시지 전송 과정

OSI 7 Layer를 참고하세요

  • 웹 브라우저의 채팅 프로그램을 통해 Hello World라는 메시지 입력
  • 소켓 라이브러리를 통해 전송계층에 해당 메시지 전달
  • 전송계층에서는 TCP를 사용하여 해당 메시지를 패킷에 담아 인터넷 계층에 전달
  • 인터넷계층 IP 패킷 생성 후 TCP 패킷의 정보를 담는다
  • 마지막으로 네트워크 계층에 IP 패킷 전달
  • 네트워크 인터페이스 LAN카드를 통해 전송 시 이더넷 프레임 포함

✔ TCP/IP 패킷 정보

  • IP패킷으로 TCP패킷을 감싸준다
  • TCP 정보
    • 출발지 PORT
    • 목적지 PORT
    • 전송제어 정보
    • 순서
    • 검증 정보
    • 전송데이터를

✔ TCP 특징 (중요)

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

  • 연결 지향
    • 계속해서 연결을 유지하는 특징
    • TCP 3way handshake
    • 가상 연결 : 실제 물리적 연결이 아닌, 논리적 연결
  • 데이터 전달 보증
    • 메시지 전송 시 패킷이 중간에 누락되면 알 수 있다
  • 순서 보장
    • 데이터가 전송되는 순서를 보장한다
    • 연결지향, 패킷 손실 여부, 순서 보장이라는 특징을 통해 신뢰성이 높은 프로토콜이다
  • 현재는 대부분 TCP 사용하지만 UDP를 사용하는 서비스 역시 많다

연결지향 : TCP 3 way hasdShake

  • SYN
    • 접속 요청
    • Client측에서 서버쪽에 연결이 가능한지 요청을 보낸다.
  • ACK
    • 요청 수락
    • 연결이 가능하면 해당 Client 서버에 응답을 보낸다.
  • 참고
    • ACK와 함께 데이터 전송 가능

데이터 전달 보증

  • 기존 IP만으로는 데이터 전달 보증이 불가능하다
  • TCP는 IP의 한계성을 극보하기 위해 나온 프로토콜이다
    • 즉, IP가 가지고 있는 한계를 보완하는 기술이다

순서 보증

  • 패킷에 데이터 저장 후 인터넷망에 해당 패킷을 전달
  • 수신측 서버에 패킷이 전달된다. 이 때 해당 해킷의 순서가 잘못 됨을 서버가 판단
  • 수신측 서버는 해당 패킷을 전부 버린 후 송신측에 패킷을 다시 보내라는 응답 전달
  • 해당 요청을 받은 송신측은 수신측 서버에 재 요청을 한다

UDP

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

  • UDP는 하얀 도화지를 연상하면 좋다, TCP에 비해서는 기능이 부족하다

TCP 프로토콜과의 비교

  • 연결지향
    • TCP 3 way handshake를 지원 안함
    • 일방적으로 클라이언트 측에서 서버 측으로 전송
  • 데이터 전달 보증 x
    • UDP는 데이터 전달 보증을 하지 않는다, 데이터가 손실되도 찾을 수 없음
  • 순서 보장 x
    • UDP는 데이터의 순서 역시 보증을 하지 않는다
  • 사용 목적
    • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
    • 즉, 속도가 TCP에 비해 상당히 빠르기에 사용이 된다.

참고 자료

블로그의 정보

기록하고, 복기하고

ymkim

활동하기