美文网首页
5.8、ET\LT深释、服务器设计、粘包、缺包解决

5.8、ET\LT深释、服务器设计、粘包、缺包解决

作者: 奥斯特洛司机 | 来源:发表于2019-04-09 20:57 被阅读0次

    1、ET,LT模式深入分析及测试
    2、我们的服务器设计
    2.1、服务器设计原则总述
    2.2、收发包格式问题提出
    2.3、TCP粘包,缺包
    2.3、TCP粘包,缺包解决

    粘包:要解决就是把几个包拆出来。一个是一个。
    1、加个特殊符号作为结尾,但是不太好。恶意数据包不好处理。
    服务器程序员不能假设收到的数据包都是善意的,合理的,构造畸形数据包。
    如何解决拆包问题:
    给收发的数据包定义一个统一的格式;c/s都按照这个格式来,就能解决粘包问题。
    包格式:包头加包体的格式:其中包头是固定长度【10字节】,在包头中有一个成员变量会记录整个包【包头+包体】的长度。这样的话,先收包头,知道整个包的长度,减去包头的长度,就等于包体的长度。。再收包体长度,一直到收满了包体长度的字节数,就认为一个完整的数据包收完。

    收包总结:先收固定长度的包头,收满然后根据包头中长度计算包体长度,最后收包体长度的数据。收满了一个包就完整了。

    官方的nginx主要是处理web服务器【专用的】,不大适合做web服务器【自由格式服务器】。
    不太适合固定数据包【包头+包体】格式。

    相关文章

      网友评论

          本文标题:5.8、ET\LT深释、服务器设计、粘包、缺包解决

          本文链接:https://www.haomeiwen.com/subject/bdcwiqtx.html