绝大多数TCP/IP协议采用的差错检测方法称为检验和(checksum)。检验和能够防止分组在传输期间出现的损坏。检验和是附加在分组上的冗余信息。
发送端计算出检验和,并把得到的结果与分组一起发送出去。接收端对包括检验和在内的整个分组重复同样的计算。若得到了满意的结果则接收这个分组,否则就把它丢弃。
发送端计算检验和
在发送端,分组首部被划分为n位的段(n通常取值为16),把这些段用反码算术运算想家,得到的和的长度也是n位。再把这个和取反码(把所有的0变为1以及把所有的1变为0),就得出了校验和。
发送端按以下步骤产生校验和:
- 把分组划分为k段,每段的长度都是n位
- 用反码算术运算把所有这些字段相加
- 把最终结果取反码就得出检验和
接收端计算检验和
在接收端把收到的分组划分为k段,并把所有这些段相加,然后把得到的和取反码。如果最后结果为0,则接受这个分组,否则就拒绝这个分组。
当接收端把所有段相加并把结果取反码,如果在传输或处理过程中未出现差错,则得到的结果必定为0.根据反码算术运算的规则,这个说法是正确的。
假设我们在发送端将所有段相加后得到的数为T,当我们用反码算术晕眩把这个数取反是,我们就得到这个数的负值。这就表明,若所有段之和是T,则检验和就是-T,当接收端收到这个分组时,所有的段相加。实际上就是把T和-T相加,在二进制反码中得出-0.
IP分组中的检验和
在IP分组中,检验和的实现与上面所讨论的原理一样,首先,把检验和字段值置为0.然后把整个首部划分为16位的段,再将各段相加。把结果取反码,并插入检验和字段中。
IP分组中的检验和仅覆盖首部,而不管数据。这有两个原因,首先将数据封装在IP数据报中的所有高层协议,都有一个设计整个分组的检验和字段。因此,IP数据报的检验和就不必再 检验所封装的数据部分。其次没经过一个路由器,IP数据报的首部就要有锁变化,但数据部分保持不变。因此检验和只对发生变化部分进行检验和。若检验包括数据部分,则每一个路由器必须重新计算整个分组的检验和,这也就意味着花费更多的处理时间。
下图描述了一个没有选项的IP首部计算检验和的例子。首部被划分为16位的段。把所有的这些段相加,再把得到的和取反码,最后把结果插入到检验和字段中。
下图描述接收端(或中间路由器)对检验和计算,假设首部没有出现差错。首部被划分为16位的段。把所有这些段相加,再把得到的和取反码,因此得到的结果是16个0,所以此分组被接受。
相关推荐
在电信领域,视频差错控制是一项至关重要的技术,特别是在无线通信和有线电视网络中,因为这些环境中的信号传输往往受到各种干扰,如多径衰落、噪声和信道堵塞等。"基于反向链路信息的视频差错控制"是这种技术的一种...
随着网络的发展,检测和控制功能逐渐被引入到ICMP协议中,使得ICMP协议不仅用于传输差错报告,而且大量用于传输控制报文。 ICMP与IP协议位于同一个层次(IP层),但ICMP报文是封装在IP数据报的数据部分进行传输的。
介绍了H.264所使用的差错控制和错误隐藏技术,重点讨论了基于灵活宏块重排(Flexible Macroblock Ordering,FMO)的差错控制技术,及基于整帧丢失的帧拷贝(Frame Copy)和运动矢量拷贝(Motion Copy)错误隐藏技术...
Ip数据有关信息 IP数据报的格式是指IP数据报的基本...最后,IP互联网利用ICMP传输控制报文和差错报文。ICMP协议提供差错报告,但不严格规定对出现的差错采取的处理方式。ICMP差错报告都是采用路由器到源主机的模式。
IP 数据报是互联网中传输的基本单位,它包含了控制信息(即首部)和数据两大部分。其中,首部包含了用于路由选择、差错检测等的重要字段。在本案例中,我们重点关注的是 `struct ip_hdr` 和 `struct ip` 的定义及其...
(3) ICMP属于网络层协议,主要用于在主机与路由器之间传递控制信息,主要的用途是差错报告。Ping命令使用的ICMP协议中的回送请求和回送响应,所以可以使用协议分析软件通过使用ping命令来抓包,分析IP协议和ICMP...
ICMP,全称为Internet Control Message Protocol,是网际控制报文协议,它是TCP/IP协议族中的一个重要组成部分,主要负责在IP层提供差错报告和异常情况的通知。ICMP不是高层协议,它直接属于IP层,用于增强IP协议的...
流量控制与差错控制 - **滑动窗口机制**:通过动态调整发送窗口的大小来控制发送速率,从而避免接收方缓冲区溢出。 - **校验和**:在TCP头部和数据部分计算校验和,用于检测传输过程中可能出现的数据错误。 #### 7...
3. **TCP/IP协议族**:TCP/IP协议族由一系列协议组成,如IP(网际协议)、TCP(传输控制协议)、UDP(用户数据报协议)等。这些协议协同工作,确保数据在网络中正确传输。 4. **底层技术**:涵盖了网络接口层(如...
PPP协议提供多协议封装、差错控制和链路初始化控制等功能。HDLC协议则对经过PPP封装的口数据报进行定界,其定界方式是通过在帧头添加标志字节0x7E完成的。 LAPS(Link Access Procedure)协议是另一种基于SDH的链路...
TCP(传输控制协议)和IP(网际协议)是互联网上最基础的两个协议,它们构成了互联网通信的核心。下面将详细阐述这两个协议以及相关的知识点。 1. IP(网际协议): - IP是互联网的基础协议,负责数据包在网络中的...
这一层负责在物理介质上形成无差错的数据传输,包括MAC(媒体访问控制)地址和LLC(逻辑链路控制)子层。常见的协议有Ethernet、Wi-Fi(802.11)等。 6. **TCP连接建立与释放**: TCP连接采用三次握手建立,确保...
该协议具有透明性好、流量控制、差错控制、多路复用等优点,广泛应用于串行通信系统。 IP核(Intellectual Property Core),在集成电路设计中,指的是可重用的集成电路设计模块,它可以是软核、固核或硬核。软核指...
它通过建立连接、数据确认、流量控制和拥塞控制等机制,确保数据无差错、有序且不丢失地传递。TCP协议在发送数据前会先建立三次握手的连接,并在数据传输后通过四次挥手断开连接。 3. TCP/IP协议栈:TCP/IP协议栈是...
UDP是TCP/IP协议族为传输层设计的两个协议之一,它在进程与进程的通信过程中,提供了有限的差错校验功能,是一种无连接的,不可靠的协议。UDP在一个较低的水平上完成进程之间的通信,在收到分组的时候没有流量控制...
TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,它确保了数据的有序传输和无差错传输。而IP(互联网协议)则负责将数据包从源主机发送到目标主机。在C#中,我们可以利用System.Net命名...
本资源内容同博客文章网络技术与应用(笔记1)和网络技术与应用(笔记2)中的一样,将整理导出成PDF ...6.TCP差错控制与传输网络差错控制之间的关系 八、应用层 1.DNS域名解析服务 2.DHCP动态主机配置协议 3.万维网