tcp/udp校验和以及伪首部介绍
来源:互联网 发布:数据结构python版 编辑:程序博客网 时间:2024/06/08 10:09
TCP的检验和
原文地址:http://www.cnblogs.com/zxiner/p/7203192.html
检验和目的
目的是为了发现TCP首部和数据在发送端到接收端之间发生的任何改动。如果接收方检测到检验和有差错,则TCP段会被直接丢弃。
TCP在计算检验和时,要加上一个12字节的伪首部。伪首部顾名思义就是假的首部,既不往上传也不往下传,只是用于校验TCP/UDP报文段。
伪首部
伪首部共有12字节,包含IP首部的一些字段,有如下信息:32位源IP地址、32位目的IP地址、8位保留字节(置0)、8位传输层协议号(TCP是6,UDP是17)、16位报文长度(首部+数据)。
伪首部是为了增加校验和的检错能力:通过伪首部的目的IP地址来检查TCP报文是否收错了、通过伪首部的传输层协议号来检查传输层协议是否选对了。
检验和计算过程(以TCP校验为例)
TCP首部校验和计算三部分:TCP首部+TCP数据+TCP伪首部。
接收端:
同样利用反码求和,高位叠加到低位, 如计算结果的16位中每一位都为1,则正确,否则说明发生错误。
UDP检验和
基本过程和TCP检验和相同,不同的是UDP的伪首部中8位传输层协议号是17而TCP是6。
IP检验和
IP首部中的检验和只覆盖IP的首部,不覆盖IP数据报中的任何数据
三者检验和的异同
TCP和UDP检验和是一个端到端的检验和,由发送端计算,然后由接收端验证。
TCP和UDP检验和覆盖首部和数据,而IP首部中的检验和只覆盖IP的首部,不覆盖IP数据报中的任何数据。
TCP的检验和是必需的,而UDP的检验和是可选的。
TCP和UDP计算检验和时,都要加上一个12字节的伪首部。
(全文完)
- tcp/udp校验和以及伪首部介绍
- TCP/UDP 伪首部
- UDP和TCP中的伪首部
- TCP&UDP伪首部详解
- TCP&UDP伪首部详解
- TCP,UDP伪首部描述
- 【转载】TCP&UDP伪首部详解
- UDP伪首部
- IP首部、TCP首部、UDP首部
- UDP伪首部的作用
- 计算机网络学习--tcp伪首部
- TCP校验值的伪头以及校验值计算
- TCP首部选项介绍
- IP、TCP、UDP首部详解
- IP、TCP、UDP首部详解
- IP、TCP、UDP首部详解
- tcp/ip primer plus 第九章用户数据报协议(UDP)& 伪首部
- icmp,tcp,udp,ip校验和
- html5表单验证2
- expect命令使用
- 利用无名管道实现简单并行计算
- JavaScript-----JS---JavaScript的介绍
- C语言小项目-注释转换
- tcp/udp校验和以及伪首部介绍
- BP神经网络初步应用(数据预处理)基于matlab
- hive数据倾斜优化
- 网易2018秋招编程题
- C,C++ 的发展和标准化进程
- Web安全与防御视频教程分享
- 2017 ACM/ICPC Asia Regional Shenyang Online E题
- 八月组队总结
- 创建Pydve项目报 Django not found