计算机网络简介
1.互联网
什么是互联网?除了教科书上的定义,对普通网络用户来说,互联网就是在浏览器输入网址,然后可以看到各式各样内容的地方。事实上,在这些应用背后,是数以百万计的计算机在互相连接、通信,而这里说的计算机并不仅仅指所谓的电脑,服务器、智能手机、平板电脑都是计算设备,也被称之为主机(host)。
连接它们的物理线路我们称之为link,主要包括了光纤、铜缆、无线电波和卫星等等。在这些线路中,数据以光信号、电信号、电磁波的形式飞快地传播,而link就是数据传输的载体。
互联网中的另一大设备就是路由器和交换机了,它们负责确定数据传递的路径,就像物流行业的分拣员,确保每个数据包都能去往目的地。
2. 协议与标准
对计算机网络有所了解的朋友都会知道,用于计算机网络学习与研究的主要有TCP/IP协议体系结构。这个结构中将计算机网络分为5层,我们会在之后详细介绍。而每一层则是由各种各样的协议组成的。
什么是协议呢?协议就是通信的双方有一个共识,即如何表达和传递信息,往往定义了通信的格式,收发顺序,以及在发送接收时应该采取的行为。古时候的烽火就是一种协议,看到上一个烽火台点火,自己也立刻点火传递给下一个烽火台,有烽火就意味着敌军来袭。这就是规定了通信中的种种行为。
2.1 互联网协议栈
TCP/IP模型将互联网分为了5个层,从上到下为应用层(application)、传输层(transport)、网络层(network)、连接层(link)和物理层(physical)。
与之相对的,还有一种模型ISO/OSI,在TCP/IP模型的基础上,将原有的应用层细分为了应用、表示(presentation)、会话(session)层。一共7层。
在传输过程中,发送者的数据会从上到下层层封装,之后经过物理线路发送到接受者的计算机,再从下到上层层取出信息,交由应用程序进行使用。
3. 网络类型
除了目前主流的光纤接入,在近期DSL和有线电视网络也曾是计算机网络的主力军。
3.1 DSL与ADSL
DSL(digital subscriber line),数字用户线路,是早期一种使用电话线拨号上网的技术。将电话线中的模拟信号根据频率划分为不同频道,分别传输语音和数据信息,同时支持电话和计算机网络。因为用户的下载需求往往大于上传需求,所以一般分配给用户的上行带宽与下行带宽并不相同,往往下载速度大于上传速度。即所谓的ADSL (asymmetric digital subscriber line)。
3.2 有线电视网络
有线电视网络(cable network)是目前仍使用较广的网络。通过电视网络,同轴电缆可传输电视信号和计算机网络信号。与DSL不同的是,DSL的线路往往是专用的,即每户直接连到转接中心;而电视网络则是多户共用一条线缆,通向运营商。
4. 数据传输
为了将数据从一个主机传送到另一个主机,往往需要将一个大的数据分为许多相对小的数据包(packet),依次传输。类比于果园将产品送往超市一样,将水果分装在许多货车里一车一车地运送。
在传输中,数据是以比特流的形式收发的,也就是一长串的0或1。对每一条链接来说,传输的速度是有限的,我们称之为传输率(transmission rate),所以每个数据包通过这条链接的时间可以这样计算:
T
=
L
(
b
i
t
s
)
R
(
b
i
t
s
/
s
e
c
)
T=\frac{L(bits)}{R(bits/sec)}
T=R(bits/sec)L(bits)
其中L表示数据包的大小,R表示传输率(每秒传输多少bit)。T是传输延迟(transmission delay)
4.1 路由器
路由器有多个端口,连接到其它路由器或主机。我们可以用铁路与火车站来理解,每个火车站就好像路由器,有数条通往其它临近车站的铁路,而如果一辆火车(数据包)要从深圳去往北京,那么可能需要先后经过广州站,长沙站,武汉站等等,每个站就是一个路由器,这些路由器共同组成了网络和核心。
路由器的两个主要功能是路由选择(routing) 和转发(forwarding)。路由选择的意思是根据每个数据包的来源和目的地,决定这个数据包应该被送往哪个出口(output)。转发则是把数据包从入口送到出口的过程。
路由器使用的是“存储-转发”机制,也就是说路由器需要接收完毕整个包裹,才能决定并将其发送到下一站。由于路由器需要时间来计算每个数据包应该被分配到的线路,所以数据包需要排队等待。路由器会有一个缓存(buffer) 来存储这些已接收但还来不及处理的数据包。每个数据包排队等候的时间称之为排队延迟(queuing delay)
但缓存的大小是有限的,如果过多的数据包来不及处理,缓存可能会被占满,那么之后到达的数据包便无处储存,只好被丢弃(drop)。
4.2 服务提供商 - ISP
互联网是以许多ISP与他们的路由为骨架的。这个服务提供商在全球范围内提供服务,将网络数据从世界的一段送往另一端。由于并没有一家公司能提供整个地球的网络,这些ISP这间需要互相连通、合作,使得世界各地的计算机都能直接或间接地连在一起。根据不同的地域和层级划分
5. 网络分析
为了衡量网络的表现,我们常常会关注延迟,丢包和吞吐量等网络参数。
5.1 延迟
受限于物理原理,诸如光速不变等,理论上数据的最大传输速度也不可能达到光速,所以任何数据传输必然会伴随着一定的延迟。另外考虑到网络中的各种复杂情况,有许多因素会导致延迟。
d
n
o
d
a
l
=
d
p
r
o
c
+
d
q
u
e
u
e
+
d
t
r
a
n
s
+
d
p
r
o
p
d_{nodal}=d_{proc}+d_{queue}+d_{trans}+d_{prop}
dnodal=dproc+dqueue+dtrans+dprop
其中
d
n
o
d
a
l
d_{nodal}
dnodal表示每个节点的延迟;
d
p
r
o
c
d_{proc}
dproc为处理所需的时间, 包括了检查有无传输错误,计算目标出口等;
d
q
u
e
u
e
d_{queue}
dqueue是数据包排队等候时间;
d
t
r
a
n
s
d_{trans}
dtrans是数据包经过出口进入物理线路的时间;
d
p
r
o
p
d_{prop}
dprop为信号在物理线路中传输所需的时间。