TCP连接管理
client:连接的发起者
server:等待客户连接请求
采用的三次握手的机制
1客户之际向服务器发送一个SYN报文段,不携带任何数据,SYN标志位置1
2服务器收到SYN报文段,同意建立连接的话会答复一个SYNACK报文段,服务器分配缓存,选择初始序列号并告诉客户端,相应的ACK确认连接请求收到了
3客户端会再答复一个SYNACK报文段,你收到了我同意建立连接的报文段,这里头包含了数据。
TCP连接拆除
一般都是客户机来执行这个请求:
1客户机想服务器发送一个TCP FIN(标志位用来关闭的)控制Segment
2server回复一个ACK,关闭连接,发送一个FIN。
3client收到FIN,回复ACk,进入等待状态,会重新发送ACK
4server收到ACK的时候,连接关闭
拥塞控制原理
拥塞(Congestion)
非正式定义:太多的发送主机发送了太多数据或者发送速度过快,以至于网络无法处理
表现:分组丢失(路由器缓存溢出) 分组延迟过大(有四种原因,主要由于在路由器缓存中排队)
拥塞控制与传输有很大关系
拥塞控制和流量控制有区别
成因和代价
左边的图关于吞吐率,C/2时达到了最大的吞吐率(throughput)。
在这个理想的场景下,拥塞导致时延太大
有限buffer就会有可能重传了
情况a:有buffer就发,没了就不发了
情况b:没有a的那种能力了,丢失就会重发。吞吐率变低了,由于拥塞和丢失,造成了网络资源的浪费和吞吐率降低。因为要重传,网络资源是有限的,重传就会造成浪费。
情况c:相比b有更多的重传
场景3
红线与绿线会竞争在R2处,红线在R1处处理了存储转发。假设由于拥塞,分组被丢掉了,那么R1的处理也会被浪费掉。
所以在多跳网络中,拥塞的另一个代价就是当分组被drop掉时,任何用于该分组的“上游”传输能力全都被浪费掉了
意味瘫痪掉了,网络的所有资源都没用了。
怎么来进行拥塞的控制?
为什么要放在传输层来做这件事?
ATM ABR拥塞控制