Bazı UDP paketleri oluşturmak için ham soketi kullandım ve sonra onları bir UDP sunucusuna gönderdim
Yanlış bir UDP sağlama toplamı numarası koyduğumda UDP sunucusunun kabul etmediğini, ancak sağlama toplamı 0 değerini koyarsam UDP sunucusunun kabul ettiğini?
Neden?
Ayrıca, bir pheonomenum dikkatini çekti: sağlama toplamı boşaltma Makinemi kontrol ettim:
[root@kit temp]# ethtool --show-offload eth0
Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: off
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off
receive-hashing: on
Makinemde checksum boşaltma var gibi görünüyor. TCP sağlama toplamı değerini rastgele ayarlarsam, sağlama toplamı boşaltması etkinse NIC bunu doğru bir değerle değiştirebilir mi?
Son olarak, paketler aktarım sırasında örneğin modifiye edilebilir, örneğin TTL, NAT'ın kaynak IP adreslerini de değiştirebileceği atlama sayısında azalır, daha sonra sağlama toplamı eskimiş olur, bu durumda, sağlama toplamı nasıl çalışır? Yöneltici sağlama toplamı buna göre değişecek mi? Veya hedef makine bunları akıllıca tespit edip sağlama toplamını buna göre hesaplayabilir mi?