728x90
TCP/UDP
TCP
- 연결 지향형 서비스(reliable service)와 신뢰적 데이터 전송 서비스(data integrity)를 포함한다.
- Reliable Service
- TCP는 메시지 전송 전에 클라이언트와 서버가 서로 전송 제어 정보를 교환하도록 한다. 즉, 패킷이 전송될것을 미리 알려준다.
- Data integrity
- TCP는 데이터를 오류 없이 올바른 순서로 전달하는 것을 보장한다.
- Congestion control(혼잡제어)
- TCP의 congestion control은 네트워크가 혼잡상태에 이르면 프로세스의 속도를 낮춘다.
- 즉, 프로세스가 우선이 아니라 네트워크의 안정성 향상을 우선한다.
- Flow control(흐름제어)
- TCP는 receiver의 buffer가 꽉 차서 데이터가 손실되지 않도록 sender의 전송을 관리한다.
- TCP는 최대한 오류 없는 신뢰성 있는 전송을 위해 많은 기능을 지원하며, 이에 따라 속도가 UDP에 비해 불리할 수 있다.
- 안정적이고 정확한 패킷 전달을 보장한다는 특징이 있다.
UDP
- 최소의 서비스 모델을 가지는 간단한 프로토콜이다.
- 비연결형임으로 핸드셰이킹을 하지 않는다.
- 비 신뢰적인 서비스이므로 데이터가 손실될 수 있다. UDP는 flow control을 하지 않으므로 프로세스는 원하는 속도로 하위 계층으로 보낼 수 있다. 그 외 올바른 패킷 전송에 필요한 여러가지 제어를 전부 하지 않는다.
- 데이터그램을 생성하며, 데이터 전송의 신뢰성을 보장하지 않는다. 비연결형이고, 데이터를 보내고 신경쓰지 않는다. 재전송도 없다.
- 그래서 TCP보다 비교적 빠르다. 연결 상태를 만들지 않으므로 유지할 필요도 없다. 또한 패킷이 순서대로 오는 것을 보장하지 않기 때문에 수신자가 헤더를 보고 조합해야 한다.
728x90
'Computer > 서버 & 네트워크' 카테고리의 다른 글
세션 끊김 문제 (0) | 2024.08.05 |
---|---|
Nagle Algorithm (0) | 2024.06.19 |
MIME(Multipurpose Internet Mail Extensions) (1) | 2024.02.27 |
CGI(Common Gateway Interface) (0) | 2024.02.27 |
스트림 소켓(Stream Socket) / 데이터그램 소켓(Datagram Socket) (0) | 2024.02.27 |