本篇笔记主要包括概述、物理层和数据链路层这三章的内容。

概述

  • 三类网络
    电信网络:向用户提供电话、电报、传真等服务;
    有限电视网络:向用户传送各种电视节目;
    计算机网络:使用户可以在计算机之间传数据,由若干结点(node)和连接这些结点的链路(link)组成。
    注:三类网络中起到核心作用是计算机网络,且有相互融合的趋势,即所谓的“三网融合”的概念。

互联网基本概念

Internet的含义

Internet指当前全球最大的、由众多网络相互连接而成的特定计算机网络,采用TCP/IP协议族作为通信规则,前身是美国的ARPANET。我们生活中的“上网”,即是指将某个电子设备连接到Internet。而关于Internet的译名,有以下两种:
因特网:这是全国科学技术名词审定委员会推荐的译名,虽然准确,但未被广泛使用;
互联网:使用最广泛的Internet译名,也更能体现出Internet的主要特征(连通性),因此《计算机网络》一书第七版之后都采用了这个译名,本笔记也是采用这种译名。
注1:Internet是计算机网络的代表,但并不等于计算机网络(还有很多其他类型的网络)。
注2:Internet相当于是“网络的网络”,其将全球众多的计算机网络相互连接起来。
注3:小写的internet,指“互连网”,任意将若干计算机网络连接起来,可以通信就行;而大写的Internet是专有名词,特指全球最大的那个“互联网”。

互联网的架构

当前互联网是多层次ISP的架构,ISP(Internet Service Provider)为互联网服务提供商,负责建造通信线路,从互联网管理机构申请IP地址并分配给用户,分为主干ISP、地区ISP和本地ISP(移动、联通、电信即国内三大主干ISP)。示意图如下:
多层次ISP架构示意图
IXP:为了提升网络传输速率,出现了互联网交换点IXP(Internet eXchange Point),使用数据链路层的网络交换机来实现。其主要作用是允许两个网络直接相连传输数据,而无需再通过ISP转发(如上图两个地区ISP之间的IXP),这样可使得互联网的数据流量分布更合理,减少传输时延。

互联网的组成

虽然互联网的拓扑结构非常复杂,但总体可以分为两大块:
边缘部分:由所有连接在互联网上的主机(host)组成,这部分是用户可以直接接触到的,用来进行数据传输。
核心部分:由大量网络和连接这些网络的路由器组成,这部分是为边缘部分提供服务的。
边缘部分主机的通信方式:可分为两大类:客户-服务器方式(C/S方式)和点对点方式(P2P方式)。
C/S方式中,客户端是服务请求方,主动向服务器发起通信,因此必须知道服务端的地址;而服务端是服务提供方,被动地等待各地的客户端的请求,因此服务端无需知道客户端的地址。
P2P方式中,只要两台主机都运行了对等连接软件(P2P软件),它们就可以平等地进行通信,没有客户端和服务端的区分,也可理解为每台主机既是客户端也是服务端。

互联网核心部分的数据交换方式

互联网核心部分主要作用是交换、传输数据,有三种交换方式。
电路交换:电话的连接方式,两台电话要进行通信,必须经过“建立连接(占用通信资源)->通话(一直占用通信资源)->释放连接(归还通信资源)”三个阶段,两台电话间会建立一条专用的物理线路,通信时会一直占用,通信线路的利用较低。
报文交换:运用了存储转发的原理,整个数据报文先传送到相邻结点,全部存储下来后查找转发表,再转发到下一个结点。
分组交换:同样运用了存储转发(stroe and forward)的原理,将数据报文分成多个小的分组,每个分组在首部加上必要的控制信息,单独地在互联网中进行传输。当路由器收到一个分组后,先暂时存储一下,检查其首部,查找转发表,按照首部中的目的地址,找到合适的接口转发出去(路由算法得出),把分组交给下一个路由器,分组就这样一步步地到达目的地。
三种数据交换方式

  • 三种交换方式的比较:
    1、对于电路交换,是整个比特流连续地从原点直达终点,因此需要建立专用传输线路,如果要传送大量连续数据(传送时间远大于连接建立时间),则电路交换的效率较高;
    2、对于报文交换和分组交换,不需要预先分配传输资源,因此非常适合传输计算机网络这种突发性的数据。另外报文传输是直接传输整个报文,因此时延比分组交换大,且如果报文中出了一点错,整个报文都要重传,开销会很大。
    3、分组交换的优点:高效,对通信线路是逐段占用的,可以充分利用通信资源;灵活,每一个分组都可选择最适合的路由线路进行转发;可靠,当链路中某一结点出现故障,路由算法会自动选择合适的线路。
    4、分组交换的缺点:使用存储转发(stroe and forward)的方式,分组在各个路由结点会有排队问题,产生一定的时延;分组必须携带的首部会产生一定的开销。

