TCP 패킷이 조각으로 수신기에 도착할 수 있습니까?
예. TCP는 일반적으로 경로 MTU를 결정하고 성능상의 이유로 패킷을보다 작게 유지하려고하지만 IP는 조각화를 지원합니다. 조각화는 데이터 그램 손실률을 치명적으로 증가시킵니다. 경로의 패킷 손실률이 10 % 인 경우 데이터 그램을 두 개의 패킷으로 조각화하면 데이터 그램 손실률이 거의 20 %가됩니다. 패킷 중 하나라도 손실되면 데이터 그램이 손실됩니다.
그래도 걱정할 필요가 없으며 TCP 레이어도 걱정하지 않아도됩니다. IP 계층은 패킷을 전체 데이터 그램으로 재 조립합니다.
예 : TCP 프로토콜을 사용하여 20 바이트를 보내면 10 바이트가 아니라 다른 10 바이트 정도 한 번에 정확히 20 바이트를 수신 할 것이라고 100 % 확신 할 수 있습니까?
아니요, 그러나 그것은 패킷과 관련이 없습니다. TCP는 기본적으로 응용 프로그램 메시지 경계를 유지하지 않는 바이트 스트림 프로토콜입니다.
UDP 프로토콜에 대해서도 같은 질문입니다. UDP를 신뢰할 수없고 패킷이 전혀 도착하지 않거나 다른 순서로 도착할 수 없다는 것을 알고 있습니다.
TCP에서도 마찬가지입니다. 패킷은 패킷입니다. 차이점은 TCP에는 재시도 및 재주문이 프로토콜에 내장되어 있지만 UDP는 그렇지 않다는 것입니다.
그러나 1 패킷은 어떻습니까? 도착하면 조각이 아닌 완전한 패킷인지 확인할 수 있습니까?
아니요, 그러나 그것은 당신의 문제가 아닙니다. UDP 프로토콜은 데이터 그램 리 어셈블리를 처리합니다. 그것은 그 일의 일부입니다. (실제로 IP 프로토콜은 UDP 프로토콜에 대해이 작업을 수행하므로 UDP는 단순히 IP 위에 계층화하여 수행합니다.) 데이터 그램이 두 개의 패킷으로 분할되는 경우 IP 프로토콜은 UDP 프로토콜에 대해이를 재구성합니다. 완전한 데이터를 볼 수 있습니다.