- 主题:为啥TCP协议不增加一种“稳定包”传输的模式?
楼主是需要一种既像UDP一样按包发送又像TCP一样可以保证重传和有序吗? 是的话可以搜一下SCTP,兼具UDP和TCP的优点。
至于为什么没人用,那还不是TCP/IP先入为主,把分层更好的OSI都干掉了。TCP/IP的先发优势和网络利旧(兼容性)的要求导致后发明的各种协议很难生存和推广,除了局域网内自己使用,想穿越防火墙很难
--
FROM 114.242.29.*
kcp 不是做这个的。楼主是想像 UDP 一样使用 TCP,而 KCP 是把 UDP 用成 TCP. 反的。
【 在 emirbobo 的大作中提到: 】
: KCP了解一下
--
FROM 110.84.122.*
问题是‘拆包’这种事情就是为了应对下层协议栈不能一次发大包的问题而产生的解决方案。
如果你保证你的下层协议栈能发那么大的包自然不需要这么完,问题是全世界的设备千千万万哪有那么好的事情你发的包恰好就不需要这些方案呢?
【 在 wjhtingerx 的大作中提到: 】
: 首先强调一下,我懂TCP是“流”,是没有包的概念的,所以回帖不要抓着这个来教育了。
: 我的意思是这种模式,发送端一次发送多大的包,接收端就一次接收多大包。这样就免去了应用需要组数剧、解析协议了,易用很多啊。也不会出现“黏包”这种伪科学了。
--
FROM 111.162.221.*
首先理科生应该问不出这种问题,你发送包总得有个大小,就好像我想要做一个世界上最好的网站,其他条件一概不给一样
【 在 wjhtingerx 的大作中提到: 】
: 首先强调一下,我懂TCP是“流”,是没有包的概念的,所以回帖不要抓着这个来教育了。
: 我的意思是这种模式,发送端一次发送多大的包,接收端就一次接收多大包。这样就免去了应用需要组数剧、解析协议了,易用很多啊。也不会出现“黏包”这种伪科学了。
--
FROM 223.70.159.*
真空球形包请到教科书上去找呢
--
FROM 219.142.253.*
http是不是就满足你的需求了?
--
FROM 124.127.74.*
大概意思就是TCP packet能够固定,
其实你手动写一个TCP/IP发送一个很大的包,在驱动层也会被拆开
不过这个提议已经没多大意义了,现在谁自己实现TCP/IP?甚至没多少人直接调用socket,直接weboscket/HTTP/gRPC/thrift
【 在 wjhtingerx 的大作中提到: 】
: 首先强调一下,我懂TCP是“流”,是没有包的概念的,所以回帖不要抓着这个来教育了。
: 我的意思是这种模式,发送端一次发送多大的包,接收端就一次接收多大包。这样就免去了应用需要组数剧、解析协议了,易用很多啊。也不会出现“黏包”这种伪科学了。
--
FROM 115.183.80.*
我猜你是想说把TCP的这种流的模式,转换成变成容易的包的形式,这个完全可以应用层自己做啊。
你写个自己的send,发一个包头+实际内容,接收端也等所有数据收到之后一起把数据打包发给你。没有专门的增对TCP的这样的封装,但是在应用层,确实有很多类似的封装。
【 在 wjhtingerx 的大作中提到: 】
: 当然说的是tcp传输的“包”(就是一次send()调用),跟下面MTU啥的没啥关系,要分开要组装都行,只要TCP接收还是一个包就行。
:
--
FROM 111.199.253.*
了解一下我们的V2V视联网协议,颠覆你的认知
【 在 wjhtingerx 的大作中提到: 】
: 首先强调一下,我懂TCP是“流”,是没有包的概念的,所以回帖不要抓着这个来教育了。
: 我的意思是这种模式,发送端一次发送多大的包,接收端就一次接收多大包。这样就免去了应用需要组数剧、解析协议了,易用很多啊。也不会出现“黏包”这种伪科学了。
--
FROM 218.202.192.*
【 在 wjhtingerx 的大作中提到: 】
: 首先强调一下,我懂TCP是“流”,是没有包的概念的,所以回帖不要抓着这个来教育了。
: 我的意思是这种模式,发送端一次发送多大的包,接收端就一次接收多大包。这样就免去了应用需要组数剧、解析协议了,易用很多啊。也不会出现“黏包”这种伪科学了。
你这个疑问其实就是一个初写socket程序的初学状态,
你这应用需求在应用层做的事情, 是不可能去传输层,网络层去搞,
现实世界也是如此, 你去发国际快件, 去找国际代理就行了, 你跑去轮船说, 你要发快递,
为什么单位都是集装箱, 火车皮, 我只要把巴黎那个埃菲尔铁塔运北京来。
--
FROM 124.126.1.*