运输层
??1~3. 传输层概述、端口号、UDP与TCP的比较:【计算机网络】【湖科大MOOC】传输层概述 端口号用法 复用与分用 UDP与TCP的对比
??4.1~4.4 TCP流量控制、拥塞控制、可靠传输:【计算机网络】【湖科大MOOC】传输控制协议TCP 流量控制 拥塞控制算法 超时重传时间RTO 可靠传输的实现
4. 传输控制协议 TCP
4.5 TCP 的运输连接管理
4.5.1 介绍
- TCP是面向连接的协议,它基于 运输连接 来传送TCP报文段;
- TCP运输连接的建立和释放 是每一次面向连接的通信中必不可少的过程。
- 三个阶段:建立TCP连接 --> 数据传送 --> 释放TCP连接。
4.5.2 TCP 的连接建立 —— 三报文握手
? ? ?TCP确认报文是否有必要?有必要!两报文握手 会有如下问题产生。
??? ?对TCP连接请求确认的确认报文段 是为了防止已失效的连接请求报文段突然传送到服务器,因而导致错误。
4.5.3 TCP 的连接释放 —— 四报文挥手
?? ?TCP客户进程在发送完最后一个确认报文段后要等待2MSL才进入关闭状态,有必要吗?有!
?? ?TCP进入时间等待状态并等待2MSL,可以确保TCP服务器进程可以收到最后一个TCP确认报文段而进入关闭状态。
- TCP服务器如何发现TCP客户端出现了故障?保活计时器
4.6 TCP 报文段的首部格式
4.6.1 前情提要
??
4.6.2 TCP报文段的首部格式
??
-
固定首部 20字节 ——
-
源端口:16比特,用来标识发送该TCP报文段的应用进程; -
目的端口:16比特,用来标识接受该TCP报文段的应用进程; 序号、确认号和确认标志位ACK 共同用于TCP报文段的传输: -
序号:32比特,序号增加到最后一个后又回到0,指出数据载荷部分的第一个字节的序号; -
确认号:32比特,增加到最后一个后又回到0,指出期望收到对方下一个TCP报文段的数据载荷的第一个字节的序号,同时也是对之前收到的所有数据的确认; -
确认标志位 ACK:取值为1时确认号才有效; -
数据偏移:4比特,以4字节为单位,指出TCP报文段的数据载荷部分的起始处距离TCP报文段的起始处多远; -
保留:6比特,为今后使用,目前置为0; -
窗口:16比特,以字节为单位,指出发送报文的一方的接收窗口; 其他标志位:
- 同步标志位 SYN:在TCP连接建立时用来同步序号,TCP连接请求、确认报文;
- 终止标志位 FIN:用来释放TCP连接,TCP连接释放报文;
- 复位标志位RST:取值为1时表明TCP连接异常,需释放连接后再重新建立连接;
- 推送标志位 PSH:接收方收到PSH=1的报文段会尽快上交应用进程,而不必等到缓存满;
紧急标志位URG和紧急指针 用来实现紧急操作:
-
扩展首部 1~40字节 ——
B站视频链接:https://www.bilibili.com/video/BV1c4411d7jb?p=1
|