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

网站上线前要做哪些准备wordpress 文章列表插件

网站上线前要做哪些准备,wordpress 文章列表插件,餐厅装修,湛江做网站的公司TCP粘包、拆包、解决 粘包与拆包是什么? ​ TCP在接受数据的时候,有一个滑动窗口来控制接受数据的大小,这个滑动窗口你就可以理解为一个缓冲区的大小。缓冲区满了就会把数据发送。数据包的大小是不固定的,有时候比缓冲区大有时候…

TCP粘包、拆包、解决

粘包与拆包是什么?

​ TCP在接受数据的时候,有一个滑动窗口来控制接受数据的大小,这个滑动窗口你就可以理解为一个缓冲区的大小。缓冲区满了就会把数据发送。数据包的大小是不固定的,有时候比缓冲区大有时候小。
​ 如果一次请求发送的数据量比较小,没达到缓冲区大小,TCP则会将多个请求合并为同一个请求进行发送,这就形成了粘包问题;
​ 如果一次请求发送的数据量比较大,超过了缓冲区大小,TCP就会将其拆分为多次发送,这就是拆包,也就是将一个大的包拆分为多个小包进行发送。

粘包与拆包为什么发生?

1.TCP会发生粘包问题:TCP 是面向连接的传输协议,TCP 传输的数据是以流的形式,而流数据是没有明确的开始结尾边界,所以 TCP 也没办法判断哪一段流属于一个消息;TCP协议是流式协议;所谓流式协议,即协议的内容是像流水一样的字节流,内容与内容之间没有明确的分界标志,需要认为手动地去给这些协议划分边界。
粘包时:发送方每次写入数据 < 接收方套接字(Socket)缓冲区大小。
拆包时:发送方每次写入数据 > 接收方套接字(Socket)缓冲区大小。

2.UDP不会发生粘包问题:UDP具有保护消息边界,在每个UDP包中就有了消息头(UDP长度、源端口、目的端口、校验和)。

粘包拆包问题在数据链路层、网络层以及传输层都有可能发生。日常的网络应用开发大都在传输层进行,由于UDP有消息保护边界,不会发生粘包拆包问题,因此粘包拆包问题只发生在TCP协议中

解决方式和HTTP如何解决的

粘包的问题出现是因为不知道一个用户消息的边界在哪,如果知道了边界在哪,接收方就可以通过边界来划分出有效的用户消息。

一般有三种方式分包的方式:

  • 固定长度的消息;
  • 特殊字符作为边界;
  • 自定义消息结构。

固定长度的消息

这种是最简单方法,即每个用户消息都是固定长度的,比如规定一个消息的长度是64个字节,当接收方接满64个字节,就认为这个内容是一个完整且有效的消息。

但是这种方式灵活性不高,实际中很少用。

特殊字符作为边界

我们可以在两个用户消息之间插入一个特殊的字符串,这样接收方在接收数据时,读到了这个特殊字符,就把认为已经读完一个完整的消息。

HTTP是一个非常好的例子。

HTTP通过设置回车符、换行符作为HTTP报文协议的边界。

有一点要注意,这个作为边界点的特殊字符,如果刚好消息内容里有这个特殊字符,我们要对这个字符转义,避免被接收方当作消息的边界点而解析到无效的数据。

自定义消息结构

我们可以自定义一个消息结构,由包头和数据组成,其中包头包是固定大小的,而且包头里有一个字段来说明紧随其后的数据有多大。

比如这个消息结构体,首先4个字节大小的变量来表示数据长度,真正的数据则在后面。

struct {u_int32_t message_length;char message_data[];
} message;

当接收方接收到包头的大小(比如4个字节)后,就解析包头的内容,于是就可以知道数据的长度,接下来就继续读取数据,直到读满数据的长度,就可以组装成一个完整到用户消息来处理了。


文章转载自:

http://dUUqjyd3.rgtst.cn
http://tWRscDzD.rgtst.cn
http://qIUpfkGX.rgtst.cn
http://QPRvxpwa.rgtst.cn
http://UM301nEI.rgtst.cn
http://fXEqEmbA.rgtst.cn
http://FHnlPidn.rgtst.cn
http://CLKsCQJr.rgtst.cn
http://m0UjNn57.rgtst.cn
http://KhLCQjzz.rgtst.cn
http://OoQGCJZY.rgtst.cn
http://zfw6p1jD.rgtst.cn
http://SMqdR76B.rgtst.cn
http://WnhhtNoX.rgtst.cn
http://SbShhG51.rgtst.cn
http://Z25JAVnE.rgtst.cn
http://KEvS5hLP.rgtst.cn
http://5QHpNdr6.rgtst.cn
http://SztAt921.rgtst.cn
http://AwIlRywr.rgtst.cn
http://q0pjBS15.rgtst.cn
http://iMN6tX1e.rgtst.cn
http://JjogAFws.rgtst.cn
http://OWHVtjHT.rgtst.cn
http://6OYcrDHc.rgtst.cn
http://XlqIE79k.rgtst.cn
http://wBEl0MTK.rgtst.cn
http://hslEPRI9.rgtst.cn
http://dBtHvC7L.rgtst.cn
http://KZS0M8te.rgtst.cn
http://www.dtcms.com/wzjs/699717.html

相关文章:

  • 如何做网站seo韩小培网站开发形式
  • 权威网站设计宣传信息网网站规划书
  • 中小企业网站开发韵茵福建百益建设集团有限公司网站
  • 网页设计与网站建设过程洛谷网站中小玉文具怎么做
  • 织梦能不能做门户网站影响网站用户体验
  • 优客逸家网站源码免费网站在线制作
  • 用C语言做网站登录界面重庆市住房和城乡建设网站
  • 网站建设字体我的世界做mc壁纸的网站
  • 潭州教育网站开发南京网站设计开发
  • 都匀网站.asp 网站
  • 网站宽度 像素无锡网站建设详细内容
  • 网站引导页的作用网站建设前期开发
  • 贵州省城乡和建设厅网站首页淘宝网站的推广与优化
  • 烟台网站制作步骤个人电子邮件注册网站申请
  • 安徽网新科技有限公司网站开发百度下载安装到桌面
  • 济南建设工程备案网站崇左市城市投资建设有限公司网站
  • 建设网站的协议范本中国菲律宾签证免签吗
  • 临沂网站建设小程序怎么做网站端口代理
  • 专业网站设计专家四川企业网站模板步骤
  • 做家政网站上海公司注册地址可以是住宅吗
  • 海外建站流程做电影网站最牛的站长是谁
  • 招商网站建设优势国家免费技能培训
  • 上海协会网站建设无锡网站优化哪家快
  • 小红书推广群天津seo培训
  • html5商业网站开发北大青鸟企业网站制作的市场
  • 佛山做网站的公司wap网
  • 找人开发一个网站多少钱做网站哪种编程语言好
  • 运城住房和建设局网站wordpress有一个100的缩略图
  • 学校网站建设经验介绍网站开发教材
  • 深圳网站设计收费标准什么是网站建设公司