计算机网络分类

按网络的作用范围分:
广域网WAN(Wide Area Network):作用范围为几十到几千公里;
城域网MAN(Metropolitan Area Networl):城域网的作用范围一般是一个城市;
局域网LAN(Local Area Network):局域网在地理上局限在较小的范围内(1km左右);
个人区域网PAN(Personal Area Network):在个人工作的地方把个人使用的电子设备(如笔记本电脑)用无线技术连接起来,如蓝牙技术。
按网络使用者分:
分为公用网(public network)和专用网(private network)。
用来把用户加入到互联网的网络:
这种网络叫接入网AN(Access Network),处于从用户到互联网中第一个路由器之间的一种网络。在互联网初期,用户用电话线拨号接入互联网,速率很低,目前使用了接入网技术来连接,速率了有很大的提升。

计算机网络的性能指标

速率:指比特率(bit/s),并非Byte,而且多指额定速率
带宽:传统的带宽指的是频带宽度,单位是HZ。而在计算机网络中,带宽指网络的最高发送速率
吞吐量:单位时间内通过网络的实际数据量,指实际速率
注:在存储领域,1k=1024;而在通信领域,1k=1000。
往返时间:往返时间RTT(Round-Trip Time)表示双向交互一次所需要的时间。
信道利用率:指信道有多长时间是被利用的(有数据通过),空闲的信道利用率为0。注:信道利用率并非越大越好,利用率增大,时延也会增加。

网络时延

时延是指数据从网络的一端传送到另一端所花费的时间,网络时延由以下几部分组成:
发送时延:主机或路由器发送数据帧所花费的时间,发生在网卡中。$$发送时延=\frac {数据帧长度(bit)} {发送速率(bit/s)}$$
传播时延:电磁波在信道中传播所花费的时间,发生在信道中。$$传播时延=\frac {信道长度(m)} {电磁波在信道中的传播速率(m/s)}$$
信号传播速率与信道有很大关系,如光纤、铜线等等。
处理时延:在交换结点分组转发所需的时间,如分析首部、进行差错检验等,没有具体的计算公式。
排队时延:分组在路由器的缓存队列中排队等待的时间,同样没有具体的计算公式。
因此网络总时延就是以上四种时延之和:$$总时延=发送时延+传播时延+处理时延+排队时延$$
注:高速网络链路,提高的是发送速率(带宽),并不能提高传输速率。如我们所说的光纤传输速率高,是指可以用很高的速率向光纤信道发送数据,而光纤信道的传播速率实际上比铜线还要低。
四种时延产生的地方不一样
时延带宽积:时延带宽积=传播时延 X 带宽,如时延带宽积为\(2\times 10^5bit\),相当于当发送的第一个比特到达终点时,发送端已经发送了20万个比特,而这20万个比特都未还在传输过程中,因此时延带宽积也表示从发送端发出的但尚未到达接收端的比特数。

计算机网络体系结构

无论哪种网络体系结构,都采用了“分层”的思想,目前主要有两种体系:OSI和TCP/IP,OSI非常权威,但因为过于复杂,更多被当作一种理论参考,工程上未广泛应用;运用最广泛的是TCP/IP协议,也是事实上的“国际标准”。OSI协议为7层,TCP/IP协议有4层,谢书中采用的是两者的结合版,即一种5层的网络结构。
三种网络体系结构

  • 五层协议结构
    应用层:应用层协议定义的是进程间的交互规则,因为主机间通信的本质是主机上进程的通信(进程即为正在运行的程序)。具体的应用层协议有DNS、HTTP等。应用层数据单位:报文(message)。
    运输层:运输层负责为主机进程间的通信提供通用的数据传输服务,目前主要有两种协议:传输控制协议TCP和用户数据报协议UDP,TCP提供面向连接、可靠的数据传输服务,UDP提供无连接的、尽最大努力的数据传输服务。运输层数据单位:TCP为报文段(segment),UDP为用户数据报
    网络层:网络层负责分组交换网的数据传输服务,使用IP协议。与运输层的不同在于:运输层针对互联网的边缘部分,网络层针对互联网的核心部分,路由器在转发时最高就涉及到网络层,不涉及运输层和应用层。网络层数据单位:IP数据报(就是之前所说的分组)。
    数据链路层:数据链路层负责分组交换网中相邻结点的数据传输,与网络层的不同在于:网络层是源结点到目的结点(中间可能有多个结点),而数据链路层是相邻结点。数据链路层数据单位:(framing)。
    物理层:负责物理硬件层面的数据传输,物理层数据单位:比特(bit)。
    注:数据从上层到下层需要加首部,加上相关控制信息。另外,从网络层->链路层还要加尾部(做差错校验的工作)。
    数据在各层的变化

