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