简析UDP数据报格式

简析UDP数据报格式

UDP长度:UDP数据报的长度

检验和:计算检验和时要加上一个伪首部

                  0      7 8     15 16    23 24    31 
                 +--------+--------+--------+--------+
                 |          source address           |
                 +--------+--------+--------+--------+
                 |        destination address        |

                +--------+--------+--------+--------+


| zero |protocol| UDP length | +--------+--------+--------+--------+

这个伪首部是从ip数据报里截取的,为的是提供误传数据报的保护。

具体怎么保护查阅了下资料,是这么说的

      首先,要时刻谨记一个“伪”字,既然是“伪”首部,也就是假的,不仅是“假”首部,而且“假”到连地址空间都没有。也就是说伪首部是不占地址空间的,在实际传输中不存在这样的字段。只是在使用的时候把它拿出来一下。
其次,既然设置了伪首部,那么肯定就是有用的——为了计算检验和!书中原话“其目的是让UDP两次检查数据是否已经正确到达目的地”,具体是那两次呢?我们注意伪首部字段:32位源IP地址、32位目的IP地址、8位协议、16位UDP长度。由此可知,第一次,通过伪首部的IP地址检验,UDP可以确认该数据报是不是发送给本机IP地址的;第二,通过伪首部的协议字段检验,UDP可以确认IP有没有把不应该传给UDP而应该传给别的高层的数据报传给了UDP。









本文转自 落花非有意  51CTO博客,原文链接:http://blog.51cto.com/1992zhong/1206252,如需转载请自行联系原作者
上一篇:如何使用表格存储控制台进行数据监控


下一篇:一种基于浏览记录的反反爬虫方法