|
|

* A1 O( C/ h/ n5 `3 z y本文经授权转载自漫话编程(ID:mhcoding)) B5 F8 W! U) H* Z9 r& X
周末,我正在准备年度述职的PPT,女朋友在一旁打王者荣耀,突然她好像是越塔送了个人头,很不高兴的问我。
, M1 z; E* W! M3 N# [; ]. R 5 d' @9 M. K o8 v1 n

3 `, J% o7 q! T5 } 
" o5 T: B6 A( E m大概过了10分钟左右,我听到了一声:"Defeat",我知道,今天这件事可能又要怪我了。
1 t- |7 V& n8 P3 T7 t% `7 Z# l
( \' L; D/ ~! ^! x# H
% M N/ S I; O/ g& {% T- X 0 v C% F; ~1 s2 {

/ _5 U: a2 {2 L5 J$ t. U/ [5 O8 J7 E) L
网络带宽# L5 p- @1 x* P4 g
带宽,英文名bandwidth,网络带宽是指在单位时间(一般指的是1秒钟)内能传输的数据量。& Y; I* h8 J) x
数字信息流的基本单位是bit(比特),时间的基本单位是s(秒),因此bit/s(比特/秒)是描述带宽的单位,更长见的是使用 bps(Bit Per Second),称之为比特率表示带宽的单位。比特率越高,每秒传送数据就越多。5 }& c1 u- r' n S

9 u$ w1 h n5 r, w ?我们在电信运营商那里办理宽带时,他们定义的100M、200M等指的就是网络带宽,其单位就是bps。如100Mbps,这的就是100M比特率的带宽。6 i1 I, s+ t/ [4 G
更严格的说,电信卖给我们的带宽叫做用户接入带宽,是指用户宽带接入能支持的最高信息传送比特率。假如用户购买的是100M宽带,即电信保证的是从用户光猫到电信交换机之间的带宽是100M,但是网络请求还可能需要通过很多其他的交换机节点,这些交换机之间的带宽也同样影响着终端用户。所以实际用户所使用到的带宽是小于等于100M的。: R4 |) o! G1 c$ J0 e6 l% T- M x
举一个简单的例子,如果把宽带比做道路,那么带宽表示的就是单位时间内可以通过道路某一个点的数据量,这其实指的就是道路的宽度。带宽越大,就类似高速公路的车道越多,其通行能力越强。7 g/ Q$ k, z, l: t/ w2 O
0 {5 |/ S# d7 f2 g. X
现在,政府在你家门前修了一段公路,是双排四车道的。但是,这并不表示你从家到公司经过的所有道路都是双排四车道。即,你在从家道公司这段路上,能享受的最宽的道路是双排四车道。) S: J5 t- I2 P3 \) @
通常,我们称这个用户可享受的真实带宽为吞吐量。一般情况下,吞吐量都会比自己购买的带宽要低。6 v6 d0 U! G, ^# o
影响网络中带宽和吞吐量的主要因素有:1 D: B! H+ D8 u& Z
" ?2 x& s, o6 b
- 网络设备(交换机、路由器、集线器);
' N1 K# j1 \/ ?) A - 拓扑结构(即网络构造形状,如星型、环状);
! g& [7 ?9 _5 n* r( k3 R - 数据类型;
' {, z* V! f$ ]1 H0 G - 用户的数量;2 c! [( g/ n- ~( _
- 客户机与服务器(如系统总线、磁盘性能、网络适配器、硬件防火墙);
& c+ D: \/ D5 |8 L - 电力系统和自然灾害引起的故障率。
; z# m$ F! j: } ' a& c6 [6 W+ u K0 G+ ~

+ R/ `' v' E. R$ E( n4 b* V
5 b9 ^# k5 e$ L- u: l1 S. o网络速度
* e8 o8 }2 @) _; T网络速度一般是指电脑或手机上网时,上传和下载数据时,请求和返回数据所用的时间长短。5 Q/ j+ o9 f, P2 U
可想而知,网络速度肯定是和带宽有关系的。不同的带宽所具有的宽带速率肯定是不同的,这里说的宽带速率我们一般分位上行速率和下行速率。 `# v3 ^1 ~7 f
0 z0 g4 A+ l" Y
- 上行速率,是指用户向互联网发送信息时的数据传输速率。比如:你向QQ空间传送图片、向百度云服务器传送图片或视频等。“上行速率”决定上传信息的速度。6 E5 Q, y' G7 y$ I5 \
- 下行速率,是指互联网向用户发送信息时的数据传输速率,比如打开浏览器,从网上下载文件等。“下行速率”决定下载信息的速度。' ^7 U8 e- p6 Y
中国电信宽带上下行速率对照关系如下:- ~) J8 S+ u9 C' S; @: P8 Z
. `. ^6 z$ Q$ p
200M的宽带,下行速率是204800kbps,上行速率是10240kbps。6 _! X8 \, m+ `! A; L* d3 r# s
( X/ H+ b4 j, I; i( _

& n( @/ q& [$ `; `2 L f速率的单位是:比特/秒(bit/s)或者叫做:比特率(bps),而速度的单位:字节/秒(Byte/s)。
5 k& G! d' M0 ^; L而根据换算关系:1Byte=8bits(1字节为8比特),所以速率和速度之间的关系是:速率/8 = 速度。
. d' y8 c) c' m) v下载速度计算方法) j9 [) ^5 W+ G* G+ c
下载速度与下行速率的数值对应关系为:极限下载速度=下行速率/8。" w5 T6 z. j6 C+ x% f7 ?
例如200M宽带,其极限下载速度为 204800k/8=25600k字节/秒(Mbps) =25M/s 。当然,这只是理论值。
/ A: m* x# r, W: U6 X/ N上传速度的计算方法
; [' \/ P7 Q4 W+ Y' j上传速度与上行速率的数值对应关系为:上传速度=极限上行速率/8。
i6 r+ _% g: _, z9 |例如200M宽带,对应的上行为10240kbps,那么理论的上传速度=10240k/8=1280k字节/秒 = 1.25M/s。当然,这也是理论值。
7 E I$ x, Y! |* ?3 w; T ; Z6 P; R- W. @; @% I$ H: ?
上行速率比下行速率低的原因
( I' [ Z7 ~; @$ K9 M通常情况下,上行速率要比下行速率低,主要是受网络技术及线路质量的约束,同时也是为了防止上行速率过高,对整个网络形成冲击,造成网络阻塞,影响网络安全。. C$ a+ e& E- ?) }5 h6 c% W) |! w
所以,对于200M的宽带,用户可以享受的最高下载速度是25M/s,最高上传速度是1.25M/s,这只是最理想情况下,具体情况还要受很多因素的影响。这个数据不同地区不同运营商可能也会有所不同。
1 X1 j. u8 `& y- U; @所以,千万不要认为,办了200M的宽带,网速就能达到200M了!!!. H7 m7 f" p# |& F" r( x/ n$ B. Z
" [$ ?) W2 p6 s
# q% k( o/ Z) ^. r, T! C

* f# V& T0 X, N% M! V' G $ }( ~! d6 |) y/ |
2 a9 c' R+ c4 Q0 r2 p* Z网络延迟) s" |+ L. w' H2 T% |. M
网络延迟,表示在传输介质中传输所用的时间,即从报文开始进入网络到它开始离开网络之间的时间。4 p! V* Y3 X2 k" ]
网络延迟,最明显的表现就是玩游戏卡顿。因为在玩游戏的过程中,用户操作手机,手机需要将用户的操作传到服务器,服务器再将操作后的画面回传给用户,如果这个数据传递时间过长,表示出来就是页面卡顿,即网络延迟高。4 K# x+ {# M4 [- e

* ^6 v- }* X* v0 v网络延迟一般分位以下几个级别:
/ F5 h+ B/ N0 ~/ C2 X" }7 I9 z- f/ {, e" v& o" q4 U ?* V6 d
- 1~30ms:极快,几乎察觉不出有延迟,玩任何游戏速度都特别顺畅* w# u$ W3 M0 |7 L/ t& q# z
- 31~50ms:良好,可以正常游戏,没有明显的延迟情况
* P6 J% A4 u0 f7 e: ~- P r. D - 51~100ms:普通,对抗类游戏能感觉出明显延迟,稍有停顿5 z7 o/ b7 \4 u% \
- 100ms:差,无法正常游戏,有卡顿,丢包并掉线现象' T" a, r' G+ |/ w