物理层

  • 物理层的主要任务
    物理层研究的是如何在各种传输媒体上传输比特流,如各个物理接口的尺寸、接口电缆上电压的范围、各种编码方式等,而不是具体的传输媒体(这属于通信领域的范畴)。

  • 物理层传输媒介
    导引型(有线):双绞线、同轴电缆、光纤
    非导引型(无线):自由空间

信道

  • 信道的基本概念
    信道指向某一个方向传送信息的媒体,是单向的,因此一条通信线路往往包含一条发送信道和一条接收信道。
    单工通信(单向通信):只能有一个方向通信,如收音机。
    半双工通信(双向交替通信):通信双方都可以发送信息,但不能同时发送,如对讲机。
    全双工通信(双向同时通信):通信双方可以同时发送/接收信息。
    注:单工通信只需一条信道,半双工和全双工通信需要两条信道。

调制

为什么要进行调制:来自信源的信号不适合进行长距离传输。
基带调制:数字信号->另一种数字信号(没有变为模拟信号),也称为编码。具体有如下几种:
不归零编码:正电平代表1,负电平代表0。
归零编码:正脉冲代表1,负脉冲代表0。
曼彻斯特编码:位周期中心向上跳变代表0,位周期中心向下跳变代表1。
差分曼彻斯特编码:位开始边界有跳变代表0,位开始边界没有跳变代表1。
带通调制:数字信号->模拟信号(加到载波上)。具体有如下几种:
调幅(AM):载波的振幅随基带数字信号变化。
调频(FM):载波的频率随基带数字信号变化。
调相(PM):载波的初始相位随基带数字信号变化。

信道的极限传输速率

如何提高数据在信道上的传输速率是一个被广泛关注的问题,大致可从以下几个方面来考虑:
信道能通过的频率范围:由奈氏准则可知,在任何信道中,码元传输的速率都是有上限的,传输速率超过此上限,就会出现严重的码间串扰问题,因此可通过拓宽频带,来提高码元传输速率的上限。奈氏准则公式:$$极限波特率(baud/s)=2W\times log_2n$$
\(W\)为频带宽度,\(n\)为一个码元可表示几种值,\(log_2n\)即为一个码元携带的信息量。注意区分码元和比特的区别,1码元可以由多个bit位表示。
信噪比:$$信噪比(dB)=10\times log_{10}(S/N)$$
\(S\)为信号的平均功率,\(N\)为噪声的平均功率。
香农公式:信道的极限信息传输速率C为:$$C=W\times log_2(1+S/N)$$
C为比特率bit/s,W为信道的带宽(Hz)。由公式可知,信道带宽越大,信噪比越高,信息的极限传输速率就越高。
比特率和波特率换算:$$比特率(bit/s)=波特率(baud/s)\times 码元信息量$$ $$码元信息量=log_2n$$
\(n\)为一个码元可表示几种值。奈氏准则的具体表示?奈氏准则和香农公式的换算?

信道复用技术

频分复用(FDM):在同一时间占用不同的频带资源。
时分复用(TDM):在不同时间占用相同的频带资源,类似时间片轮转。
统计时分复用(STDM):与TDM的不同在于,其并非固定顺序分配时间,而是按需动态分配。
波分复用(WDM):光的频分复用,用一根光纤同时传输多个光载波信号。
码分多址(CDMA):具体介绍如下。

码分多址(CDMA)

各个用户使用经过挑选的不同码型,相互之间不会造成干扰,因此用户可在同一时间使用同样的频带进行通信。具体原理如下:
码片:在CDMA中,每个用户被分配一个m位的码片序列(由+1和-1组成),用户若要发送比特1,则直接发送这个m位码片序列;若要发送0,则发送该码片序列的反码。如码片序列为(-1-1-1+1+1-1+1+1),则1对应的就是(-1-1-1+1+1-1+1+1),0对应的就是(+1+1+1-1-1+1-1-1),这个m位序列才是最终的发送结果。
码片正交:码片的一个重要特点是,各个用户所分配的码片是正交的,如S代表某用户的码片,T代表其他用户的码片,两个码片正交,则有:
$$S\cdot T = \frac {1} {m} \sum_{i=1}^m S_iT_i=0$$
即两码片按位相乘最后结果为0。
信号处理:不同用户码片合到一起发出去,若想从中分离出用户X的信号,则首先拿到X的码片,和收到的信号做内积运算(按位乘法),结果为1:比特为1,结果为-1:比特为0,结果为0:其他用户的信号。按照这个方法即可把其他用户的信号剔除掉。

