概述
第三部分——传输层层协议
TCP协议:
TCP的连接状态之在端系统存在,在网络链路上和交换机上是不知道的,因为链路上和交换机上没有到传输层的处理能力
TCP是点对点连接的,一个连接只有两个端系统
为了避免频繁发送TCP报文,TCP设有缓存,每次取出缓存发送,取出的缓存大小受限于MSS(最大报文段长度)
TCP报文结构
源端口号 | 目标端口号 | |||||||
序号 | ||||||||
确认号 | ||||||||
首部长度(单位:4字节) | 保留 | URG | ACK | PSH | RST | SYN | FIN | 接收窗口 |
互联网校验和 | 紧急数据指针 | |||||||
选项 | ||||||||
应用层数据 | ||||||||
一行为32比特,第一行和第五行是等分的(各16比特)第四行接收窗口占16比特,黄色表示TCP首部,灰色表示TCP真实数据部分
TCP报文结构解释:
- 源端口号、目标端口号:用于多路分解
- 序号:为了TCP可靠传输而设计的,用于标识一个TCP报文,表示本TCP是从哪一个字节开始传输的
- 确认号:本意为确认己方已接受的字节数(在此序号之前的字节己方已经全部接受),在规律上,A对B发送的报文的确认号总是等于下一次B对A发送的序号。
- 首部长度:4比特,单位是4字节,也就是最多可以表示最多((2^4)-1)*4=60个字节的首部。
之所以要有首部长度,是因为TCP的首部长度是不固定的,有可选的选项字段可以加入,一般情况下可选选项为空,这时TCP首部长度是20个字节同时可以看出,因为首部长度单位是4字节,选项只能加入4字节的倍数,如果不够4字节则填充满。
- 保留:现在没有用到的位,有6比特
- URG标识:1比特,紧急指针,置1表示当前TCP报文要尽快传输,无需按照序列发送,需要配合后面2个字节的紧急数据指针使用
- ACK标识:1比特,确认标识,置1表明发送的是一条ACK确认报文,这时确认号才有意义
- PSH标识:1比特,PUSH标识,置1表示本次TCP报文要尽快推送到上层应用层,无需等待接收缓存
- RST标识:1比特,用于重启连接,置1表示要断开重新建立TCP连接
- SYN标识:1比特,用于建立连接,置1表示当前TCP报文是建立连接的报文,TCP三次握手的前两次报文中SYN都是1
- FIN标识:1比特,用于拆除连接,置1表示发送方要断开TCP连接,TCP四次挥手中,每一方的挥手过程(两方都要挥手)的第一个TCP报文FIN为1
- 接收窗口:用于协调发送方和接收方的发送速率,防止接收缓存溢出,本字段可以告知接收方发送方还可以接受多少报文(字节计算)
- 互联网校验和:同UDP的校验和,计算时需要计算整个TCP报文(首部+数据)的长度,16比特,相加回卷
最后
以上就是飞快向日葵为你收集整理的[计算机网络笔记]第三部分——传输层之TCP 报文结构 第三部分——传输层层协议的全部内容,希望文章能够帮你解决[计算机网络笔记]第三部分——传输层之TCP 报文结构 第三部分——传输层层协议所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复