TCP/UDP 차이점

TCP/UDP

TCP

  • 신뢰성있는 데이터 전송을 지원하는 연결지향형 프로토콜
  • Sequence Number, Ack Number를 통한 신뢰성 보장
  • 연결의 설정(3-way handshaking)과 해제(4-way handshaking)
  • 흐름제어와 혼잡제어를 지원하며 데이터의 순서를 보장

UDP

  • 일방적으로 데이터를 전달하는 비연결형 프로토콜
  • 데이터 전송에 대한 보장을 하지 않음 (비신뢰성)
  • 헤더에 Checksum 필드를 통한 최소한의 오류검출
  • 속도가 빠름

TCP_UDP

3-way handshaking

3-way handshaking
연결을 하여 데이터를 전송하기 위해 TCP에서 3-way handshaking 과정을 거친다.

  1. 접속 요청 프로세스가 연결요청 메시지 전송(SYN)
  2. 접속 요청을 받은 프로세스가 수락 (SYN + ACK)
  3. 마지막으로 접속 요청 프로세스가 수락 확인을 보내 연결을 맺음(ACK)
  • SYN(Synchronization) : 연결요청, 세션을 설정하는데 사용되며 초기에 시퀀스 번호를 보냄
  • ACK(Acknowledgement) : 보낸 시퀀스 번호에 TCP 계층에서의 길이 또는 양을 더한 것과 같은 값을 ACK에 포함하여 전송

4-way handshaking

4-way handshaking

4-way handshaking는 세션을 종료하기 위해 수해되는 절차이다.

  1. 클라이언트가 연결을 종료하겠다는 FIN 플래그를 전송한다.
  2. 서버는 일단 확인메시지를 보내고 자신의 통신이 끝날때까지 기다리는데 이 상태가 TIME_WAT 상태
  3. 서버가 통신이 끝났으면 연결이 종료되었다고 클라이언트에게 FIN 플래그를 전송
  4. 클라이언트는 확인했다는 메시지를 보냄
  • FIN(Finish) : 세션을 종료시키는데 사용되며 더 이상 보낸 데이터가 없음을 표시