宽带接入技术

用户要连接到互联网,必须先连接到ISP,以便获得上网所需的IP地址,因此即出现了宽带接入技术。我国之前多采用电话线+调制解调器(Modern,猫)的方式拨号上网,因速度有限而被逐渐淘汰,目前主流宽带接入方式的有三种。
ADSL技术:ADSL(Asymmetric Digital Subscriber Line),非对称数字用户线路,可直接利用原有的电话线路,无需从新布线,用户使用专门的Modern即可上网,且为电信专线,网速较稳定。
光纤同轴混合网(HFC网):基于有线电视网开发的宽带接入网,在传送电视节目的同时提供宽带服务。将原先有线电视网中的同轴电缆主干部分改换为光纤,一直延申到相应光纤结点后,光信号转换为电信号,再通过同轴电缆将信号传送到用户家庭。要使现有的模拟计算机能够接收数字电视信号,需要使用一个称为机顶盒(set-top box)的设备,同时机顶盒大多内嵌了一个叫电缆调制解调器的设备,通过此设备用户即可接入宽带。
FTTx技术:最理想的宽带接入方式是光纤到户FTTH(Fiber To The Home),将光纤一直铺设到用户家庭,只有在光纤进入家门后,才把光信号转换为电信号,这样做就可使用户获得最高的上网速率。但限于价格和用户需求等问题,光纤到户目前还未被广泛使用,但其衍生出了很多宽带光纤接入方式,称为FTTx,即Fiber To The…,x代表不同的光纤接入地点,即光电转换的地方。目前大中城市较普及的是光纤接入到楼(FTTB)或小区(FTTZ),再通过网线接入用户家,从而为整幢楼或小区提供共享带宽。

数据链路层

  • 数据链路层两种信道类型
    点对点信道:点对点通信方式(一对一),最常用的协议是PPP协议,多用于住宅主机的拨号上网。
    广播信道:广播通信方式(一对多),因为主机数较多,必须用专用的共享信道协议(CSMA/CD)来协调主机间的数据发送,多用于局域网

  • 链路和数据链路
    链路:无源的点到点的物理线路段,中间没有任何其他的交换结点。
    数据链路:物理链路+通信协议,即硬件+软件。

数据链路层的三个基本问题

  1. 封装成帧(framing)
  2. 透明传输
  3. 差错检测

封装成帧

概念:在一段数据的前后分别添加首部和尾部,就构成了一个帧。首部和尾部的作用是进行帧定界,即确定帧的开始和结束。
具体实现:用控制字符完成帧定界,将控制字符SOH(Start Of Header)放在帧的首部表示帧的开始,将控制字符EOT(End Of Transmission)表示帧的结束。
帧首部和帧尾部

透明传输

“封装成帧”的问题:如果数据中的某个字节的二进制代码恰好和SOH或EOT一样,帧就会错误地开始或结束。因此要对帧的数据部分出现的控制字符进行处理。
处理方法:字符填充(也称字节填充),在帧数据部分的SOH/EOT前插入一个转义字符,这样接收时就不会把其当作控制字符来处理(防止帧提前结束掉),最后在数据送向网络层时删去转义字符即可。
注:如果转义字符也出现在数据当中,就在转义字符前也加一个转义字符。

差错检测

问题背景:数据传输中可能会产生比特差错:1变成0或0变成1,因此要采用差错检测措施。
循环冗余码CRC:重点!具体算法见《计算机网络》P74
注1:使用循环冗余码只能做到无比特差错,但还做不到可靠传输(CRC只能做到接受的帧都没有错误)。
注2:可靠传输包括两部分:无比特差错 & 无传输差错。传输差错指帧丢失、帧重复和帧失序,要做到无传输差错,则必须要有确认和重传机制(由上层协议完成)。

MAC层

