首页 > 编程知识 正文

三菱套接字和udp,HTTP怎么解决TCP粘包问题的

时间:2023-05-04 16:04:14 阅读:16079 作者:2854

TCP和UDP的区别1、TCP提供可靠的、面向连接的运输服务。 传输数据前必须握手3次建立连接,数据传输结束后,挥手4次释放连接,且数据传输时,有确认应答超时重传、滑动窗口(流量控制

UDP在发送数据之前为拥塞控制,在目标主机收到UDP消息之后为保证传送数据的可靠性。 UDP不提供可靠的分发,用于语音、视频、实时等即时消息。 无连接,面向消息。

2、TCP支持点对点通信,UDP支持一对一、一对多、多对一、多对多通信模式

3、TCP面向字节流,UDP面向消息

PS:TCP如何保证传输数据的可靠性?

答:通过“确认响应”、“超时重发”、“流量控制”、“拥塞控制”等级制保证传输数据的可靠性。

TCP分组TCP分组是在发送端发送的几个分组数据到达接收端时变成一个分组,从接收缓冲器来看,下一个分组数据的开头接在前一个分组数据的末尾。 原因可能是发送方或接收方。 http://www.Sina.com/:缺省情况下,TCP使用Nagle算法将间隔小、数据量少的数据多次聚合为单个数据量大的数据块并打包。不需要建立连接:TCP将接收到的分组存储在接收缓存中,而APP应用程序主动从缓存读取接收到的分组。 因此,如果TCP将包接收到缓存中的速度快于APP应用程序从缓存中读取包的速度,则多个包可能会被缓存,并且APP应用程序可能会读取成功粘在一起的多个包。 (不需要给出确认)

PS:Nagle算法:避免发送小数据包。 要求TCP连接只有一个未确认的小分组,并且在该分组确认完成之前不能发送另一个小分组。 将间隔小、数据量小的数据汇总多次,再汇总成一个数据量大的数据块进行分组。

发送方原因:1、发送端关闭Nagle算法。

2 ) APP应用层递归读取所有数据,并根据消息长度确定每个分组的起始位置和结束位置。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。