다음은 내가 데려다 준 길입니다. D.Shwley의 대답에 SashaN이 게시 한 링크를 따라 갔고 Linux의 UDP 패킷에서 "조각 내기하지 마십시오"비트가 설정된 이유에 대해 조금 배웠습니다. PMTU 발견과 관련이 있다고 밝혀졌습니다. 간단히 말해, 소켓 객체에서 setsockopts 함수를 사용하여 파이썬에서 UDP 패킷의 조각화되지 않은 비트를 지울 수 있습니다.
import socket
IP_MTU_DISCOVER = 10
IP_PMTUDISC_DONT = 0 # Never send DF frames.
IP_PMTUDISC_WANT = 1 # Use per route hints.
IP_PMTUDISC_DO = 2 # Always DF.
IP_PMTUDISC_PROBE = 3 # Ignore dst pmtu.
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("10.0.0.1", 8000))
s.send("Hello World!") # DF bit is set in this packet
s.setsockopt(socket.SOL_IP, IP_MTU_DISCOVER, IP_PMTUDISC_DONT)
s.send("Hello World!") # DF bit is cleared in this packet
상황에 맞는 스크립트를 확인하는 것이 좋습니다. – Almad