当前位置:  技术问答>linux和unix

关于TCP/ip卷一ip协议一段话没看懂!!

    来源: 互联网  发布时间:2017-05-17

    本文导语:  为了计算一份数据报的IP检验和,首先把检验和字段置为0。然后,对首部中每16bit进行二进制反码求和,结果存放在检验和字段中。当收到一份IP数据包后,同样对首部中每个16bit进行二进制反码求和。由于接收方在计算过程中...

为了计算一份数据报的IP检验和,首先把检验和字段置为0。然后,对首部中每16bit进行二进制反码求和,结果存放在检验和字段中。当收到一份IP数据包后,同样对首部中每个16bit进行二进制反码求和。由于接收方在计算过程中包含了发送方存在首部的检验和,因此如果首部在传输过程中没有发生任何差错,那么接收方计算结果应全为1.

为啥计算结果全为1啊,位运算学的不好,求大神解释解释!!!!

|
一、校验和算法
   之前一直只知道IP校验和算法反码求和相关的,但具体细节不清楚,今天了解了下。
   IP校验和主要是用来保证数据(IP包头)的完整性的.它用的算法非常简单,就是反码求和校验.需要注意的是反码求和又叫1的补码(one'scomplement),而2的补码就是我们通常说的补码求和了.校验算法具体如下.

1、发送方
   i)将校验和字段置为0,然后将IP包头按16比特分成多个单元,如包头长度不是16比特的倍数,则用0比特填充到16比特的倍数;
   ii)对各个单元采用反码加法运算(即高位溢出位会加到低位,通常的补码运算是直接丢掉溢出的高位),将得到的和的反码填入校验和字段;
   iii)发送数据包.

2、接收方
   i)将IP包头按16比特分成多个单元,如包头长度不是16比特的倍数,则用0比特填充到16比特的倍数;
   ii)对各个单元采用反码加法运算,检查得到的和是否符合是全1(有的实现可能对得到的和会取反码,然后判断最终值是不是全0);
   iii)如果是全1则进行下步处理,否则意味着包已变化从而丢弃之.

    
 
 

您可能感兴趣的文章:

  • TCP/IP协议族介绍及TCP/IP协议族中各协议对应的RFC编号
  • 100分求《嵌入式系统Web服务器—TCP/IP Lean》或《TCP/IP Lean Web Servers for Embedded Systems 》
  • 关于tcp/ip详解卷2中的代码
  • TCP/IP编程
  • 熟悉又陌生的TCP/IP协议簇
  • SCO Openserver 5 TCP/IP
  • 知道tcp/ip有什莫用?有socket不就行了?
  • 关于TCP/IP 哪本书更好?
  • 转发 TCP/IP 连接 prtunnel
  • tcp/ip协议栈如何集成到操作系统?
  • TCP/IP 连接诊断工具 Why Can't I Connect?
  • PHP的TCP/IP协议堆栈 phpstack
  • 何处可以找到DOS下的TCP/IP编程资料及函数库?
  • 哪里可以找到linux下的TCP/UDP/IP编程教程和例子?
  • 使用 iplanet directoty Server 必须要安装 TCP/IP 吗?
  • 请问哪有 比较专业的TCP/IP网站???
  • Tcp/Ip协议在Linux内核中架构模式
  • 关于TCP/IP在嵌入式系统的应用
  • 我想学习linux的tcp/ip协议栈,请问从哪里入门
  • 关于TCP/IP,急急急
  • vsftpd+tcp_wrapper不能限制ip
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.net接口socketoptions的类成员方法: tcp_nodelay定义及介绍
  • http走的是tcp还是udp?ssh是tcp还是udp?
  • Linux内核中影响tcp三次握手的一些协议配置
  • tcp和udp套接字有何不同?在什么情况下用tcp什么情况下用udp????
  • TCP协议报头字段详解及报头图
  • tcp_prequeue_process怎么调用了tcp_v4_do_rcv的??求解??在tcp_recvmsg调用的
  • 对TCP协议状态及状态转换理解
  • 请问怎么知道每个TCP连接所属哪个进程??还有怎么样断开系统中任意一个TCP连接?
  • TCP协议四次断连过程介绍及Linux内核协议栈中相关设置项
  • 求助!!!linux tcp发送 xp tcp接收 出现的问题
  • TCP协议三次握手过程详解
  • 高分求救:SOL_SOCKET,SO_RCVTIMO,SO_SNDTIMEO,IPPOTO_TCP,TCP_NODELAY这些是在哪个头文件定义的呢?
  • 请问RST在什么情况下发送?? 使用TCP socket编程的话是否会引起这种TCP包的发送?
  • netfilter里如何获得TCP包的数据?
  • TCP_NODDELAY的问题
  • linux内核tcp重组的函数?
  • tcp的分节表示什么?
  • 如何在Linux系统上运行T/TCP程序
  • 控制在网络上传输TCP数据包的大小的问题
  • TCP状态问题
  • udp服务器和TCP服务器的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,