首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络协议 >

怎么在应用层控制数据包的优先级

2013-01-08 
如何在应用层控制数据包的优先级自己写的一个简单的CS通讯框架,客户端能够发出高、低两种优先级数据包,低优

如何在应用层控制数据包的优先级
自己写的一个简单的CS通讯框架,客户端能够发出高、低两种优先级数据包,低优先级包定时发送,高优先级包随机发送。
要求服务端收到高优先级包时首先处理高优先级包,待所有的高优先级包处理完毕之后,再对低优先级包进行处理。
求教各位如何实现?
[解决办法]
在IP4中,暂时没有数据优先级的支持,唯一一个优先级的问题是TCP的带外数据方式,但那个数据信息太少,根本不适合应用使用。你可以用两个不同的端口来区分数据优先级。接收数据时,用select来监听两个socket,一旦有数据来,你先判断高优先级的socket处理。
[解决办法]

引用:
自己写的一个简单的CS通讯框架,客户端能够发出高、低两种优先级数据包,低优先级包定时发送,高优先级包随机发送。
要求服务端收到高优先级包时首先处理高优先级包,待所有的高优先级包处理完毕之后,再对低优先级包进行处理。
求教各位如何实现?


简单的话。你用两个队列,队列1和队列2,分别存客户端发过来的高优先级包和低优先级包。
队列1不为空,就只取队列1的处理;
队列1为空,才取队列2的处理;
如此 循环,就可以了啊


- 千里孤行

[解决办法]
同意3楼做法。
不过2楼说IP没有优先级,这个是不是有问题?IPv4头里的TOS就是优先级啊
[解决办法]
引用:
同意3楼做法。
不过2楼说IP没有优先级,这个是不是有问题?IPv4头里的TOS就是优先级啊


认真看看官方说明吧,IPv4头里的TOS就是优先级,但是现在几乎没有几个支持TOS,在一些新的路由器上才支持,而客户主机上基本没有支持的。
把数据先接收了,转存到一个缓冲的作法基本不可取。作者的目的实质上是想实现接受数据的优先级,而不是转存后的数据优先级。以CPU的处理速度,网络传输速度,远远小于CPU的处理,我们基本可以不考虑数据转存的时间消耗。而且数据转存方式,无谓的浪费了转存的空间和队列的消耗。

热点排行