|

F" T. Z0 b% Z G6 n! K' ?! k6 G! Q本文经授权转载自漫话编程(ID:mhcoding)
! q6 t# q( e; S9 `& ~# p周末,我正在准备年度述职的PPT,女朋友在一旁打王者荣耀,突然她好像是越塔送了个人头,很不高兴的问我。 U; v5 G. i" D7 d2 n

! c: m1 N9 b" D
; F: m2 B2 p' k1 Q ; c; E" D, `4 r, Z
大概过了10分钟左右,我听到了一声:"Defeat",我知道,今天这件事可能又要怪我了。
8 ]9 m6 `8 _. u' Q" ^
$ z; ^. w% U! ?1 P+ Y, Y `$ S- W . U. c( P3 q0 D) p! ~
m6 F& M- u V6 k/ O
$ u) Z5 W( z- {
8 R. l" k2 v, P网络带宽! T1 G* p" a( m9 r
带宽,英文名bandwidth,网络带宽是指在单位时间(一般指的是1秒钟)内能传输的数据量。
, Z3 n, D. x7 m/ D( B; ]数字信息流的基本单位是bit(比特),时间的基本单位是s(秒),因此bit/s(比特/秒)是描述带宽的单位,更长见的是使用 bps(Bit Per Second),称之为比特率表示带宽的单位。比特率越高,每秒传送数据就越多。* |; _% _ g! @% b2 R
" @9 U3 P( b6 m* V# |
我们在电信运营商那里办理宽带时,他们定义的100M、200M等指的就是网络带宽,其单位就是bps。如100Mbps,这的就是100M比特率的带宽。$ b4 }$ D7 b5 _4 h" c' L
更严格的说,电信卖给我们的带宽叫做用户接入带宽,是指用户宽带接入能支持的最高信息传送比特率。假如用户购买的是100M宽带,即电信保证的是从用户光猫到电信交换机之间的带宽是100M,但是网络请求还可能需要通过很多其他的交换机节点,这些交换机之间的带宽也同样影响着终端用户。所以实际用户所使用到的带宽是小于等于100M的。
* g: A' j1 r( b) W. I* \举一个简单的例子,如果把宽带比做道路,那么带宽表示的就是单位时间内可以通过道路某一个点的数据量,这其实指的就是道路的宽度。带宽越大,就类似高速公路的车道越多,其通行能力越强。" _7 z j( x7 p* w* d( j
$ i, p. e5 D4 k/ ]# d
现在,政府在你家门前修了一段公路,是双排四车道的。但是,这并不表示你从家到公司经过的所有道路都是双排四车道。即,你在从家道公司这段路上,能享受的最宽的道路是双排四车道。
8 {+ R1 Z+ T% i4 d' K通常,我们称这个用户可享受的真实带宽为吞吐量。一般情况下,吞吐量都会比自己购买的带宽要低。
: ]( g3 Y! B+ k& y$ S影响网络中带宽和吞吐量的主要因素有:
[, o) N0 Y& A! e. T& ~/ c X' Q
2 G/ a& U6 q3 @% I' s' [2 |4 \- 网络设备(交换机、路由器、集线器);
( ]& Z# S" T+ e" a8 A$ [ - 拓扑结构(即网络构造形状,如星型、环状);& l w# T' R/ C; F# y$ }. y& H K
- 数据类型;- A! U. a# @. F& a
- 用户的数量;; C; S1 w* c- t6 i
- 客户机与服务器(如系统总线、磁盘性能、网络适配器、硬件防火墙);
/ J5 N% I, i W l& g6 s - 电力系统和自然灾害引起的故障率。
' @1 L8 Q6 p$ X m

1 g. H% h# H* O: r " a- }9 _# x+ M4 j
3 x7 k, t& g7 c网络速度
. O8 I/ j3 p: N1 P, e7 c% X网络速度一般是指电脑或手机上网时,上传和下载数据时,请求和返回数据所用的时间长短。
2 v: ]$ W# T% H* `# k" k, E可想而知,网络速度肯定是和带宽有关系的。不同的带宽所具有的宽带速率肯定是不同的,这里说的宽带速率我们一般分位上行速率和下行速率。+ W9 L: A9 c* y+ {! a8 P; z
+ X* K+ ]3 b& `$ f2 w! d+ `! x
- 上行速率,是指用户向互联网发送信息时的数据传输速率。比如:你向QQ空间传送图片、向百度云服务器传送图片或视频等。“上行速率”决定上传信息的速度。1 g3 Y, T: w! F% }
- 下行速率,是指互联网向用户发送信息时的数据传输速率,比如打开浏览器,从网上下载文件等。“下行速率”决定下载信息的速度。" @' n: ?5 Y4 @ [
中国电信宽带上下行速率对照关系如下:' x- j. K/ f! {- g( |& V% {
' ^. }& D9 Q$ T* M2 Y& ~+ g
200M的宽带,下行速率是204800kbps,上行速率是10240kbps。& r0 g# U# A( o$ o7 @8 G
5 C+ R& s0 j7 \- J2 b u8 R

