关于TCP的拥塞算法

chichenzhe 2011-09-22 10:46:37
现在我要做一个p2p应用, 续问题:
http://topic.csdn.net/u/20110906/21/5ae40aab-f787-4a51-ac23-4877354c8b66.html?43598

想用自己实现的安全udp来做.

由于我考虑到,理论上 8个人1个房间的情况下他们之间的 战斗交互,移动交互,AI逻辑交互量应该不大 采用UDP实现的话 我认为应该只需要考虑丢包重发.但是我本身对TCP/IP UDP了解仅仅停留在程序语言级操作socket的级别,所以有几个问题想问大家

1, TCP拥塞算法到底是个什么东西, 我这样的情况下是否完全不用去考虑他

2, 保持包顺序我也不用考虑,因为到底是移动包先到达还是攻击包先到达对8个人的快速交互而言我认为没有实质性区别.

3, 这样的话我是不是 只需要实现丢包重发的udp即可呢?
...全文
172 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dfasri 2011-09-24
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 shenyi0106 的回复:]

局域网一般没有MTU之说,都是socket的边界,传输不管,UDP貌似是它的包最大值,也就是64K。

MTU是经过路由后才有的,不可误导人哟……;而且以太网的MTU一般认为是1500,ATM网的MTU大概就7百多,光纤环网的MTU要大点,比以太网大,具体数字记不清楚了
[/Quote]

MTU是整包计算1500是最大, 1500里面, 是必须要包括UDP头, IP头这些协议层的, 计算剩余可用的结果一般是1472~1476之间. 用PING就可以简单的获取得到可用的单包数据大小最大值. 当然这个就是一般的家庭网络而已了.

在局域网, 也有丢包的, 只是丢包率低于1%, 但以最大的MTU的值发包的话, 丢包率会更高一些, 发送大包的话, 丢包率会继续上升的. 游戏交互的数据量是比较小的, 所以基本1K就足够1S的交互量了, 这就是以前为何5K年代还能够玩网络游戏的原因之一(电话线年代, 世嘉出的一款游戏叫梦幻之星, 实现4人联机玩的模式的, 用就是最原始的电话线接入modem拔号的形式)
wjb_yd 2011-09-23
  • 打赏
  • 举报
回复
tcp/ip 卷1
shenyi0106 2011-09-23
  • 打赏
  • 举报
回复
局域网一般没有MTU之说,都是socket的边界,传输不管,UDP貌似是它的包最大值,也就是64K。

MTU是经过路由后才有的,不可误导人哟……;而且以太网的MTU一般认为是1500,ATM网的MTU大概就7百多,光纤环网的MTU要大点,比以太网大,具体数字记不清楚了
dfasri 2011-09-23
  • 打赏
  • 举报
回复
局域网类型的游戏, MTU一般可以有1472可用, 换句话说, 只要一UDP包就传送完当前所需要发送的数据, 或者收到所需要接收的数据了, 所以顺序来说, 你可以直接不考虑, 仅需要考虑怎样确保相方能够正确交互某个一个UDP包即可.
由于局域网一般都是有100Mbit/s的速度, 对于局域网游戏的动作类游戏来说也好, 1S里面最多只会交换3至4次数据而已了, 就算有100人连网, 也只是400次, 400个1472B的数据包, 对于100Mbit算什么东西? 所以也根本不需要考虑网络拥塞.

网络拥塞的考虑, 只适用于要有大量数据交互的情况, 游戏这类小数据量的, 这些东西均不需要考虑的.
shenyi0106 2011-09-23
  • 打赏
  • 举报
回复
1.TCP拥塞算法到底是个什么东西, 我这样的情况下是否完全不用去考虑他
拥塞算法实质上就是一种动态变化发送窗口的过程,比如在一个规定的周期内,如果发送方还没有接受到ACK的话,那么发送方认为网络比较忙,将主动减小发送窗口的大小来缓解网络上的拥塞情况。
说白了,这是一种“舍己为人”的风尚。所以通俗的TCP包的实时性总是要慢于UDP的,因为TCP要“为他人”考虑,而UDP只“为自己”考虑
cnlm2 2011-09-23
  • 打赏
  • 举报
回复
有一个开源库udt, 可以参考下啊,就是用udp 封装了一下,轻量级的tcp
chichenzhe 2011-09-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wwwllg 的回复:]
这类实时性游戏首选UDP.

至于可靠UDP,也有不少选择,做游戏可以选择RAKNET.
[/Quote]

呵呵谢谢 wwwllg 你这大高手给我讲讲我的一问1嘛.
yosyg 2011-09-22
  • 打赏
  • 举报
回复
可靠UDP
UDX协议 2011-09-22
  • 打赏
  • 举报
回复
这类实时性游戏首选UDP.

至于可靠UDP,也有不少选择,做游戏可以选择RAKNET.
saiyaman5 2011-09-22
  • 打赏
  • 举报
回复
又一个用udp来实现tcp
用户 昵称 2011-09-22
  • 打赏
  • 举报
回复
俺是脚着用udp做来做去最后就做出了tcp。
ljn398431 2011-09-22
  • 打赏
  • 举报
回复
关注 帮lz顶下 来牛人帮解决下~~

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