全球连接服务器问题( Socket 长连接,非 web,非 CDN) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yuchting
V2EX    宽带症候群

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

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

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

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

    • 使用一台全球延迟都很低的服务器。 这个解决方法已经放弃了,不大可能。
    • 使用跳板。 目前我的服务器放在新加坡 Linode ,然后香港 CN2 服务器做跳板,这样中国大陆访问 N2 的香港服务器 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  
    PRO
       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  
    PRO
       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  
    PRO
       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  
    PRO
       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  
    PRO
       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  
    PRO
       2016-11-25 21:21:25 +08:00
    @yuchting 以前用的机房的 ASN 走机房的网络,现在他都自己的 ASN 自己去做 peer 了,质量没以前好咯 毕竟小 ISP

    数据中心自己内网谁没有啊 两个异地的数据中心之间他们没有内网
    Showfom
        36
    Showfom  
    PRO
       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     Solana     3940 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 10:14 PVG 18:14 LAX 03:14 JFK 06:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86