第一章:
计算机网络:是将大量计算机设备互联在一起提供数据传输的系统
1. 大量的计算机或设备互联在一起,计算机具有独立处理能力
2. 目的: 资源共享( 数据共享和设备共享)
3. 网络中数据传输由大量的网络通信协议控制
4. 网络中数据传输由大量的传输介质和传输技术实现
逻辑结构:
边缘部分:用户主机组成,用户直接使用,进行通信和资源共享
两个用户主机间的通信实质上是两个主机中的应用进程间的通信
客户服务器方式、P2P(Peer to Peer)对等连接方式
线路交换三步骤:线路建立、数据传输、线路释放
存储转发分类:报文交换、分组交换
报文交换:
无论数据有多长,都作为一个逻辑数据单元加上目的地址、源地址和控制信息,并按规定格式封装
报文交换主要问题:
- 路由器要保留副本,以备出错时重发,而报文长短不一,需要为长报文预留存储空间,但多数情况下,可能是短报文
- 报文过长时,等待时间长
- 相同误码率的情况下,报文越长,出错概率越大,重发机会也就越高
- 报文长度不一,通信协议须判断报文的结束和开始位置,协议的效率不高
报文分组交换:长报文被分为多个短的有限长度分组,1 千或几千比特,每个分组分配分组号,在接收端所有分组按序号重新组装为长的报文
固定格式、长度限制,有效节约时间、空间
动态的为每个分组选择不同的路径通过通信子网
数据报方式: Datagram, DC
特点:
报文的不同分组可通过不同的路径进行传输
分组可能不按顺序到达目的主机,可能重传或丢失
在传输过程中,每个分组需要携带源地址和目的地址
虚电路方式:Virtual Circuit , VC
虚电路连接、数据传输、虚电路释放
特点:
- 在传输分组前建立逻辑连接:虚电路连接
- 报文的所有分组沿着同一条虚电路连接进行传输
- 分组按序到达目的主机,一般不会丢失或重发
- 每个分组赋予一个虚电路标识符,分组中没有必要加目的地址和源地址
- 在每个节点有必要做差错控制,但没必要进行路由选择
- 每个节点支持多条虚电路连接
存储转发的优点:
- 多个数据单元共享一条通信信道,提高信道使用率
- 选择最佳路径通过通信子网
- 平衡网络栽荷
- 减少传输差错
- 在采用不同速率或不同编码格式的信道间交换数据单元
- 可使用优先级
线路交换: 比特流直接到达终点
报文交换: 存储转发
分组交换: 存储转发
第一个网络:ARPANET
网络体系结构:
网络层次结构与各层协议的集合:TCP/IP、OSI/RM
实体:任何可发送或接收信息软件或硬件进程
对等实体:不同节点同一层的实体
协议:控制两个或多个对等实体进行通信的规则的集合
····························
协议基本要素:
语法:协议元素与数据的组合格式
语义 : 协议中各协议元素的含义
时序(同步):通信过程中,通信双方操作的执行顺序和规则
WAN广域网、MAN城域网、LAN局域网、PAN个人区域网
接口或服务访问点或端口SAP(Service Access Point):同一结点内相邻层之间交换信息的通道
协议数据单元, PDU(Protocol Data Unit): 将要发到对等层的信息
接口控制信息,ICI(Interface Control Information): 帮助下一层完成其功能的信息
服务数据单元, SDU(Service Data Unit): 等待发送至下一层的信息
一个SDU可以由多个PDU组成,一个PDU也可以分解成多个SDU
与通信有关的报文:通信方式、通信控制、通信信道
第一类工作:与文件传输直接相关,确保接收方已准备接收和存储文件,双方采用同样的文件格式,如果不一致,至少一方要负责格式转换
第二类工作:提供通信服务
第三类工作:网络接入:负责网络接口的详细工作,如数据帧的格式、长度等
层次划分原则:
- 所有功能分为不同的层
- 网络中的每个节点具有相同的层
- 不同节点的对等层具有相同功能
- 同一节点相邻层间通过SAP进行通信
- 每一层可以利用下层提供的服务而不管其如何实现
- 每一层均为上一层提供服务
- 不同节点同一层的对等实体间可以通过通信协议实现通信
OSI/RM体系结构
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
TCP: Transmission Control Protocol ( 传输控制协议)
IP:Internet Protocol (网络互连协议)
TCP/IP:应用层、运输层、网络层、网络接口层
五层协议:应用层、运输层、网络层、数据链路层、物理层
计算机网络的性能指标:
速率、带宽、吞吐量、时延、时延带宽积、往返时间、利用率
速率:
数据率(data rate)或比特率(bit rate): 单位时间内传输二进制码元的数量,单位为比特/秒,记做b/s,或bps(bit per second)
数据传输速率= 1/T(bps)
常用单位:Kbps、Mbps、Gbps 、Tbps
1Kbps = 103bps、1Mbps = 103Kbps、1Gbps= 103Mbps、1Tbps = 103Gbps、Pbps、Ebps、Zbps、Ybps
模拟传输: 传输模拟信号
数字传输: 传输数字信号
总时延:排队时延、处理时延、发送时延、传播时延
四种时延所产生的地方:
处理时延:交换结点为存储转发而进行一些必要的处理所花费的时间。
排队时延:结点缓存队列中分组排队所经历的时延,长短往往取决于网络中当时的通信量。
发送时延:发送数据时,数据帧从结点进入到传输媒体所需要的时间,即从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
传播时延:电磁波在信道中需要传播一定的距离而花费的时间。
发送时延 | 传播时延 | |
决定因素 | 数据帧长度发送速度 | 信道长度传播速度 |
减少时延 | 高速网络链路,即发送速度 | 选择合适的传输介质 |
光纤信道的传输率高是因为可以用很高的速度向光纤信道发送数据 | 空气中,3.0*105KM/s铜缆,2.3*105KM/s光纤,2.0*105KM/s |
RTT:Round Trip Time, 通信双方交互一次所需的时间,包括各中间结点的处理时延、排队时延、发送时延、传播时延
信道利用率:某信道有百分之几的时间是被利用的,即有数据通过。
网络利用率:全网络的信道利用率的加权平均值。
第一次作业
1、假设信号在媒体上的传播速率为3*108m/s, 媒体长度L为4500KM,试计算当数据率分别为1Mbit/s和10Gbit/s时,在以上媒体中正在传播的比特数是多少?
要点:传播时延:= 4500*103/(3*108)=1.5*10-2s
当数据率为1Mbit/s 时比特数:
1.5*10-2*106=1.5*104b/s=15Kb
当数据率为10Gbit/s 时比特数:
1.5*10-2*10*109=1.5*108b/s=150Mb
2、收发两端之间的传输距离为2000KM,信号在媒体上的传播速率为3*108m/s。试计算以下两种情况的发送时延和传播时延:
(1) 数据长度为107字节, 数据发送率为100K bit/s。
(2) 数据长度为103字节, 数据发送率为1G bit/s。
要点:
- 数据长度为107字节, 数据发送率为100K bit/s。
发送时延=数据帧长度(bit)/发送速率(bit/s)
=8*107bit/100*103bit/s=800s
传播时延=信道长度(m)/电磁波在信道上的传播速率(m/s)
=2000*103m/3*108m/s=6.67*10-3s
(2) 数据长度为103字节, 数据发送率为1G bit/s。
发送时延=数据帧长度(bit)/发送速率(bit/s)
=8*103bit/109bit/s=8*10-6s
传播时延=信道长度(m)/电磁波在信道上的传播速率(m/s)
=2000*103m/3*108m/s=6.67*10-3s
3、应用层数据交给运输层传送,需加上20字节的TCP首部,再交给网络层传送,需加上20字节的IP首部,再交给数据链路层的以太网传送,需加上首部和尾部共18 字节。
当应用层数据长度为100字节时,共传送多少数据?并请计算数据传输效率?
当应用层数据长度为1000字节,共传送多少数据?并请计算数据传输效率?
(数据传输效率:传送的应用层数据除以所传送的总数据,即应用层数据加上各层首部和尾部的开销。)
要点:应用层数据长度100byte时:
传送数据:100+20+20+18=158byte
数据传输效率=100/158=63.3%
应用层数据长度为1000byte 时:
传送数据:1000+20+20+18=1058byte
数据传输效率=1000/1058=94.5%
第二章 物理层:
物理层的主要任务:确定与传输媒体的接口特性
数据:运送消息的实体
信号:数据的电气或电磁的表现
模拟信号:消息的参数是连续的
数字信号:消息的参数是离散的
规程:用于物理层的协议
基带信号:来自信源的信号
带通信号:经过载波调制后的信号
接口特性:机械特性、电气特性、过程特性、功能特性
并行通信:待发送的每个字符的8位二进制编码同时通过8条并行的通信信道进行发送
串行通信:将待发送的每个字符的8位二进制编码按由低位到 高位的顺序依次发送
单工通信:单向通信——只能有一个方向的通信而没有反方向的交互
半双工通信:双向交替通信——通信的双方都可以发送信息,但不能双方同时发送或接收信息
全双工通信:双向同时通信——通信的双方可以同时发送和接收信息
基带调制:
仅对基带信号的波形进行变换
把数字信号转换成另一种数字信号,输出的是数字信号—基带信号
带通调制:
把基带信号频率范围搬移到较高的频段,并转换为模拟信号
基带信号转换成模拟信号、输出的是模拟信号—带通信号
U(t)=Um × sin(ωt +φ0)
Um: 振幅
ω: 频率
φ: 相位
振幅键控或调幅法:ASK (调幅AM)
由载波的两个不同的振幅分别代表二进制的0或1
容易实现,但易受干扰
移频键控或调频法:FSK。(调频FM)
载波的不同频率分别代表二进制数的0或1 ,如高频代表1,低频代表0
容易实现,但抗干扰能力强于ASK
移相键控或调相法:PSK (调相PM)
载波的不同相位变化分别代表不同的二进制数值
绝对调相:利用载波的绝对相位值分别代表0或1
如: φ0=0, 1
φ0=π, 0
相对调相:用相位的相对偏移值表示1或0,或者说用载波在两位数字信号的交接处产生的相位偏移来表示不同的数字信号。
如: 0, 相位不偏移
1, 相位偏移π
多相调制
二相调制:一个信号代表一位二进制数,二个相位值分别代表二进制数0和1
四相调制:一个信号代表二位二进制数,四个相位值分别代表二进制数0和1的四种组合 (00,01,10,11)
八相调制:一个信号代表三位二进制数,八个相位值分别代表二进制数0和1的八种组合(000,001,010,011,100,101,110,111)
基带信号的编码方法
不归零码: NON-RETURN TO ZERO, NRZ
利用两个不同的电平值分别代表两个二进制数0和1 ,如用正电平代表: 1 ,负电平代表: 0
归零码:RETURN TO ZERO, RZ
利用两个不同的脉冲分别代表两个二进制数0和1 ,如用正脉冲代表: 1 ,负脉冲代表: 0
曼切斯特编码 :MANCHESTER
每位的中间有一次电平跳变,即电平值从高到低或从低到高,如低到高跳变: 0,从高到低跳变: 1,跳变既可以用作数据,也可用作同步时钟,自含钟编码或自同步编码
差分曼切斯特编码:DIFFERENTIAL MANCHESTER
每位值根据其开始边界来决定是否发生跳变,中间依然有跳变,如果是1,不跳变,如果是0,有跳变
采样定律:如果对信号以固定的时间间隔进行采样,当采样频率大于等于两倍的最大有效信号频率,所采样本就包含了原始信息的所有信息。
PCM:
采样:隔一定的时间间隔,将模拟信号的电平幅度值取出来做为样本,采样频率为2B
量化:将采样样本幅度值按量化级决定取值的过程。(1)量化级(2)量化级幅值(3)量化
编码:用相应位数的二进制代码表示量化后的采样样本的量化级值。如果用二进制数进行编码,则编码位数=log2K, 其中K为量化级数。
观察分析电信号的基本方法:时域分析法、频域分析法
时域方法: 以时间 t 为自变量,观察信号随单位时间变化的情况
频域法:以频率f为自变量,观察电信号的频谱构成、振幅与相位,分析电信号通过某一信道后频谱分量的变化
奈奎斯特准则: Rmax=2·Wlog2V(bps)
最大数据传输速率 信道带宽
香农定理: Rmax = W·log2(1+S/N) (bit/s)
物理层下面的传输介质:
传输媒介的特性:
双绞线:屏蔽双绞线,STP; 非屏蔽双绞线,UTP
物理特性:由按规则螺旋结构排列的2 根、4 根或8 根绝缘导线组成,每对线有不同的颜色,都可作为一条通信线路,各线对螺旋排列的目的是为了使线对间的电磁干扰最小。
同轴电缆:
传输特性:
基带同轴电缆: 50欧姆,基带信号,也即数字信号,数字传输,一路信号占用信道的所有带宽,多路复用时采用TDM技术
宽带同轴电缆: 75欧姆,模拟信号, 模拟传输,每路信号占用信道带宽的不同频率,多路复用时采用FDM技术,也可以传输基带信号
光纤:
直径为8~100μm的柔软、能传导光波的介质,可由玻璃和塑料制成,其中,合成硅的纯度越高,光纤的性能越好,衰减也越小
不同层具有不同的折射率
不同的光线注入角度不同
通过传输不同颜色的光纤实现多路复用
单模光纤√ | 多模光纤 |
单个可分辨角度 | 多个可分辨角度 |
单一光线 | 多种光线 |
芯径<5μm | 芯径>50μm |
无反射, 直线前进 | 反射,波状前行 |
注入型激光二极管 | 发光二极管 |
长距离 | 短距离 |
高速 | 低速 |
衰减小 | 衰减大 |
高成本 | 低成本 |
UTP | STP | 同轴电缆 | 光纤 | |
连接特性 | 点对点多点 | 点对点多点 | 点对点 | |
地理范围 | 使用放大器:15km不使用放大器:100m | <100km | 不使用放大器:6-8km | |
抗干扰 | 弱 | 强于UTP | 强 | 最强 |
成本 | 越 | 来 | 越 | 高 |
安装 | 容易 | 容易 | 中等 | 困难 |
多路复用技术分类:
频分多路复用:Frequency-Division Multiplexing,FDM
- 每路信号占用载波的不同频率
- 一个载波可同时传输多路信号
- 使用警戒带宽以避免信号间相互干扰
时分多路复用:Time-Division Multiplexing,TDM
- 时间被划分为小的时隙
- 每路信号占用给定的时隙
- 在给定的时隙内,每路信号占用信道的所有带宽
FDM | TDM |
多路信号同时使用一条物理信道 | 多路信号轮流使用一条物理信道 |
每路信号使用载波的不同频率 | 每路信号使用载波的不同时隙 |
模拟传输 | 数字传输 |
同步时分多路复用 SYNCHRONOUS TDM,STDM
异步时分多路复用,统计时分多路复用 ASYNCHRONOUS TDM,ATDM
STDM(Statistic TDM)统计时分复用
波分多路复用:Wavelength Division Multiplexing,WDM
光的频分复用,工作原理基本类似于FDM,用于高速光网络,使用衍射光栅来实现多路不同频率光波信号的合成与分解,从而实现多路复用
密集波分复用 DWDM
码分多路复用:Code Division Multiplexing,CDM (计算)
码分多址 (Code Division Multiple Access:CDMA)
扩频:将信号扩展至更高的频率以预防拥塞、干扰,提高传输的可靠性和高可复用性
令向量 S 表示站 S 的码片向量,令向量 T 表示其他任何站的码片向量。
两个不同站的码片序列正交,就是向量 S 和T 的规格化内积(inner product)都是 0:
任何一个码片向量和该码片向量自己的规格化内积都是1
一个码片向量和该码片反码的向量的规格化内积值是 –1
各用户使用经过特殊挑选的唯一码型,因此彼此不会造成干扰。
每个站分配的码片序列不仅必须各不相同,并且还必须互相正交(orthogonal)。
实用的系统中是使用伪随机码序列。
这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被发现。
数字传输系统:
同步光纤网 SONET –> 第48级光载波 OC-48
同步数字系列 SDH
第一级同步模块 STM-1
宽带接入:
不对称数字线 (ADSL,Asymmetric Digital Subscriber Line)–> 固定电话运营商
- 在一对双绞线上可为用户提供非对称的上、下行速率,非常符合普通用户联网的实际需要
- 较充足的带宽,可用于传输多种宽带数据业务
- 不影响用户对普通电话的使用
光纤同轴混合网 (HFC,Hybrid Fiber Coax) –> 有线电视运营商
比 CATV 网更宽的频谱,双向传输功能
每个家庭要安装一个用户接口盒UIB (User Interface Box)
第二次作业
1、规程和协议有什么区别?
要点:协议(protocol)是指在计算机网络中为进行网络中数据交换而建立的规则、标准或约定称为网络协议,简称协议,以明确规定所交换数据的格式以及有关的同步问题。
规程(procedure):在数据通信的早期,对通信所使用的各种规则都称为“规程”,后来具有体系结构的计算机网络开始使用“协议”这一名词。因为物理层主要考虑网络的通信问题,物理层的协议和规程基本同义,在其它各层通常称协议。
2、什么是本地通信?什么是远程通信?
要点:远程通信通常是指在连接的系统间,通过使用模拟或数字信号调制技术进行的声音、数据、传真、图象、音频、视频和其它信息的电子传输。
本地通信则通常是指计算机或主机内部各进程间的通信。
第 3 章 数据链路层:
功能: 帧同步功能、差错控制功能、流量控制功能、链路管理功能
信道:点对点信道(PPP协议)、广播信道(CSMA/CD协议)
基本问题:封装成帧、透明传输、差错检测
链路(link):一条点到点的物理线路段,中间没有任何其他的交换结点。
数据链路(data link):除了物理线路外,还必须有通信协议来控制数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。(使用网络适配器)
数据链路层传送的协议数据单元:帧
点对点信道的数据链路层通信步骤:
1、结点A的数据链路层把网络层交下来的Ip数据报添加首部和尾部封装成帧
2、结点A把封装好的帧发送给结点B的数据链路层
3、若结点B的数据链路层收到的帧无差错,则从封装的帧中提取出Ip数据报上交给上面的网络层,否则丢弃此帧
封装成帧(framing):
SOH(start of header):帧开始符 ascii 1
EOT(end of transmission):帧结束符 ascii 4
MTU:Maximum Transfer Unit,最大传送单元,即帧的数据部分的长度限制,一般为1500
透明传输:
设法使数据中可能出现的控制字符SOH和EOT在接收端不被解释为控制字符
“透明”:某一个实际存在的事物看起来却好像不一样
解决透明传输问题的方法:
字节填充(byte stuffing)、字符填充(character stuffing)
- 发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”时,在前面插入一个转义字符“ESC”(其十六进制编码是 1B)。
- 如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。
- 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
差错检测:
在传输过程中可能会产生比特差错,1 可能会变成 0 而 0 也可能变成 1。在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。
误码率与信噪比有很大的关系。为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。
循环冗余检验(CRC, Cyclic Redundancy Check): 计算!!
(1) 将要发送的数据比特当做一个多项式f(x)的系数
(2) 在发送端用收发双方预先约定的生成多项式G(x)去除,求得一个余数多项式R(x)
(3) 将余数多项式加到 数据多项式之后发送到接收端
(4) 在接收端用同样的生成多项式G(x)去除接收数据多项式f’(x)
(5) 如果能够整除,则传输无差错
(6) 如果不能够整除,则传输差错
模2运算:二进制加法不进位,或者说每一位进行xor与运算^
FCS(Frame Check Sequence):帧检验序列
不是可靠传输,可能出现帧丢失、帧重复、帧失序,为了实现可靠传输还要加上帧编号、确认、重传机制。
CRC特点:
- 检查出全部单个错
- 检查出全部离散的二位错
- 检查出全部奇数个错
- 检查出全部长度小于或等于K位的突发错
- 以[1-(1-1/2)k-1]的概率检查出长度为(K+1) 位的突发错
奇偶检验:
在传输前,在数据后加奇偶位,目的计算机重新计算奇偶位并与接收到的奇偶位相比较,如果再者相同,无差错;如果两者不同,有差错。
方法简单,检错能力差,不能检测出两个位或偶数位发生错误的情况,检错率最高达50%, 用于通信要求较低的情况。
点对点协议 PPP (Point-to-Point Protocol)
- 简单 首要的要求
- 封装成帧 必须规定特殊的字符作为帧定界符
- 透明性 必须保证数据传输的透明性,保证透明传输
- 多种网络层协议 必须能在同一条物理链路上同时支持多种网络层协议
- 多种链路类型 必须能在多种链路类型上运行
- 差错检测
- 检测连接状态
- 最大传送单元(MTU)
- 网络层地址协商
- 数据压缩协商
PPP协议组成:
将IP数据报封装到串行链路的方法。
用来建立、配置和测试数据链路连接的链路控制协议LCP(Link Control Protocol)。
网络控制协议NCP(Network Control Protocol)
协议字段:
0x0021,PPP 帧的信息字段是IP数据报
0xC021, 信息字段是PPP链路控制数据
0x8021,信息字段是网络控制数据
PPP协议不提供使用序号和确认的可靠传输
帧检验序列 FCS 字段可保证无差错接受,数据链路层出现差错的概率不大。
在因特网环境下,PPP 的信息字段放入的数据是 IP 数据报。
数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。
透明传输问题
同步传输链路(SONET/SDH):硬件完成比特填充
- 信息字段中出现了和标志字段 F 完全一样的8比特组合:01111110
- 发送端在 5 个连 1 之后填入0比特再发送出去
- 在接收端把 5 个连 1之后的 0 比特删除
异步传输链路:字符(字节)填充法
- 当信息字段中出现和标志字段相同的比特组合时,在该比特组合前加转义符0x7D,并将该字符编码进行改变
- 将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列(0x7D, 0x5E)。
- 若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列(0x7D, 0x5D)。
- 若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。
PPP特性小结
- 能够控制数据链路的建立;
- 能够对IP地址进行分配和使用;
- 允许同时采用多种网络层协议;
- 能够配置和测试数据链路;
- 能够进行错误检测;
- 支持身份验证
- 有协商选项,能够对网络层的地址和数据压缩等进行协商。
使用广播信道的数据链路层
以太网的两个标准:DIX Ethernet V2 (1981.11)、IEEE 802.3
数据链路层划分:
LLC(Logical Link Control):逻辑链路控制(子层)
MAC(Media Access Control):媒体接入控制(子层)
计算机通过(网卡)网络适配器和局域网进行通信
网卡(网络适配器)功能:
- 数据缓存:匹配网络数据传输率和主机的处理速度
- 帧的封装和拆封:加上控制字段→通过帧传输→去除控制字段
- 介质访问控制:CSMA/CD
- 串/并转换:将主机中的并行数据转换成连续位串,反之亦然
- 数据编码和解码:将数据转换成适宜在物理传输介质上进行传输的信号,反之亦然
- 数据发送
- 数据接收、过滤功能:从网络上每收到一个 MAC 帧就首先用硬件检查 MAC 帧中的 MAC 地址。如果是发往本站的帧则收下,进行处理。否则就将此帧丢弃,不进行处理。
以太网发送的数据都使用曼彻斯特(Manchester)编码
以太网提供的服务是尽最大可能的交付,不可靠的交付
CSMA/CD:Carrier Sense Multiple Access with Collision Detection:载波监听接入/碰撞检测
载波侦听:每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞
多路访问:许多计算机以多点接入的方式连接在一根总线上
冲突检测:结点在发送的同时将其信号波形于从总线上收到的信号波形相比较,“边发送边监听”
只能半双工通信
争用期:通常定义为2t,两倍端到端延迟,或往返延迟,也称碰撞窗口。只有经过争用期这段时间还没有检测到碰撞,才能肯定这次不发生碰撞。规定为512比特时间,即发送512bit(64字节)所需的时间,具体看网速。
使用二进制指数退避(truncated binary exponential backoff)算法
k=Min(重传次数, 10), 从离散的整数集合{0, 1, 2, (2k-1)}中随机选出一个数,记为r,重传应推后的时间是r倍的争用期。当重传次数大于16次则丢弃改帧并向上级报告。
凡长度小于64字节的帧都是由于冲突而异常中止的无效帧,意味着有冲突产生。
帧间最小间隔:一个站在检测到总线开始空闲后,还要等待 9.6 s,相当于 96 bit 的发送时间, 才能再次发送数据。
目的:使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。
CSMA/CD协议要点:
先听后发,边听边发、冲突停止,延迟重发
(1)准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部组成以太帧,放入适配器的缓存中
(2)发送前:检测信道
信道繁忙: 保持侦听
信道空闲:等待帧间最小间隔 9.6 s时发送以太帧
(3)发送过程中:保持侦听
发送成功:争用期内没有检测到冲突,以太帧发送成功,返回第一步
发送失败:争用期内检测到冲突,停止发送数据,发送干扰信息加强以方便其它站点检测到冲突,适配器执行二进制指数退避算法,等待r倍512比特时间后,返回第二步。当重传次数达16次仍不能成功时,停止重传,并报告上层
逻辑上还是总线网,同一时刻只能允许一个站发送数据
DIX 以太网 V2 的 MAC 帧格式
类型字段用于标志上一层使用的是什么协议,以便把收到的MAC 帧的数据上交给上一层的相应协议。值大于1536(0x0600)字节,为类型,值小于1536字节,为长度。
IEEE注册管理机构 RA(Registration Authority):局域网全球地址的法定管理机构
唯一,固定 , 固化在网卡(网络适配器)的存储器中
单个/组 (I/G) :第一个字节的最低位,用来确定地址是
单个地址:I/G位为0 ,单播
组地址: I/G位为1 ,多播
全球/本地 (G/L) :第一个字节的最低第二位,用于确定该地址
全球管理:G/L 位设置为 0,通过分配唯一的公司 ID,IEEE 对地址进行全球管理。
本地管理:G/L 位被设置为1,网络管理员已覆盖制造地址,并指定其他地址。
当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节。
在传输媒体上实际传送的要比 MAC 帧还多两个字段共8个字节,由硬件插入,不参与差错检测。
无效的 MAC 帧:
- 帧的长度不是整数个字节;
- 用收到的帧检验序列 FCS 查出有差错;
- 数据字段的长度不在 46 — 1500 字节之间;
- MAC帧长度不在 64 — 1518 字节之间;
扩展的以太网
在数据链路层扩展以太网、在数据链路层扩展以太网
在物理层扩展以太网
光纤和一对光纤调制解调器将主机连接到集线器
用多个集线器连成更大的局域网
优点:
- 使原来属于不同网段的计算机能够进行通信。
- 扩大了局域网覆盖的地理范围。
缺点:
- 局域网覆盖范围增大,但总的吞吐量并未提高(碰撞域增加)。
- 集线器只能互连相同的局域网。
在数据链路层扩展以太网:交换式局域网、虚拟局域网
交换式局域网
交换式局域网的关键:以太网交换机
以太网交换机的基本结构:储存转发
交换机功能:学习功能、转发功能、泛洪功能、过滤功能
1.交换机的学习功能:地址映射表的建立和维护
地址映射表存储在每个端口,每个端口要有足够的缓存容量以记住MAC 地址和MAC地址数量。MAC地址数量:可存储在交换机的地址映射表中的MAC地址的最大数量(一般为1024) ,该值越大,速度越快,转发的效率越高。
交换机采用地址学习的方法建立和维护地址映射表,在数据帧进入交换机的端口时,读取源地址及数据以获得MAC地址和端口间的对应关系, 检查地址映射表,如果该地址不存在,加入地址表,如果已经存在,就更新。
2.交换机的转发和泛洪功能:
- 转发功能:表中有目标MAC地址,更新MAC地址表中记录时间,并转发相应帧
- 泛洪功能:如果本地交换机地址表中没有目标MAC地址,交换机就将收到的数据帧从除接收端口外的所有端口转发出去
3.交换机的过滤功能:数据帧中的源地址和目的地址对应的端口在同一个端口,不转发,也不做任何处理
交换机数据帧转发方式:直接交换方式 、存储转发方式、改进直接交换方式或碎片隔离式、混合交换方式
直接交换方式:获取目的地址并立即传送出去
- 延迟少
- 不进行差错控制
- 没有缓存, 不支持两个不同速率端口间的直接连接
- 当交换机中的端口数量增加, 交换矩阵会越来越复杂,越难以实现
存储转发方式:存储,差错控制,提取目的地址,检查MAC地址映射表,将数据帧转发到相应的端口
- 延迟长
- 差错控制
- 支持不同速率间两个端口间的直接连接
改进直接交换方式或碎片隔离式 :直接交换方式和存储转发方式相结合
- 在转发前检查数据帧长度
- 帧长度<64字节, 丢弃
- 帧长度≥64字节, 检查地址字段和控制字段并转发
交换机使用特定的缓冲器—FIFO(First In First Out, 先进先出) 队列
混合交换方式:利用自适应交换机根据实际网络环境选择不同的转发方式
- 当网络通畅时,采用直接交换方式,以使转发时间最短
- 当网络阻塞时,采用存储转发方式,以降低转发速率
- 自适应交换机的每个端口有适应不同速率的能力,支持10, 100 和 1000Mbps间的交换.
虚拟局域网(Virtual Local Area Network, VLAN)
如果将局域网中的结点按工作性质与需要划分成若干逻辑工作小组,则每个逻辑工作小组就是一个虚拟网络
主要特点:
虚拟局域网是建立在交换式局域网的基础上,用软件划分和管理逻辑工作组
逻辑工作组中的节点不受其物理位置的限制,或可分散在不同的物理网段
节点间可相互通信,好似在一个相同的物理网段中
虚拟网的组网方式:交换机端口、MAC 地址、IP 地址、IP 广播组
基于交换机端口号—静态VLAN:
- 网络管理员通过网络管理软件或设置交换机将某些端口号划分给某虚拟网
- 除非重新设置,该端口将一直保持对该虚拟网的从属性
- 同一虚拟网中的端口可在一个或不同的交换机中
- 每个端口或网段只能属于一个虚拟网
- 当用户从一个端口移至另一个端口时,需要重新设置
- 操作麻烦
基于MAC地址—动态VLAN:
- 借助智能管理软件根据MAC地址划分VLAN
- 利用MAC 地址定义虚拟网成员后,当用户从一个网段移到另一个网段 时,其虚拟局域网成员身分不变
- 在初始时间,所有用户需要划分进至少一个虚拟网
- 当虚拟网规模太大时,很难一个一个配置
以太网特点:
- 成熟技术
- 互操作性好
- 价格相对便宜
- 统一的帧格式
- 适应多种传输媒体
- 可扩展
- 灵活
- 易于安装
- 稳健性好
不同速率Gigabit以太网规格:
吉比特 | 10吉比特 | 40/100吉比特 | |
数据帧 | 以太帧 | 以太帧 | 以太帧 |
传输模式 | 全双工/半双工 | 双全工 | 全双工 |
兼容 | 向下兼容 | 向下兼容 | 向下兼容 |
拓扑 | 星型 | 星型 | 星型 |
第三次作业:
1、 要发送的数据为1101011011,采用CRC的生成多项式是P(X)=X4+X+1, 试求应添加到数据后面的余数是多少?若数据在传输过程中,最后一个1变成了0,接收端能不能发现?
要点:余数为1110,可以发现差错(过程略)
第四次作业
1、 CSMA/CD和时分多路复用都是为了共享信道,两者各有何优缺点?
要点:
CSMA/CD | 时分多路复用 | |
接入媒体方式 | 动态争用 | 静态划分信道 |
冲突/检测 | 有,需要冲突检测 | 无,不需要冲突检测 |
主要应用场景 | 局域网 | 广域网 |
2、 在以太帧中,会在物理层插入帧开始定界符,为什么不插入帧结束定界符?
要点:帧开始定界符标明MAC帧开始。不需要帧结束定界符是因为以太网规定帧间最小间隔为 9.6 微秒,即帧与帧之间是有间隔的,帧开始定界符之后连续到达的比特流都属于同一个帧,所以不需要结束定界符。
3、 在MAC帧中,当数据部分小于46字节,有填充字符时,如何判断具体的数据部分?
要点:在上层IP协议中,有一个字段为“总长度”,即IP报首部和数据部分之和。当网络层接收到填充后的MAC帧,去掉首部和尾部后,超出总长度的部分即为识别为填充部分。
4、 一个主机曾经连在一个交换机的端口上,并发送了数据,它的MAC地址会不会永远储存在MAC地址映射表中?为什么?
要点:取决于地址表中的地址指定模式。手动指定,将一直存在,除非一次新的手动指定将其删除;动态指定,MAC地址在表中的生存时间(TTL老化时间)有限制,默认为300秒。超过生存时间,没有数据发送的MAC地址,将被默认为已经下线,地址将被删除。生存时间可根据需要进行设置。
第 4 章 网络层
最重要的内容:
- IP 地址与物理地址的关系、
- 路由选择协议的工作原理、
- 传统的分类的 IP 地址(包括子网掩码)和无分类域间路由选择 CIDR
只向上提供简单灵活的、无连接的、尽最大努力交付的服务
网络层概述:
目的:屏蔽各种不同类型网络之间的差异,实现两个端系统之间的数据透明传送
主要功能:路由选择、阻塞控制
网际协议IP:
Internet Protocol : TCP/IP 体系中两个最主要的协议之一
与IP配套使用:
- 地址解析协议 ARP (Address Resolution Protocol)
- 网际控制报文协议 ICMP (Internet Control Message Protocol)
- 网际组管理协议 IGMP (Internet Group Management Protocol)
网络中间设备:又称为中间系统或中继(relay)系统。
- 物理层中继系统:转发器(repeater)。
- 数据链路层中继系统:网桥或桥接器(bridge)。
- 网络层中继系统:路由器(router),实现网络互连
- 网桥和路由器的混合物:桥路器(brouter)。
- 网络层以上的中继系统:网关(gateway)。
虚拟互连网络:
定义:也称逻辑互连网络,即利用协议使结构和性能各异的物理网络互连起来,从用户角度看好像是一个统一的网络
IP 网:使用 IP 协议的虚拟互连网络
意义:主机进行通信时,就好像在一个网络上通信一样,不考虑互连的各具体的网络异构细节
IP 地址及其表示方法:
IP 地址目的:给每个连接在因特网上的主机(或路由器)分配一个在全世界范围内唯一的 32 位标识符
IP 地址分配机构:
- 因特网名字与号码指派公司 (Internet Corporation for Assigned Names and Numbers,ICANN)
- 我国用户:亚太网络信息中心(Asia Pacific Network Information Center, APNIC)
分类 IP 地址:
两个字段组成,分别是:
网络号 net-id:标志主机(或路由器)所连接到的网络
主机号 host-id:标志该主机(或路由器)。
两级的 IP 地址可以记为:
IP 地址 ::= { <网络号>, <主机号>}
IP 地址特点:
(1) IP 地址是一种分等级的地址结构。
第一,IP 地址管理机构在分配 IP 地址时只分配网络号,主机号由得到该网络号的单位自行分配。
第二,路由器仅根据目的主机所连接的网络号来转发分组,路由表中的项目数及所占的存储空间大幅度减少
(2) 实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口。
第一,当一个主机同时连接到两个网络上时,该主机就必须同时具有两个网络号不相同的 IP 地址。
第二,一个路由器至少应当连接到两个网络,至少应当有两个不同的 IP 地址。
(3) 用转发器或网桥连接起来的若干个局域网仍为一个网络,具有同样的网络号 net-id。
(4) 所有分配到网络号 net-id 的网络,无论地理范围大小,都是平等的
IP 地址与硬件地址
- 路由器只根据目的站的 IP 地址的网络号进行路由选择
- 在具体的物理网络的链路层,只能看见 MAC 帧而看不见 IP 数据报
- IP层抽象的互联网屏蔽了下层很复杂的细节,在抽象的网络层上讨论问题,就能够使用统一的、抽象的 IP 地址,研究主机和主机或主机和路由器之间的通信
地址解析协议 ARP
每一个主机都设有一个 ARP 高速缓存(ARP cache),存储所在局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。当主机A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。
情形一:有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。
情形二:无,启动地址解析协议ARP
(1)主机A的ARP进程在本地局域网上广播发送一个ARP请求分组
(2)在本局域网上的所有主机上运行的ARP进程都收到ARP请求分组
(3)主机B的IP地址与主机A的ARP请求分组中要查询的IP地址一致,收下请求分组并将其中的IP地址和MAC地址,写入自己的ARP缓存
(4)主机B向请求主机A发送响应分组(单播),并将自己的硬件地址写入响应分组
(5)主机A收到主机B的响应分组,将其中的IP地址和MAC地址,写入自己的ARP缓存。
应当注意的问题:
- ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。
- 要找的主机和源主机不在同一个局域网上时,需要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,由路由器把分组转发给下一个网络。剩下的工作由下一个网络来做
- 从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。
使用 ARP 的四种典型情况:
发送方 | 目的方 | 硬件地址 | 备注 |
主机 | 本网络上的另一个主机 | 目的主机的硬件地址 | |
主机 | 另一个网络上的一个主机 | 本网络上的一个路由器的硬件地址 | 剩下的工作由这个路由器来完成 |
路由器 | 本网络上的一个主机 | 目的主机的硬件地址 | |
路由器 | 另一个网络上的一个主机 | 本网络上另一个路由器的硬件地址 | 剩下的工作由这个路由器来完成 |
IP 数据报的格式
一个 IP 数据报由首部和数据两部分组成
首部由固定部分和可变部分组成
固定部分:固定长度,共 20 字节,是所有 IP 数据报必须具有的
可变部分:可选字段,且长度可变
版本——占 4 位,指 IP 协议的版本,IPv4
首部长度——占 4 位,以每4个字节为单位表示长度。 首部长度必须是4字节的整数倍,否则需用填充域填0来补齐。
区分服务——占 8 位,用来获得更好的服务
总长度——占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节,总长度必须不超过最大传送单元 MTU。
标识(identification) ,占 16 位,产生数据报的标识/编号的计数器。
标志(flag) 占 3 位,目前只有前两位有意义。
片偏移:占13 位,较长的分组在分片后某片在原分组中的相对位置,以 8 个字节为偏移单位。计算!!
生存时间:占8位,记为 TTL (Time To Live),数据报在网络中可通过的路由器数的最大值,新产生的IP报文中,TTL字段通常被设置为最大值255。
协议:占8位,数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给哪个处理过程。
首部检验和:占16 位,字段只检验数据报的首部,不检验数据部分。不采用 CRC 检验码而采用简单的计算方法。
源地址和目的地址都各占 4 字节,为IP地址。
可变部分:选项字段,长度可变(1 个字节到 40 个字节) ,取决于所选择的项目。
- 目的:增加 IP 数据报的功能
- 实际:首部长度可变,增加每一个路由器处理数据报的开销,很少被使用。 在IPv6版已经定义为固定长度
特定主机路由:为特定的目的主机指明一个路由
默认路由(default route):只要没有指定特定主机路由,就一律选择默认路由
注意:
- IP 数据报的首部中没有地方可以用来指明“下一跳路由器的 IP 地址”。
- 当路由器收到待转发的数据报,不是将下一跳路由器的 IP 地址填入 IP 数据报,而是送交下层的网络接口软件。
- 网络接口软件使用 ARP 负责将下一跳路由器的 IP 地址转换成硬件地址,并将此硬件地址放在链路层的 MAC 帧的首部,然后根据这个硬件地址找到下一跳路由器。
划分子网
IP地址的不足:
- IP 地址空间的利用率有时很低。
- 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。
- 两级的 IP 地址不够灵活。
子网划分:将一个IP地址下连续的大段主机地址拆分成若干连续的较小的网络组,使得拆分后网络组的IP地址容量适合实际物理网络(网段)的规模,这种较小的网络组就叫做子网。
子网划分好处(原因):
- 充分利用IP地址资源
- 允许系统管理员按照自己的需要组织网络地址空间
- 同一类型主机划分为一个子网,便于管理
- 网络之外子网不可见
- 精简路由表项目数,提高效率
- 内部路由则由网络地址的所有者负责
划分子网的基本思路:
1、划分子网纯属一个单位内部的事情,对外仍然表现为没有划分子网的网络
2、从主机号借用若干位作为子网号 subnet-id,主机号 host-id 相应减少了若干位
IP地址 ::= {<网络号>, <子网号>, <主机号>}
在 IP 地址中增加“子网号字段”,从两级 IP 地址到三级 IP 地址
3、根据网络号识别目的网络:根据IP数据报的目的网络号 net-id,找到连接在本网络上的路由器
4、根据子网号识别子网:路由器按子网号 subnet-id 找到目的子网
5、根据主机号识别主机并交付IP数据报:最后将 IP 数据报直接交付目的主机
子网掩码:
注意:从IP 数据报的首部无法判断源主机或目的主机所连接的网络是否进行了子网划分
子网掩码(subnet mask):标志子网号在IP地址中的位置,由32位一连串的“1”(网络号掩码)和一连串的“0”(子网号掩码)组成
当IP地址与其子网掩码相“与”(二进制逻辑与)时,就可以得到该地址的网络号和子网号, 也即子网的网络地址
子网掩码的特点:
- 子网掩码是一个网络或一个子网的重要属性。
- 路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。
- 路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。
- 若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。
无分类的两级编址(无分类的域间路由选择,CIDR, Classless Inter-Domian Routing):
网络前缀:IP地址 := {<网络前缀>, <主机号>},IP地址/网络前缀位数
32位IP地址中有多少位代表网络地址对应于三级编址中子网掩码中 1 的个数
CIDR 最主要的特点:
- CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。
- CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。
- IP 地址从三级编址(使用子网掩码)又回到了两级编址。
路由聚合(route aggregation):
- 一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示很多个原来传统分类地址的路由。
- 路由聚合也称为构成超网(superneting)。
最长前缀匹配:选择两个匹配的地址中更具体的一个,即选择具有最长前缀的地址
路由选择算法:
路由选择算法:网络层软件的一部分,负责确定数据报的传输路由。分为静态和动态。
优化目标:
- 分组平均时延小,网络吞吐量大
- 降低跳数(数据包经过的路由器数量)
静态路由选择算法:非自适应—事先脱线计算好或设定好的,在网络启动时就下载到路由器中
- 静态路由选择算法:节点的路由表一旦确定不再自动改变的路由算法
- 静态路由的路由表一般在网络建立初期建立,可由网络管理员手工配置,也可采用某种路由算法产生。
- 静态路由信息默认情况下是私有的,不会在路由器之间互相传递。
- 静态路由一般适用于规模较小、比较简单、不太变化的网络环境
最优化原则(optimality principle):如果路由器 J 在路由器 I 到 K 的最优路由上,那么从 J 到 K 的最优路由会落在同一路由上
汇集树(sink tree):从所有的源结点到一个给定的目的结点的最优路由的集合形成的一个以目的结点为根的树
基本思想:构建子网的拓扑图,图中的每个结点代表一个路由器,每条连线代表一条通信线路。为了选择两个路由器间的路由,算法在图中找出最短路径
测量路径长度的度量方法:
- 结点数量
- 地理距离
- 传输延迟
- 距离、信道带宽等参数的加权函数
动态路由选择算法:自适应—根据拓扑结构、通信量的变化动态改变其路由选择。
可根据网络的变化适时调整路由表选择最佳路径
工作过程:
1、测量,通过测量了解网络的拓扑结构、流量、延迟等
2、报告,向相关节点报告测量结果
3、更新,根据新路由表重新选择最佳路径
4、决策,得到报告的节点根据测量结果更新路由表
距离向量路由算法:(基于RIP)
- 基本思想:每个路由器维护一张表,表中给出了到每个目的地的已知最佳距离和线路,
目的站 最短距离估计值 输出线路
- 每隔一段时间,路由器向所有邻居结点发送它到每个目的结点的距离表,同时它也接收每个邻居结点发来的距离表
- 根据交换的距离信息更新路由表
算法步骤:
- 对地址为X的相邻路由器发来的RIP报文,先修改此报文中的所有项目:把“下一跳”字段中的地址都改为X,并把所有的“距离”字段的值加一。每一个项目都有3个关键参数,即:(到目的网络N,距离是的,下一跳路由器是X)。
- 对修改后的RIP报文中的每一个项目,进行以下步骤:
若原来的路由器没有目的网络N,则把该项目添加到路由器中。
否则(即在路由器中有目的网络N,这时就再看下一跳路由器地址)
若下一跳路由器地址是X,则把收到的项目替换原路由表的项目。
否则(即这个项目是:到目的网络N,但下一跳路由器不是X)
若收到的项目中的距离小于路由表中的距离,则进行更新。
否则什么也不做。
- 若3分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达的路由器,即把距离置为16。
缺点:
- 开销大(节点间要不断的相互交换信息)
- 交换的信息从相邻节点开始,由于延时获得全网状态信息的时间有先有后,有可能先前的最佳路径在当前已经不是最佳了,甚至是不通的,最终造成阻塞。(好消息传播快,坏消息传播慢)
分层路由:
- 分而治之的思想;
- 根据需要,将路由器分成区域(regions)、聚类(clusters)、区(zones)和组(groups)…
问题:路由表中的路由不一定是最优路由
路由选择协议:
- 自治系统(AS,autonomous system):即遵循共同的路由策略统一管理下的网络群
- 内部网关协议(IGP interior gateway protocol):在自治系统内部执行路由功能。如路由信息协议(RIP)、开放最短路径优先(OSPF)
- 外部网关路由协议(EGP exterior gateway protocol) :在不同的自治系统间进行路由。如边缘网关协议(BGP Border Gateway Protocol)
内部网关协议(RIP Routing Information Protocol):
距离:用中间路由器的数量进行度量
基本思路:
- 每个路由器向与它相连的网络发送报告,说明它到本自治系统中所有网络的最短距离以及到每个网络应经过的下一跳路由器
- 与其相连的路由器据此推断出自己可以通过两个站点到达各网络及其最短距离,并更新路由表
- 各个路由器不断接收信息、存储、再发送信息来建立、维护自己的路由表
RIP的主要缺点:好消息传播得快,而坏消息传播得慢
RIP的局限性:
- RIP约定目的端距离值超过15就不可达
- RIP采用路段数作为度量值,过分简化的距离值可能使得路由选择表达不到最佳状态
- 支持RIP的设备要从所有设备接收RIP更新向量,可能会使个别设备的配置错误影响到整个网络的配置
- 路由迅速发生变化(如链路出现故障)时,算法可能无法稳定,将出现路由表的不一致问题和慢收敛问题。
- RIP不支持负载均衡,不能在两个网络之间同时使用多条路由。RIP选择一条具有最少路由器的路由(即最短路由),不会选择另一条高速但路由器更多的路由。
内部网关协议: OSPF (Open Shortest Path First)
- “开放”:公开发表,不受某一家厂商控制
- “最短路径优先”:使用 Dijkstra提出的最短路径算法SPF,分布式的基于链路状态协议。
IETF的IGP工作组为IP网开发的路由协议,目前主要用第其第二版。
OSPF三个要点:
- 使用洪泛法向本自治系统中所有路由器发送信息
- 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送信息
- 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
OSPF最主要的特征:
分布式链路状态协议及其分布式链路状态数据库:(link-state database) 路由器之间频繁地交换链路状态信息,最终所有的路由器都能建立一个链路状态数据库,实质上也就是全网的一致的拓扑结构图。
OSPF采用层次结构的区域划分:
在一个区域内的路由器最好不超过 200 个,洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统。
组成:
自治系统边界路由器(ASBR)、主干路由器(BR)、区域边界路由器(ABR)、区域内路由器(IR)
区域内部路由器:Internal Router,所有接口都属于同一个OSPF区域,不与其他区域相连接,只维护其所在区域的LSDB(链路状态数据库)。如R1,R2,R8,R9
区域边界路由器:Area Border Routers,ABR:可以同时属于两个以上的区域,其中一个必须是骨干区域(area 0),主要用于连接骨干区域和非骨干区域,可以是物理连接,也可以是逻辑连接,生成和维护所连接区域的LSDB。如R3,R4,R7
主干路由器:Backbone Routers,属于主干区域(area 0),只维护骨干区域的LSDB, 所有非骨干区域之间的信息都要通过骨干区域进行中转。所有的ABR和位于Area0的内部路由器都是骨干路由器。如R3,R4,R5,R6,R7
自治系统边界路由器:AS Boundary Routers , ASBR,与其他AS交换路由信息的路由器, 通常使用多种路由协议。 不一定位于AS边界,有可能是ABR或,甚至区域内部路由器,只要它引入了外部路由信息,生成维护和与它相邻的自治系统间的LSDB。如R6
OSPF 直接用 IP 数据报传送
OSPF特点:
1、不用 UDP 而是直接用 IP 数据报传送
2、数据报很短
3、链路状态发生变化时,才用洪泛法向所有相邻的路由器发送信息
4、对不同的链路可设置成不同的代价
5、可实现通信负载平衡
6、所有在 OSPF 路由器之间交换的分组都具有鉴别的功能
7、支持可变长度的子网划分和无分类编址 CIDR。
8、每一个链路状态都带上一个 32 位的序号,序号越大状态就越新
9、OSPF规定每隔一段时间,要刷新一次数据库中的链路状态
10、 没有“坏消息传播得慢”的问题
外部网关协议 BGP:
- 不同自治系统的路由器之间交换路由信息的协议。
- 2006 年 1 月, BGP-4,可简写为 BGP。
- 力求寻找一条能够到达目的网络且比较好的路由,而并非要寻找一条最佳路由。
- BGP 发言人,BGP speaker:每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ BGP 发言人” ,往往就是BGP 边界路由器,相邻的来自不同自治系统的 BGP 发言人一般都是通过一个共享网络连接在一起
BGP 发言人和自治系统 AS 的关系:
BGP 交换路由信息:两个BGP 发言人建立TCP连接,交换BGP报文,建立BGP会话,交换路由信息
- BGP 交换网络可达性信息,即到达某个网络所要经过的一系列 AS。
- 当 BGP 发言人互相交换了网络可达性的信息后,各 BGP 发言人就根据所采用的策略从收到的路由信息中找出到达各 AS 的较好路由。
BGP 协议的特点:
- 路径向量算法:每个路由信息块列出沿某路由到达目标网络要经过的所有AS
- 路由表包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列
- 交换路由信息的结点数量级是自治系统数的量级
- 每一个自治系统中 BGP 发言人(或边界路由器)的数目很少
- 刚刚运行时,BGP 的邻站交换整个 BGP 路由表,以后只需要在发生变化时更新有变化的部分
- 力求寻找一条能够达到目的网络且比较好的路由,并非要寻找一条最佳路由
BGP-4 四种报文:
(1) 打开报文:与相邻的另一个BGP发言人建立关系
(2) 更新报文:用来发送某一路由的信息,以及列出要撤消的多条路由
(3) 保活报文:用来确认打开报文和周期性地证实邻站关系
(4) 通知报文:用来发送检测到的差错
路由器:
一种具有多个输入端口和多个输出端口的专用计算机
任务:转发分组,即将路由器某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器。
转发VS路由选择:
- “转发”(forwarding):根据转发表将用户的 IP 数据报从合适的端口转发出去。
- “路由选择”(routing):按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。
- 路由表:根据路由选择算法得出。
- 转发表:从路由表得出。
输入端口处理收到的分组:数据链路层剥去帧首部和尾部后,将分组送到网络层的队列中排队等待处理
输出端口将交换结构传送来的分组发送到线路:当交换结构传送过来的分组先进行缓存。数据链路层处理模块将分组加上链路层的首部和尾部,交给物理层后发送到外部线路。
缓存管理不当,会造成分组丢弃: 路由器处理分组的速率赶不上分组进入队列的速率,或者输出端线路速率过低,则队列的存储空间最终必定减少到零,使后面再进入队列的分组由于没有存储空间而只能被丢弃。路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。
第5次作业
1、试判别下列IP地址属于什么类型的网络?该类型网络的网络号和主机号各占多少位?最大可指派的网络数是多少?为什么?
129.48.199.4
26.24.230.16
188.167.56.214
78.12.69.248
199.6.3.5
要点:129.48.199.4 B 类
26.24.230.16 A 类
188.167.56.214 B 类
78.12.69.248 A 类
199.6.3.5 C 类
A类地址:网络号8位,主机号24位,最大可指派的网络数:128(27)-2=126,全0的IP和127不能用
B类地址:网络号16位,主机号16位,最大可指派网络数:16384(214)-1=16383,地址段全为0的一般不用
C类地址:网络号24位,主机号8位,2097151(221)-1=2097152,地址段全为0的一般不用
2、 连接不同网络的中间设备主要是什么?工作在哪一层协议?转发器或网桥连接的网络是同一个网络还是不同的网络?
要点:中继器(转发器),工作在物理层,物理层协议
集线器,工作在数据链路层,数据链路层协议
路由器,工作在网络层,网络层协议
网关,工作在网络层或传输层或应用层,支持相应层协议
交换机,一般工作在数据链路层,支持数据链路层协议。但有的交换机支持网络层,甚至传输层协议,相应地称为每三层交换机或第四层交换机。
转发器或网桥连接的是同一个网络的不同网段。
3、 与IP协议配套使用的协议的主要有哪三种?
要点:地址解析协议 ARP(Address Resolution Protocol)
网际控制报文协议 ICMP(Internet Control Message Protocol)
网际组管理协议 IGMP(Internet Group Management Protocol)
第六次作业
1、以下地址中的哪一个和86.32/12匹配?说明理由。
(1)86.39.189.156
(2)86.79.63.54
(3)86.58.120.76
(4)86.45.206.154
要点:考察第二字节前四位,如为0010,匹配,否则不匹配
结果(1)(4)匹配,(2)(3)不匹配
2、假定网络中的路由器B的路由表有如下项目,分别表示目的网络、距离和下一跳路由器,现收到来自路由器C的路由信息,试求出路由器B更新后的路由表
//
Answer:
B(更新后) | |||
N1 | 8 | A | 没有新信息不变 |
N2 | 5 | C | 下一跳不变,但路径变长 |
N3 | 3 | C | 新路径,增加 |
N4 | 6 | C | 新路径,增加 |
N6 | 8 | F | 从C走,代价会增大,不变 |
N8 | 4 | C | 没有新信息不变 |
N9 | 3 | C | 从C走,代价会减少,变 |
N10 | 3 | G | 没有新信息不变 |
第五章 运输层
目的:实现端到端的通信
主要协议:TCP/UDP
主要功能:可靠传输、流量控制、拥塞控制
传输层基本概念:
- 端系统上通常运行多个进程,为允许多个进程共享网络,需要有一个层次来提供多路复用和解多路复用功能。
在发送方,多个进程都需要使用同一个传输层协议,向对方传送数据,这称为传输层的复用功能。
在接收方,其传输层在拆解报文的首部后,能够将这些数据正确交付到其对应的应用进程。这称为传输层的分用功能
- 网络层提供的服务有时不能满足应用程序的需要,需要有一个层次将网络层低要求的服务转变成应用程序需要的高级服务。
传输服务:
(1)传输实体(transport entity):完成传输层功能的硬软件;
(2)传输服务:传输层实体利用网络层提供的服务向高层提供有效、可靠的服务;
传输层提供两种服务:
面向连接的传输服务(TCP): 连接建立、数据传输、连接释放
无连接的传输服务(UDP):发送方无需事先建立连接,只要有数据需要发送,就直接发送
网络进程需要三级寻址即特定网络、主机地址和端口号。
运输层协议和网络层协议的主要区别:
- 网络层IP 协议的作用范围(提供主机之间的逻辑通信)
- 传输层TCP 和 UDP 协议的作用范围(提供进程之间的逻辑通信)
UDP | TCP |
用户数据报协议:User Datagram Protocol | 传输控制协议:Transmission Control Protocol |
无连接的,尽最大努力交付, | 面向连接 |
不保证可靠交付,不需要确认, | 提供可靠交付 |
不使用拥塞控制, | 全双工通信 |
支持一对一、一对多、多对一和多对多的交互通信 | 每一条 TCP 连接只能有两个端点即点对点或一对一(不提供广播或多播服务) |
首部开销小,只有 8 个字节 | |
面向报文 | 面向字节流 |
运输层的端口:利用进程标识符区分不同的进程
在运输层使用协议端口号(protocol port number),通常简称为端口(port)。只要把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即最后交付目的进程)就由 TCP或UDP 来完成。
- 在协议栈层间的抽象的协议端口是软件端口
- 路由器或交换机上的端口是硬件端口
- 端口用一个 16 位端口号进行标志
- 端口号只具有本地意义
三类端口号:
- 熟知端口/系统端口:数值一般为 0~1023
- 登记端口:数值为1024~49151,为没有熟知端口号的应用程序使用。使用这个范围的端口号必须在 IANA 登记
- 客户端口号/短暂端口:数值为49152~65535,客户进程选择暂时使用
UDP:面向报文
- 发送方 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。
- 应用层交给 UDP 多长的报文,UDP 就照样发送,即一次发送一个报文,既不合并,也不拆分
- 接收方 UDP 对 IP 层交上来的 UDP 用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文
- 应用程序必须选择合适大小的报文
TCP:面向字节流
- TCP 连接是一条虚连接而不是一条真正的物理连接。
- TCP 对应用进程一次把多长的报文发送到TCP 的缓存中是不关心的。
- TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节
- TCP 可把太长的数据块划分短一些再传送。TCP 也可等待积累有足够多的字节后再构成报文段发送出去。
TCP 把连接作为最基本的抽象,每一条 TCP 连接两个端点,也叫做套接字(socket)或插口
套接字:端口号拼接到(concatenated with) IP 地址构成
可靠传输工作原理
停止等待协议(停-等协议):
- 停等:每发送完一个分组就停止发送,等待对方的确认,在收到对方的确认后再发送下一个分组
- 超时计时器:发送一个分组开始计时,收到该分组的确认时关闭计时器,否则超时,触发超时重传事件
- 超时重传:每发送出一个报文后开启一个定时器,只要到一段规定时间后没有收到确认,就认为刚发的分组丢失,重传该分组
- 在发送完一个分组后,必须暂时保留已发送的分组的副本
- 分组和确认分组都必须进行编号
- 超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些
停止等待协议: 简单,但信道利用率太低
流水线传输:Go-back-N(回退 N)
- 发送方连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认
- 信道上一直有数据不间断地传送,信道利用率高
- 累积确认:接收方对按序到达的最后一个分组发送确认,意为到这个分组为止的所有分组都已正确收到了。
优点:容易实现,即使确认丢失也不必重传确认
缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息
TCP流量控制:
流量控制(flow control):让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。
利用滑动窗口实现流量控制:
- TCP 为每一个连接设有一个持续计时器
- TCP 连接的一方收到对方的零窗口通知时,启动持续计时器
- 持续计时器设置的时间到期,发送一个零窗口探测报文段(仅携带 1 字节的数据),对方对探测报文段确认时给出现在的窗口值
- 若窗口仍然是零,收到报文段的一方重新设置持续计时器
- 若窗口不是零,打破死锁僵局
控制 TCP 报文段的发送时机:
- TCP 维持一个值等于最大报文段长度 MSS的变量:只要缓存中存放的数据达到 MSS 字节时,就组装成一个 TCP 报文段发送出去。
- 推送操作:发送方的应用进程指明要求发送报文段。
- 计时器:计时器期限一到,就把当前已有的缓存数据装入报文段发送出去
拥塞控制的一般原理:
拥塞(congestion):在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络性能变坏
‘’
发生拥塞的条件:
对资源需求的总和 > 可用资源
慢启动(slow start)、拥塞避免(congestion avoidance)、快重传、快恢复
判断网络拥塞得依据就是出现了超时。
发送方的最大报文段大小SMSS(Sender Maximum Segment Size)
TCP小结
- TCP基于连接
- 面向字节流
- 双工通信
- 滑动窗口机制、确认机制、重传机制、检验和机制等
可靠传输、流量控制和拥塞控制