|
6 \2 I3 \" s8 V# Z# J
本文经授权转载自漫话编程(ID:mhcoding)7 G9 P, S2 [) `" V9 h' Y2 [1 M/ [
周末,我正在准备年度述职的PPT,女朋友在一旁打王者荣耀,突然她好像是越塔送了个人头,很不高兴的问我。, T# U. ^1 w' V v
4 A% m( [! c; J

* u* {" }8 K4 R! T# ^ 
# B# |( g9 W! `5 j2 n' O4 |大概过了10分钟左右,我听到了一声:"Defeat",我知道,今天这件事可能又要怪我了。
! E8 Z1 j( i: R. M! g ' l/ Q' ]- s2 M, Q( k3 D& w% d
4 A9 S* k0 d5 [5 U1 D8 U8 P8 T

7 d* U; m! R/ ?" K $ Y( h5 G" B' V6 t! P0 K4 Q6 X4 W
+ F/ u+ t, U! G: e! G0 g网络带宽
# q+ J2 @/ `! r8 v% U带宽,英文名bandwidth,网络带宽是指在单位时间(一般指的是1秒钟)内能传输的数据量。
2 s4 B3 u4 H: N! a C$ E/ c# J. A数字信息流的基本单位是bit(比特),时间的基本单位是s(秒),因此bit/s(比特/秒)是描述带宽的单位,更长见的是使用 bps(Bit Per Second),称之为比特率表示带宽的单位。比特率越高,每秒传送数据就越多。
7 ^8 A( v1 k* v- V # U) @8 y0 f/ s$ G" t# k
我们在电信运营商那里办理宽带时,他们定义的100M、200M等指的就是网络带宽,其单位就是bps。如100Mbps,这的就是100M比特率的带宽。9 s4 A( h+ ?( H2 D- N+ {# P
更严格的说,电信卖给我们的带宽叫做用户接入带宽,是指用户宽带接入能支持的最高信息传送比特率。假如用户购买的是100M宽带,即电信保证的是从用户光猫到电信交换机之间的带宽是100M,但是网络请求还可能需要通过很多其他的交换机节点,这些交换机之间的带宽也同样影响着终端用户。所以实际用户所使用到的带宽是小于等于100M的。' s1 V/ P) ^ p6 o5 ]( \
举一个简单的例子,如果把宽带比做道路,那么带宽表示的就是单位时间内可以通过道路某一个点的数据量,这其实指的就是道路的宽度。带宽越大,就类似高速公路的车道越多,其通行能力越强。
4 R9 Q" N c0 O 8 w+ V- y; Z1 i$ D0 H. ]
现在,政府在你家门前修了一段公路,是双排四车道的。但是,这并不表示你从家到公司经过的所有道路都是双排四车道。即,你在从家道公司这段路上,能享受的最宽的道路是双排四车道。
9 E8 ]' e" E( i5 m" p! R/ x+ W通常,我们称这个用户可享受的真实带宽为吞吐量。一般情况下,吞吐量都会比自己购买的带宽要低。/ h" @# f0 r1 A! L- w) a i
影响网络中带宽和吞吐量的主要因素有:7 I. @ q8 y' ~7 a
* H0 C+ D( @* G
- 网络设备(交换机、路由器、集线器);
8 b1 m+ [2 [2 `& m* E - 拓扑结构(即网络构造形状,如星型、环状);: A' Y w4 O2 E& c6 g
- 数据类型;; u3 v2 Y' S8 X& K$ ~: C, J5 ]
- 用户的数量;7 n- i& g- n: H; ~: w
- 客户机与服务器(如系统总线、磁盘性能、网络适配器、硬件防火墙);
3 d8 i) g7 ^3 n - 电力系统和自然灾害引起的故障率。
2 c' @# o& k) t" S" A7 @& H4 ^7 X p 
8 E+ L; I! ~3 f* c6 m
% [: t/ T, y0 J' e* ^5 U) |+ d, _- V3 N1 L4 c9 f
网络速度; ^+ h$ [1 N% m B2 {; f8 Z
网络速度一般是指电脑或手机上网时,上传和下载数据时,请求和返回数据所用的时间长短。# D; J! U6 L* c" n8 `6 G) Z
可想而知,网络速度肯定是和带宽有关系的。不同的带宽所具有的宽带速率肯定是不同的,这里说的宽带速率我们一般分位上行速率和下行速率。
% N- h5 l. R0 t7 T: j. m0 X, K/ d/ H0 p8 i' Y1 C
- 上行速率,是指用户向互联网发送信息时的数据传输速率。比如:你向QQ空间传送图片、向百度云服务器传送图片或视频等。“上行速率”决定上传信息的速度。
9 k0 ^* s! v y, D1 c0 T - 下行速率,是指互联网向用户发送信息时的数据传输速率,比如打开浏览器,从网上下载文件等。“下行速率”决定下载信息的速度。% j; A/ V9 F& @2 H5 y
中国电信宽带上下行速率对照关系如下:
: s+ N: j5 y4 n" r% i ; M. [7 ~! c- V
200M的宽带,下行速率是204800kbps,上行速率是10240kbps。, S% X# C f) n, e

5 ?; ]+ C* H$ z # i+ S4 w; J4 u% L# ]
速率的单位是:比特/秒(bit/s)或者叫做:比特率(bps),而速度的单位:字节/秒(Byte/s)。3 g5 D5 `8 ^6 S3 ~
而根据换算关系:1Byte=8bits(1字节为8比特),所以速率和速度之间的关系是:速率/8 = 速度。
+ K" @# E& w! V6 L2 ~下载速度计算方法8 Y, Y( _1 G) G5 y( J
下载速度与下行速率的数值对应关系为:极限下载速度=下行速率/8。" Q) T$ s! V9 B* u4 M
例如200M宽带,其极限下载速度为 204800k/8=25600k字节/秒(Mbps) =25M/s 。当然,这只是理论值。
& g+ f$ j& x$ v/ j上传速度的计算方法
0 F7 K0 H( W) r# S* b上传速度与上行速率的数值对应关系为:上传速度=极限上行速率/8。& I! @$ H+ X7 r+ D4 S* _
例如200M宽带,对应的上行为10240kbps,那么理论的上传速度=10240k/8=1280k字节/秒 = 1.25M/s。当然,这也是理论值。 G% T1 l. n7 M

, l1 j2 x: o$ l$ M9 z+ I# B4 j上行速率比下行速率低的原因
: z* u) M5 O! U通常情况下,上行速率要比下行速率低,主要是受网络技术及线路质量的约束,同时也是为了防止上行速率过高,对整个网络形成冲击,造成网络阻塞,影响网络安全。
0 s: U# E, x5 t4 v所以,对于200M的宽带,用户可以享受的最高下载速度是25M/s,最高上传速度是1.25M/s,这只是最理想情况下,具体情况还要受很多因素的影响。这个数据不同地区不同运营商可能也会有所不同。
* D/ ?5 d/ ?6 t4 b/ [: j; t所以,千万不要认为,办了200M的宽带,网速就能达到200M了!!!
U/ m1 ~9 d8 z) k3 q ! U6 j8 G2 X$ `% `
& Y& z$ Q) N7 Y. t7 s

# o$ s3 ^ L# I! ~! f; h, n ! d/ m) [( B9 f9 B' Y
8 g$ ?+ J- H* D4 s4 h+ z) g' g
网络延迟
1 e% }! ^% }3 x0 v6 a网络延迟,表示在传输介质中传输所用的时间,即从报文开始进入网络到它开始离开网络之间的时间。
. Y$ m$ C$ o& g2 T4 J# T1 N' l网络延迟,最明显的表现就是玩游戏卡顿。因为在玩游戏的过程中,用户操作手机,手机需要将用户的操作传到服务器,服务器再将操作后的画面回传给用户,如果这个数据传递时间过长,表示出来就是页面卡顿,即网络延迟高。& O9 G, U3 w* s: P3 C- [
/ N% W( T3 w% K6 t
网络延迟一般分位以下几个级别:
2 k. g1 ~% g M" K& e% O& r) D/ |6 [
: W, m& S2 v* M; [$ [- 1~30ms:极快,几乎察觉不出有延迟,玩任何游戏速度都特别顺畅' m P2 ~; D* ^8 y& w2 M. _
- 31~50ms:良好,可以正常游戏,没有明显的延迟情况
3 \3 N% \# g4 C0 l" v - 51~100ms:普通,对抗类游戏能感觉出明显延迟,稍有停顿
/ z- j$ _: z2 U4 K1 y - 100ms:差,无法正常游戏,有卡顿,丢包并掉线现象
$ x. }$ Q) O, C4 U

0 H$ N3 Z a9 K. I$ x+ `" D
) ~0 t) z, s2 k; |9 N+ e5 y5 b/ s) p% P h
网络带宽、网络速度和网络延迟之间的关系
( E+ O5 }3 D4 Z4 `0 o, s. j前面我们说过网络速度和网络带宽之间的关系,理想情况下,带宽越高网速越快。
6 P+ @" M, V: R9 n, {那么,是不是带宽越高,网速越快,延迟一定越低呢?
2 M2 L0 f, g. @# M* _% r& q0 R2 Y其实不是的!
) r3 K- H* C4 c7 r4 p- |! M就像我们玩游戏一样,其实对于很多游戏来说,对网速的要求并没有那么高,因为每秒钟需要的流量并不多,其实一般的游戏,512KB都够用的。游戏延迟和网速的关系并不大。
' c u5 _& c0 A: t3 R- E影响网络延迟的主要因素是目标服务器之间的节点数、节点性能和各节点之间的距离。
6 s B: i5 e9 x T比如我们要驾车从A点到B点去,我们选择道路的时候,首先考虑的肯定是路线长短、红绿灯多少、事故发生率灯。虽然道理的宽窄可能从某些程度上影响了我们的选择,但是并不是决定性的。4 F% x6 {5 K4 B% u
就像同样是玩王者荣耀的游戏,如果王者荣耀的服务器部署在深圳,那么深圳的用户和哈尔滨的用户相比,肯定是深圳的用户玩游戏要更加流畅一些。6 V. E- E3 `% u) A9 H' I
更加明显的就是玩那种境外的游戏的朋友肯定更加有体会。
1 l- q0 k) S( o: x3 ] " b) E6 D! L) E( H+ c# c! H
! a2 q" V- f/ E; L6 N. Q$ ?8 T
( u% {& I- W- j2 b
" C3 x8 p6 {% U' `6 G: W; S
如何降低延迟
" ?/ C2 x6 q& {* b5 w9 ~其实,如果我们玩的是国内的游戏的话,地域的影响目前对于广大游戏玩家来说并不算很大,因为很多游戏公司都会在全国多个地方架设机房。这样可以就近连接服务器。这也是很多服务器分为东北1区、浙江区、北京区等的原因了。
0 C- l& t% _6 @+ D那么,如果自己玩游戏确实延迟很高,该如何解决呢?% l; w# \9 y; d# j% G/ {
1、如果自己的宽带很低的话,第一步肯定是提升宽带。100M和200M的用户来说,区别不大。但是,如果是5M和50M之间可能还是有区别的。
( \, |( W' H3 {2、换运营商或者换区。有些游戏有电信区、联通区,那么尽量选择和自己的网络供应商相同的区来玩,这样可以大大减少网络延迟。' [6 Z7 w$ L% A. I2 Y% ]
3、使用加速器。游戏加速器的原理是通过选择新的网络节点,绕过原来的延迟较高的节点,以此达到游戏延迟降低的效果。
% N4 |$ D7 E' p. J
0 }% z7 D$ l7 s
: X2 O/ E4 U# `: Q
( d: | O8 v# ~; o. Y+ g' T
3 P. X5 P; X1 Y5 [4 X【End】
) P' \. q/ W- W f2 n$ U" Q% e1 N0 a" {/ ?
热 文 推 荐 3 ~; h& A; Z; ]0 M0 J0 o
1 }9 H8 Z. k- r; t7 A& y/ y' Y3 S' }
System.out.println("点个在看吧!");
* \2 j- W8 z5 X* }9 ]console.log("点个在看吧!");
& I* l3 q- }) w# }* T% ^* Y. qprint("点个在看吧!");
" Z7 l' ]4 O8 @0 b8 ?- yprintf("点个在看吧!\n");
1 {0 ~7 f) K4 s# a- Rcout |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|