V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
line
V2EX  ›  问与答

单 TCP 连接 是否根据 ping 值高低存在极限传输速度?

  •  
  •   line · 2015-04-07 18:27:44 +08:00 · 3649 次点击
    这是一个创建于 3501 天前的主题,其中的信息可能已经有所发展或是发生改变。
    就是说ping值越低极限传输速度越快。
    不了太解tcp 协议,就知道有重传,不会丢失数据,这回事。
    15 条回复    2015-04-07 23:32:48 +08:00
    h4x3rotab
        1
    h4x3rotab  
       2015-04-07 19:16:45 +08:00
    相关,但没有直接关系。关于这个问题,你去搜索TCP的滑动窗口/流量控制,简单说,起初传输速度是一个固定值,在传输稳定的情况下,速度会逐步增加,直到出现传输错误,传输速度会停止增加,然后逐渐缩小,当传输状态比较稳定的时候速度会再次增加。
    Citrus
        2
    Citrus  
       2015-04-07 19:17:22 +08:00 via iPhone   ❤️ 1
    樓主你把三個概念混在一起也是挺拼的。。。
    1. 延遲跟最大速度一毛錢關係沒有。假設這麼一個設備,一個接口收到的所有的包都延遲100再轉發到另一個接口,然後兩台電腦通過這台設備用千兆網線直連,這兩台設備之間的延遲就是200多,但是速度仍然是千兆。
    2. 重傳會影響速度,但是跟延遲無關。假設兩台電腦直接用千兆線連在一起,接收資料的一台電腦有一個小壞蛋隨機丟掉50%的包,那麼可以認為這台電腦從另一台電腦下載數據的速度是 500M,雖然鏈路本身是千兆的。
    3. 延遲和丟包半毛錢關係沒有。參見第一個例子。
    Citrus
        3
    Citrus  
       2015-04-07 19:18:39 +08:00 via iPhone
    沒寫完就發出去了。。。樓上所說只是簡單情況,不考慮窗口。不過對於窗口,忽略初期的窗口調整階段的話上面三個例子基本適用。
    h4x3rotab
        4
    h4x3rotab  
       2015-04-07 19:20:46 +08:00
    http://www.cnblogs.com/way_testlife/archive/2010/10/11/1848241.html
    随便盗了一个链接,这里详细介绍了tcp的流量控制原理
    Livid
        5
    Livid  
    MOD
       2015-04-07 19:29:42 +08:00 via iPhone
    从根本上而言,理论最大带宽由电路物理层材质和科技决定,理论最低延迟由物理层距离决定。
    wy315700
        6
    wy315700  
       2015-04-07 19:34:54 +08:00 via Android
    @Livid 香农定律吧
    line
        7
    line  
    OP
       2015-04-07 21:44:27 +08:00
    @h4x3rotab
    @Citrus
    @h4x3rotab
    懂了,谢谢。
    理论上,两点之间传数据,带宽是可以达到无限大的,不管延时有多长,不管噪声有多大。
    line
        8
    line  
    OP
       2015-04-07 21:45:43 +08:00
    还有不管光速有多慢
    binux
        9
    binux  
       2015-04-07 22:04:57 +08:00
    抛开其他因素,以现有的 TCP 协议实现来说,会的。
    cst4you
        10
    cst4you  
       2015-04-07 22:06:42 +08:00
    否. 我这到香港 8ms, 实际传输速度 100K.

    嗯, 例子说完.
    line
        11
    line  
    OP
       2015-04-07 22:17:06 +08:00
    @binux 怎么说?
    binux
        12
    binux  
       2015-04-07 22:20:46 +08:00
    @line ping 的大小实际上就是 rrt 的大小,TCP 是要 ack 的,滑动窗口是有上限的。所以最大传输速度就是 滑动窗口 / rrt
    binux
        13
    binux  
       2015-04-07 22:21:17 +08:00
    @binux RTT..
    line
        14
    line  
    OP
       2015-04-07 22:32:02 +08:00
    @binux 那tcp的最大传输距离就是:
    c*max(RTT)/2
    c:光速
    在有效传输距离内,tcp的带宽没有上限
    ryd994
        15
    ryd994  
       2015-04-07 23:32:48 +08:00 via Android
    实际上如果延迟稳定不丢包的话完全没问题
    速度上限与信号质量有关,这就是香农
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3863 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:32 · PVG 18:32 · LAX 02:32 · JFK 05:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.