TCP(Transmission Control Protocol)는 연결 지향 서비스로 패킷 교환 방식을 사용한다. 반면 UDP(User Datagram Protocol)는 비연결형 서비스로 데이터그램 방식이다. UDP가 TCP보다 속도가 더 빠르지만, TCP는 연결형 프로토콜이기 때문에 더 높은 신뢰성을 갖는다.

 

목차

     

     


     

     

    TCP / UDP의 차이점

     

     


     

     

    TCP  vs  UDP 

     

    TCP는 연결 지향 서비스로 패킷 교환 방식을 사용한다. 반면 UDP는 비연결형 서비스로 데이터그램 방식이다.

     

    UDPTCP보다 속도가 더 빠르지만, TCP는 연결형 프로토콜이기 때문에 더 높은 신뢰성을 갖는다.

     

    TCP는 3-way handshaking 과정으로 연결 설정하고 4-way handshaking을 통해 해제한다.

    UDP는 정보를 보낸 후 수신 여부를 확인하지 않는다.

     


     

    TCP / UDP

     

    프로토콜 종류 TCP UDP
    연결방식 연결형 서비스 비연결성 서비스
    패킷 교환 방식 가상 회선 데이터그램
    전송 순서 전송 순서 보장 바뀔 수 있음
    수신 여부 확인 확인 확인하지 않음
    통신 방식 1:1 통신 1:1  또는  N:N 통신
    신뢰성 높음 낮음
    데이터 유실 없음 데이터 유실 가능성 있음
    속도 느림 빠름

     


     

    3-way handshaking

     

    3-way handshaking은 TCP(Transmission Control Protocol)에서 신뢰성 있는 연결을 설정하기 위해 사용하는 절차다.

    클라이언트와 서버 간에 데이터 전송을 시작하기 전에 연결을 설정하는 과정이다.

    1.  SYN (Synchronize) 패킷 전송:

    • 클라이언트가 서버에 연결을 요청
    • 클라이언트는 서버로 SYN 패킷을 전송 (이 패킷에는 초기 순서 번호(Sequence Number)가 포함되어 있다.)

     

    2.  SYN-ACK (Synchronize-Acknowledge) 패킷 전송:

    • 서버는 클라이언트의 SYN 패킷을 수신하고, 클라이언트의 요청을 수락한다는 의미로 응답
    • 서버는 자신의 초기 순서 번호를 포함하여 SYN 패킷을 전송하고, 클라이언트의 순서 번호에 대한 응답으로 ACK 번호를 설정하여 SYN-ACK 패킷을 전송한다.

     

    3.  ACK (Acknowledge) 패킷 전송:

    • 클라이언트는 서버의 SYN-ACK 패킷을 수신하고, 연결이 설정되었음을 서버에 알림.
    • 클라이언트는 서버의 순서 번호에 대한 응답으로 ACK 번호를 설정하여 ACK 패킷을 서버로 전송.