首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
测试工具
SmokePing
IPv6 访问测试
Coding
V2EX  ›  宽带症候群

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

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

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

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

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

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

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


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

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

    最后谢谢所有的 V 友。我心里大概有数了。
        12
    Lentin   2016-11-24 16:33:42 +08:00
    @LGA1150 有什么能用的 SNI 的 ip 吗?分享一下呗
    @yuchting Google Compute Engine 也不是 web 啊= =
        13
    mytsing520   2016-11-24 16:43:57 +08:00
    GSuite
        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 逻辑
        15
    zhoubug   2016-11-24 19:07:13 +08:00 via Android
    你这个需求需要 机房遍布的 tcp 层转发服务提供商,网宿有个
    APPA 就是类似这种服务,利用他们的机房分布给你解决接入,但海外接入还要再购买别的服务。说白了,机房够广的服务商才能给你解决,个人是用不起的。中间传输走他们的网络。
        16
    cst4you   2016-11-24 19:27:54 +08:00
    多点, 然后服务器间用优化的网络通信
        17
    huangtao728   2016-11-24 19:36:10 +08:00 via Android   ♥ 1
    GCE 台湾服务中国区域,其他区域可以:
    购买 GCE Anycast IP ,缺点 贵
    或者用 Cloudflare 的 Socket 加速
        18
    Showfom   2016-11-24 19:37:31 +08:00   ♥ 1
    用 GCE Softlayer Azure Leaseweb 这几家不通区域之间走内网的机房,不要用 Linode 这种全部走公网的机房即可
        19
    yuchting   2016-11-24 19:58:24 +08:00
    @Showfom 我立刻开几台试试
    @Lentin Sorry ,看成 GAE 了, GAE 我一直在用,没想到他出了 GCE 。。。
        20
    yuchting   2016-11-24 19:59:14 +08:00
    @mhycy 请问那里可以租赁到香港 PCCW 机房? IP 是什么开头的?谢谢了
        21
    anjunecha   2016-11-24 20:01:09 +08:00 via iPhone
    推荐 GCE ,内网间网络极好
        22
    Showfom   2016-11-24 20:08:45 +08:00
    @yuchting GCE 的网络很不错的,如果要便宜的话那就 Leaseweb 不过购买麻烦
        23
    mhycy   2016-11-24 20:33:14 +08:00
    @yuchting 普通用户搞个国际版阿里云会方便一些,香港 PCCW 我也就用过,租用独立服务器暂时没见到有业务,托管业务应该可以联系香港 PCCW 直接询问。
        24
    yuchting   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 友大神们的帮助!
        25
    Showfom   2016-11-25 02:06:31 +08:00   ♥ 1
    @yuchting 游戏服务器用 ovh 啊 便宜又抗 D

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

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

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

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

    所以你看基本上按国家来的,一个国家或者一个大洲一个服务器
        37
    MapleEve   2016-12-04 22:48:58 +08:00   ♥ 1
    已经完成过一套的表示,不购买大服务商的 socket 加速就别想。 akamai 就有,你可以咨询下报价 /huaji
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2436 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 29ms · UTC 12:47 · PVG 20:47 · LAX 04:47 · JFK 07:47
    ♥ Do have faith in what you're doing.