V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yuchting
V2EX  ›  宽带症候群

全球连接服务器问题( Socket 长连接,非 web,非 CDN)

  •  
  •   yuchting · 2016-11-24 09:59:08 +08:00 · 7089 次点击
    这是一个创建于 2911 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果我需要有一台服务器,需要用到 Socket 直连,能否找到一种合理的方法让全球的用户都能很顺畅的方法呢?

    我自己想到并且正在实现方法:

    • 使用一台全球延迟都很低的服务器。 这个解决方法已经放弃了,不大可能。
    • 使用跳板。 目前我的服务器放在新加坡 Linode ,然后香港 CN2 服务器做跳板,这样中国大陆访问 CN2 的香港服务器 IP ,转发到新加坡 Linode 就会很快。但是对于北美和欧洲的的 ping ,这种方法感觉无解,因为找不到一个中间跳板连接北美和新加坡 Linode 都很快的中间服务器。

    所以想一下有没有高人对这个熟悉的。

    37 条回复    2016-12-04 22:48:58 +08:00
    Lentin
        1
    Lentin  
       2016-11-24 10:03:21 +08:00
    GCE ?
    zlhdd108
        2
    zlhdd108  
       2016-11-24 10:13:19 +08:00 via Android
    cn2 也仅是电信吧,如果是联通的话, cn2 也没什么效果…
    mhycy
        3
    mhycy  
       2016-11-24 10:14:54 +08:00
    于是什么业务产生需要 Socket 长连接而且是直连的需求呢?
    Zohar
        4
    Zohar  
       2016-11-24 10:20:14 +08:00 via Android
    Anycast
    Kilerd
        5
    Kilerd  
       2016-11-24 11:10:42 +08:00 via Android
    物理限制,一台机子能全球访问都快的话。楼主就找到了突破光速的方法了,还搞什么计算机,快去写论文,拿诺贝尔物理学奖啊。


    当然啦,这里的快说的是楼主说的 ping 值
    LGA1150
        6
    LGA1150  
       2016-11-24 11:23:16 +08:00 via Android
    CloudFlare 现在支持 socket 了
    你也可以试试利用香港的 SNI 代理,我用来中转过 SSL VPN
    Actrace
        7
    Actrace  
       2016-11-24 11:24:47 +08:00
    vxtrans
    odirus
        8
    odirus  
       2016-11-24 11:26:06 +08:00
    微林不是很好么?

    我的目标主机在米国,一般我的链路方式是 US <-> JP <-> CN(AliBGP)
    akira
        9
    akira  
       2016-11-24 11:27:05 +08:00
    jp 的节点,对新加坡和北美都算是比较友好的。
    pangliang
        10
    pangliang  
       2016-11-24 11:52:01 +08:00
    为什么非要这么干, 而不是布两个服务器?
    yuchting
        11
    yuchting  
    OP
       2016-11-24 15:19:26 +08:00
    @zlhdd108 很有效果的,你可以试试
    @Lentin 非 web ,谢谢
    @mhycy 实时在线游戏
    @pangliang 同一个数据服务器,两个主机如果隔的太远,你懂得。
    @LGA1150 一定注意是非 web 哦。
    @akira 非常感谢!

    最后谢谢所有的 V 友。我心里大概有数了。
    Lentin
        12
    Lentin  
       2016-11-24 16:33:42 +08:00
    @LGA1150 有什么能用的 SNI 的 ip 吗?分享一下呗
    @yuchting Google Compute Engine 也不是 web 啊= =
    mytsing520
        13
    mytsing520  
       2016-11-24 16:43:57 +08:00
    GSuite
    mhycy
        14
    mhycy  
       2016-11-24 16:44:30 +08:00   ❤️ 3
    @yuchting

    游戏类应用如果对延迟有要求的话,全球范围内能做到 300ms 以内延迟的单一服务器难度很高,但如果放低要求,欧美稳定且国内友好的方案而且允许使用跳板的话,方案还是有的。

    1 、国内访问节点使用香港 PCCW 机房服务器做跳板(三网直连且出口友好没第二家了)
    (电信联通移动均友好,同类型服务器还有阿里云国际版香港区)
    2 、主服务器使用日本机房(出口使用 NTT 线路,原因是覆盖足够广)
    这样能做到北美、东亚(除中国)延时 300 以内(因为需要考虑美国西岸, 300 是保守值)
    3 、东南亚使用新加坡机房,这个你懂的。
    4 、欧洲方面,跳板放法国 /德国(中心点覆盖),如果机房有 NTT 线路,那么与日本主机房配合就是走 NTT 内网,延迟有保障(日本到欧洲能做到 300ms 以内, 220ms 是我这的正常值)

    补充注意事项:中移动出口连接会不定时断流,无 RST ,程序逻辑务必在 TCP 之上实现额外的 Keepalive 逻辑
    zhoubug
        15
    zhoubug  
       2016-11-24 19:07:13 +08:00 via Android
    你这个需求需要 机房遍布的 tcp 层转发服务提供商,网宿有个
    APPA 就是类似这种服务,利用他们的机房分布给你解决接入,但海外接入还要再购买别的服务。说白了,机房够广的服务商才能给你解决,个人是用不起的。中间传输走他们的网络。
    cst4you
        16
    cst4you  
       2016-11-24 19:27:54 +08:00
    多点, 然后服务器间用优化的网络通信
    huangtao728
        17
    huangtao728  
       2016-11-24 19:36:10 +08:00 via Android   ❤️ 1
    GCE 台湾服务中国区域,其他区域可以:
    购买 GCE Anycast IP ,缺点 贵
    或者用 Cloudflare 的 Socket 加速
    Showfom
        18
    Showfom  
       2016-11-24 19:37:31 +08:00   ❤️ 1
    用 GCE Softlayer Azure Leaseweb 这几家不通区域之间走内网的机房,不要用 Linode 这种全部走公网的机房即可
    yuchting
        19
    yuchting  
    OP
       2016-11-24 19:58:24 +08:00
    @Showfom 我立刻开几台试试
    @Lentin Sorry ,看成 GAE 了, GAE 我一直在用,没想到他出了 GCE 。。。
    yuchting
        20
    yuchting  
    OP
       2016-11-24 19:59:14 +08:00
    @mhycy 请问那里可以租赁到香港 PCCW 机房? IP 是什么开头的?谢谢了
    anjunecha
        21
    anjunecha  
       2016-11-24 20:01:09 +08:00 via iPhone
    推荐 GCE ,内网间网络极好
    Showfom
        22
    Showfom  
       2016-11-24 20:08:45 +08:00
    @yuchting GCE 的网络很不错的,如果要便宜的话那就 Leaseweb 不过购买麻烦
    mhycy
        23
    mhycy  
       2016-11-24 20:33:14 +08:00
    @yuchting 普通用户搞个国际版阿里云会方便一些,香港 PCCW 我也就用过,租用独立服务器暂时没见到有业务,托管业务应该可以联系香港 PCCW 直接询问。
    yuchting
        24
    yuchting  
    OP
       2016-11-24 22:16:17 +08:00
    @Showfom 开了几台 GCE ,日本、台湾、北美东西中部的机器,走的是内网,不过基本上延迟就是不理想。比如我把主服务器放在日本,然后通过美国中部 GCE 做一个跳板,他们之间的内网( Subnetwork ) ping 延迟在 120ms ,西欧直接 ping 日本的服务器 230 , ping 美国中部是 110ms ,基本上是相等的, 120+110=230 。有些机房 ping 测试会更慢一些。
    感觉内网也没啥用。

    感觉如果要求在 100ms 一下,看来只能分服了,分区运营,做不了统一大服。要么就只能维持现状。

    刚才看到 Linode 有 Tokyo 2 了,于是我就放弃折腾了,新游戏的服务器就定在 Linode 东京了。

    最后抱拳,谢谢各位 V 友大神们的帮助!
    Showfom
        25
    Showfom  
       2016-11-25 02:06:31 +08:00   ❤️ 1
    @yuchting 游戏服务器用 ovh 啊 便宜又抗 D

    你 Linode 稍微 D 一下就死翘翘咯

    延迟这东西吧,物理距离摆在那,你改善不了的。等你用户多了就知道走内网的好处了,嘿嘿
    lslqtz
        26
    lslqtz  
       2016-11-25 02:43:28 +08:00   ❤️ 1
    @Showfom 丢包感人啊
    lslqtz
        27
    lslqtz  
       2016-11-25 02:43:56 +08:00
    @yuchting Linode Tokyo 2 据说线路不好
    uncleroot
        28
    uncleroot  
       2016-11-25 08:48:30 +08:00 via Android
    物理延迟是减不了的。还是分区运营吧
    mhycy
        29
    mhycy  
       2016-11-25 09:37:49 +08:00
    @Showfom
    一直感觉 ovh 那个高防就是高丢包率带来的。。。囧
    yuchting
        30
    yuchting  
    OP
       2016-11-25 09:58:40 +08:00
    @Showfom ovh 主力数据中心在法国,这里 ping 过去,直接 400ms 。不过高防还是很厉害的一个选项,而且有便宜的独立主机买,给力。

    @lslqtz Linode Tokyo 2 我得试试才知道,至少是 Linode 牌子,而且我可以用香港 CN2 做跳板给国内服务。
    missdeer
        31
    missdeer  
       2016-11-25 12:43:55 +08:00
    纠结延迟的话要用 UDP 啊,就算一定要 TCP ,也要自己再应用层加个超时机制
    yuchting
        32
    yuchting  
    OP
       2016-11-25 13:52:11 +08:00 via Android   ❤️ 1
    @missdeer 这些上层程序上面的容错逻辑自然不必说。只是想做统一服务器,让所有的玩家在一个服务器上愉快的玩耍而已。
    Showfom
        33
    Showfom  
       2016-11-25 18:12:34 +08:00 via iPhone
    @yuchting Linode 自从开始用自己网络以后 就自己砸自己脚了
    yuchting
        34
    yuchting  
    OP
       2016-11-25 19:10:02 +08:00 via Android
    @Showfom “用自己的网络”是什么意思呢?他的每一个数据中心本来就有内网哇。
    Showfom
        35
    Showfom  
       2016-11-25 21:21:25 +08:00
    @yuchting 以前用的机房的 ASN 走机房的网络,现在他都自己的 ASN 自己去做 peer 了,质量没以前好咯 毕竟小 ISP

    数据中心自己内网谁没有啊 两个异地的数据中心之间他们没有内网
    Showfom
        36
    Showfom  
       2016-11-25 21:23:37 +08:00
    @yuchting 你要让全世界的玩家都在一个服务器上愉快的游戏 除非你手游页游 不然投入资金没个几十万上百万甚至上千万都做不到的

    所以你看基本上按国家来的,一个国家或者一个大洲一个服务器
    MapleEve
        37
    MapleEve  
       2016-12-04 22:48:58 +08:00   ❤️ 1
    已经完成过一套的表示,不购买大服务商的 socket 加速就别想。 akamai 就有,你可以咨询下报价 /huaji
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5466 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 07:04 · PVG 15:04 · LAX 23:04 · JFK 02:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.