! h6 k! ?0 [ A/ b速率的单位是:比特/秒(bit/s)或者叫做:比特率(bps),而速度的单位:字节/秒(Byte/s)。
4 q1 ~" H# v5 M( g: z7 K而根据换算关系:1Byte=8bits(1字节为8比特),所以速率和速度之间的关系是:速率/8 = 速度。$ v M" }4 F7 z
下载速度计算方法2 L U, i( p( N0 o0 o
下载速度与下行速率的数值对应关系为:极限下载速度=下行速率/8。$ E2 I9 f% ?( \9 a7 J' x9 H' l
例如200M宽带,其极限下载速度为 204800k/8=25600k字节/秒(Mbps) =25M/s 。当然,这只是理论值。' Z* n# k, S# C
上传速度的计算方法
6 t( Y5 h& c) f. }8 k# x2 j上传速度与上行速率的数值对应关系为:上传速度=极限上行速率/8。
. k! z$ u ^0 {! E' Z- Y3 K例如200M宽带,对应的上行为10240kbps,那么理论的上传速度=10240k/8=1280k字节/秒 = 1.25M/s。当然,这也是理论值。
T6 j* |1 T1 I3 S, i* B- R: U
* X/ [8 g. d4 X8 ~% a g# X( V上行速率比下行速率低的原因
5 `" y+ _6 p% d% S1 C, T5 y$ I6 p通常情况下,上行速率要比下行速率低,主要是受网络技术及线路质量的约束,同时也是为了防止上行速率过高,对整个网络形成冲击,造成网络阻塞,影响网络安全。+ [% g. D. B( t/ L
所以,对于200M的宽带,用户可以享受的最高下载速度是25M/s,最高上传速度是1.25M/s,这只是最理想情况下,具体情况还要受很多因素的影响。这个数据不同地区不同运营商可能也会有所不同。
. l, I* r: ]- X+ i0 j5 G3 L所以,千万不要认为,办了200M的宽带,网速就能达到200M了!!!0 S1 N; M! l- M, ?4 K

0 ]" I* n" q' J% C: c& M3 f 8 S; t9 u4 @- [2 S# r& l

9 k6 [. d8 u; u4 D$ y5 q! V0 v. { 3 B; g4 `0 R8 \' w
+ L G: C6 K: u3 G5 G; J
网络延迟
! q: B$ W% b4 C. j0 o5 I网络延迟,表示在传输介质中传输所用的时间,即从报文开始进入网络到它开始离开网络之间的时间。0 Y$ l- P- l; [1 e7 \
网络延迟,最明显的表现就是玩游戏卡顿。因为在玩游戏的过程中,用户操作手机,手机需要将用户的操作传到服务器,服务器再将操作后的画面回传给用户,如果这个数据传递时间过长,表示出来就是页面卡顿,即网络延迟高。; A! `' I1 Q4 ?6 I

+ O$ W8 b ]7 Q; [+ @8 q0 r' y; K' t网络延迟一般分位以下几个级别:, f, Z' |$ G3 V, \
6 k* l& O. B* m* r+ L
- 1~30ms:极快,几乎察觉不出有延迟,玩任何游戏速度都特别顺畅
$ Q% R7 p" R; m% o - 31~50ms:良好,可以正常游戏,没有明显的延迟情况% p( r# y% [/ g
- 51~100ms:普通,对抗类游戏能感觉出明显延迟,稍有停顿
p. L, w q) j1 c4 [4 J) P4 _8 U( C - 100ms:差,无法正常游戏,有卡顿,丢包并掉线现象' Z$ e/ z3 z5 J9 J' c2 [( c+ u

/ L+ O8 I9 d8 Z1 O! {% n# x, p
. X/ q$ M) S% ?+ k
7 s3 ]- O3 m; Q; W网络带宽、网络速度和网络延迟之间的关系
( A3 P# I' u9 e" E8 x9 {# d6 T3 `前面我们说过网络速度和网络带宽之间的关系,理想情况下,带宽越高网速越快。) T3 e/ R! |6 y. J. N: }6 Y3 W* b; s6 f' j
那么,是不是带宽越高,网速越快,延迟一定越低呢?
5 U' d# C( }9 [/ z其实不是的!
/ u5 g1 A# a$ L# M. q就像我们玩游戏一样,其实对于很多游戏来说,对网速的要求并没有那么高,因为每秒钟需要的流量并不多,其实一般的游戏,512KB都够用的。游戏延迟和网速的关系并不大。
: T) K: F' @* f/ g- p8 m4 @影响网络延迟的主要因素是目标服务器之间的节点数、节点性能和各节点之间的距离。 Q1 d+ |6 B" o, }8 p
比如我们要驾车从A点到B点去,我们选择道路的时候,首先考虑的肯定是路线长短、红绿灯多少、事故发生率灯。虽然道理的宽窄可能从某些程度上影响了我们的选择,但是并不是决定性的。
* E; A* K8 C# s就像同样是玩王者荣耀的游戏,如果王者荣耀的服务器部署在深圳,那么深圳的用户和哈尔滨的用户相比,肯定是深圳的用户玩游戏要更加流畅一些。% t4 I/ o" x, D
更加明显的就是玩那种境外的游戏的朋友肯定更加有体会。& S: d- m- b$ e& A9 F3 H+ s' @
) M e. O$ W4 H4 @( j4 L0 W
% \- M/ [0 @; i3 A, A: y

5 {/ }% ~! \- k; @. r" d6 s$ n2 m7 X, D( P; k) d2 |# u3 E& y
如何降低延迟
( ^! p3 u- a4 Y其实,如果我们玩的是国内的游戏的话,地域的影响目前对于广大游戏玩家来说并不算很大,因为很多游戏公司都会在全国多个地方架设机房。这样可以就近连接服务器。这也是很多服务器分为东北1区、浙江区、北京区等的原因了。
9 r/ |* t# B4 I( M那么,如果自己玩游戏确实延迟很高,该如何解决呢?( \: V5 l7 L: R4 P a
1、如果自己的宽带很低的话,第一步肯定是提升宽带。100M和200M的用户来说,区别不大。但是,如果是5M和50M之间可能还是有区别的。. \4 d7 i2 V0 a1 V3 s* V, b
2、换运营商或者换区。有些游戏有电信区、联通区,那么尽量选择和自己的网络供应商相同的区来玩,这样可以大大减少网络延迟。& _1 C& n; S/ r& j
3、使用加速器。游戏加速器的原理是通过选择新的网络节点,绕过原来的延迟较高的节点,以此达到游戏延迟降低的效果。
5 u! ?- g) O9 E7 x% j# i
: p: p4 T/ c( q- s; R; i8 D! p
|0 b) V2 |/ K, u/ b4 m # F) N% T! Q: ?

% e& l( p) c8 a. F# G: r7 d8 O6 B【End】4 F. J) n9 C$ H$ h! x% i' F8 n
, y& x$ r3 ] N- D 热 文 推 荐
k* S# d9 w& u0 W4 S
7 O( }# L; [1 R$ ?, E) N6 ]' N7 _& \3 @9 ]7 a' d
System.out.println("点个在看吧!");
! V% t F: q7 X4 x! Sconsole.log("点个在看吧!");
. p* l4 M2 m, gprint("点个在看吧!");
3 n) ?6 Q, H. f' R y1 oprintf("点个在看吧!\n");
! o1 H w" Q9 i: Q( x e5 Q) c% v5 Zcout |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|