0%

计算机网络——第1章

Chapter 1 计算机网络和因特网

1.1 什么是因特网

1.1.1 具体构成描述

因特网由连接在其上的数十亿计的互联计算机设备组成。

  • 主机是端系统,运行网络应用程序。
  • 通信链路将这些端系统连接起来,包括光纤、无线电等,它的带宽表现传输速率。
  • 分组交换机用于转发数据分组,包括链路层交换机和路由器。

端系统通过因特网服务提供商ISP接入Internet,不同的ISP之间也可以相互连接构成更大的网络。在因特网上运行的网络应用程序属于软件,其上定义有各种协议用于控制报文的发送和接收。这些协议由因特网工程部(IETF)制定,其标准文档称为请求评论(RFC)

1.1.2 服务描述

  • 因特网为应用程序提供服务的基础设施。
  • 因特网为应用程序提供编程接口,应用程序连接到因特网上的通道(套接字接口),且因特网能够提供不同级别的服务选项,对应不同的服务方式和服务质量。

1.1.3 什么是协议

一个协议定义了在两个或者多个通信实体之间交换的报文格式和次序,以及报文发送和/或接收一条报文或其他时间所采取的动作。

1.2 网络边缘

  • 网络边缘包括:主机(客户端和服务器,可以运行应用程序)、数据中心的服务器
  • 网络核心包括:路由器、网络的网络
  • 接入网和物理媒体:通信链路

网络应用的通信模型有:

  • 客户/服务器模型(C/S模式)
  • 对等模型(P2P模式),所有主机同时承担服务器和客户机的双重身份

连接端系统和边缘路由器的方法:

  • 通过住宅接入网(Modem拨号/ADSL拨号/HFC/FTTH/卫星)
  • 通过机构接入网(以太网/Wifi)
  • 通过移动接入网(3G/LTE/5G)

1.2.1 接入网

接入网是指将端系统连接到边缘路由器的网络。其作用是:将网络边缘与网络核心连接起来,通常是将端系统连接到边缘路由器上。边缘路由器指端系统到任何其他远程端系统的路径上的第一台路由器。

Modem 拨号

  • 通过本地电话回路点对点连接ISP的拨号池(通常为路由器)
  • 其速度最高可达56kbps
  • 无法实现在上网的同时打电话

DSL: 数字用户线

  • 下行/上行速率最高可达55Mbps/15Mbps(运营商可以以不同价格限制用户的上网速率)
  • 采用频分复用的方式:0kHz~4kHz传输语音,4kHz~50kHz为上行,50kHz~1Mhz为下行。
  • 带宽独享(一条线只能给一个用户用)

HFC: 光纤同轴电缆混合网络

  • 上行/下行速率最高可达40Mbps/30Mbps
  • 通过有线电视网络部署
  • 带宽共享(一条线可以给多个用户用,分频段使用)

局域网接入

  • 公司或大学的局域网(LAN)将端系统连接到边缘路由器
  • 以太网:通过共享或专用的链路来连接端系统和路由器,速度各有差异,从10Mbps到10Gbps

无线接入

  • 共享的无线接入网络连接端系统和路由器
  • 无限局域网:基于IEEE 802.11技术,最高1Gbps/s
  • 广域无线接入由电信运营商提供,基于IEEE 802.16

1.2.2 物理媒体

常用的物理媒体根据各自的构造和特征、使用的环境、优劣点可以分为几种。

  • 导引性媒体:沿着固体媒体被导引的媒体,电波随着固体媒体前行。如光缆(在玻璃光纤传播光脉冲,每一个脉冲一比特,传输速率高且误码率低,不受电磁干扰)、双绞铜线(3类线10Mbps,5类线100Mbps,6类线1Gbps)或同轴电缆(双向传输,可分为基带和宽带)。
  • 非导引型媒体:信号自由传播,如无线局域网(通过电磁频谱传播信号,没有物理线路,可双向传输,但受到传播环境影响较大)或数字卫星频道。地面微波可达45Mbps,无线局域网可达2/11/54Mbps,卫星网络可达45Mbps,有270ms的端到端延时

