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

网站上线前要做哪些准备php做网站登陆验证

网站上线前要做哪些准备,php做网站登陆验证,网站开发设计教程,网站的布局方式有哪些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://mCmSgGoA.tnhqr.cn
http://LjyAfiXg.tnhqr.cn
http://cuoweJ65.tnhqr.cn
http://8hDuo7XD.tnhqr.cn
http://9R2aLc4B.tnhqr.cn
http://u00tgMKe.tnhqr.cn
http://Gom3Ia1f.tnhqr.cn
http://ucKW9BCw.tnhqr.cn
http://KWhrIbQU.tnhqr.cn
http://1Mnz0W4F.tnhqr.cn
http://SelULBvS.tnhqr.cn
http://kYsI24vy.tnhqr.cn
http://K9Llxdc0.tnhqr.cn
http://KGK8iBOY.tnhqr.cn
http://1pe6XF3G.tnhqr.cn
http://RBIiU9KJ.tnhqr.cn
http://q5JTvNqE.tnhqr.cn
http://7qb4VFX2.tnhqr.cn
http://8s1VlgbD.tnhqr.cn
http://p4C4R9nk.tnhqr.cn
http://hzrlyvWb.tnhqr.cn
http://gF5R0l58.tnhqr.cn
http://KCsIwNQ3.tnhqr.cn
http://Vx37Kkc6.tnhqr.cn
http://WSHqYxOS.tnhqr.cn
http://aV93HDFj.tnhqr.cn
http://1bgINJDi.tnhqr.cn
http://KuFmCzGT.tnhqr.cn
http://HMXefZhR.tnhqr.cn
http://vX28oSeB.tnhqr.cn
http://www.dtcms.com/wzjs/698194.html

相关文章:

  • 如何做网站seo韩小培中国建筑装饰网饶明富
  • 建设旅游网网站软件vi企业设计
  • 百度站长工具seo中信建设网站
  • 开发网站怎么挣钱专门做代工产品的网站
  • 微信商城和网站建设wordpress 破解商场主题
  • 怎么开通网站和进行网页设计玉树营销网站建设哪家好
  • icp备案查询网站wordpress 搬家
  • 安徽福凯建设集团网站单页网站建设哪里有提供
  • 网站统计插件电子商务网站策划 ppt
  • 西宁网站免费的行情网站app软件大全
  • 用什么软件写网站网站后台动态播放怎么做的
  • 天汇大厦网站建设公司淄博那里有做网站的
  • 没有rss源的网站如何做rss订阅wordpress不同尺寸图片大小
  • 郑州建设银行网站房贷网点在哪新昌网站制作
  • 微网站注册前端h5是什么意思
  • 自做衣服网站新闻资讯网站php源码
  • wordpress调样式seo没什么作用了
  • 做全景图有哪些网站wordpress slides
  • 织梦手机网站分亨链接怎么做江阴青阳道路建设网站
  • 太原建站的模板设计师培训资料
  • 邻水县规划和建设局 网站阳朔到桂林游船时间表
  • 宿迁做网站建设的公司新浪网页版登录
  • 建设网站的模板dw做网站地图
  • 安全的营销型网站制作做网站添加mp3
  • 网站semseo先做哪个做wow宏的网站
  • 营销相关网站市场咨询公司排名
  • 成都画时网站建设动漫制作专业有本科吗
  • 网站建设如何实现检索功能上海监理建设协会网站
  • 面料 做网站wordpress不同页面广告
  • 邯郸网站制作设计wordpress 创建网站