计算机网络
第一章 概述
网络是指“三网”:电信网络、有线电视网络和计算机网络。
其中发展最快并起到核心作用的是计算机网络。
计算机网络向用户提供的最重要的的功能:连通性、共享(资源共享)。
网络(network)由若干结点(node)和连接这些结点和连接这些结点的链路(link)组成。(网络由结点和链路组成)
互联网是“网络的网络”(network of networks)。
连接在因特网上的计算机都成为主机(host)。
网络把许多计算机连接在一起;因特网把许多网络连接在一起。
三级计算机网络,分为主干网、地区网和校园网(或企业网)。
万维网(World Wide Web)
制定因特网的正式标准要经过四个阶段:
①因特网草案(Internet Draft)
②建议标准(Proposed Standard)
③草案标准(Draft Standard)
④因特网标准(Internet Standard)
因特网从工作方式上可分为:边缘部分(用户直接使用,进行通信(传送数据音频视频)和资源共享)和核心部分(为边缘部分提供服务(提供连通性和交换))。
处在因特网边缘的部分就是连接在因特网上的所有主机(端系统end system)。
边缘部分
在网络边缘的端系统中运行的程序之间的通信方式可划分为两类:
1.客户-服务器方式(Client/Server方式,C/S方式)
客户和服务器都是指通信中所涉及的两个应用进程。
描述的是进程之间服务和被服务的关系。
客户是服务的请求方,服务器是服务的提供方。
客户软件的特点:
1)被用户调用后运行,在打算通信时主动向远地服务器发起通信(请求服务)。因此,客户程序必须知道服务器程序的地址。
2)不需要特殊的硬件和很复杂的操作系统。
服务器软件的特点:
1)一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。系统启动后即自动调用并一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。因此,服务器程序不需要知道客户程序的地址。
2)一般需要强大的硬件和高级的操作系统支持。
2.对等连接方式(Peer-To-Peer方式,P2P方式)
两个主机在通信时并不区分哪一个是服务请求方还是服务提供方。
只要两个主机都运行了对等连接软件(P2P 软件),它们就可以进行平等的、对等连接通信。
双方都可以下载对方已经存储在硬盘中的共享文档。
P2P方式特点:从本质上看仍是C/S,每个主机既是客户机同时又是服务器。
核心部分
要向网络边缘的大量主机提供连通性,使能互相通信,即传送或接收各种形式的数据。
在网络核心部分起特殊作用的是路由器(Router)。
路由器:实现分组交换的关键构件,任务是转发收到的分组。是网络核心部分最重要的功能。
主机是为用户进行信息处理的,并向网络发送分组,从网络接收分组。
路由器对分组进行存储转发,最后把分组交付目的主机。
在路由器中的输入和输出端口之间没有直接连线。
路由器处理分组的过程是:
1)把收到的分组先放入缓存(暂时存储);
2)查找转发表,找出到某个目的地址应从哪个端口转发;
3)把分组送到适当的端口转发出去。
交换:按照某种方式动态地分配传输线路的资源。
1.电路交换
电路交换必定是面向连接的。(速度快)
电路交换三个阶段:建立连接、通信、释放连接。
计算机数据具有突发性(独占),这导致通信线路的利用率很低。
2.分组交换
在发送端,先把较长的报文划分成较短的、固定长度的数据段。再在每一个数据段前面添加上首部构成分组。再一次把各分组发送到接收端。
接收端收到分组后剥去首部还原成报文。
分组首部的重要性:
1)每一个分组的首部都含有地址等控制信息。
2)分组交换网中的结点交换机根据收到的分组的首部中的地址信息,把分组转发到下一个结点交换机。
3)用这样的存储转发方式,最后分组就能到达最终目的地。
分组交换的优点:高效、灵活、迅速、可靠。
分组交换带来的问题:
1)在各结点存储转发时需要排队,这就会造成一定的时延。
2)首部(里面有必不可少的控制信息)也造成了一定的额外开销。
基于存储转发原理。
3.报文交换
先发给一个中间商,再由中间商发给别人(缺点:对中间商设备压力大)
基于存储转发原理。
三种交换的比较:
从网络的作用范围进行分类:
1)广域网 WAN (Wide Area Network)
2)局域网 LAN (Local Area Network)
3)城域网 MAN (Metropolitan Area Network)
4)个人区域网 PAN (Personal Area Network)
从网络的使用者进行分类:
5)公用网 (public network)
6)专用网 (private network)
用来把用户接入到因特网的网络:
接入网 AN (Access Network),它又称为本地接入网或居民接入网。
计算机网络的性能指标:速率、带宽、吞吐量、时延。
时延:
1)发送时延
发送时延=数据帧长度(b)/发送速率(b/s)
2)传播时延
传播时延=信道长度(米)/信号在信道上的传播速率(米/秒)
3)处理时延
4)排队时延
总时延=发送时延+传播时延+处理时延+排队时延
从结点A向结点B发送数据:
1)在结点A中产生处理时延和排队时延
2)在发送器产生发送时延(即传输时延)
3)在链路上产生传播时延
*提高链路带宽减小了数据的发送时延而不是传播时延。
信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。
网络利用率则是全网络的信道利用率的加权平均值。
信道利用率并非越高越好。
计算机网络的非性能特征:费用、质量、标准化、可靠性、可扩展性和可升级性、易于管理和维护。
法律上的国际标准:开放系统互连参考模型OSI/RM。
非国际标准 TCP/IP 现在获得了最广泛的应用。
网络协议(network protocol)是为进行网络中的数据交换而建立的规则、标准或约定。
重点 网络协议的组成要素:语法、语义、同步。
协议必须把所有不利的条件事先都估计到,而不能假定一切都是正常的和非常理想的。
看一个计算机网络协议是否正确,不能光看在正常情况下是否正确,而且还必须非常仔细地检查这个协议能否应付各种异常情况。
分层的好处:
1)各层之间是独立的。
2)灵活性好。
3)结构上可分割开。
4)易于实现和维护。
5)能促进标准化工作。
五层协议的体系结构:(从高到底,低为高服务)
1)应用层(application layer) ()
2)运输层(transport layer) (提供端到端的通信)
3)网络层(network layer) (单位:分组)
4)数据链路层(data link layer) (单位:帧)
5)物理层(physical layer) (单位:比特)
实体(entity) 表示任何可发送或接收信息的硬件或软件进程。
协议是控制两个对等实体进行通信的规则的集合。
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。
要实现本层协议,还需要使用下层所提供的服务。
本层的服务用户只能看见服务而无法看见下面的协议。
下面的协议对上面的服务用户是透明的。
协议是“水平的”,即协议是控制对等实体之间通信的规则。
服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。
同一系统相邻两层的实体进行交互的地方,称为服务访问点 SAP (Service Access Point)。
第二章 物理层
物理层的主要任务描述为确定与传输媒体的接口的一些特性:
机械特性(指明接口的特性)
电气特性(指明在接口电缆的各条线上出现的电压的范围)
功能特性(不同电平电压表示的不同意义)
过程特性(实现不同功能发射信号的顺序)
信号:
a)单向通信(单工通信):只能有一个方向的通信而没有反方向的交互。
b)双向交替通信(半双工通信):通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。
c)双向同时通信(全双工通信):通信的双方可以同时发送和接收信息。
基带信号(基本频带信号):来自信源的信号。
必须对基带信号进行调制。
带通信号:把基带信号经过载波调制后,把信号的频率范围搬移到较高的频段以便在信道中传输(即仅在一段频率范围内能够通过信道)。
最基本的二元调制方法:调幅(AM)、调频(FM)、调向(PM)。
香农用信息论的理论推导出了带宽受限且有高斯白噪声干扰的信道的极限、无差错的信息传输速率C。
(香农公式)
C = W log2( 1 + S/N ) b/s
信道带宽W,以Hz为单位;
信道内所传信号的平均功率S;
信道内部的高斯噪声功率N。
信噪比=10*log10(s/n)
导引型传输媒体:
a)双绞线
屏蔽双绞线 STP (Shielded Twisted Pair)
无屏蔽双绞线 UTP (Unshielded Twisted Pair)
线序:568B:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕
568A(1.3换2.6换):绿白、绿、橙白、蓝、蓝白、橙、棕白、棕
b)同轴电缆
50Ω同轴电缆
75Ω同轴电缆
c)光缆
多模光纤 传输距离近、慢 局域网 LAN
单模光纤 传输距离远、快 广域网 WAN
非导引型传输媒体:
无线传输所使用的频段很广。
短波通信主要是靠电离层的反射,但短波信道的通信质量较差。
微波在空间主要是直线传播:地面微波接力通信、卫星通信、
信道复用技术:
a)频分复用FDM(一人占用一个频率带宽)
用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。
频分复用的所有用户在同样的时间占用不同的带宽资源(请注意,这里的“带宽”是频率带宽而不是数据的发送速率)。
b)时分复用TDM
将时间划分为一段段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙。
每一个用户所占用的时隙是周期性地出现(其周期就是TDM帧的长度)。
TDM 信号也称为等时信号。
时分复用的所有用户是在不同的时间占用同样的频带宽度。
会造成线路资源的浪费。
c)统计时分复用STDM
d)波分复用WDM
就是光的频分复用。
e)码分复用CDM
常用的名词是码分多址CDMA。
各用户使用经过特殊挑选的不同码型,因此彼此不会造成干扰。
这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。
每一个比特时间划分为m个短的间隔,称为码片(chip)。
旧的数字传输系统存在缺点:速率标准不统一、不是同步传输。
同步光纤网SONET
同步数字系列SDH
宽带接入技术ADSL
光纤同轴混合网HFC
第三章 数据链路层
数据链路层使用的信道主要有:点对点信道、广播信道。 (有MTU问题)
使用点对点信道的数据链路层:
链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
数据链路层传送的是帧。
数据链路层解决的三个基本问题:封装成帧、透明传输、差错控制。
封装成帧(Framing):
在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。首部和尾部的一个重要作用就是进行帧定界,确定帧的界限。
帧开始符SOH/帧结束符EOT
透明传输:
帧的数据部分出现EOT,被接收端误以为已结束,EOT后的有效数据被当做无效帧以抛弃。
在帧中间的SOH和EOT前面加入一个转义字符ESC
解决透明传输问题:字节填充(byte stuffing)或字符填充(character stuffing)——接收端的数据链路层在将数据送往网络层之前删除插入的转义字符ESC。
差错控制:
在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。
(重点)在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。
在数据后面添加上的冗余码称为帧检验序列 FCS。
循环冗余检验 CRC 和帧检验序列 FCS并不等同。
*CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。
FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。
接收端对收到的每一帧进行 CRC 检验:若得出的余数R=0,则判定这个帧没有差错,就接受(accept);若余数 R≠0,则判定这个帧有差错,就丢弃。
*并不能确定究竟是哪一个或哪几个比特出现了差错。
要做到“可靠传输”就必须再加上确认和重传机制。
求余数的方法:异或除法
点对点协议PPP(Point-to-Point Protocol)
现在全世界使用得最多的数据链路层协议是PPP。
PPP应满足的需求:简单(这是首要的要求)/封装成帧/透明性/多种网络层协议/多种类型链路/差错检测/检测连接状态/最大传送单元/网络层地址协商/数据压缩协商
PPP不需要的功能: 纠错/流量控制/序号/多点线路/半双工或单工链路
PPP协议不提供序号和确认的可靠传输。
PPP 协议有三个组成部分:
a)一个将 IP 数据报封装到串行链路的方法。
b)链路控制协议 LCP (Link Control Protocol)。
c)网络控制协议 NCP (Network Control Protocol)。
PPP是面向字节的,所有的PPP帧的长度都是整数字节。
当 PPP 用在异步传输时,就使用一种特殊的字符填充法。
PPP 协议用在 SONET/SDH 链路时,是使用同步传输(一连串的比特连续传送)。这时 PPP 采用零比特填充方法来实现透明传输。
零比特传输:在发送端发现五个1即填入一个0,接收端发现五个1删除后面一个0。
局域网最主要的特点:网络为一个单位所拥有,且地理范围和站点数目均有限。
局域网的主要优点:
a)具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
b)便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。
c)提高了系统的可靠性、可用性和残存性。
静态划分信道:频分复用/时分复用/波分复用/码分复用
动态媒体接入控制(多点接入):随机接入/受控接入(多点线路探询或轮询)
数据链路层的两个子层:逻辑链路控制 LLC (Logical Link Control)子层/媒体接入控制 MAC (Medium Access Control)子层。与接入到传输媒体有关的内容都放在 MAC子层,而 LLC 子层则与传输媒体无关,不管采用何种协议的局域网对 LLC 子层来说都是透明的。以后一般不考虑LLC子层。
网络接口板又称为通信适配器(adapter)或网络接口卡 NIC (Network Interface Card),或“网卡”。
适配器(网卡)的重要功能:
a)进行串行/并行转换。
b)对数据进行缓存。
c)在计算机的操作系统安装设备驱动程序。
d)实现以太网协议。
为了通信简便,以太网采取了两种重要措施:
a)采用较为灵活的无连接工作方式(不必先建立连接就可以直接发送数据)。
b)以太网对发送的数据帧不进行编号,也不要求对方发回确认。
以太网提供的服务是不可靠的交付,即尽最大努力的交付。当目的站收到有差错的数据帧时就丢弃此帧,其他什么也不做。差错的纠正由高层来决定。如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新的数据帧来发送。
以太网发送的数据都使用曼彻斯特(Manch hvb vbvester)编码:
CSMA/CD(载波监听/多点接入/碰撞检测)
“碰撞检测”就是计算机边发送数据边检测信道上的信号电压大小。所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称为“冲突检测”。
若检测到碰撞则立即停止发送数据,以免浪费网络资源。
以太网的端到端往返时延 2 称为争用期,或碰撞窗口。 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
CSMA/CD重要特性:
a)使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)。
b)每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。
c)发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。
二进制指数类型退避算法 (truncated binary exponential type)
发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。
基本退避时间取为争用期 2 。
从整数集合[0,1,…, (2k-1)]中随机地取出一个数,记为 r。重传所需的时延就是 r 倍的基本退避时间。
参数 k 按公式计算:k = Min[重传次数, 10]
当重传达16次仍不能成功时即丢弃该帧,并向高层报告。
以太网取51.2μs为争用期的长度。
以太网规定了最短有效帧长为 64 字节。
星形网10BASE-T,在星形拓扑的中心增加了集线器(可靠性非常高)。不用电缆而使用无屏蔽双绞线。每个站需要用两对双绞线,分别用于发送和接收。
集线器很像一个多接口的转发器,工作在物理层。
帧长为L(bit),数据发送速率为C(b/s),帧的发送时间为L/C=T0(s)。
在以太网中定义了参数 a,它是以太网单程端到端时延 与帧的发送时间 T0 之比:a=/T0 。a→0 表示一发生碰撞就立即可以检测出来,并立即停止发送,因而信道利用率很高。
帧间最小间隔为 9.6 s。
用集线器扩展局域网
优点:
a)使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的通信。
b)扩大了局域网覆盖的地理范围。
缺点:
a)碰撞域增大了,但总的吞吐量并未提高。
b)若不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。
在数据链路层扩展局域网是使用网桥。网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发。网桥具有过滤帧的功能。
使用网桥的好处:
a)过滤通信量。
b)扩大了物理范围。
c)提高了可靠性。
d)可互连不同物理层、不同 MAC 子层和不同速率(如10 Mb/s 和 100 Mb/s 以太网)的局域网。
使用网桥的缺点:
a)存储转发增加了时延。
b)在MAC 子层并没有流量控制功能。
c)具有不同 MAC 子层的网段桥接在一起时时延更大。
d)只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴。
集线器在转发帧时,不对传输媒体进行检测。而网桥在转发帧之前必须执行 CSMA/CD 算法。
目前使用得最多的网桥是透明网桥,是一种即插即用设备。
在网桥的转发表中写入的信息除了地址和接口外,还有帧进入该网桥的时间。
源路由(source route)网桥在发送帧时将详细的路由信息放在帧的首部中。
多接口网桥——以太网交换机。以太网交换机的每个接口都直接与主机相连,并且一般都工作在全双工方式。
100BASE-T 以太网又称为快速以太网(Fast Ethernet)。
100BASE-T 以太网特点:
a)可在全双工方式下工作而无冲突发生。因此,不使用 CSMA/CD 协议。
b)MAC 帧格式仍然是 802.3 标准规定的。
c)保持最短帧长不变,但将一个网段的最大电缆长度减小到 100 m。
d)帧间时间间隔从原来的 9.6 s 改为现在的 0.96 s。
以太网从 10 Mb/s 到 100 Gb/s 的演进证明了以太网是:
a)可扩展的(从 10 Mb/s 到 100 Gb/s)。
b)灵活的(多种传输媒体、全/半双工、共享/交换)。
c)易于安装。
d)稳健性好。
第四章 网络层
网络层采用的两种服务:虚电路服务、数据报服务。
虚电路表示这只是一条逻辑上的连接,并不是真正建立了一条物理连接。
网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。
与 IP 协议配套使用的还有三个协议:地址解析协议ARP、网际控制报文协议ICMP、网际组管理协议IGMP。
网络互相连接起来要使用一些中间设备,中间设备又称为中间系统或中继(relay)系统。
物理层中继系统:转发器(repeater)。
数据链路层中继系统:网桥或桥接器(bridge)。
网络层中继系统:路由器(router)。
网桥和路由器的混合物:桥路器(brouter)。
网络层以上的中继系统:网关(gateway)。
虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用IP协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。
使用虚拟互连网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节。
IP地址的编址方法:
a)分类的IP地址。
b)子网的划分。
c)构成超网。
分类的IP地址
网络号 net-id,它标志主机(或路由器)所连接到的网络
主机号 host-id,它标志该主机(或路由器)
IP地址::={<网络号>,<主机号>}
A类:0-127(其中段0和段127不可用)
B类:128-191
C类:192-223
D类:224-239
E类:240-255(其中段255不可用)
地址解析协议 ARP
ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP协议就会自动将该IP地址解析为链路层所需要的硬件地址。
和
一个 IP 数据报由首部和数据两部分组成。
首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。
在首部的固定部分的后面是一些可选字段,其长度是可变的。
在路由表中,对每一条路由,最主要的是(目的网络地址,下一跳地址)
默认路由可以减小路由表所占用的空间和搜索路由表所用的时间。
划分子网:两级地址->三级地址
划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。从主机号借用若干个位作为子网号subnet-id。
IP地址::={<网络号>,<子网号>,<主机号>}
使用子网掩码(subnet mask)可以找出 IP 地址中的子网部分。
(IP地址)AND(子网掩码)=网络地址:
主机号=IP-网络地址(0.0.0.8)
不同的子网掩码可能得出相同的网络地址,但不同的掩码的效果是不同的。
无分类编址CIDR
无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。
CIDR使用各种长度的“网络前缀”来代替分类地址中的网络号和子网号。
IP 地址从三级编址(使用子网掩码)又回到了两级编址。
IP地址::={<网络前缀>,<主机号>}
斜线记法(CIDR记法),即在 IP 地址面加上一个斜线“/”,然后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中1的个数)。
CIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块”。
一个CIDR地址块可以表示很多地址,这种地址的聚合称为路由聚合(构成超网)。
前缀长度不超过23位的CIDR地址块都包含了多个C类地址。这些C类地址合起来就构成了超网。
使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配 (最长匹配或最佳匹配 )。
网络前缀越长,其地址块就越小,因而路由就越具体。
为了进行更加有效的查找,通常是将无分类编址的路由表存放在一种层次的数据结构中,然后自上而下地按层次进行查找。这里最常用的就是二叉线索。
网际控制报文协议 ICMP
ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。是IP层的协议。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。
ICMP报文种类:ICMP差错报告报文/ICMP询问报文
ICMP 报文的前 4 个字节是统一的格式,共有三个字段:类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。
ICMP差错报告报文种类:终点不可达/源点抑制(Source quench)/时间超过/参数问题/改变路由(重定向)(Redirect)
ICMP询问报文种类:回送请求和回答报文/时间戳请求和回答报文
ICMP的应用举例PING (Packet InterNet Groper)。
理想的路由算法:正确而完整/计算上简单/自适应性/稳定性/公平的/最佳的。
静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。
因特网有两大类路由选择协议:内部网关协议 IGP (Interior Gateway Protocol)(有RIP和OSPF)/外部网关协议EGP (External)(有BGP)
内部网关协议RIP(Routing Information Protocol)
是一种分布式的基于距离向量的路由选择协议。要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。距离也称为跳数。
允许一条路径最多只能包含15个路由器。“距离”的最大值为16 时即相当于不可达。可见其只适用于小型互联网。
RIP只选择一条最短路由。
RIP协议的三个要点:
a)仅和相邻路由器交换信息。
b)交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
c)按固定的时间间隔交换路由信息。
RIP 协议的收敛(convergence)过程较快,即在自治系统中所有的结点都得到正确的路由选择信息的过程。
RIP缺点:当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。限制了网络的规模,它能使用的最大距离为15(16表示不可达)。路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
RIP 协议最大的优点就是实现简单,开销较小。
内部网关协议OSPF(Open Shortest Path First)
OSPF协议是分布式的链路状态协议。
OSPF协议的三个要点:
a)向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。
b)发送的信息就是与本路由器相邻的所有路由器的链路状态(说明本路由器都和哪些路由器相邻,以及该链路的“度量”),但这只是路由器所知道的部分信息。
c)只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。
OSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。OSPF 的更新过程收敛得快是其重要优点。
为了使OSPF能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域。划分区域的好处:将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。
OSPF特点/优点:
a)OSPF 不用 UDP 而是直接用 IP 数据报传送。
b)OSPF 构成的数据报很短。这样做可减少路由信息的通信量。
c)数据报很短的另一好处是可以不必将长的数据报分片传送。
d)OSPF 对于不同类型的业务可计算出不同的路由。
e)多路径间的负载平衡。
f)所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。
g)支持可变长度的子网划分和无分类编址 CIDR。
h)每一个链路状态都带上一个 32 位的序号,序号越大状态就越新。
i)OSPF 还规定每隔一段时间要刷新一次数据库中的链路状态。
j)由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。
k)OSPF 没有“坏消息传播得慢”的问题(但RIP有)。
OSPF五种分组类型:问候(Hello)分组/数据库描述(Database Description)分组/链路状态请求(Link State Request)分组/链路状态更新(Link State Update)分组,用洪泛法对全网更新链路状态/链路状态确认(Link State Acknowledgment)分组。
OSPF基本操作:确定可达性(问候)、达到数据库的同步(数据库描述)、新情况下的同步(链路状态请求/更新/确认)。
OSPF 使用的是可靠的洪泛法。
外部网关协议 BGP
BGP 是不同自治系统的路由器之间交换路由信息的协议。
最新版本第四版BGP-4,可简写为BGP。
边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
BGP协议特点:
a)BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
b)在BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销方面都有好处。
BGP共使用四种报文:打开(OPEN)报文、更新(UPDATE)报文、保活(KEEPALIVE)报文、通知(NOTIFICATION)报文。
路由器
任务是转发分组。
路由选择->分组转发
转发(forwarding)就是路由器根据转发表将用户的IP数据报从合适的端口转发出去。
路由选择(routing)则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。
路由表是根据路由选择算法得出的。而转发表是从路由表得出的。
a)数据链路层剥去帧首部尾部后,将分组送到网络层队列中排队等待处理。
b)当交换结构传送过来的分组先进行缓存。数据链路层处理模块将分组加上链路层的首部和尾部,交给物理层后发送到外部线路。
c)若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。
IP多播的特点:
a)多播使用组地址——IP使D 类地址支持多播。多播地址只能用于目的地址,而不能用于源地址。
b)永久组地址——由因特网号码指派管理局IANA负责指派。
c)动态的组成员
d)使用硬件进行多播
IP多播需要两种协议:网际组管理协议IGMP和多播路由选择协议。
第五章 运输层
运输层向它上面的应用层提供通信服务。它属于面向通信部分的最高层,同时也是用户功能中的最底层。
运输层一个很重要的功能就是复用和分用。
运输层提供应用进程之间的逻辑通信。
(网络层)IP协议的作用范围:提供主机之间的逻辑通信。
(运输层)TCP和UDP协议的作用范围:提供进程之间的逻辑通信。
运输层的主要功能:
a)运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。
b)运输层还要对收到的报文进行差错检测。
c)运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP。
当运输层采用面向连接的 TCP 协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的可靠信道。
当运输层采用无连接的 UDP 协议时,这种逻辑通信信道是一条不可靠信道。
用户数据报协议UDP(User Datagram Protocol)
传输控制协议TCP(Transmission Control Protocol)
TCP 传送的数据单位协议是 TCP 报文段(segment)
UDP 传送的数据单位协议是 UDP 报文或用户数据报。
UDP的主要特点:
a)UDP 是无连接的,即发送数据之前不需要建立连接。
b)UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用控制。
c)UDP 是面向报文的。UDP 没有拥塞控制,很适合多媒体通信的要求。
d)UDP 支持一对一、一对多、多对一和多对多的交互通信。(基于端口分用)
e)UDP 的首部开销小,只有 8 个字节。
TCP的主要特点:
a)TCP 是面向连接的运输层协议。
b)每一条 TCP 连接只能有两个端点(endpoint),每一条 TCP 连接只能是点对点的(一对一)。
c)TCP 提供可靠交付的服务。
d)TCP 提供全双工通信。
e)面向字节流。
注意:
a)TCP 连接是一条虚连接而不是一条真正的物理连接。
b)TCP 对应用进程一次把多长的报文发送到TCP 的缓存中是不关心的。
c)TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP 发送的报文长度是应用进程给出的)。
d)TCP 可把太长的数据块划分短一些再传送。TCP 也可等待积累有足够多的字节后再构成报文段发送出去。
TCP 连接的端点叫做套接字(socket)或插口。
端口号拼接到(contatenated with) IP 地址即构成了套接字。
套接字 socket = (IP地址: 端口号)
TCP 连接 ::= {socket1, socket2}
= {(IP1: port1), (IP2: port2)}
使用确认和重传机制,我们就可以在不可靠的传输网络上实现可靠的通信。
这种可靠传输协议常称为自动重传请求ARQ (Automatic Repeat reQuest)。
ARQ 表明重传的请求是自动进行的。
TCP可靠通信的具体实现:
a)TCP 连接的每一端都必须设有两个窗口——1个发送窗口和1个接收窗口。
b)TCP 的可靠传输机制用字节的序号进行控制。TCP 所有的确0认都是基于序号而不是基于报文段。
c)TCP 两端的四个窗口经常处于动态变化之中。
d)TCP连接的往返时间 RTT 也不是固定不变的。需要使用特定的算法估算较为合理的重传时间。
加权平均往返时间 RTTS(这又称为平滑的往返时间)
超时重传时间 RTO
0
流量控制(flow control)就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。
利用滑动窗口机制可以很方便地在 TCP 连接上实现流量控制。
在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏——产生拥塞(congestion)。
出现资源拥塞的条件:对资源需求的总和 > 可用资源
几种拥塞控制原理:
a)慢开始和拥塞避免
b)快重传和快恢复
运输连接就有三个阶段,即:连接建立、数据传送和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常地进行。
连接建立过程中要解决以下三个问题:
a)要使每一方能够确知对方的存在。
b)要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。
c)能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。
客户-服务器方式
TCP 连接的建立都是采用客户服务器方式。主动发起连接建立的应用进程叫做客户(client)。被动等待连接建立的应用进程叫做服务器(server)。
第六章 应用层
许多应用层软件经常直接使用域名系统 DNS (Domain Name System),但计算机的用户只是间接而不是直接使用域名系统。
不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。
顶级域名 TLD (Top Level Domain)
DNS 域名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器。当主域名服务器出故障时,辅助域名服务器可以保证DNS的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。
主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。
文件传送协议 FTP (File Transfer Protocol) 是因特网上使用得最广泛的文件传送协议。
简单文件传送协议 TFTP (Trivial File Transfer Protocol)。
TELNET 是一个简单的远程终端协议,也是因特网的正式标准。
万维网 WWW (World Wide Web)并非某种特殊的计算机网络。万维网是一个大规模的、联机式的信息储藏所。提供分布式服务。
超文本标记语言 HTML (HyperText Markup Language)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。HTML把各种标签嵌入到万维网的页面中。这样就构成了所谓的 HTML文档。HTML文档是一种可以用任何文本编辑器创建的 ASCII 码文件。
统一资源定位符 URL (Uniform Resource Locator)是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。
<协议>://<主机>:<端口>/<路径>
超文本传送协议 HTTP (HyperText Transfer Protocol)。HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。为了使超文本的链接能够高效率地完成,需要用 HTTP 协议来传送一切必须的信息。从层次的角度看,HTTP 是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
通用网关接口 CGI(Common Gateway Interface)。CGI 程序的正式名字是 CGI 脚本(script)。
用户上网过程:
a)浏览器分析超链指向页面的 URL。
b)浏览器向 DNS 请求解析 www.tsinghua.edu.cn 的 IP 地址。
c)域名系统 DNS 解析出清华大学服务器的 IP 地址。
d)浏览器与服务器建立 TCP 连接
e)浏览器发出取文件命令: GET /chn/yxsz/index.htm。
f)服务器给出响应,把文件 index.htm 发给浏览器。
g)TCP 连接释放。
h)浏览器显示“清华大学院系设置”文件 index.htm 中的所有文本。
发送邮件的协议:SMTP
读取邮件的协议:POP3 和 IMAP
MIME(通用因特网邮件扩充)在其邮件首部中说明了邮件的数据类型(如文本、声音、图像、视像等),使用 MIME 可在邮件中同时传送多种类型的数据。
用户代理 UA (User Agent)
简单邮件传送协议 SMTP(连接建立、邮件传送、连接释放)
邮件读取协议POP3 和 IMAP:
a)邮局协议 POP 是一个非常简单、但功能有限的邮件读取协议,现在使用的是它的第三个版本 POP3。
b)POP 也使用客户服务器的工作方式。
c)在接收邮件的用户 PC 机中必须运行 POP 客户程序,而在用户所连接的 ISP 的邮件服务器中则运行 POP 服务器程序。
IMAP 协议(Internet Message Access Protocol)
动态主机配置协议 DHCP(Dynamic Host Configuration Protocol) 。提供了即插即用连网(plug-and-play networking)的机制。这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。
DHCP 使用客户服务器方式。
简单网络管理协议 SNMP
管理信息库 MIB(Management Information Base)
被管对象必须维持可供管理程序读写的若干控制和状态信息。这些信息总称为管理信息库 MIB 。MIB 在被管理的实体中创建了命名对象,并规定了其类型。
管理信息结构 SMI
基本编码规则 BER(Basic Encoding Rule)
用 TLV 方法进行编码(标记、长度、值)
SNMP 的协议数据单元和报文:两种基本管理功能,get读,set写。
探询操作——SNMP 管理进程定时向被管理设备周期性地发送探询信息。
SNMP 不是完全的探询协议,它允许不经过询问就能发送某些信息。这种信息称为陷阱,表示它能够捕捉“事件”。
SNMP 是有效的网络管理协议。
SNMP 使用无连接的 UDP,因此在网络上传送 SNMP 报文的开销较小。但 UDP 不保证可靠交付。
系统调用接口实际上就是应用进程的控制权和操作系统的控制权进行转换的一个接口,即应用编程接口 API (Application Programming Interface)。