为了制订一个通用的协议模型,IEEE802委员会将数据链路层又拆分成了两个子层:
介质访问控制子层(MAC):MAC层,负责与传输介质相关的部分,将相关操作封装好共LLC透明调用。
逻辑链路控制子层(LLC):LLC层,负责逻辑控制,与传输介质无关,不管采用何种协议对LLC层都是透明的。

MAC层地址

在局域网中,每个网络适配器(网卡)都会有一个唯一的硬件地址,称为MAC地址。
MAC地址位数是48位,高24位为IEEE向网卡厂商分配,低24位为厂商自行指派。
在局域网外部传输,使用IP地址查找主机;进入局域网后,即是查找MAC地址。
IP地址和MAC地址关系

MAC帧格式

MAC帧格式
MAC帧数据部分长度范围:46-1500。
整个MAC帧长度范围:64-1518,首部和尾部总共18字节。
最大传送单元MTU:指MAC帧中数据部分的最大长度,为1500。

以太网

  • 局域网和以太网的区别
    以太网是一种局域网,而局域网却不一定是以太网,只是由于目前大多数的局域网是以太网,所以一般说局域网,大家都默认为以太网。
    所谓以太网,是一种总线型局域网,局域网的拓扑结构有很多实现方式,还有有星型、环形等,但目前应用最广泛的局域网标准还是以太网。

  • 以太网的通信特点

    1. 和其他种类局域网中的传播方式相同,采用广播的方式。
    2. 无连接的工作方式,也没有确认和重传机制,因为局域网的通信质量较好,发生错误的几率较小。
    3. 收到有差错的数据帧就丢弃,但不做纠错,纠错工作交给上层协议。因此以太网提供的服务是不可靠的交付。
    4. 发送的数据使用的是曼彻斯特编码,位周期中心向上跳变代表0,位周期中心向下跳变代表1

CSMA/CD

定义:载波监听多点接入/碰撞检测(Carrier Sense Multiple Access with Collision Detection) ,是以太网上的一种通信协议。
多点接入:一根总线上解入多个计算机。
载波监听:指发送数据之前要先检测总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
碰撞检测:检测信道上数据是否发生了碰撞。若发生碰撞,信号就会产生严重的失真,因此一旦检测出碰撞,计算机就会立即停止发送数据,等待一段随机时间后再重新发送。
而且也因为信号会发生碰撞,所以以太网只能进行半双工通信,而不能全双工。

CSMA/CD中的碰撞检测

因为电磁波在信道上传播的速率是有限的,因此当监听到总线是空闲的时,总线可能并非真正的空闲(对方的信号正在信道上传输,还没传过来),因此不仅是在发数据前要检测碰撞,在发送数据的期间也要进行检测。
碰撞检测的过程
由图可知,先发送数据的计算机,在发送后至多经过\(2\tau\)时间(两倍的端到端往返时延),就可知道发送的数据帧是否遭受了碰撞。
所以\(2\tau\)就称为争用期,只有经过争用期这段时间还没有检测到碰撞,才能肯定此次发送不会发生碰撞。
以太网取\(51.2\mu s\)为争用期长度,对于10Mbit/s以太网,在争用期内可发送 512 bit,即64字节。因此若发生冲突,一定是在发送的前64字节之内。
所以以太网规定最短有效帧长为64字节,凡长度小于64字节的帧都是由于冲突而异常中止的无效帧。

二进制指数退避算法

发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。
基本的退避时间为\(2\tau\),之后从集合\([0, 1, … , (2^k-1)]\)中随机取一个数,记为r,重传所需的时延就是r倍的基本退避时间。
参数\(k\)的计算:\(k=Min[重传次数, 10]\)。
当重传达16次仍不能成功时即丢弃该帧,并向上层报告。

  • 强化碰撞
    检测到碰撞后,立即停止发送数据,之后继续发送若干比特的人为干扰信号,以便让所有用户都知道现在已经发生了碰撞。

扩展以太网

集线器:用集线器将多个碰撞域组合成一个碰撞域。
网桥:用网桥将各网段隔离为单独的碰撞域,网桥工作在数据链路层,其根据MAC地址对收到的帧进行转发。
以太网交换机:相当于多接口网桥。

  • 连接不同网络的中间设备
    物理层:集线器Hub,会扩大碰撞域,而且没法抑制广播风暴。
    数据链路层:交换机。
    网络层:路由器,由于历史的原因,许多有关 TCP/IP 的文献将网络层使用的路由器称为网关。
    交换机和路由器的不同:交换机连接的是主机,路由器连接的是网络。

Post Date: 2018-05-28

版权声明: 本文为原创文章,转载请注明出处