flyinsky7 发表于 2015-10-17 10:11

关于udp检验和 计算过程中使用的各个字段

在udp检验和 计算过程中使用的各个字段中有一个udp伪首部的虚拟数据结构存在,如下


这个字段在tcpv1上的解释是:udp数据报和tcp数据报都包含了一个12字节长的伪首部,他是为了计算检验和而设置的,伪首部包含ip首部的一些字段,其目的是让udp两次检查数据是否已经正确到达目的地。
网上的资料则说,伪首部既校验了TCP&UDP用户数据的源端口号和目的端口号以及TCP&UDP用户数据报的数据部分,又检验了IP数据报的源IP地址和目的地址,

我的问题是 为啥仅仅靠伪首部,,就可以校验端口号了?还有数据报的数据部分?这些东西不都是16位检验和做的事么,,,那么伪首部的存在,只是为了能够让udp检查数据是否正确到达的作用么?

ssffzz1 发表于 2015-10-19 08:44

如果不检查伪首部(源、目的IP)的话,假设AB之间通讯,此时一个欺骗者C发了一个报文给A,由于端口号什么的都一致。如果A不校验源IP地址,那么A会认为是B发过来的,这样就有问题了。因此TCP/UDP都会校验一下源/目的IP(伪首部),这样就可以判断通讯的双方的身份。

当然这是一个比较简单的机制,如果中间发生高等级的欺骗的话还是检验不出来。
页: [1]
查看完整版本: 关于udp检验和 计算过程中使用的各个字段