| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> TCP CheckSum 计算 -> 正文阅读 |
|
[网络协议]TCP CheckSum 计算 |
? TCP校验和覆盖TCP首部和TCP数据,还要加上一个12字节的伪首部。计算时先把TCP报头中的校验和字段置为0 计算方法 把伪首部、TCP报头、TCP数据分为16位的字,如果总长度为奇数个字节,则在最后增添一个位都为0的字节。累加所有的16位字。最后结果如果有进位,把高16位移到低16位和低16位进行相加,直到高16位都为0,最后,对计算结果取反,作为TCP的校验和。 上图计算示例: 伪首部 源目的ip地址? ? ? ? ?:? ? ?? a9fe? ?5205? ? a9fe? 5263? 0字段和tcp协议? ? ? :? ? ? 0006? ? tcp头和数据长度和:? ? ? ?002a? ? ? ?(tcp 头 20B ,数据 22B) a9fe? + 5205? +? a9fe? + 5263 + 0006 + 002a =?1f894 tcp 头需要把checksum字段置为0计算 dc2c + 2711 + 53dc + 167f + 0077 + cef9? + 5018 + 1000 + 0000 + 0000 = 29d20 数据计算 ?5468 + 6973 + 2069 + 7320 + 6120 + 5443 + 5020 + 6d65 + 7373 + 6167 + 6500 = 3fe26 计算总和 1f894 + 29d20 + 3fe26 = 893da 总和大于 FFFF 893da? -》? ?8 +? 93da = 93e2 按位取反 93e2? ? ?1001? 0011? 1110? 0010 6c1d? ? ? 0110? 1100? 0001? 1101 报文检验和? 0x6c1d , 和抓到的报文校验和一致。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:31:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |