|
|
$ G7 x# o, y. q: m
本文经授权转载自漫话编程(ID:mhcoding)* s7 Q/ l+ d! N9 O5 p8 r ]: e' w
周末,我正在准备年度述职的PPT,女朋友在一旁打王者荣耀,突然她好像是越塔送了个人头,很不高兴的问我。
3 ?7 F( K& t& U# D- t8 Z + O2 a! b' J0 \5 z
& y. Z: ^2 I( l% ?) ^, L
 
7 a/ U) k$ k) \/ X- W% M0 o0 O大概过了10分钟左右,我听到了一声:"Defeat",我知道,今天这件事可能又要怪我了。
' ]2 w3 | @/ l- H ) ?2 }0 R2 D9 Y8 Z# Y
P* l: {( p: l4 u* o

" t6 o( }9 k8 q7 {$ t4 v q7 M9 V! z' u5 [
5 q/ P: ^6 Y: R7 L
网络带宽# \2 s! Y8 E) f3 {, k
带宽,英文名bandwidth,网络带宽是指在单位时间(一般指的是1秒钟)内能传输的数据量。. } u/ [8 t" ]& V3 f
数字信息流的基本单位是bit(比特),时间的基本单位是s(秒),因此bit/s(比特/秒)是描述带宽的单位,更长见的是使用 bps(Bit Per Second),称之为比特率表示带宽的单位。比特率越高,每秒传送数据就越多。/ p+ v# C+ d, ?; w7 ]

& ]9 a. g, h3 s# V; }! i3 o ]我们在电信运营商那里办理宽带时,他们定义的100M、200M等指的就是网络带宽,其单位就是bps。如100Mbps,这的就是100M比特率的带宽。
3 s/ G$ ~/ _, P更严格的说,电信卖给我们的带宽叫做用户接入带宽,是指用户宽带接入能支持的最高信息传送比特率。假如用户购买的是100M宽带,即电信保证的是从用户光猫到电信交换机之间的带宽是100M,但是网络请求还可能需要通过很多其他的交换机节点,这些交换机之间的带宽也同样影响着终端用户。所以实际用户所使用到的带宽是小于等于100M的。& {. `) F7 L: W" P5 }) h
举一个简单的例子,如果把宽带比做道路,那么带宽表示的就是单位时间内可以通过道路某一个点的数据量,这其实指的就是道路的宽度。带宽越大,就类似高速公路的车道越多,其通行能力越强。
6 p+ e2 r; \. ]% ~% S% k) Z6 g9 m8 X8 r0 W; l
4 ^) f' K: m( n; S( `: v6 b, B现在,政府在你家门前修了一段公路,是双排四车道的。但是,这并不表示你从家到公司经过的所有道路都是双排四车道。即,你在从家道公司这段路上,能享受的最宽的道路是双排四车道。
/ Q h8 Y Q6 @7 F1 }通常,我们称这个用户可享受的真实带宽为吞吐量。一般情况下,吞吐量都会比自己购买的带宽要低。
) s7 o7 b- i5 |% C! Y+ N7 }影响网络中带宽和吞吐量的主要因素有:. N3 R; P) z% _0 M* X7 f! C
: O* ^; U0 e3 b
- 网络设备(交换机、路由器、集线器);
8 Z" i l" ]3 E. S- H5 l r/ W - 拓扑结构(即网络构造形状,如星型、环状);6 H3 H: m; X, `. B7 k1 k9 I
- 数据类型;
/ m6 j0 K2 E7 N6 N% r - 用户的数量;
( K. T5 t" I! a/ F - 客户机与服务器(如系统总线、磁盘性能、网络适配器、硬件防火墙);
% W8 _$ |( h* x1 V" |$ H+ s - 电力系统和自然灾害引起的故障率。
4 E3 X6 v2 z' k+ w* _' ] 
) O5 S* r7 W' _. A% _$ f& L
8 \; P8 \% M7 t8 K
) h3 E8 Q; E' a1 E! X# J网络速度
+ O" j4 C9 d) E" B5 d* h网络速度一般是指电脑或手机上网时,上传和下载数据时,请求和返回数据所用的时间长短。6 p2 c3 N. r6 `* T: @$ e
可想而知,网络速度肯定是和带宽有关系的。不同的带宽所具有的宽带速率肯定是不同的,这里说的宽带速率我们一般分位上行速率和下行速率。
# w1 M y+ |4 E% b9 i! J
4 E6 Y# N. H! }: Q5 p) Z7 L$ \- 上行速率,是指用户向互联网发送信息时的数据传输速率。比如:你向QQ空间传送图片、向百度云服务器传送图片或视频等。“上行速率”决定上传信息的速度。
H) E. c4 o1 M8 f' y4 I5 O; W - 下行速率,是指互联网向用户发送信息时的数据传输速率,比如打开浏览器,从网上下载文件等。“下行速率”决定下载信息的速度。: b, K! n6 ?% _7 j: _8 x: x3 F4 V
中国电信宽带上下行速率对照关系如下:
+ L+ m. \! a$ R 4 O1 D2 W) n" W5 C
200M的宽带,下行速率是204800kbps,上行速率是10240kbps。" N' `* V2 n. {$ j
1 L! X" W% `# w/ S9 v) g. @# i

1 w5 N" S, n7 ]& n. h+ U速率的单位是:比特/秒(bit/s)或者叫做:比特率(bps),而速度的单位:字节/秒(Byte/s)。
& r( W) Q( I$ I7 m: E2 q9 ?2 k3 ]$ t/ x而根据换算关系:1Byte=8bits(1字节为8比特),所以速率和速度之间的关系是:速率/8 = 速度。
- a4 ]0 s1 @* F6 `1 n( u. v9 z下载速度计算方法& k* h5 p& ]6 Q- n4 O
下载速度与下行速率的数值对应关系为:极限下载速度=下行速率/8。6 N7 f" d y3 o
例如200M宽带,其极限下载速度为 204800k/8=25600k字节/秒(Mbps) =25M/s 。当然,这只是理论值。
3 }5 o7 c5 O" `& U' [3 \ { Y上传速度的计算方法8 Z. |* V& k; g* W
上传速度与上行速率的数值对应关系为:上传速度=极限上行速率/8。
1 H" C; f: B! [( }例如200M宽带,对应的上行为10240kbps,那么理论的上传速度=10240k/8=1280k字节/秒 = 1.25M/s。当然,这也是理论值。1 _2 [# ]& x+ h- |: K& ~9 E( W

- }1 n4 S2 n- q. L0 G& @1 {6 }上行速率比下行速率低的原因
) K* S2 `: E* \通常情况下,上行速率要比下行速率低,主要是受网络技术及线路质量的约束,同时也是为了防止上行速率过高,对整个网络形成冲击,造成网络阻塞,影响网络安全。$ H0 K9 O. [" }$ ?
所以,对于200M的宽带,用户可以享受的最高下载速度是25M/s,最高上传速度是1.25M/s,这只是最理想情况下,具体情况还要受很多因素的影响。这个数据不同地区不同运营商可能也会有所不同。
1 s M7 o0 i, X( p* a0 x3 X所以,千万不要认为,办了200M的宽带,网速就能达到200M了!!!4 \- c' U; o, N7 y4 i
% y A3 x! ^+ a, J
, o U7 V3 e; x0 _
" _/ p- r) R2 ^6 A0 m

o; o" W; s( g# }1 A4 Z) c& g! @# ~7 R7 a% F5 J
网络延迟
4 t9 V7 R5 h4 X网络延迟,表示在传输介质中传输所用的时间,即从报文开始进入网络到它开始离开网络之间的时间。
9 H; E) S& @, ?/ Y8 G7 T网络延迟,最明显的表现就是玩游戏卡顿。因为在玩游戏的过程中,用户操作手机,手机需要将用户的操作传到服务器,服务器再将操作后的画面回传给用户,如果这个数据传递时间过长,表示出来就是页面卡顿,即网络延迟高。4 }% z8 ]* l3 ~- j

; R3 b5 J% @8 E9 U2 ^: C网络延迟一般分位以下几个级别:
. H$ [3 Y! @" X; ~! V$ k/ B# T4 z
3 l, [9 N% l8 a/ @( [5 u- 1~30ms:极快,几乎察觉不出有延迟,玩任何游戏速度都特别顺畅
) k4 j( M v/ ?, n' a8 t - 31~50ms:良好,可以正常游戏,没有明显的延迟情况; l$ k* z F" M
- 51~100ms:普通,对抗类游戏能感觉出明显延迟,稍有停顿
6 K3 g; J5 S! Y- S5 Y - 100ms:差,无法正常游戏,有卡顿,丢包并掉线现象
, X; e; P, g5 R/ I' [6 h5 `
, R7 u5 n; q( e! q" x1 \' u

6 F2 E' A m& H5 @- G0 |6 N
- |3 C3 O. _, Z% |7 P. Z网络带宽、网络速度和网络延迟之间的关系; R% Y3 v: k: l- P. m( ]: l
前面我们说过网络速度和网络带宽之间的关系,理想情况下,带宽越高网速越快。$ @* i; M* I) o3 @- S
那么,是不是带宽越高,网速越快,延迟一定越低呢?/ D! L7 o$ A' p/ {
其实不是的!
) T3 A i' E5 }" ^/ Y1 F# Q! [# b就像我们玩游戏一样,其实对于很多游戏来说,对网速的要求并没有那么高,因为每秒钟需要的流量并不多,其实一般的游戏,512KB都够用的。游戏延迟和网速的关系并不大。# c; ?; `, b% ?
影响网络延迟的主要因素是目标服务器之间的节点数、节点性能和各节点之间的距离。+ M, k4 U; {' d
比如我们要驾车从A点到B点去,我们选择道路的时候,首先考虑的肯定是路线长短、红绿灯多少、事故发生率灯。虽然道理的宽窄可能从某些程度上影响了我们的选择,但是并不是决定性的。7 E, ]/ Z4 f" @ k4 G
就像同样是玩王者荣耀的游戏,如果王者荣耀的服务器部署在深圳,那么深圳的用户和哈尔滨的用户相比,肯定是深圳的用户玩游戏要更加流畅一些。
1 q; b5 t$ U: w) A5 ~更加明显的就是玩那种境外的游戏的朋友肯定更加有体会。
) o) ~6 a4 q9 s8 S8 L 7 F% \" h6 R: K* n
$ l6 i# V8 N9 A3 R! Q
/ E$ `' T% i1 \8 a3 b) L; M
% Y; V, {7 W% s3 {1 x+ C如何降低延迟& e. l0 i' J7 L. v
其实,如果我们玩的是国内的游戏的话,地域的影响目前对于广大游戏玩家来说并不算很大,因为很多游戏公司都会在全国多个地方架设机房。这样可以就近连接服务器。这也是很多服务器分为东北1区、浙江区、北京区等的原因了。
~, S2 H5 N9 z7 g那么,如果自己玩游戏确实延迟很高,该如何解决呢?
u Q- m; ]' c K# Z- ^0 _$ G1、如果自己的宽带很低的话,第一步肯定是提升宽带。100M和200M的用户来说,区别不大。但是,如果是5M和50M之间可能还是有区别的。
: u9 @2 S1 v, p- }! v% ~ ]2、换运营商或者换区。有些游戏有电信区、联通区,那么尽量选择和自己的网络供应商相同的区来玩,这样可以大大减少网络延迟。
2 r$ C* E7 q1 t" a# t! O S' E0 h- T8 ^; q3、使用加速器。游戏加速器的原理是通过选择新的网络节点,绕过原来的延迟较高的节点,以此达到游戏延迟降低的效果。
+ u+ P I7 t, b" ?7 q! c7 n2 ^
$ t* Q; k$ j* N2 u& D2 B; a 8 u) b T" j' s3 u
4 B* f7 s. Q; I% I% Y
: n4 c: [4 W8 s& _6 R! ^
【End】
5 [$ e2 H6 }; }8 ~) F4 h. p5 b O$ D
( N0 _3 u8 _2 x2 X 热 文 推 荐
+ R2 W9 M3 Z( x& w e
5 U7 B# ^4 _! v7 |
* [' f3 J1 ~" [, Z" H" B6 d+ s. aSystem.out.println("点个在看吧!");$ g- q' ]1 N8 ^( a
console.log("点个在看吧!");2 B* A; K$ U9 q+ I& q# X
print("点个在看吧!");& Y0 P6 s" X, u* m3 ~
printf("点个在看吧!\n");' M+ [, }# y, y; t
cout |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|