计算机网络——网络与互联网
什么是互联网
- 连接到互联网的设备称为主机或终端系统。
- 终端系统通过包交换器和连接器链接在一起。
- 在网络中的数据以数据包的形式存在并且被传递。
- 最常见的包交换器有路由器和连接层交换机。
- 数据包在网络中传递的过程称为路由。
- 网络服务由网络提供商(ISP) 提供。
- 终端设备通过协议进行传输数据,最常见的协议为传输控制协议(TCP)和互联网协议(IP),统称为 TCP/IP 协议。
- 这些协议大部分由互联网工程任务组(IETF)机构编写,每一个协议都称为请求备忘录(RFC)。
- 提供交换数据的网络服务应用称为分发应用。
- 每一个网络终端系统通过套接字(Socket)接口接入网络。
- 一个协议定义了两个或多个信息交换实体的数据合数和交换顺序,同时也定义了发生在交换时的动作或其他事件。
网络边缘
因为网络终端处于网络的边缘,也称网络边缘。
接入互联网
当今个人桌面级互联网服务提供了两种网络接入方案,一种是使用数字订阅线路(DSL)和有线电视电缆(Cable)。
DSL 通过共用电话线路,使用分频的方式进行数据传输,一端接入家庭分线器,分线器会根据频率进行分频,网络频率的数据将会被调制解调器进行解调制,由模拟信号变成数字信号。另一端接入服务商的多路调制解调器(DSLAM)。
另外一种方式是有线电视电缆,使用同轴线缆进行传输,缺点是共用带宽。
以上两种是多数使用的方案,随着光纤的普及,引出了光纤到户(FTTH)的方案,即直接将光纤接入到家庭中。除此之外,5G 技术也随之普及。
而对于企业和部分家庭组网方案使用的是以太网和 WIFI 技术。
以太网将本地局域网(LAN)内的设备通过网络双绞铜线链接起来到以太网交换机上,同时也有无线以太网技术,IEEE 802.11 也就是 WIFI。提供了无线局域网(WLAN)方案。
随着移动设备数量的增加,为移动通信设备设计了蜂窝网技术,设备通过向附近的基站收发数据。
物理媒介
数据包在网络中传输是需要物理媒介作为传输介质,常见的物理媒介有双绞铜线,同轴线缆,多模光纤,陆地无线电,卫星无线电等。按传输的方向物理媒介分为有向传输和无向传输,有向传输通常是固体媒介,像电子只在电线中传输,无向媒介一般在大气中传输,例如无线电波。
网络核心
包交换
包在网络中传输并交换,常见的两个包交换器为路由器和链接层交换机。
大多数包交换器使用储存转发策略(SaFT),即对于一个数据包来说,必须接收到一个数据包所有的比特位(完整的一个包),才能向出口转发出该包的第一个比特位。
包交换器为每个链接端口准备了一个队列缓冲,像一个入口多个出口这样的情况,就可能发生传输阻塞的情况,因为队列缓冲是有限的大小,因此会发生丢包的情况。
路由转发
包交换设备通过转发表(FT)决定出口端口,网络使用大量的路由转发协议建立转发表。
线路交换系统
包交换和路由转发组成了包交换系统(PS),那么另外一个常用的交换系统则是线路交换系统(CS)。
线路交换系统不同于包交换系统,如果两个终端想要互相发送数据,那么必须先建立一条通讯网络,建立节点将在每个交换器中申请一条线路,这个行为称为预定。而包交换系统是非预定的。当通讯线路建立完成后,交换器会一直保留这个线路直到通讯结束。
由于线路交换系统的线路数量有限,会出现占线的情况,电话系统就是典型的线路交换系统,而互联网则是包交换系统。
多路复用
线路交换系统使用多路复用进行实现。
在一个网络中使用多路复用来进行传输,多路复用分为分频复用(FDM)和分时复用(TDM),分频复用则是将一个线路分成若干通频带,每个通频带可独立传播互不干扰,通频带的宽度称为带宽。
另外一种则是分时,将一个线路分成时间固定的时间槽,每个时间槽放入固定的数据帧,每条复路都占用特定的时间槽。
线路交换系统会出现空闲占用的情况。
网络的网络
网络终端系统将通过接入 ISP 接入网络,而如何将所有的接入 ISP都连接起来将是一个巨大的问题,解决这个问题的关键则是建立网络的网络。
一个显然的解决方法则是将所有的接入 ISP 直接连接在一起,形成一个网格结构,但是缺点也十分严重,则是建设花销严重,网络结构复杂。
第一代网络结构,则是建立一个全球中转 ISP,即所有的接入 ISP 都接入全球中转 ISP,因为全球中转 ISP 提供服务,又把接入 ISP 称为消费者,而全球中转 ISP 称为提供者。缺点也很明显,即维护成本过高,容错率极低,容易发送全球网络故障,容易造成网络堵塞。
第二代网络结构,则是建立多个全球中转 ISP,接入 ISP 可以选择服务与成本相匹配的全球中转 ISP,增加了服务商之间的竞争力,可以减少建设成本,增加网络可用性。
以上则是第二代网络的抽象模型,通过建立实际模型,一个接入 ISP 可能是一个公司,或者是一个大学,称为区域 ISP,而全球中转 ISP又称为顶层 ISP,是一种二层 ISP 网络,顶层 ISP 可以是一个国家的 ISP,例如 AT&T、Sprint、NTT、Level 3 公司。
第三代网络结构,形成了多层结构,例如在中国,城市 ISP 接入 省级 ISP ,省级 ISP 再接入顶级 ISP 。
而现代网络结构还需要在第三代网络结构的基础上加上,PoPs 接入点,多宿主,同位体,和网络交换点 IXPs 。
- PoPs 接入点指的是一个或一组路由器,存在于生产 ISP,为消费 ISP 提供了接入网络的端口。
- 多宿主,也称负载均衡。指的是消费 ISP 可能存在多个生产 ISP 为其提供服务,每次都可以选择一个最可用的生产 ISP,以提高网络的高可用性。
- 同位体,处在同一层的 ISP 称为同位体,可以直接相连,因此两个同位体直接的数据传输可以直接进行传输,而不用通过上游 ISP 进行传输。
- 网络交换点 IXPs,为了满足同位体直接相连而建设。IXP 连接了大部分的同位体,以减少网络堵塞的情况。
以上称为第四代网络结构。
第五代网络结构,也就是现代网络结构,是在第四代网络结构上增加了内容服务提供商,Google 是世界上最大的内容服务提供商,通常处于顶级 ISP之中,将常用的服务提升到顶级 ISP 之中,可以减少网络的传输距离,提高网络的响应速度。
总是,网络的网络就是,消费 ISP 和 顶级 ISP 相连,顶级 ISP 和 顶级 ISP 互相相连,接入 ISP 再连接网络终端系统,组成了当今的网络。
网络延迟
网络延迟的类型
网络延迟分为:
- 节点延迟:处理延迟+队列延迟+传输延迟+传播延迟。
- 处理延迟:将进入的网络数据包进行路由,选择一个目标出口的时间,取决于设备的性能。
- 队列延迟:数据包进行排队等待的时间,取决于网络的拥挤情况。
- 传输延迟(发射延迟):包交换设备发射一个数据包所需要的时间,取决于网络协议,硬件支持,设备性能。
- 传播延迟:数据包在介质中传输的时间,取决于介质的物理状态和距离。
队列延迟和包丢失
和其他延迟不同的是,队列延迟只取决于网络的延迟情况,因此每个包和队列延迟可能不同。
我们假设
a
a
a 是每秒接受数据包的速率,也就是包每秒。每个包固定的长度为
L
L
L 比特。那么
L
a
La
La 称为每秒吞量,那么传输速率
R
R
R 比特每秒,称为每秒吐量。记
L
a
/
R
La / R
La/R 为网络堵塞强度。当
L
a
/
R
>
1
La / R \gt 1
La/R>1 那么数据包就会发送排队积攒,因此设计的一个基本原则就是使其小于
1
1
1 。
一个包交换设备的队列长度是有限的,因此如果队列为满,则会发送包丢失。
端到端延迟
以上我们简述了节点的延迟,而对于端到端的延迟,指的是从一个路由设备发送到另一个路由设备所需要的时间,具体来讲,即:
d
e
n
d
=
N
(
d
p
r
o
c
+
d
t
r
a
n
s
+
d
p
r
o
p
)
d_{end} = N(d_{proc} + d_{trans} + d_{prop})
dend?=N(dproc?+dtrans?+dprop?)
在这里,我们假设一段路径中包含
n
n
n 次的路由,并且忽略排队时间。
如何追踪并计算端到到端时间,给出了一种路由跟踪方法(Traceroute)即向路径中的每一个路由器都发送一个特定的数据包,这些路由器再收到数据包之后会依次返回数据给信息源,信息源计算来回的总时间作为端到端延迟。
网络的吞吐量
假设我们正在下载一个大小为
L
L
L 比特的大文件,我们定义:
- 实时吞吐量:客户端的瞬时接收速率。
- 平均吞吐量:用
L
L
L 除以下载所需的时间
T
T
T 。
使用吞吐量可以定义网络中的瓶颈,一个网络中的瓶颈总是吞吐量最小的那一段网络,称为瓶颈,大部分的瓶颈在网络边缘,因为骨干网络的吞吐量一般都很大,但是一旦并行传输数据量增大,骨干网络也可能称为瓶颈。
协议分层模型
协议分层指的是将提供不同的协议进行分层,每一个网络协议处在一个层中,层与层之间是相互抽象的,即层与层直接是接口与调用的关系,具体的软件、硬件实现了其中的协议。这种协议分层模型也称为协议栈。优点是对网络这种复杂的模型进行抽象化,利于结构化网络模型,缺点是可能造成服务冗余,即两个层可能存在作用相同的服务,和数据调用,即某一层的服务需要另外一层的数据,不符合接口-调用关系。
互联网的协议栈从上到下依次是应用层、传输层、网络层、链接层、物理层。本书将自顶向下的逐一介绍计算机网络。
- 应用层:提供具体的网络应用协议,例如 HTTP、FTP、DNS 协议等,在本层的数据抽象为消息(message)。
- 传输层:提供如何将消息从两端进行传输,一般来说最重要的两个协议是 TCP 和 UDP 协议,在本层数据的抽象为段(segment)。
- 网络层:提供如何将段从两端进行传输,最重要的协议是 IP 协议,提供了数据包之间的传输和路由,在本层数据的抽象为数据报文(datagrams)。
- 链接层:提供如何将数据报文进行传输,例如以太网协议、WIFI 协议等,在本层的数据抽象为帧(frames)。
- 物理层:提供如何将帧进行每比特传输,例如在双绞线、同轴线缆中传输,在本层的数据抽象为比特(bits)。
封装
协议分层模型给我们网络带来的一项巨大的优点就是数据封装,每一个网络设备(主机、路由器、交换机、线缆)都自底向上的实现了不同级别的协议栈,例如,链接层交换机只实现了物理层和链接层无法识别 IP 等地址,而路由器则实现了物理层、链接层和网络层,可以根据 IP 地址进行路由。而主机则实现了所有的协议层。
数据封装是一种封装模型,例如应用层产生消息交给传输层,传输层在消息的基础上加上传输层协议头组成数据段,依次类推,所以对于每一层协议,都由有效载荷、和协议头组成,本层协议并不关系有效载荷的内容是什么只关心协议头中的信息。
网络安全
网络实时暴露在不安全的环境下,永远不要轻易相信来自网络中的数据,以下总结了抽象的网络攻击类型。
恶意软件
攻击者使用多种手段使得网络主机下载并执行攻击者编写好的恶意软件,这些恶意软件会操纵网络中的主机,执行收集隐私信息等非法操纵。
一些恶意软件会攻击和感染内网内的其他主机并自我复制,形成僵尸网络。
攻击服务器等基础设施
攻击者对服务器等基础设施进行攻击,造成网络不可用,典型的这种攻击是拒绝服务攻击(DoS)。包含三种类型的攻击:
- 漏洞攻击:攻击者构造一个准备好的数据发送给服务器,触发服务器的漏洞,造成服务器宕机或产生错误数据。
- 带宽洪水:攻击者进行大量但是正常的网络请求,占用服务器带宽,使得正常的请求无法处理。
- 链接洪水:使用 TCP 半开或全开连接,进行大量的挥手请求,占用服务器带宽,使得正常的请求无法处理。
集群拒绝服务攻击(DDoS)利用集群优势,进行大批量攻击。
第三者嗅探攻击
数据源、目的地之间互相传输数据可能会被第三者监听或拦截,例如在无限局域网中,任何人都能拦截数据源、目的地之间互相传输数据。第三者可以拦截数据或者篡改数据。称为第三者嗅探攻击。
信任攻击
攻击者利于客户端或者服务器的信任,冒用客户端或者服务器的身份发送给靶机构造的数据进行攻击,可以利用数字签名等进行防护。
|