计算机网络-运输层
Posted 唯夜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络-运输层相关的知识,希望对你有一定的参考价值。
UDP
2018年11月28日
11:21
特点:
- 无连接
- 尽最大可能交付
- 无拥塞控制
- 面向数据报
- 支持一对一、一对多、多对一、多对多通信
- 首部开销小
TCP
2018年11月28日
11:21
特点:
- 面向连接
- 每一条TCP链路只能是点对点通信
- 可靠传输
- 全双工通信
- 面向字节流
连续发送协议
连续发送协议是发送数据后等待接收方确认后再继续发送,这种方法可以保证数据发送的顺序,以及保证数据可靠交付,但是这种方式发送数据信道利用率不高,必须采取一种更加高效的方式发送数据。
滑动窗口
滑动窗口是一段可以连续发送的字节指针。
- 滑动窗口方式再结合连续发送可在不等待对方确认之前继续发送数据,只要发送窗口不为0便可继续发送数据。
- 滑动窗口分为发送窗口和接收窗口,发送窗口不得大于接收窗口。
- TCP为了解决网络中拥塞情况加入了拥塞窗口,用来限制发送窗口大小。
- 发送窗口大小取接收窗口和拥塞窗口的最小值,即取瓶颈值。
流量控制
利用滑动窗口来实现流量控制。当接收方无法及时接收数据时收缩接收窗口大小并反馈给发送方,发送方收到接收窗口大小后调整发送窗口大小即可实现对发送窗口的动态调节。
流量控制本质是让发送方发送速率不要太快,要让接收方来得及接收。
拥塞控制
拥塞控制就是防止过多的数据包注入网络中,这样可以使网络中的路由器或链路不至于过载。
拥塞控制方法
2018年11月28日
15:15
-
- 慢开始
思路:刚开始发送数据时并不知道网络状况,需要先发送少量数据探测网络性能。探测后网络通常即可逐渐增大发送窗口,即逐渐增大拥塞窗口。
慢开始的增大规律,当每收到一次确认后便增大一个SMSS字节发送窗口大小;发送一个数据报收到确认后发送窗口变为2*SMSS,第二次发送两个SMSS,收到确认后发送窗口变为4*SMSS。可以看出慢开始是呈指数形式的增长。
当然也不是无限制的增长,需要给慢开始设置一个最大值的阈值,当到达阈值时就不再使用慢开始算法,转而使用拥塞避免算法。
-
- 拥塞避免
当拥塞窗口到达慢开始设置的最大阈值时,便开始使用拥塞避免算法。
思路:拥塞避免算法是每收到一次接收方确认时发送窗口增大一个SMSS字节大小,让发送窗口缓慢增长。
可以看出拥塞避免算法的增长规律是线性增长,没有慢开始的指数增长那么快。
-
- 快重传
当报文丢失的情况下,接收方需要快速再次向发送方发送丢失报文的前一个报文的确认消息,提前告诉发送发报文丢失。TCP中规定连续收到三个报文确认消息即为报文丢失,但是其他报文都正常接收,这种情况下网络可能并没有拥塞,不需要使用慢开始算法。这时使用快重传算法减少不必要的损耗。
-
- 快恢复
TCP运输连接管理
2018年11月28日
15:46
三次握手
- 客户端发送建立连接请求
- 服务端向客户端确认可以建立连接
- 客户端确认建立连接
为什么是三次?
首先要确认对方的存在,两次握手即可;当时当出现异常情况时,比如客户端发送建立连接请求报文饶了远路,客户端超时重新发送建立连接请求,第二次发送建立连接的请求成功后并释放了连接,这时候第一次请求建立连接的数据报又成功到达服务器,这时候服务器会误以为客户端要建立连接从而分配资源等待建立连接,但实际情况是客户端并没有发送请求,这时候就造成了服务端资源的浪费。所以需要第三次客户端再次确认建立连接才能算是成功建立连接。
以上超时报文被服务端接收后会发送确认建立连接请求,客户端再收到该报文后发现自己并没有发起建立连接的请求故抛弃该报文,服务器再等到建立连接超时后自动释放资源。
四次挥手
- 客户端发送准备断开连接请求
- 服务端确认通知应用程序准备断开连接,并向客户端发可断开确认
- 服务端发送完数据后,发送关闭连接消息
- 客户端确认断开连接
为什么是四次挥手?
客户端发送完数据后需要先通知服务器可以关闭连接,这时候服务器可能还有数据没发送完成,这时候不能关闭连接,需要等待服务器继续发送数据,当服务器发送完成后即可关闭连接,这时候服务器向客户端发送确认关闭连接消息,这时候还不能关闭连接,服务端需要等待来自客户端的确认,要保证客户端正常关闭连接。客户端再确认后并没有马上关闭连接,而是等待2MSL时间才关闭,客户端发送的确认关闭消息服务端可能并没有收到,等待一个超时时间后服务端未收到来自客户端的确认消息便重发确认关闭消息,客户端再发送确认关闭消息,直到服务器正确收到关闭连接消息为止。
TCP有限状态机
2018年11月28日
16:08
以上是关于计算机网络-运输层的主要内容,如果未能解决你的问题,请参考以下文章