|

) f {/ J' C! C' Q! p& I0 ]本文经授权转载自漫话编程(ID:mhcoding)
: q1 V% z1 T; O. r+ P. n% x周末,我正在准备年度述职的PPT,女朋友在一旁打王者荣耀,突然她好像是越塔送了个人头,很不高兴的问我。
1 e% v# z1 k7 c% S8 M" b$ x
" t( w4 U4 e/ N1 h; ~+ ~ 0 }5 c! j6 O/ L/ v
 
* N- d$ J# {, Z/ z大概过了10分钟左右,我听到了一声:"Defeat",我知道,今天这件事可能又要怪我了。, G+ R. _4 @- s) r9 C5 }

& T5 P& g# W' B9 o7 C# Q) ~. f$ ] 6 A& O. r4 R' s5 ]

q4 t' ^- u# P1 V' C9 [ ! U- \' X$ D% Q0 K, M3 n1 k- o
5 }# B! b% ]8 G) l* w
网络带宽% x2 W! i% B2 ]8 _
带宽,英文名bandwidth,网络带宽是指在单位时间(一般指的是1秒钟)内能传输的数据量。
J1 O& m$ X# O! C) Q数字信息流的基本单位是bit(比特),时间的基本单位是s(秒),因此bit/s(比特/秒)是描述带宽的单位,更长见的是使用 bps(Bit Per Second),称之为比特率表示带宽的单位。比特率越高,每秒传送数据就越多。# V& p4 t" ]. ~9 h8 C$ p
& k- d5 d6 Z5 a6 M3 B) y+ t4 ~. W
我们在电信运营商那里办理宽带时,他们定义的100M、200M等指的就是网络带宽,其单位就是bps。如100Mbps,这的就是100M比特率的带宽。
) [1 s! ~$ ~; m# K4 V更严格的说,电信卖给我们的带宽叫做用户接入带宽,是指用户宽带接入能支持的最高信息传送比特率。假如用户购买的是100M宽带,即电信保证的是从用户光猫到电信交换机之间的带宽是100M,但是网络请求还可能需要通过很多其他的交换机节点,这些交换机之间的带宽也同样影响着终端用户。所以实际用户所使用到的带宽是小于等于100M的。& ~; j, |$ w; ~( `1 `2 X
举一个简单的例子,如果把宽带比做道路,那么带宽表示的就是单位时间内可以通过道路某一个点的数据量,这其实指的就是道路的宽度。带宽越大,就类似高速公路的车道越多,其通行能力越强。
; |7 g. n3 @/ v2 N9 P9 l
# O. t: G S/ z* n) N( ?! u/ D现在,政府在你家门前修了一段公路,是双排四车道的。但是,这并不表示你从家到公司经过的所有道路都是双排四车道。即,你在从家道公司这段路上,能享受的最宽的道路是双排四车道。. J+ a* I! B( x* M h
通常,我们称这个用户可享受的真实带宽为吞吐量。一般情况下,吞吐量都会比自己购买的带宽要低。
9 r1 ~1 s6 q; V. U0 I' ?+ G2 j6 T8 e影响网络中带宽和吞吐量的主要因素有:5 m6 e2 h- ~$ o0 P
- v% d& S. a6 t" v# \) T- ]
- 网络设备(交换机、路由器、集线器);; ]8 |$ e a6 K; f7 M( u) Z* c8 Y
- 拓扑结构(即网络构造形状,如星型、环状);
# ?: e9 o& R1 E' m8 M - 数据类型;
0 {& t0 n( m1 C, j+ E - 用户的数量;1 E1 {8 j& d1 J- A2 O
- 客户机与服务器(如系统总线、磁盘性能、网络适配器、硬件防火墙);; P, R$ p5 H" l; r
- 电力系统和自然灾害引起的故障率。
2 b; ~3 }8 v* {. [; j 
: t4 @( D1 R& e- r h, R# L. i
* ?( s$ D8 g* _) j
% S) r0 p5 y1 n, H: x网络速度9 j2 o( }" S3 a1 w
网络速度一般是指电脑或手机上网时,上传和下载数据时,请求和返回数据所用的时间长短。4 t0 R) G& G# s$ R2 Y. l: E
可想而知,网络速度肯定是和带宽有关系的。不同的带宽所具有的宽带速率肯定是不同的,这里说的宽带速率我们一般分位上行速率和下行速率。
# V" V& B# n% p4 P: J0 K% t7 ~# Q2 v5 K5 i5 B W1 d7 M I
- 上行速率,是指用户向互联网发送信息时的数据传输速率。比如:你向QQ空间传送图片、向百度云服务器传送图片或视频等。“上行速率”决定上传信息的速度。
% Y2 z2 Q. _* i" G - 下行速率,是指互联网向用户发送信息时的数据传输速率,比如打开浏览器,从网上下载文件等。“下行速率”决定下载信息的速度。% a# q! Y$ N `; o9 u
中国电信宽带上下行速率对照关系如下:2 l# a- l/ j( w# q' t
8 I# q3 ]( S+ h2 }9 G
200M的宽带,下行速率是204800kbps,上行速率是10240kbps。
3 g* ~$ e# |0 {2 {5 h W2 i
* Z9 L( ^& V) b( W1 K , g9 V6 i% L H/ i, R: }
速率的单位是:比特/秒(bit/s)或者叫做:比特率(bps),而速度的单位:字节/秒(Byte/s)。: g8 {9 U+ I5 }
而根据换算关系:1Byte=8bits(1字节为8比特),所以速率和速度之间的关系是:速率/8 = 速度。
, M1 Z9 J6 n2 y( L下载速度计算方法
: @7 P5 n* G. L$ w6 s0 w2 w下载速度与下行速率的数值对应关系为:极限下载速度=下行速率/8。3 n" f, w; }4 w9 m2 o1 U+ K
例如200M宽带,其极限下载速度为 204800k/8=25600k字节/秒(Mbps) =25M/s 。当然,这只是理论值。: H3 W. b& d/ Y
上传速度的计算方法5 z0 v% ~' K# {2 ?* s" _
上传速度与上行速率的数值对应关系为:上传速度=极限上行速率/8。3 S3 t" y$ Z" K8 @) l5 E+ ~
例如200M宽带,对应的上行为10240kbps,那么理论的上传速度=10240k/8=1280k字节/秒 = 1.25M/s。当然,这也是理论值。4 Y# h: g5 e% K2 P( P

4 G1 ?1 y$ J4 A5 c: u上行速率比下行速率低的原因8 J: {+ _" t/ x" q6 @( [+ r
通常情况下,上行速率要比下行速率低,主要是受网络技术及线路质量的约束,同时也是为了防止上行速率过高,对整个网络形成冲击,造成网络阻塞,影响网络安全。
0 N# W5 l' k5 e' c% y( \所以,对于200M的宽带,用户可以享受的最高下载速度是25M/s,最高上传速度是1.25M/s,这只是最理想情况下,具体情况还要受很多因素的影响。这个数据不同地区不同运营商可能也会有所不同。% `# ?0 Y) y3 S; c; \, S
所以,千万不要认为,办了200M的宽带,网速就能达到200M了!!!8 C9 @, u5 b3 y2 s6 J4 M7 ^

; J' m7 z% Q0 o! e
3 I* g% E( j$ Q3 T a1 E
2 e5 Q/ C+ i; @ e
9 L2 [) r W4 _& n8 [
8 g! n* a/ e8 S) c+ z6 b- `& t网络延迟
) L# i0 x* r3 `1 {+ a网络延迟,表示在传输介质中传输所用的时间,即从报文开始进入网络到它开始离开网络之间的时间。. I- D0 m {) G6 e7 x+ Q
网络延迟,最明显的表现就是玩游戏卡顿。因为在玩游戏的过程中,用户操作手机,手机需要将用户的操作传到服务器,服务器再将操作后的画面回传给用户,如果这个数据传递时间过长,表示出来就是页面卡顿,即网络延迟高。/ p6 Y1 i. j- t/ B" Z

# b. w) x. i& V+ o$ C网络延迟一般分位以下几个级别:' d: ^6 a U- g& t3 ^# {$ f R" {+ d
: A" F5 B# m- J; Q5 W+ }
- 1~30ms:极快,几乎察觉不出有延迟,玩任何游戏速度都特别顺畅; }, X* H, r' d% w: x
- 31~50ms:良好,可以正常游戏,没有明显的延迟情况
% f! [0 U( J9 \' V0 L" X1 k" y& U - 51~100ms:普通,对抗类游戏能感觉出明显延迟,稍有停顿
) P$ U4 W' A- p! y - 100ms:差,无法正常游戏,有卡顿,丢包并掉线现象
4 I |& m( i6 [' O- M' H) L& J; T. l ' P; y# d9 e9 d& B6 P

/ q( `$ j9 T! n5 v( {, w
3 N/ X; H( K6 i" v) |: R网络带宽、网络速度和网络延迟之间的关系
% c- y% i# K" z* q前面我们说过网络速度和网络带宽之间的关系,理想情况下,带宽越高网速越快。+ J: N( Z0 F4 e! q
那么,是不是带宽越高,网速越快,延迟一定越低呢?4 N6 x: u* |4 `
其实不是的!1 ]& ~ ] f4 U8 W2 _" T. \3 q' }
就像我们玩游戏一样,其实对于很多游戏来说,对网速的要求并没有那么高,因为每秒钟需要的流量并不多,其实一般的游戏,512KB都够用的。游戏延迟和网速的关系并不大。. m# W& q9 L% a, x% T
影响网络延迟的主要因素是目标服务器之间的节点数、节点性能和各节点之间的距离。
" @1 ^2 i/ z) H- `比如我们要驾车从A点到B点去,我们选择道路的时候,首先考虑的肯定是路线长短、红绿灯多少、事故发生率灯。虽然道理的宽窄可能从某些程度上影响了我们的选择,但是并不是决定性的。
* N" X) y! Q8 s2 s& e/ `" o就像同样是玩王者荣耀的游戏,如果王者荣耀的服务器部署在深圳,那么深圳的用户和哈尔滨的用户相比,肯定是深圳的用户玩游戏要更加流畅一些。* S- q# C# m- ]
更加明显的就是玩那种境外的游戏的朋友肯定更加有体会。
1 [ i) M- t- O& J 6 }, H9 _9 P' }* G4 J; U

/ Z0 P4 f" L; T/ i, Z: G 6 D. v. y* Q9 t! E: ^( q! q7 ?6 L
4 t. e& ?; e0 J6 z$ @/ A. i6 {
如何降低延迟
( [! a# M4 k* I) J% o4 Q e6 m其实,如果我们玩的是国内的游戏的话,地域的影响目前对于广大游戏玩家来说并不算很大,因为很多游戏公司都会在全国多个地方架设机房。这样可以就近连接服务器。这也是很多服务器分为东北1区、浙江区、北京区等的原因了。; ^; s" P/ N+ [" C
那么,如果自己玩游戏确实延迟很高,该如何解决呢?* S4 \+ J0 z ?- o
1、如果自己的宽带很低的话,第一步肯定是提升宽带。100M和200M的用户来说,区别不大。但是,如果是5M和50M之间可能还是有区别的。+ w+ q8 Y7 `0 B- ^! u5 N4 `4 `- @, i
2、换运营商或者换区。有些游戏有电信区、联通区,那么尽量选择和自己的网络供应商相同的区来玩,这样可以大大减少网络延迟。0 Q. _- @" g) V E
3、使用加速器。游戏加速器的原理是通过选择新的网络节点,绕过原来的延迟较高的节点,以此达到游戏延迟降低的效果。
" k; i( R% C) y
# w" @, K9 c! F# u) L; R
5 Q7 n/ A( i) t$ F, J2 A0 y , A' c0 v4 o+ G5 d8 j% ^

4 l+ b: x% b" s- P% p. A: H【End】
5 x; U5 D1 S4 V1 _2 Q5 J
( {; e) ~ k0 w 热 文 推 荐
0 K- e7 L, L8 P6 {0 t W- S
% `8 ]$ }- P. ]* O7 x8 G) S- \2 [5 m# \' u5 |% ]/ T
System.out.println("点个在看吧!");' U9 V! m9 w( z& H/ x' r) \
console.log("点个在看吧!");
8 K* a3 {# C% ?& B$ } dprint("点个在看吧!");0 J# O9 m! @4 q0 Q! {
printf("点个在看吧!\n");! E! r* c) A1 O3 S
cout |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|