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

IP,UDP,TCP的校验和计算

    来源: 互联网  发布时间:2017-01-14

    本文导语:  关于校验和的算法,本人知道,但是很多书上对于计算有很多不同的方式。 我看到那个TCP/IP协议上讲,IP包得校验和是只要计算IP头部就好了, 但是对于UDP,TCP需要加入伪首部计算校验和 但是很多书上并没有这样子...

关于校验和的算法,本人知道,但是很多书上对于计算有很多不同的方式。
我看到那个TCP/IP协议上讲,IP包得校验和是只要计算IP头部就好了,
但是对于UDP,TCP需要加入伪首部计算校验和
但是很多书上并没有这样子去算,是不是有问题呢

|
的确,我也发现了.

网络编程里的RAW SOCKET构造IP+UDP+DATA的时候也只计算了UDP得校验和.

|


不过我又发现人家的意思是算过的,网络编程638页,我先去研究研究协议.

|


我发现了,其实代码里已经计算过了.

代码里的结构体udpiphdr就是IP头+UDP头,它先清零整个udpiphdr。 然后,它先填写好伪首部的所需要的IP字段(2个IP,8位协议,16位UDP长度),然后填写UDP头的2个端口,16位UDP长度。 也就是把伪首部需要的字段都填写好,然后计算整个IP+UDP+DAta的检验和。

所谓的伪首部不过是将IP头+UDP头清零,数据追加在末尾,然后填写伪首部所需要的IP字段和UDP字段,然后计算校验和填到UDP头里。

|


IP头+UDP头全部清0,然后填写伪首部需要的IP字段和UDP需要的字段,然后对整个IP+UDP+数据做计算。

你怎么这么死板呢,0字节对校验和计算没有影响,我们只把伪首部需要的字段赋值,然后整体计算就是校验和。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • http走的是tcp还是udp?ssh是tcp还是udp?
  • tcp和udp套接字有何不同?在什么情况下用tcp什么情况下用udp????
  • udp包大于1500字节网络传输会分包吗?udp tcp多大的包比较合适?
  • TCP与UDP通信问题!
  • udp服务器和TCP服务器的问题
  • UDP-TCP Bridge
  • 载断TCP UDP连接
  • 哪里可以找到linux下的TCP/UDP/IP编程教程和例子?
  • UDP和TCP带宽竞争处理问题
  • 假如已经以UDP方式监听8000端口,还能以TCP方式监听8000吗?
  • udp/tcp通信?
  • 选择TCP还是UDP?
  • 发布一个BOOST/ASIO 服务器的模型,支持UDT/TCP/UDP 大家去GOOGLE技术社区看,我置顶了。
  • 请问NAT(or iptables)可以将一个传进来的TCP包转换成UDP并将其重定向到另外的目的地址吗?
  • PING是用TCP,还是用UDP来实现的?或是采用其它协议实现的?
  • udp socket和tcp的有什么冲突吗?
  • 急,请教一个将TCP数据包修改为UDP包的问题,高手请进!
  • 内核是不会把tcp/udp报文传递给raw socket??
  • tcp和udp的区别
  • 请问用那个命令可以实时看到当前的网络状态。如:TCP,UDP,防火墙的情况。
  • Qt:UDP:如何划分接收到的UDP包的界限
  • 50求教一个菜鸟级别的UDP套接字问题,关于UDP server端只能接收一次数据的问题?在线等,一直等............
  • udp方式抓取网页
  • python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
  • udp socket客户端和udp服务端程序示例分享
  • 请问下怎么关闭SUSE 9.1下UDP的checksum?
  • 如何判断udp端口可达
  • 关于epoll&udp的问题?
  • UDP包怎么生成啊?用什么函数??简单问题,帮个忙哈
  • 对于socket UDP传输,一个端口只能被一个进程绑定?
  • UDP协议在实现时有没有在发送端或者接收端设置缓冲区?


  • 站内导航:


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

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3