系列文章目录
第五章计算机网络之传输层6
计算机网络之传输层
- 系列文章目录
- 一、 面向连接传输协议-TCP
- 二、 TCP可靠数据传输
- 三、TCP发送方事件
- 四、 TCP接收方
- 五、TCP流量控制
- 六、TCP连接管理(三次握手)
- 七、TCP连接管理(三次握手)
- 八、拥塞控制
- 九、 ATM ABR拥塞控制案例(辅助的方法)
- 十、TCP拥塞控制
- 十一、 传输层总结
一、 面向连接传输协议-TCP
TCP概述
TCP概述:RFCs-793,1122,1323,2018,2581
TCP段结构
传输层处理的基本对象是段segments
sequence number 序列号 ack的序列号不是段的编码,而是利用数据的字节数来计算
U:紧急数据一般不使用 A:标志位,来指示是否有效的ACK P:利用该标志位立刻把数据推上层,一般不用
RSF:连接的建立和拆除的标志位
Receive window:接受窗口的大小,所能接受字节的数目,流量控制的
checksum:Internet校验和
TCP:序列号和ACK
1K个字节的数据拆成2个segment时,第二个segment不是2也不是1(第一个序列号为1第二个为2,第一个为0,第二个为1)
而是500或501
所以是字节的编好而不是segment的个数。
42是建立连接随机选择的,43之前所有字节都正确接收到。
telnet远程登录应用,使用的为TCP协议
远程登录到telnet上的一台主机上,你这边发送一个字符,那边收到后会回传。
二、 TCP可靠数据传输
TCP可靠数据传输概述(不考虑拥塞控制和流量控制和重复ACK)
TCP RTT和超时
估计的RTT是EstimatedRTT
DEVRTT是描述EstimatedRTT变化范围(大还是小)
三、TCP发送方事件
TCP发送端的程序
TCP重传示列
由于TCP是累积确认机制,所以会发ACK120而不是ACK100
TCP是累积确认机制
四、 TCP接收方
TCP ACK生成:RFC1122,RFC2581
cumulative ACK 累计确认ACK,确认两个段。
duplicate ACK重复ACK,指示你希望的ACK
TCP快速重传机制
TCP快速重传算法
五、TCP流量控制
左边,IP层(网络层)传输进来RevBuff,然后交给上层,应用进程处理。
蓝色区域表示可以接受数据的Buff
如果Rcvwindow=0,发送方被告知不能发送了,即便以后接收方处理完后,发送方也无法知道该信息了,即无法发送。(断开连接了)
所以,TCP机制中即使Rcvwindow=0,发送方依旧可以发送很小的段,因为进程也在处理中。
六、TCP连接管理(三次握手)
SYN报文段不携带任何数据,SYN携带SYN位-置为1,表示建立一个连接,传递客户机选择的初始序列号
服务器分配缓存,选择自己的初始的列号并且告知客户端,同时告诉客户机连接请求已经收到
客户机收到SYNACK后回复ACK报文段,这个时候SYN位-不置为1了,这步告诉服务器,我收到你同意我建立连接的报文段,该报文段可以包含数据
为什么要3次握手,2次行不行?
TCP连接管理:建立
在三次握手的第2次时候,服务器会建立缓存,如果第三次没有握手,服务器资源会保留一段时间,直到等它确认该连接不会建立了,收不到ACK,资源才会释放。
如果成千上万台电脑同时接入,然后第二次握手,客户端不发送ACK,服务器会怎么样?
TCP连接管理:关闭
客户机和服务器都可以发送关闭请求,多数是客户端发送。
等待阶段是为了确保服务器那端已经正确关闭,释放资源。
TCP客户端服务器的生命周期
七、TCP连接管理(三次握手)
建立过程3次
SYN报文段不携带任何数据,SYN携带SYN位-置为1,表示建立一个连接,传递客户机选择的初始序列号
服务器分配缓存,选择自己的初始的列号并且告知客户端,同时告诉客户机连接请求已经收到
客户机收到SYNACK后回复ACK报文段,这个时候SYN位-不置为1了,这步告诉服务器,我收到你同意我建立连接的报文段,该报文段可以包含数据
为什么要3次握手,2次行不行?
TCP连接管理:建立
在三次握手的第2次时候,服务器会建立缓存,如果第三次没有握手,服务器资源会保留一段时间,直到等它确认该连接不会建立了,收不到ACK,资源才会释放。
如果成千上万台电脑同时接入,然后第二次握手,客户端不发送ACK,服务器会怎么样?
TCP连接管理:关闭
客户机和服务器都可以发送关闭请求,多数是客户端发送。
等待阶段是为了确保服务器那端已经正确关闭,释放资源。
TCP客户端服务器的生命周期
八、拥塞控制
可靠数据传输解决的是个体(主机)分组丢失问题
拥塞控制解决的是群体(主机)分组丢失问题
流量控制是发送方不要发送过快以至于接收方接受不了
拥塞控制是以至于网络处理不了
拥塞的成因和代价
in定义的是主机AB的发送速率
out定义主机cd的接受速率
C表示的该链路的带宽速率
路由器有无限缓存-不会存在丢包-A和B没有重传机制
代价:delay(时延)大
场景一
场景二
带宽为R
情况a,不可能大于2/R,因为路由器buff有限。
场景3
A给C传输数据,当传到R2时候,R2的数据丢失了,之前路由器传输的数据就浪费掉了
网络瘫痪,网络所有资源浪费掉了。
拥塞的解决办法2种
网络层不提供服务(服务),端系统(host)负责
端系统控制自己的发送速率
九、 ATM ABR拥塞控制案例(辅助的方法)
ATM提供ABR服务
underloaded低负载
ATM网络中data cell 和 RM cell ,RM cell 穿插在 data cell 中,A发给B,中间经过的路由器,都会改变RM cell,接收方把RM cell 返回给发送方就知道该路径的路由器情况如何(接收方返回给发送方)
也有中间网络设备路由器可以直接给发送方提供拥塞情况
除了RM cell还有data cell
十、TCP拥塞控制
TCP拥塞控制基本原理
加性增-乘性减:AIMD
线性加,乘性减(减半)
这样可以快速把网络降下来,从而避免网络的更拥塞
慢启动:SS
刚连接时候,发送速率远远低于带宽,如果线性增长,就浪费带宽资源了,所以希望一开始快速增长。
慢启动与加性增-乘性减的切换(Threshold变量)
黑色代表慢启动与加性增-乘性减的切换
蓝色是早期的体系,也造成了资源的浪费(太保守)
Loss事件的处理
TCP拥塞控制总结
TCP拥塞控制算法
TCP性能分析
未来TCP
TCP公平性
TCP是公平的
粗红线是限制了带宽为R,所以要在粗红线所围区域内
当TCP和UDP共存时候,公平性