关于大航海时代4中拉斐尔·卡斯特路剧情的朋科沙拉市

大航海时代4

晓诗儿 晓诗儿
回答
  • Summer Summer

    网游常规手段是通过internet网络来传输数据的,据我所知是基于tcp/ip协议。你登陆的是界面客户client端,服务器在service端,装备和人物信息包括等级经验等等存放在若干关联数据条中。一般来说,client和server之间的数据交换,分为几个优先级,大部分情况下是下面3种:
    1.不可以丢失,但是不要求速度。2.不可以丢失,但是要求速度,确并不是非常严格。3.可以丢失,但是要求速度
    对于1来说,最直接的例子就是聊天信息,动态的地图信息。这些数据不是time-critical的,所以应该使用tcp连接。在大多数情况下,有专门的 voice/chat server和map server,client到每个server有个tcp连接。一个client有多少个连接根据需要决定。同时有2-3个连接并没有多大开销。当然,如果开销很大,就是程序设计的问题了。其实你想想开bt的时候同时有4,50个连接,你用其他程序的速度并没有慢多少。对于2来说,比较显著的例子是战斗信息,动作序列。比如一个人玩游戏,用鼠标点了下地图上的一个坐标,那么人物向这个坐标前进。这个信息从server转发到其他的client,当然越快越好,如果client没收到,就要重发,否则client就看不到这个动作。如果你玩过wow的盗贼,就会发现在网络卡的时候,经常先偷袭,按下键盘以后要等一会才看到攻击动作,就是这个原理。当然这里数据需要经过server的处理,每次打包多个client的动作,和顺序,然后发送。需要复杂的server端逻辑处理。这种应该使用udp,同时对所有的udp包编号(用来防止2次处理),使用slide window类似的协议进行重传。对于3来说,就是位置信息。位置信息可以丢失,但是由于这种信息更新的最频繁,所以即使丢失其中一个,也可以根据 dead reckoning 算法进行位置预测和修正。dead reckoning算法有很多变种,适合多类情况。比如你见过wow里,如果一个人掉线,但是一直往前不停的跑,那多半就是算法进行的预测。偶尔你会发现网络卡的时候,刚刚走到一个地方就退回到原来的位置,就是因为你的动作数据包(2里的)没发送出去,导致update world position的时候,算法进行位置修正的结果。这类数据应该使用udp.
    需要说明的是 udp和tcp无明显分界。tcp相比udp,有3个主要缺点,1是slow start,2是 throughput jitter,3是ins**tence on reliability(相对的,不时绝对缺点).在数据传送量比较小,网络状况比较稳定的情况下,使用tcp和udp无大分别。此外,如果是官服,会有防火墙。对于防火墙穿透,如果你是做client的,不需要关心这个问题,因为你往server发数据,建立连接,都不会受到防火墙的影响。不过server端对于放火墙可以有几种实现方式:
    1.最差的方式是client发送syn包给服务器,在防火墙或**上建立nat地址,然后 server之需要取得这个nat地址,把所有的数据包都封装成syn-ack包,发给client就行拉。这样做比较省事。但是无法穿透 stateful firewall
    2.是比较好的方式。不过需要先建立tcp连接,然后对server发送正常的udp包。大部分的nat**会为udp专门建立个nat地址,那么通过这个地址,server就可以发udp包了。但是并不是所有的firewall都会为udp建立单独的nat地址。3.是最好的方式,由于防火墙不会阻止内部网发起的tcp连接,所以tcp进行数据传输没有任何问题。对于server/client来说,只要使用 raw socket模拟tcp协议,但是这个模拟的tcp协议使用udp的本质,没有slide window,没有 congestion control,没有flow control等等,这种实现最麻烦,但是几乎能处理所有的防火墙。4.其实没有4,不过实在想提下这种最强技术.就是所有的server到client的数据包都可以是icmp echo **.由于种种原因,firewall不太可能禁止icmp echo,所以这类消息也是很容易传送到client,但是。client如果有 ids system,很容易把你的sever归类到入侵扫描的范围。所以不用最好。

类似问答
精品推荐

友情链接

友链互换QQ:

谷财 备案编号:蜀ICP备11019336号-3商务合作:235-677-2621

Copyright 2009-2020 Chengdu Sanzilewan Technology Co.,Ltd all rights reserve

抵制不良游戏 拒绝盗版游戏 注意自我保护 谨防受骗上当 适度游戏益脑 沉迷游戏伤身 合理安排时间 享受健康生活