python网络编程之——tcp粘包&udp丢包

一、tcp粘包问题产生的原因:
发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据块,然后进行封包。这样,接收端,就难于分辨出来了,必须提供科学的拆包机制。

二、两种情况下会发生粘包
1.发送端需要等缓冲区满才发送出去,造成粘包(发送数据时间间隔很短,数据了很小,会合到一起,产生粘包)
2.接收方不及时接收缓冲区的包,造成多个包接收(客户端发送了一段数据,服务端只收了一小部分,服务端下次再收的时候还是从缓冲区拿上次遗留的数据,产生粘包)

三、解决粘包问题的办法

四、tcp和udp的区别

tcp有连接,udp没有连接,tcp传数据可靠,比udp传输效率慢,udp传数据不可靠,但是效率比tcp高
tcp粘包,udp丢包

猜你喜欢

转载自blog.csdn.net/weixin_40432363/article/details/83961143