tcp校验和】的更多相关文章

    http://blog.csdn.net/zhangskd/article/details/11770647 分类: Linux TCP/IP Linux Kernel 2013-09-24 18:29 7853人阅读 评论(0) 收藏 举报 目录(?)[+] 概述 TCP校验和是一个端到端的校验和,由发送端计算,然后由接收端验证.其目的是为了发现TCP首部和数据在发送端到 接收端之间发生的任何改动.如果接收方检测到校验和有差错,则TCP段会被直接丢弃. TCP校验和覆盖TCP首部和TC…
伪首部(pseudo header),通常指TCP伪首部和UDP伪首部 TCP的校验和是必需的,而UDP的校验和是可选的 TCP校验是需要校验包头和数据的 //共12字节 typedef struct { unsigned long saddr; //源IP地址 unsigned long daddr; //目的IP地址 unsigned char mbz; // mbz = must be zero, 用于填充对齐 unsigned char protocal; //8位协议号 unsigne…
我就不管是按“位”(bit)取反相加,还是 按“1的补码”相加了,总之就是把需要进行校验的“字串”加(+)起来,把这相加的 结果取反当做“校验和” (Checksum), 比如,相加的结果是0101,那么“校验和”就是1010,验证的时候呢,就是 0101+1010 = 1111 ,取反后, 就是0 ——如果验证得“零”(),就是正确的! 先将checksum字段置零,然后按16位分组,计算2进制反码和,最后再求和的反码! 为了计算一份数据报的IP检验和,首先把检验和字段置为0.然后,对首部中每…
一.借鉴说明,本博文借鉴以下博文 1.BlueTzar,TCP/IP四层模型, http://www.cnblogs.com/BlueTzar/articles/811160.html 2.叶剑峰,漫谈TCP, http://www.cnblogs.com/yjf512/p/5909031.html 3.bizhu,TCP和UDP的区别(转), http://www.cnblogs.com/bizhu/archive/2012/05/12/2497493.html 4.任智康,TCP/IP.Ht…
转自:http://www.cnblogs.com/BlueTzar/articles/811160.html ISO制定的OSI参考模型的过于庞大.复杂招致了许多批评.与此对照,由技术人员自己开发的TCP/IP协议栈获得了更为广泛的应用.如图2-1所示,是TCP/IP参考模型和OSI参考模型的对比示意图.            图2-1 TCP/IP参考模型 2.1 TCP/IP参考模型的层次结构 TCP/IP协议栈是美国国防部高级研究计划局计算机网(Advanced Research Pro…
LWIP协议支持用户配置,可以通过用户裁剪实现最优化配置,LWIP默认包含opts.h作为系统默认配置,不过通过添加lwipopts.h文件并包含在opts.h头文件之前就可以对lwip进行用户裁剪,这里给出相关参数的含义,不过具体项目还应该根据实际情况裁剪. #ifndef LWIPOPTS_H #define LWIPOPTS_H //***************************************************************************** /…
原文: http://www.blogjava.net/yongboy/archive/2015/05/07/424917.html tcp是一个非常复杂并且古老的协议, 之前教科书上将的很多东西应用到实际的时候会发现很多问题, 比如tcp一定是可靠的连接, 深入了解之后发现这只能保证在一定程度上可靠, 本文整理了tcp协议的诸多不足, 希望每一个做架构的同学都抽时间深入理解tcp协议, 理解linux的tcp协议实现原理. TCP自从1974年被发明出来之后,历经30多年发展,目前成为最重要的…
一.TCP报文头部简介 ●源.目标端口号字段:占16比特.TCP协议通过使用"端口"来标识源端和目标端的应用进程.端口号可以使用0到65535之间的任何数字.在收到服务请求时,操作系统动态地为客户端的应用程序分配端口号.在服务器端,每种服务在"众所周知的端口"(Well-Know Port)为用户提供服务. ●顺序号字段:占32比特.用来标识从TCP源端向TCP目标端发送的数据字节流,它表示在这个报文段中的第一个数据字节. ●确认号字段:占32比特.只有ACK标志为…
1.TCP数据段格式 TCP是一种可靠的.面向连接的字节流服务.源主机在传送数据前需要先和目标主机建立连接.然后,在此连接上,被编号的数据段按序收发.同时,要求对每个数据段进行确认,保证了可靠性.如果在指定的时间内没有收到目标主机对所发数据段的确认,源主机将再次发送该数据段. 如图1所示,是TCP头部结构(RFC 793.1323). 图1 TCP头部结构 ●源.目标端口号字段:占16比特.TCP协议通过使用"端口"来标识源端和目标端的应用进程.端口号可以使用0到65535之间的任何数…
公司的同事们在分析网页加载慢的问题,忽然使用到了Wireshark工具,我就像发现新大陆一样好奇,赶紧看了看,顺便复习了一下相关协议.上学时学的忘的差不多了,汗颜啊! 报文封装整体结构 mac帧头定义 /*数据帧定义,头14个字节,尾4个字节*/ typedef struct _MAC_FRAME_HEADER { char m_cDstMacAddress[6]; //目的mac地址 char m_cSrcMacAddress[6]; //源mac地址 short m_cType; //上一层…