网络基础——校验
网络通信的层次化模型(如OSI七层模型或TCP/IP四层模型)中,每一层都有其特定的校验机制来确保数据传输的正确性和完整性。
物理层
校验方式
不直接涉及校验和,但会采用信号编码技术(如曼彻斯特编码、差分编码)和简单的信号质量监测,确保信号的正确传输。
原理
通过信号波形的变化来编码数据,同时在接收端监测信号的连续性和强度,判断是否有物理层的传输错误。
作用
保证物理介质上的信号传输质量,检测信号丢失或干扰问题。
数据链路层
校验方式
循环冗余校验(CRC)
原理
发送方在数据帧尾部附加一个校验码,该校验码是数据和一个预定多项式进行除法运算的余数。接收方用同样的多项式对收到的数据帧进行除法运算,如果余数为0,则数据无误。•作用:检测数据链路层的数据帧在物理传输过程中是否出现错误,包括突发错误和随机错误。
网络层
校验方式
IP头部校验和
原理
仅对IP头部进行校验和计算,不包括数据部分。计算方法类似其他校验和,但只确保头部的完整性。
作用
检测IP头部在传输过程中是否受损,但由于不校验数据部分,所以单独的IP校验和作用有限,更多依赖于下层和上层的校验机制。
传输层
校验方式
TCP有校验和,UDP也有校验和,但TCP的更全面。
TCP校验和:计算整个TCP段(头部+数据)以及伪首部的校验和。
UDP校验和:计算UDP头部和数据部分的校验和。
覆盖范围为 伪首部 + TCP Header + TCP Payload
伪首部的组成 =【source IP】+ 【 destination IP】+ 【protocol】+ 【total length - IP length】
原理
类似于数据链路层的CRC,但TCP校验和还考虑了源IP、目的IP等信息,以检测端到端的传输错误。
作用
TCP校验和确保了数据段在端到端传输中的完整性,包括头部和数据,而UDP校验和提供了基本的数据完整性检查,尽管UDP协议本身是不可靠的。
应用层
校验方式
根据应用协议不同,可以有多种校验方式,如HTTP、FTP等协议可能使用MD5、SHA等哈希算法校验文件完整性。
原理
通过计算数据的哈希值或使用特定的校验算法,在两端进行比较,确保数据的最终接收与发送完全一致。
作用
在最高层确保应用数据的完整性,对于文件传输、数据交换等应用尤为重要。每一层次的校验机制都针对其负责的数据传输部分,形成了层层防护,确保数据从发送到接收的每一个环节都尽可能准确无误,提高了网络通信的可靠性和效率。