网络基础知识(TCP/UDP报文格式)四
1.TCP报文格式
源端口号: 占用16位
,报文来自哪个端口。
目的端口号: 占用16位
,报文要传输到哪个端口。
Seq序列号: 占用32位
,一次TCP通信(从TCP连接建立到断开)过程中某一个传输方向上的字节流的每个字节的编号。假设主机A和主机B进行TCP通信,A发送给B的第一个TCP报文段中,序号值被系统初始化为某个随机值ISN(Initial Sequence Number,初始序号值)。那么在该传输方向上(从A到B),后续的TCP报文段中序号值将被系统设置成ISN加上该报文段所携带数据的第一个字节在整个字节流中的偏移。例如,某个TCP报文段传送的数据是字节流中的第1025~2048字节,那么该报文段的序号值就是ISN+1025.另外一个传输方向(从B到A)的TCP报文段的序号值也具有相同的含义。
Ack确认序列号: 占用32位
,用作对另一方发送来的TCP报文段的响应。其值是收到的TCP报文段的序号值加1。假设主机A和主机B进行TCP通信,那么A发送出的TCP报文段不仅携带自己的序号,而且包含对B发送来的TCP报文段的确认号。反之,B发送出的TCP报文段也同时携带自己的序号和对A发送来的报文段的确认号。
头长度: 占用4位
,标识该TCP头部有多少个字节。因为4位最大能标识15,所以TCP头部最长是60字节。
保留位: 占用6位
,很少使用,一般为0。
控制位: URG ACK PSH RST SYN FIN,共6个,每一个标志位表示一个控制功能;
标志位(占用1位) | 功能 |
---|---|
URG | 紧急指针标志,为1时表示紧急指针有效,为0则忽略紧急指针。 |
ACK | 确认序号标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。 |
PSH | push标志,为1表示是带有push标志的数据,指示接收方在接收到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队。 |
RST | 重置连接标志,用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请求。 |
SYN | 同步序号,用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN=1和ACK=1。 |
FIN | finish标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。 |
窗口: 占用16位
,滑动窗口大小,用来告知发送端接受端的缓存大小,以此控制发送端发送数据的速率,从而达到流量控制。窗口大小时一个16bit字段,因而窗口大小最大为65535。
校验和: 占用16位
,奇偶校验,此校验和是对整个的 TCP 报文段,包括 TCP 头部和 TCP 数据,以 16 位字进行计算所得。由发送端计算和存储,并由接收端进行验证。
紧急指针: 占用16位
,只有当 URG 标志置 1 时紧急指针才有效。紧急指针是一个正的偏移量,和顺序号字段中的值相加表示紧急数据最后一个字节的序号。 TCP 的紧急方式是发送端向另一端发送紧急数据的一种方式。
选项和填充: 最常见的可选字段是最长报文大小,又称为MSS(Maximum Segment Size),每个连接方通常都在通信的第一个报文段(为建立连接而设置SYN标志为1的那个段)中指明这个选项,它表示本端所能接受的最大报文段的长度。选项长度不一定是32位的整数倍,所以要加填充位,即在这个字段中加入额外的零,以保证TCP头是32的整数倍。
数据部分: TCP 报文段中的数据部分是可选的。在一个连接建立和一个连接终止时,双方交换的报文段仅有 TCP 首部。如果一方没有数据要发送,也使用没有任何数据的首部来确认收到的数据。在处理超时的许多情况中,也会发送不带任何数据的报文段。
2.UDP报文格式
源端口号: 占用16位
,报文来自哪个端口。
目的端口号: 占用16位
,报文要传输到哪个端口。
UDP长度: 占用16位
,UDP报文的字节长度(包括首部和数据)。
校验和: 占用16位
,检验UDP首部和数据部分的正确性。
网络基础知识(TCP/UDP报文格式)四相关推荐
- 网络基础知识 TCP UDP IP
文章目录 一.简介TCP/IP协议 二.传输层 2.1 UDP 2.2 TCP 三.小结 一.简介TCP/IP协议 1.简介 TCP/IP是一组协议的代名词,它包括了许多承载在IP或者TCP之间或之上 ...
- TCP/UDP报文格式及各种通信机制简介
TCP/UDP报文格式及各种通信机制简介 一.UDP报文 二.TCP报文 三.TCP通信机制 1,确认应答机制 2,超时重传机制 3,滑动窗口及快重传机制 4,流量控制 5,拥塞控制及慢启动机制 6, ...
- TCP/UDP报文格式
TCP/UDP报文格式 TCP 协议为终端设备提供了面向连接的.可靠的网络服务,UDP 协议为终端设备提供了无连接的.不可靠的数据报服务.从上图我们可以看出,TCP 协议为了保证数据传输的可靠性,相对 ...
- TCP/IP:TCP/UDP报文格式
目录 TCP报文格式 UDP报文格式 TCP报文格式 报文格式 图1 TCP首部格式 字段 长度 含义 Source Port 16比特 源端口,标识哪个应用程序发送. Destination Por ...
- 网络基础知识-TCP/IP协议各层详解
TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...
- 没有到主机的路由_网络基础知识:UDP协议之路由跟踪
一次性付费进群,长期免费索取教程,没有付费教程. 进微信群回复公众号:微信群:QQ群:460500587 教程列表 见微信公众号底部菜单 | 本文底部有推荐书籍 微信公众号:计算机与网络安全 I ...
- 网络编程培训之一 编程实现IP/TCP/UDP报文
系列博客参考:http://blog.csdn.net/zy416548283/article/category/1108400 代码以编号对应放在Github上:https://github.com ...
- 带你一文看懂--应用层、传输层的协议,HTTP协议及实现,UDP和TCP的报文格式以及为什么3次握手和4次挥手
网络基础:TCP/IP四层模型中的典型协议--理解网络通信的流程原理 应用层协议:负责应用程序之间的数据沟通 网络版计算器:客户端向服务端传递两个数字以及一个运算符,服务端收到数据进行解析得到数字与运 ...
- 网络基础知识 | 协议 | TCP/IP分层模型
目录 网络基础知识 网络互联 互联网基础知识 网络的构成要素 网卡 中继器 网桥/2层交换机 路由器/3层交换机 4-7层交换机 网关 协议 分组交换协议 谁来规定协议 协议的标准化 协议的分层 分层 ...
最新文章
- web签名验证程序【跨服务器、中文字符签名方法】-php为例
- java的collection集合
- 微信小程序验证车牌号(含新能源车牌)
- Java面向对象(3.1)--方法的重载,可变个数的形参,值传递机制,递归
- xodo上的笔记不见了_一起来“终极笔记名场面批发市场”进货吗
- HDU-2067-小兔的棋盘
- 院士大咖齐聚苏州,共话AI未来,30个优秀个人和企业、产品受到表彰
- python如何连接sql server数据库_Python连接SQLServer数据库
- 数据库之“on”“where”区别
- 火车头伪原创接口【基于ai伪原创】
- 逻辑分析题目:“给你一个9升的水桶和一个4升的水桶,在河里取6升水”
- Android CPU架构之ARM和X86
- (后台)Openbravo如何实现业务事件监听处理
- 我叫mt4公会攻城战服务器维护中,公会攻城战也要讲战术《我叫MT4》攻城战策略解析...
- 【day22】java导出word文档(包含导出图片)
- oracle闪回ddl,Oracle闪回详解
- flash插件替换方案-把uploadfy替换为uploadfive
- 「UbuntuROS」Ubuntu系统下几个必不可少的设置和软件|1-4
- vim /etc/hostname1输入命令后进入到以下界面。
- 在C4D和Keyshot中保存产品模型到预设库多次重复使用