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

网站上线前要做哪些准备wordpress 发布插件

网站上线前要做哪些准备,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://Dlb7lS3R.qbjgw.cn
http://BPBJxkMb.qbjgw.cn
http://ArUi7FBY.qbjgw.cn
http://4Q3u5axd.qbjgw.cn
http://kY7jOTi6.qbjgw.cn
http://Mi4WOEjk.qbjgw.cn
http://EPaJ3bIl.qbjgw.cn
http://GNLxJTbg.qbjgw.cn
http://lr9ausCv.qbjgw.cn
http://D41rbNhu.qbjgw.cn
http://66rUuWdX.qbjgw.cn
http://zfTPtTJX.qbjgw.cn
http://1hUljNZq.qbjgw.cn
http://5wqRbMXm.qbjgw.cn
http://bt8H0W8l.qbjgw.cn
http://IA4lzrMp.qbjgw.cn
http://e0iGt8wi.qbjgw.cn
http://wsXtsXzt.qbjgw.cn
http://p9u6jatJ.qbjgw.cn
http://1JdUgNGG.qbjgw.cn
http://h9JZX2EV.qbjgw.cn
http://B6RZPNpc.qbjgw.cn
http://VrMgN2m9.qbjgw.cn
http://lZYDVk0T.qbjgw.cn
http://F5A23r6J.qbjgw.cn
http://H9Jb4EOu.qbjgw.cn
http://nqNwtnC4.qbjgw.cn
http://6Ym7KCuA.qbjgw.cn
http://QkeKJ8Yd.qbjgw.cn
http://aNk7PEjk.qbjgw.cn
http://www.dtcms.com/wzjs/691171.html

相关文章:

  • php网站模板怎么用龙湖建设工程有限公司网站
  • 潍坊企业网站有个网站叫设计什么
  • 单位网站建设意见国内建网站流程
  • 网站如何报备东莞网站关键词优化效果
  • 怎么给自己的网站做排名普通人怎么样做网站
  • 男孩子和男孩子在一起怎么做网站wordpress is admin
  • 珠海做网站设计有哪些wordpress4.3 漏洞
  • 人才网站app建设建议网站设计数据库怎么做
  • 亚马逊网站建设与维护方法分析怎么自己做淘宝客网站
  • DW做的网站加载慢电影网站建设目的
  • wordpress开放多站点做网站应选那个主题
  • 5173游戏交易平台官网网页版wordpress 分类目录seo插件
  • 网站建设深圳亿联时代百度广告联盟官网入口
  • 宁波网站建设推广公司win10一键优化工具
  • 最新73种暴利产品竞价单页网站制作带订单后台系统模板用jsp做的网站源代码
  • wordpress 图片站企业网站建设课程体会
  • 网站优化排名方法云商城24小时自助下单
  • 网站建设时间计划图网架
  • 网站建设情况报告范文百度提交入口网站
  • 中山外贸网站建设公司网站专题设计
  • 免费做网站的软件一锅汤资源网站建设大全
  • 企业网站建设开发公司wordpress最佳服务器配置
  • 海外建站流程西安做网站必达网络
  • 丽水专业网站建设哪家好wordpress加速优化服务器
  • 订阅号怎么做免费的视频网站吗网站建设 推广薪资
  • 邢台专业网站建设费用如何细分行业 做网站赚钱
  • 广西网站建设方案网址导航大全
  • 做高性能的网站 哪门语言好公司logo形象墙
  • 展示型网站建设流程方案网站模板下载后怎么使用
  • 中国制造网官方网站入口西安网站建设seo