1.3 网络核心

数据传输的方式有电路交换和分组交换。

1.3.1 电路交换

电路交换网络是第一代计算机网络
数据交换过程:建立连接,交换数据,释放连接
特性:

  • 电路交换网络中一个电路对应一条连接,一个链路对应多条电路
  • 数据交换前需要建立一条从发端到收端的电路(预留资源)
  • 在数据交换的全部时间内用户始终占用端到端固定传输信道
  • 交换双方可以实时进行数据交换而不会产生延迟

一条物理链路容纳多条连接的方法:

  • 时分复用(TDM)将时间分组,一组分为多个时间片,一个时间片内的所有频率都供一个用户使用,多个用户轮流使用。
  • 频分复用(FDM)将频率分组,同一时刻使用不同频率传输不同用户的数据

电路交换的缺点:

  • 计算机之间数据交换具有突发性和间歇性特征,电路交换是按照用户占用线路的时间计费的,这可能会造成大量时间的浪费。
  • 不够灵活,只要双方通信建立的通路中出现任何一点故障就需要拨号重新建立连接,不利于紧急通信。

1.3.2 分组交换

分组交换网络是第二代计算机网络。
分组交换网络由

  • 路由器构建路由器网络
  • 数据被截断划分为分组
  • 由分组交换机转发分组
  • 使用链路最大传输速率传输(从宏观上而言,链路是共享的,从微观上看,分组传输时是独占链路的。这一点在理解全双工通信时很重要,即每一段链路上同时只能传输一个分组。

分组交换需要解决的问题:

  • 为什么分组,如何分组
  • 分组交换机如何确定,是否固定不变
  • 分组如何按照既定路线前行
  • 分组转发模式的具体设计
  • 分组转换方式的效率
  • 可靠性是否能够保障

分组的优势

  • 提高传输效率。假设一共有3段链路,将数据分为几个分组,可以让3段链路同时发送数据,但电路交换也能实现。
  • 提高传输质量。如果在传输过程中出现错误,分组交换只需要重传错误的分组即可,而电路交换需要重传整个报文。
  • 链路利用率高

如何分组

  • 在发送端,先把较长的报文划分为较短的、固定长度的数据段
  • 将每一个数据段前面添加首部构成分组
  • 分组交换网络以分组作为数据传输单元,依次将各个分组发送到接收端
  • 接收端收到分组后去除首部还原报文
  • 最后接收端将数据重组恢复为原来的报文

分组传输的模式

存储转发传输:分组交换机将整个分组接收并存储,然后再发送。这是为了校验分组是否传输正确。

分组交换网络的特征

  • 数据分为若干分组分别传送
  • 不必预先确定分组传输路径,而是由中间的各个交换机和路由器自行确定传输路径
  • 交换结点均为共享结点,选择路径
  • 存储/转发,提高容错率
  • 断续(动态)分配传输带宽,可以最大限度地利用网络带宽资源,不仅降低费用还提高效率
  • 网状拓扑结构可提高可靠性,一条线路产生故障时可以使用其他线路进行传输
  • 主干网络往往由一些高速链路构成,提升网络整体的传输速度

存储转发效率

传输时延:L/R。L:分组长度(bit),R:连接设备链路的速率(bps)。N条链路的传输时延为NL/R。注意:传输时延不能理解为一个bit在链路中传输消耗的时间所导致的时延。因为链路中的传输都是光速,造成时延是因为链路的速率有上限,即这条链路一段时间内只能发送多少个bit,这个bit在链路中占有一定的“长度”,可以理解为机器发送bit的速率。如一条链路的速率为10Mbps,即1秒可以传输10000000个bit,1秒光传输的距离为300000km,那么一个bit就占了300000*1000/10000000=30m。n条链路的意思是数据从起点到终点之间经过了多个交换机,这些交换机将链路分为多段,由于交换机需要接收存储一整个分组之后才转发,因此多条链路的传输时延等于每一条链路的传输时延之和。
排队时延:存储需要缓存,当交换机一段时间内接收到的数据较多而无法全部及时转发时,就可能导致排队。
分组丢失(丢包):当缓存满时,交换机会采用某种算法选择一些数据包丢弃,这些包需要重传。

分组转发的路径

分组首部含有目的地址,路由器根据其转发表选择对应的链路进行转发。转发表通过路由选择协议形成,通过traceroute/tracert命令可以查看路由。

分组交换和电路交换的比较

分组交换网络的问题

  • 分组在各个结点存储转发时因为需要排队总会造成一定的时延,当通信量较大时时延可能会很大
  • 每个分组必须携带头部信息,带来额外开销
  • 整个分组交换网络的管理和控制较为复杂

如果需要连续传输大量数据,且传输时间远大于呼叫建立时间,则使用数据通信之前预先分配传输带宽的电路交换。分组交换无需预先分配带宽,在传输突发数据时可以提高整个网络的信道利用率。

网络核心分类

电信网络:电路交换网络、分组交换网络
电路交换网络:FDM、TDM
分组交换网络:虚电路网络、数据报网络

1.3.3 网络的网络

端系统通过ISP(Internet Service Provider)连接到网络,ISP和ISP之间连接形成更大的网络。由此构建的因特网非常复杂,应该由经济和国家策略而不是性能来驱动。

对于如此大的网络,可能的连接方式有下列几种:

  • 将每两个ISP之间都建立一个连接,这样连接的数量太大不经济。
  • 所有客户ISP连接到一个全球承载ISP,这样会导致全球承载ISP的压力较大,且需要在费用上达成一致,容易形成垄断。
  • 客户ISP连接到多个全球承载ISP中,全球承载ISP再相互进行连接。这样可能在两个全球承载ISP之间存在一个IXP(因特网交互点),但由于不是每一个国家都有全球承载ISP,因此这种方案也有问题。
  • 区域网络与承载ISP相联,每一个区域有一个ISP,即在客户ISP和全球承载ISP中间加上一层地区ISP,这种方式较为合理。
  • 在第四种方案的基础上添加上内容提供商自己的网络——内容提供商网络,如谷歌微软等。总的结构应该为:客户ISP——区域ISP——IXP——全球ISP/内容提供商网络总体4层结构,当然这个层级结构并不严格,客户ISP也可以直联全球ISP。

1.4 分组交换网中的时延、丢包与吞吐量

时延分为:

  • 节点处理时延dproc:节点收到完整的分组后,需要对该分组进行校验以及确定输出链路,分组完成这些工作所需要的时间。一般为几ms或更短
  • 排队时延:排队时延取决于路由器的拥塞程度,当分组在输出链路中需要等待被发送时产生排队时延。
  • 传输时延:将分组比特流发送到链路中的时间,L/R。其在低速链路中非常重要
  • 传播时延:数据在链路中从起点到终点所需要的时间。d为物理链路的长度,s为媒体中的传播速度(约为2*108m/s),传播时延=d/s。注意与传输时延的区别。约为几ms到几百ms。

定义流量强度:链路带宽R(bps),分组长度L(bits),平均分组到达速率a,则流量强度为La/R。这是一个以路由器为视角定义的量,当值近似于0时,表示平均排队时延很小,甚至为0,当值小于1时,时延较小,且随着时间推移变小,因为此时分组到来的速度小于路由器的处理速度。当值等于1时,时延不会变化,具体时延的值取决于当前队列的长度。当值大于1时,平均时延较大,且随着时间推移趋近于无穷。

  • 缓存中的队列容量有限,当分组到达时如果队列已满,则该分组会被丢弃。丢弃的分组可能会被重传,或者根本不重传。
  • 通常到达队列的过程是随机的,La/R并不能全面地表征时延的统计量,当流量强度接近1时,当到达速率超过传输能力(由于分组到达速率的波动)时将产生时间间隔,在这些时段中将形成队列。就比如当流量强度为1时,在一个时刻同时到达多个分组,在这些分组处理完之后,可能会有一段时间路由器中没有队列,此时路由器就会进入空闲状态,但由于流量强度为1,路由器只要有空闲时间,就必须让后面的分组等待更长的时间,这就是统计规律导致的问题。因此并不是说当流量强度为1时平均排队时延就不会增加,而是会缓慢增加。

定义吞吐量:这是现实生活中最关心的一个性能指标,与带宽要进行区分。分为瞬时吞吐量和平均吞吐量,类比瞬时速度和平均速度。吞吐量指发送方和接收方之间的数据传输速率(bits/time unit)。对于一个有多条链路的传输路径,其吞吐量等于吞吐量最小的那一条链路的吞吐量值(木桶原理),称这条链路为瓶颈链路。吞吐量和带宽一定要辨析清楚。带宽指的是一段链路最为理想的情况下单位时间能够传输的比特量,而吞吐量则是一个根据实际情况测出来的一个量,就像高速公路的限速是120(带宽),但在车辆比较多的情况下就不可能达到这个速度(吞吐量)。互联网下,连接瓶颈通常不是在主干网络,而是与每一台机器直接相连或距离不大的分支网络或分支链路上。虽然主干网络上承载的流量大得多,但主干网络通常会被精心维护,所以一般不会出现主干网络成为瓶颈的情况。

1.5 协议层次和服务类型

现实中需要实现的需求往往多而繁杂,为了将这些需求规范化,定义了种种协议与分层结构。定义层次可以使得每一个层次实现一种服务,相邻的层次之间有依赖作用。分层是处理复杂系统的有效方法,可以以结构化的方式来讨论系统组件。每一层对其他层是透明的。但分层也可能会导致功能冗余和信息关联(某一层的功能需要其他层的信息)

1.5.1 分层的体系结构

目前通用的因特网的协议栈一共分为5层:

  • 应用层:支持网络应用,如FTP、HTTP等协议就是运行在应用层
  • 运输层:用于主机之间的数据传输,如TCP、UDP协议
  • 网络层:将数据报从源端传送到目的端,如IP协议和路由协议
  • 链路层:数据在网络相邻结点之间传输,如PPP协议和Ethernet协议
  • 物理层:在线路上传输比特流

ISO/OSI参考模型:共有7层,在应用层和运输层之间增加了:

  • 表示层:允许应用程序解释数据的含义,如加密压缩等
  • 会话层:提供数据交换的同步、定界、建立检查点和恢复的能力

由于这两层在应用层完全可以实现,因此现实中的因特网协议栈没有这两层。

实体:任何可以发送和接收消息的硬件和软件进程,通常是一个特定的软件模块。
对等体:不同机器上包含对应层的实体称为对等体,如两台机器上的应用层实体称为对等体,网络层实体为另一个对等体。
协议:包含——语法,即数据与控制信息的结构或格式;语义:即需发现何种控制信息,完成何种动作以及做出何种应答;同步:即事件实现顺序的详细说明。
服务:为保证上层对等体之间能够相互通信,下层向上层提供的功能。
服务原语:网络相邻层之间进行交互时需要交换的一些必要命令。
服务访问点(SAP):同一系统中相邻两层的实体进行交互的地方。
协议数据单元(PDU)对等层次上传送数据的单位。
服务数据单元(SDU)层与层之间交换数据的单位。
网络体系结构(Network Architecture):层和协议的集合。
协议栈(Protocol Stack):一个特定的系统所使用的一组协议。

数据传输过程就是一个加头部去头部的过程,首先在发送方依次加上第5、4、3、2层头部,然后发送到接收方在接收方处将这些头部依次去掉即可。