624346893 大佬有话说 :
TCP协议问题,请大佬赐教[有偿诚聘大佬提携]
本帖最后由 624346893 于 2020-2-27 15:16 编辑
我在应用层调用SOCKET发送数据包,假设数据包是,123456789
TCP发现数据报太大了,于是拆成12345和789两个包
接收端收到了12345,但是没有收到789,那么接收端的处理方式:
1. TCP把12345交给上面的应用层,这种情况岂不是会造成数据包错乱?假如12345中包含应用层协议头,里面定义有后续的报文长度
2. TCP没等到789,直到超时,丢弃报文
3. TCP等到789,合并为拆分之前的完整数据包交给上层应用
以上三种方式哪个是对的呢?
最近在写TCP方面的东西,但是研究起来太费劲了,真心希望找个TCP大佬带带,愿意以云服务器作为给大佬的补偿,有意的可以PM我
直接明盘 (不是买卖,词用的不对,请大佬多多包含):一台Lightsail 20美元机器6个月的使用权 或2台 Lightsail 10美元机器6个月的使用权
请大佬放心我的诚意:lol
624346893 大佬有话说 :
也不是要各位大佬带我写代码,就是在我研究TCP的过程中,有问题时能够帮忙解惑即可,不会耽误您太长时间,小弟有自知之明:lol
haveyuner 大佬有话说 :
我觉得是2吧紫薯布丁,大概没有握手包会等到超时然后算丢包(不懂)
624346893 大佬有话说 :
顶一个
testsun 大佬有话说 :
有意思的问题。不是大佬,也不太熟悉这一块。但你这里说的是数据包,还是数据帧
嫂子抱紧我 大佬有话说 :
去完整学下socket编程就好了 不要网上东找找西找找
你的问题 最简单做法 接收端死循环 接收数据丢到buffer同时检查大小 达到发送端放在包头的大小就丢给上层处理
624346893 大佬有话说 :
testsun 大佬有话说 : 2020-2-27 15:19
有意思的问题。不是大佬,也不太熟悉这一块。但你这里说的是数据包,还是数据帧 …
TCP数据段,数据包不是IP层的叫法吗