F F0 e5 r: b# @ ~& C; o* d. j
/ q4 g( a, m) @4 f5 w0 R; j p0 N- ]0 u
网络带宽、网络速度和网络延迟之间的关系
, s$ _( q& K; W! F2 [前面我们说过网络速度和网络带宽之间的关系,理想情况下,带宽越高网速越快。! i9 X# F+ c7 _$ y$ u$ q
那么,是不是带宽越高,网速越快,延迟一定越低呢?/ E! z( m+ L' L! b
其实不是的!- n6 d' d" y. L% c
就像我们玩游戏一样,其实对于很多游戏来说,对网速的要求并没有那么高,因为每秒钟需要的流量并不多,其实一般的游戏,512KB都够用的。游戏延迟和网速的关系并不大。! v; g n ~0 K8 u5 ]* H& A
影响网络延迟的主要因素是目标服务器之间的节点数、节点性能和各节点之间的距离。! y! @7 t% s+ c0 w8 Z0 @
比如我们要驾车从A点到B点去,我们选择道路的时候,首先考虑的肯定是路线长短、红绿灯多少、事故发生率灯。虽然道理的宽窄可能从某些程度上影响了我们的选择,但是并不是决定性的。. @3 a8 Q8 B1 \. ~, h" ]
就像同样是玩王者荣耀的游戏,如果王者荣耀的服务器部署在深圳,那么深圳的用户和哈尔滨的用户相比,肯定是深圳的用户玩游戏要更加流畅一些。
& ?, x3 Y4 i% g1 x& J/ m: }更加明显的就是玩那种境外的游戏的朋友肯定更加有体会。" H5 f4 e- V7 H+ r
- m9 f& y* ^" l) q6 ]

& t8 {) g* G0 }# G. A; a0 N8 z 7 u% d9 r! P, L$ {, R
1 g" ^7 X& f/ m' Q如何降低延迟
3 o6 C( e ?7 [6 L9 ^8 E其实,如果我们玩的是国内的游戏的话,地域的影响目前对于广大游戏玩家来说并不算很大,因为很多游戏公司都会在全国多个地方架设机房。这样可以就近连接服务器。这也是很多服务器分为东北1区、浙江区、北京区等的原因了。2 Z. j0 v* B" K* `: j s
那么,如果自己玩游戏确实延迟很高,该如何解决呢?
5 P4 F# Y3 c4 H1 B0 l5 {1、如果自己的宽带很低的话,第一步肯定是提升宽带。100M和200M的用户来说,区别不大。但是,如果是5M和50M之间可能还是有区别的。
' n q9 S2 y# L2、换运营商或者换区。有些游戏有电信区、联通区,那么尽量选择和自己的网络供应商相同的区来玩,这样可以大大减少网络延迟。* j0 E" w. C9 W0 }
3、使用加速器。游戏加速器的原理是通过选择新的网络节点,绕过原来的延迟较高的节点,以此达到游戏延迟降低的效果。
- l6 L/ \ r" Q! y9 r/ |
8 A. |* w/ w$ M+ w7 Y 1 Z( j- i$ O U. i. h( |% W+ h

5 O8 b6 X( `2 S) { % a: f8 g3 p7 ]2 p( F
【End】" r* s4 M9 q' r4 E: r
$ u3 a1 t2 g* X, H
热 文 推 荐 % J2 ^1 f* c' L- {
8 f' D* @$ ]: q0 q9 C
' _' R* M5 u, ]3 ^6 r, pSystem.out.println("点个在看吧!");; f# X4 W: s- v) Y" k
console.log("点个在看吧!");
0 J) O( S. i6 c* sprint("点个在看吧!");9 j* o$ h/ F' W/ ?0 e D: S
printf("点个在看吧!\n");, R7 N. \* j3 Q" w% G% m; R7 d" i
cout |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|