当前位置: 首页 > news >正文

网站嵌入视频代码上传设计作品集的网站

网站嵌入视频代码,上传设计作品集的网站,汕头最新新闻消息,公众号 微网站开发TCP粘包问题 TCP粘包问题造成TCP粘包的原因发送方原因接收方原因 如何处理TCP粘包发送方接收方应用层 为什么UDP没有粘包问题 TCP粘包问题 TCP粘包就是指发送方发送的若干包数据到达接收方时粘成了一包,从接收缓冲区来看,后一包数据的头紧接着前一包数据…

TCP粘包问题

  • TCP粘包问题
  • 造成TCP粘包的原因
    • 发送方原因
    • 接收方原因
  • 如何处理TCP粘包
    • 发送方
    • 接收方
    • 应用层
  • 为什么UDP没有粘包问题

TCP粘包问题

TCP粘包就是指发送方发送的若干包数据到达接收方时粘成了一包,从接收缓冲区来看,后一包数据的头紧接着前一包数据的尾。

造成TCP粘包的原因

TCP粘包现象的根本原因是TCP采用了面向字节流的传输,面向字节流的传输不认为消息是一条一条的,它是无保护消息边界的

具体来说,出现粘包的原因是多方面的,可能是来自发送方,也可能是来自接收方。

发送方原因

发送端为了将多个发往接收端的包,更加高效的发给接收端,于是采用了优化算法(Nagle算法),将多次间隔较小、数据量较小的数据,合并成一个数据量大的数据块,然后进行封包。

TCP默认使用Nagle算法(主要作用:减少网络中报文段的数量),而Nagle算法主要做两件事:

  • 只有上一个分组得到确认,才会发送下一个分组
  • 收集多个小分组,在一个确认到来时一起发送

Nagle算法造成了发送方可能会出现粘包问题。

接收方原因

TCP接收到数据包时,并不会马上交到应用层进行处理,或者说应用层并不会立即处理。实际上,TCP将接收到的数据包保存在接收缓存里,然后应用程序主动从缓存读取收到的分组。这样一来,如果TCP接收数据包到缓存的速度大于应用程序从缓存中读取数据包的速度,多个包就会被缓存,应用程序就有可能读取到多个首尾相接粘到一起的包。

如何处理TCP粘包

如果发送方发送的多组数据本来就是同一块数据的不同部分,比如说一个文件被分成多个部分发送,这时当然不需要处理粘包现象。如果多个分组毫不相干,甚至是并列关系,那么这个时候就一定要处理粘包现象了

发送方

对于发送方造成的粘包问题,可以通过关闭Nagle算法来解决,使用TCP_NODELAY选项来关闭算法。

接收方

接收方没有办法来处理粘包现象,只能将问题交给应用层来处理。

应用层

应用层的解决办法简单可行,不仅能解决接收方的粘包问题,还可以解决发送方的粘包问题。

解决办法:循环处理,应用程序从接收缓存中读取分组时,读完一条数据,就应该循环读取下一条数据,直到所有数据都被处理完成,但是如何判断每条数据的长度呢?

  • 格式化数据:每条数据有固定的格式(开始符,结束符),这种方法简单易行,但是选择开始符和结束符时一定要确保每条数据的内部不包含开始符和结束符。
  • 发送长度:发送每条数据时,将数据的长度一并发送,例如规定数据的前4位是数据的长度,应用层在处理时可以根据长度来判断每个分组的开始和结束位置。

为什么UDP没有粘包问题

TCP为了保证可靠传输并减少额外的开销(每次发包都要验证),采用了基于流的传输,基于流的传输不认为消息是一条一条的,是无保护消息边界的(保护消息边界:指传输协议把数据当做一条独立的消息在网上传输,接收端一次只能接受一条独立的消息)。

UDP则是面向消息传输的,是有保护消息边界的,接收方一次只接受一条独立的信息,所以不存在粘包问题。

举个例子:有三个数据包,大小分别为2k、4k、6k,如果采用UDP发送的话,不管接受方的接收缓存有多大,我们必须要进行至少三次以上的发送才能把数据包发送完,但是使用TCP协议发送的话,我们只需要接受方的接收缓存有12k的大小,就可以一次把这3个数据包全部发送完毕。

http://www.yayakq.cn/news/801765/

相关文章:

  • 官方网站怎么制作wordpress 页面403
  • 网站开发属于软件吗iis添加网站主机名
  • 百度网站建设如何安阳公司做网站
  • 天津体验网站阜南县建设局网站
  • 馆陶企业做网站推广做神马网站
  • 建个网站的流程芜湖企业
  • 企业网站价格花手机网站建设项目
  • 建立网站第一步是建立什么杂志 wordpress
  • 广州艾迪网站建设佛山网站建设玲念建站
  • 织梦网站模板如何安装wordpress文章html
  • 盐城整站优化wordpress菜单设计
  • 玄武模板网站制作品牌建站软件
  • wordpress ftp 更新房门户网站如何做优化
  • 北京城建设计集团网站厦门市网站建设公司
  • 免费建站网站 百度一下石家庄网站建设哪家好
  • 专门查企业信息的网站网站如何做入支付接口
  • 万州电商网站建设wordpress 禁用更新
  • 网站建设 广告推广电子商务网站建设课程设计思路
  • 网站建设实习报告范文阳江兼职招聘网最新招聘
  • 单位网站建设的意义东莞宽带哪个好
  • 网站的建设主机费用wordpress应用展示
  • 新浪云sae免费wordpress网站做视频网站需要什么服务器配置
  • 网站修改建设怎样做网站关键词
  • 建设局网站查勘表是什么wordpress手机端m.
  • 图书馆网站开发策划书wordpress分类目录只显示标题
  • 网站建设明细报价表 服务器佛山乐居装饰公司
  • qq发网站链接怎么做做网站能挣钱
  • google网站提交辽宁建设工程信息网登录入口
  • 苏州seo网站优化软件wordpress 轮廓
  • 怎么设计公司的网站用dw制作影视网站怎样做