运输层概述
通信的真正实体是位于通信两端的主机中的进程
为通信两端主机提供直接服务的是运输层的任务
运输层端口号、复用与分用的概念
UDP和TCP对比
TCP的流量控制
如果发送方把数据发送的过快,接收方可能来不及接收,这就会造成数据丢失
流量控制就是不让发送方的发送速率太快,要让接收方来得及接收
利用滑动窗口机制在TCP连接上实现对发送方的流量控制
举例
练习
TCP拥塞控制
在某时间中,对网络智能某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏。
网络中链路容量(带宽)、交换结点中的缓存和处理机等,都是网络的资源
若出现拥塞而不进行控制,整个网络随输入负荷的增大而下降
拥塞控制算法
模拟过程
弊端
快重传
快恢复
图解
练习
TCP超时重传时间的选择
RTO计算
RTO是依照RTTs计算的,但RTT测量有可能出错
解决:报文段每重传一次,就把超时重传时间RTO增大一些。一般是将新RTO的值取为旧RTO值的2倍
TCP可靠传输的实现
基于以字节为单位的滑动窗口来传输
练习
TCP的运输连接管理——TCP的连接建立
解决以下三个问题
-
使TCP双方能够确知对方的存在
-
使TCP双方能够协商一些参数
-
使TCP双方能够对运输实体资源(缓存大小)等进行分配
如果采用两次握手就建立连接的话,出现问题
不多余,防止已失效的连接请求报文段突然又传送到TCP服务器,因而导致错误。
SYN=1的报文段不能携带数据,但要消耗掉一个序号
普通的确认报文段假如不能携带数据,则不消耗序号
TCP运输连接管理——TCP的连接释放
时间等待意义
TCP报文段的首部格式
序号
确认号:指出期望收到对方下一个TCP报文段的数据载荷的第一个字节的序号,同时也是对之前所收到的所有数据的确认
若确认号=n,则表明到序号n-1为止的所有数据都已正确接受,期望接受序号为n
确认标志位ACK:取值为1时确认号才有效,取值为0时确认字段无效。TCP规定,在连接建立后所有传送的TCP报文段必须把ACK置1.
数据偏移:占四个比特,以4字节为单位。用来指出TCP报文段的数据载荷部分的起始处距离TCP报文段的起始处有多远
这个字段实际指出了TCP报文段的首部长度
窗口:16比特,字节为单位。指出发送本报文段的一方的接收窗口。
窗口值作为接收方让发送方设置其发送窗口的依据
(发送窗口还取决于拥塞窗口的大小,两者取min)
这是以接收方的接受能力来控制发送方的发送能力,成为流量控制
校验和:检查范围包括TCP报文段的首部和数据载荷两部分
计算校验和时,要在TCP报文段的前面加上12字节的伪首部
同步标志位SYN:在TCP连接建立时用来同步序号
终止标志位FIN:用来释放TCP连接
复位标志位RST:用来复位TCP连接
推送标志位PSH:接收方的TCP收到该标志位为1的报文段会尽快上交应用进程,不比等到接受缓存都填满后再向上交付
标签:运输,报文,TCP,发送,序号,接收,连接 From: https://www.cnblogs.com/Dengpc/p/16928233.html