首页 > 其他 > 详细

TCP & UDP

时间:2021-01-30 23:14:14      阅读:28      评论:0      收藏:0      [点我收藏+]
1.TCP和UDP的区别:
1)TCP是面向连接的,UDP是无连接的,即发送数据之前不需要建立连接
2)TCP提供可靠的服务,通过TCP连接传送的数据,无差错、不丢失、不重复且按序到达。UDP尽最大努力交付,即不保证可靠交付
3)TCP传输效率相对较低,UDP传输效率高,适用于对高速传输和实时性有较高的通信或广播通信
4)TCP连接只能是点对点、一对一的。UDP支持一对一、一对多、多对一、多对多的交互通信。
2.TCP的可靠 & 提高性能 机制:
1)确认应答机制:TCP将每个字节的数据都进行了编号,即为序列号,每一个ACK都带有对应的确认序列号,会告诉发送者,我已经收到了哪些数据,下一次从哪里开始发。
2)超时重传机制:分两种情况:(1)主机B在规定的时间内没有及时收到主机A发送的报文。(2)主机A未收到B发来的确认应答,会触发超时重传,即再次发送相同的包。
在Linux中,超时以500ms为一个单位进行控制,每次判定超时重发的超时时间都是500ms的整数倍,以指数形式递增,累计到一定的重传次数,TCP认为网络或者对端主机出现异常,强制关闭连接。
3)滑动窗口:因为一发一收的方式性能较低,那么一次发送多条数据,就可以提高性能。
窗口大小指的是无需等待确认应答而可以继续发送数据的最大值。例如窗口大小是4000个字节,则发送前四个段的时候,不需要等待任何ACK,直接发送。收到第一个ACK后,滑动窗口向后移动,继续发送第五个段的数据,以此类推(窗口越大,网络的吞吐率越高)。
4)流量控制:发送端可以根据接收端的处理能力,来决定发送端的发送速度。
5)拥塞控制:慢启动机制,先发少量的数据,探探路,摸清当前的网络拥堵状态,再决定按照多大的速度传输数据。拥塞窗口的增长速度是指数级别增长的,当到达阈值后,就会按照线性方式增长。
当TCP开始启动的时候,慢启动阈值等于窗口最大值。
在每次超时重发的时候,慢启动阈值会变成原来的一半,同时拥塞窗口置1.
6)延迟应答:如果接收数据的主机立刻返回ACK应答,这时候返回的窗口可能比较小。因此,可以等待接收端将接收到的数据处理之后再进行应答。这样网络吞吐量就越大,传输效率也越高。
延迟应答也有数量限制,一般每隔2个包就应答一次。
时间限制,一般超过200ms就应答一次。
7)捎带应答
3.TIME_WAIT为什么是2MSL?
MSL是TCP报文的最大生存时间,因此TIME_WAIT持续存在2MSL的话,就能保证在两个传输方向上的尚未被接收或迟到的报文段都消失,同时也在理论上保证最后一个报文可靠到达。
4.CLOSE_WAIT:一般而言,对于服务器上出现大量的CLOSE_WAIT状态,原因就是服务器没有正确的关闭,导致四次挥手没有正确完成。

TCP & UDP

原文:https://blog.51cto.com/14232274/2612802

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!