TCP, UDP 통신 - deveio/Network-study GitHub Wiki

목차

  1. TCP 통신
  2. UDP 통신
  3. 비교

TCP(Transmission control protocol) 통신

  • TCP통신 방식은 인터넷에서 데이터를 안정적으로 전송하기 위해 사용되는 프로토콜이다.

TCP의 특징

  • 연결 지향적 통신: TCP는 데이터 전송 전에 송신자와 수신자 간에 연결을 설정한다.

  • 신뢰성 있는 데이터 전송: 데이터가 손실되거나 오류가 발생해도 제전송을 통해 정확한 데이터 전송을 보장한다.

  • 순차적 데이터 전송: 데이터를 보낸 순서대로 수신자에게 전달된다.

  • 흐름제어: 수신자의 처리 속도에 맞춰 데이터 전송 속도를 조절한다.

  • 혼잡제어: 네트워크의 혼잡 상태를 감지하고 데이터 전송 속도를 조절한다.

  • 속도: UDP보다 속도가 느리다.

  • 통신방식: 전이중 방식(Full-Duplex)으로 양방향으로 데이터 송수신이 가능, 1대1 통신이며 유니캐스트 방식이다.

  • 중요한 문서 및 파일전송에 사용된다.

TCP 통신의 작동 방식

  • 연결 설정(3-way handshake)

tcp_3_way_handshake

  • 3-way handshake는 tcp 연결을 설정하기 위해 클라이언트와 서버 간에 이루어지는 3단계 과정이다.
  1. 클라이언트는 서버와 연결을 위해 SYN(Synchronize) 패킷을 전송한다.
  2. 클라이언트는 SYN-SENT 상태가 된다.
  3. 서버는 클라이언트의 SYN 수신하고 이에 대한 응답으로 SYN-ACK 패킷을 전송한다.
  4. 서버는 SYN-RECEIVED 상태가 된다.
  5. 클라이언트는 서버의 SYN-ACK를 수신하고 이에 대한 응답으로 ACK 패킷을 전송한다.
  6. 이 단계 이후 양쪽 모두 ESTABLISHED 상태가 되어 데이터 전송이 가능해진다.
  • 이러한 과정을 통해 TCP는 신뢰성 있는 연결을 수립하고 안정적인 데이터 전송을 보장할 수 있게된다.

UDP(User Datagram Protocol)통신

  • UDP 통신은 TCP와 함께 인터넷의 핵심 프로토콜 중 하나이며 단순하고 빠른 데이터 전송을 위해 설계되었다.

UDP의 특징

  • UDP는 3-way handshake 과정이 없어 빠른 통신이 가능하다.

  • 데이터 전송의 신뢰성을 보장하지 않는다.

  • 패킷 손실 및 순서가 바뀔 수 있다.

  • 브로드캐스트 및 멀티캐스트를 지원한다.

  • 온라인 게임 및 비디오 실시간 스트리밍에 사용된다.

  • 네트워크 상태나 수신자의 처리 능력에 관계없이 데이터를 전송한다 이러한 방식은 데이터의 빠른 전송이 가능하지만 네트워크 혼잡의 원인이 될 수 있다.

TCP, UDP 비교

스크린샷(165)