[네트워크 프로그래밍] 4. TCP VS UDP
TCP
느리지만(느린것도 엄청 느린거아님) 신뢰성 있는 전송 방식
연결형 서비스
- TCP방식은 클라이언트와 서버를 연결할 때 서로의 연결 통로를 만들어놓고 통신한다.
- 전송순서가 보장된다.
- 데이터가 유실되면 데이터를 다시 보낸다.
- 수신측에서 데이터를 받기 애매한 상황일 때는 우선 기다린다(흐름제어 / 혼잡제어)
UDP에 속도가 느리면서 경계선(Boundary)가 명확하지 않음
- 흐름제어/혼잡제어 그리고 데이터 유실시 다시 보내는 규칙 때문에 속도가 UDP에 비해 느리다. (특정한 상황에서)
- 경계선이 명확하지 않아 데이터의 전송순서는 보장하나 데이터가 전송한 형태 그대로 수신측에서 받을 수 있을지는 불확실하다
UDP
신뢰성이 떨어지지만 그 만큼 속도가 빨라지는 전송 방식
비연결형 서비스
- 연결형이 아니기 때문에 데이터를 보내고는 확인할 방법이 없다.( 정규적인 방법에서는)
- 흐름제어 / 혼잡제어 데이터 유실 복구 같은 규칙들을 지키지 않고 단순하기 때문에 TCP에 비해 속도가 빠르다.
- 경계선이 명확해 전송 순서는 보장하지 않으나 데이터가 수신측의 온전히 그대로의 형태로 도착한다.
TCP에 비해 신뢰성이 없음
- 전송 순서를 보장하지 않는다.
- 데이터 유실시 보장하지 않는다.(알빠노)
- 혼잡제어 / 흐름제어 없이 일단 데이터를 보낸다.