伪头部校验

简介: 伪头部校验

本章问题

UDP和TCP的伪首部只用于计算校验和,在UDP和TCP的报文中是不存在的,为什么要引入伪首部呢?为什么伪首部的要有这些字段?这里我们就先看一下TCP和UDP的首部格式。

 

TCP和UDP首部


源端口目的端口:是0-65535任何数字,在收到请求时系统会为客户端动态分配,0-1023为知名端口号

UDP报文长度(单位4byte):表示udp报头 + udp数据总长度 = 8 + len

校验和:计算之前校验和位置填0,发送之前将校验结果填上,目标端收到后会再次进行校验结果为0表示正确

UDP伪头部:包含UDP1+UDP+data三部分共12 + 8 + len 个字节,UDP发送时需要通过伪头部进行16位校验,伪头部只是在校验时用到,数据收发不用伪头部

TCP报头长度(单位4byte):表示TCP报头不包含数据的长度=20+选项长度,UDP无选项

TCP伪头部:包含TCP1+TCP+选项长度+数据长度4部分组成,如果没有选项和数据刚好就是12+20=32个字节,tcp发送时需要对12+20+选项长度+数据长度这些字节进行16位校验,伪头部只是在校验时用到,数据收发不用伪头部,因为这只是IP报头的一部分而已。


我们为什么会使用伪头部校验?

伪首部是为了增加 校验和 的检错能力:通过伪首部的目的IP地址来检查TCP报文是否收错了、通过伪首部的传输层协议号来检查传输层协议是否选对了。


伪首部的目的是为了防止有人截获tcp数据然后加上IP包头伪造数据包,重放攻击。伪首部只是一个虚拟的概念,是为了计算tcp校验和而虚构的,不存在协议层中任何一个位置。

由于socket协议栈在开始已经知道应用层数据要发往哪里,但是还没有到tcp层封装,故虽然知道ip源地址和目的地址,但是没有填入数据包。


为什么伪首部要有目的IP地址?

我们知道数据传输过程中会产生误码,0可能变为1,1可能变为0,并且每种校验码都有一定的查错能力,超过这个范围,就无法察觉错误了。而早期的通信环境大概比较糟糕,因此,在传输过程中出现误码,可能使IP报文的目的地址出现错误,接收主机的UDP计算校验和时,目的IP地址来自IP层,由于目的IP地址出现错误,导致发送主机计算检验和时使用的目的IP地址与接收主机计算检验和时使用的目的IP地址不同,UDP发现错误,丢弃报文。


为什么伪首部要有源IP地址?

为了让接收主机确认源IP地址没有出现错误。假设我们想要开发一款基于UDP的程序,A发送UDP报文给B,B要发送回应报文给A,假设传输过程出现误码,源IP地址出现错误,则A计算检验和时使用的源IP地址与B计算校验和时使用的源IP地址不同,B就可以发现错误,从而丢弃报文,定时重传等可靠性由应用程序自己保证。

相关文章
|
网络协议 安全 网络安全
【UDP】——为什么 UDP 数据包不能超过 512 个字节
一开始了解的是 DNS 服务使用的是 UDP 协议,后面看到 DNS 服务主要使用 UDP 协议,在少数情况(传输的数据超过 512 个字节)下也会使用 TCP 协议,因为 UDP 数据包不能超过 512 个字节。那问题来了,为什么 UDP 数据包不能超过 512 个字节呢?
5173 0
【UDP】——为什么 UDP 数据包不能超过 512 个字节
|
缓存 网络协议 安全
TCP首部格式【TCP原理(笔记五)】
TCP首部格式【TCP原理(笔记五)】
1277 0
TCP首部格式【TCP原理(笔记五)】
|
网络协议
TCP报文格式全解析:网络小白变高手的必读指南
本文深入解析TCP报文格式,涵盖源端口、目的端口、序号、确认序号、首部长度、标志字段、窗口大小、检验和、紧急指针及选项字段。每个字段的作用和意义详尽说明,帮助理解TCP协议如何确保可靠的数据传输,是互联网通信的基石。通过学习这些内容,读者可以更好地掌握TCP的工作原理及其在网络中的应用。
|
网络协议 网络架构
UDP报文结构详解:一篇文章带你搞懂
本文介绍了网络基础中的重要概念——UDP报文格式,包括源端口号、目的端口号、长度和检验和四个字段。UDP是一种无连接的传输层协议,简单高效但不可靠。文中还简要介绍了IP报文的重要字段,如版本、首部长度、服务类型、总长度、标识字段、生存时间和首部检验和。最后推荐了几本深入学习网络协议的书籍,帮助读者进一步理解相关知识。
|
运维 定位技术 网络虚拟化
|
网络协议 算法 数据格式
【TCP/IP】UDP协议数据格式和报文格式
【TCP/IP】UDP协议数据格式和报文格式
1908 3
|
网络协议 安全 程序员
网络原理-UDP/TCP详解
网络原理-UDP/TCP详解
网络原理-UDP/TCP详解
|
网络协议 数据库 网络架构
OSPF 四种设备角色:IR、ABR、BR、ASBR
【4月更文挑战第5天】
4700 2
OSPF 四种设备角色:IR、ABR、BR、ASBR

热门文章

最新文章