Eu escrevi um programa python simples para enviar um datagrama UDP.
import socket
client_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
host_name = socket.gethostname()
host_ip = '1.2.3.4'
print(host_ip)
port = 8080
message = b'0' * 65500
client_socket.sendto(message,(host_ip,port))
Quando executo esse código, ele envia com êxito um pacote UDP. Aqui está o registro do wireshark,
O MTU da minha interface sem fio é 1500, que descobri executando ip link
o comando.
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
link/ether 58:11:22:82:c2:ec brd ff:ff:ff:ff:ff:ff
altname enp0s31f6
3: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
link/ether f4:26:79:33:7c:96 brd ff:ff:ff:ff:ff:ff
altname wlp0s20f3
Eu li que não é possível enviar um pacote maior que o MTU de uma interface, então como é que o pacote UDP foi transmitido. Alguém pode me explicar o que está acontecendo aqui?
PS: Tentei enviar para um servidor de minha propriedade e também consegui receber a mensagem.