IP 패킷은 무작위로 조각화됩니다.

IP 패킷은 무작위로 조각화됩니다.

내가 관찰한 가장 이상한 점은 동일한 인터페이스를 통해 전송된 동일한 패킷, 동일한 크기가 때로는 전체가 전송되고 때로는 인터페이스 MTU를 초과하는 것처럼 조각화된다는 것입니다.

1472 패킷 조각화:

10:10:24.537385 IP 192.168.56.1.35749 > 192.168.56.101.4444: UDP, length 1008
10:10:24.537589 IP 192.168.56.1.35749 > 192.168.56.101.4444: UDP, length 464

1472 패킷이 조각화되지 않았습니다.

10:10:34.168099 IP 192.168.56.1.41252 > 192.168.56.101.44444: UDP, length 1472

이것은 무작위로 발생하는 것 같습니다. 왜 이런 일이 발생합니까?

MTU 15001472 udp에 충분한 데이터 패킷을 전송하기 위한 인터페이스가 있습니다 . 그러나 더 작은 패킷에서도 같은 일이 발생합니다. tracepath또한 경로의 MTU 1500을 표시합니다.

Ubuntu 14.04, 3.13.0-46-generic을 사용하고 있습니다.

답변1

나도 같은 문제가 있었고 내 경우에는 이 동작이 GSO로 인해 발생했습니다.

skb_is_gso(skb)GSO 상태를 확인 하려면 를 사용하여 GSO를 비활성화할 수 있습니다 skb_gso_reset(skb).

답변2

내 질문에 대한 정답은 @Barmar의 의견에 있으며 그는 찬성해야 합니다.

출력을 세그먼트로 플러시하는 명령을 사용하여 패킷을 보냈는데 cli, 이것이 이상한 결과의 이유입니다.

관련 정보