-1:寄——了——,虽然寄了,但是也挺喜欢这科的(
Chapter1.概述
1、理解边缘网络与核心网络、理解电路交换和分组交换、面向连
接的服务与无连接、客户服务器方式与对等方式的概念。
2、理解协议与网络体系结构;
3、理解分层的网络体系结构,理解协议及服务的概念;
4、理解数据封装与拆装的过程;
5、理解TCP/IP体系结构及五层体系结构;
6、掌握衡量网络性能的几个指标:
速率、带宽、吞吐量、时延(发送时延、传播时延、排队时延、处理时延)、往返时延、时延带宽积
计算机网络
计算机网络发展:
- 第一代,面向终端的计算机通信网络,首次将计算机与通信技术结合起来
- 第二代,初级计算机网络,实现交换:数据在网络节点之间转接的过程
- 第三代,
交换方式:电路交换,报文交换,分组交换。
电路交换
circuit switching
报文交换
分组交换
对报文交换的优化,设置长度上限变为分组
分组交换优点:
- 高效,动态分配传输带宽,对通信链路逐段占用
- 灵活,以分组为传送单位独立路由
- 迅速,不必先建立连接就能向其他主机发送分组
缺点:
- 某些分组传丢,兜圈子等等,导致分组乱序到达
- 各分组携带的首部造成一定的开销
- 可靠性较电路交换较低
比较
- 若要连续传送大量的数据,且其传送时间远大于连接建立时间,则电路交换的传输速率较快。
- 报文交换和分组交换不需要预先分配传输带宽,在传送突发数据时可提高整个网络的信道利用率。
- 由于一个分组的长度往往远小于整个报文的长度,因此分组交换比报文交换的时延小,同时也具有更好的灵活性。
体系结构
两台或多台主机之间要想传递数据、彼此理解,需要解决复杂的问题。1将复杂问题分为若干层,2并定义每层解决哪些问题,就是体系结构需要解决的两个问题。
网络要划分为几层、以及每层功能的解释就是网络的体系结构
意义在于,如果任何两台计算机遵从相同的体系结构,那么两者间一定可以实现互连,反之成立
协议:进行网络中数据交换而建立的规则、标准或约定,即网络协议,简称协议
Internet
互连网:局部范围互连起来的网络,internet。
互联网:世界上最大的计算机网络,Internet。由数量极大的各种计算机网络互连起来
互联网的组成
边缘部分
由所有连接在互联网上的主机组成,又称端系统,在功能上可能存在很大差别。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享
端系统之间通信:“主机 A 和主机 B 进行通信”实际上是指:“运行在主机 A 上的某个程序和运行在主机 B 上的另一个程序进行通信”。通过传输层和应用层的程序进行通信。
端系统两种通信方式:
客户-服务器方式C/S
客户软件:被用户调用后运行,在打算通信时主动向远地服务器发起通信(请求服务)。因此,客户程序必须知道服务器程序的地址。不需要特殊的硬件和很复杂的操作系统。
服务器软件:专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。系统启动后即自动调用并一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。因此,服务器程序不需要知道客户程序的地址。一般需要强大的硬件和高级的操作系统支持。客户与服务器的通信关系建立后,通信可以是双向的,客户和服务器都可发送和接收数据。
对等方式P2P
对等连接 (peer-to-peer,简写为 P2P) 是指两个主机在通信时并不区分哪一个是服务请求方还是服务提供方。只要两个主机都运行了对等连接软件 (P2P 软件) ,它们就可以进行平等的、对等连接通信。双方都可以下载对方已经存储在硬盘中的共享文档。对等连接工作方式可支持大量对等用户(如上百万个)同时工作。
核心部分
由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)
路由器:实现分组交换,转发收到的分组,将网络互联起来。
计算机网络的定义:计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
根据这个定义:
(1) 计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机。
(2) 计算机网络并非专门用来传送数据,而是能够支持很多种的应用(包括今后可能出现的各种应用)。
网络分类
作用范围/组网协议分类
网络使用者分类
公用网 (public network) :按规定交纳费用的人都可以使用的网络。因此也可称为公众网。
专用网 (private network) :为特殊业务工作的需要而建造的网络。
接入网 AN (Access Network),它又称为本地接入网或居民接入网。
- 接入网是一类比较特殊的计算机网络,用于将用户接入互联网。
- 接入网本身既不属于互联网的核心部分,也不属于互联网的边缘部分。
- 接入网是从某个用户端系统到互联网中的第一个路由器(也称为边缘路由器)之间的一种网络。
- 从覆盖的范围看,很多接入网还是属于局域网。
- 从作用上看,接入网只是起到让用户能够与互联网连接的“桥梁”作用。
网络性能指标
速率
bit/s,单位时间内网络中的某信道所能通过的最高数据率。
带宽
指信号具有的频带宽度,单位是赫。频域上的单位。
能够通过的最大频率是多少?
但是习惯上速率的定义也可以叫带宽,时域意义上。
吞吐量
单位时间内通过某个网络(或信道、接口)的数据量。一般单位也是bit/s
时延
数据从一端传送到另一端所需的时间。是如下四种的和。
发送时延
通常为主要时延
也称传输时延,发送数据时,数据帧从节点接入到传输媒体所需要的时间。
从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
传播时延
电磁波在信道中需要传播一定的距离而花费的时间。普通网络中可忽略不计,卫星中不能
处理时延
主机或路由器在收到分组时,为处理分组(例如分析首部、提取数据、差错检验或查找路由)所花费的时间。
排队时延
分组在路由器输入输出队列中排队等待处理所经历的时延。排队时延的长短往往取决于网络中当时的通信量。
处理时延&排队时延太长,数据拥堵,易丢包/超时,应当提升路由器性能。
时延带宽积
你是?
链路的时延带宽积又称为以比特为单位的链路长度
往返时间RTT
表示从发送方发送数据开始,到发送方收到来自接收方的确认,总共经历的时间。
往返时间包括各中间节点的处理时延、排队时延以及转发数据的发送时延。
利用率
信道利用率并非越高越好。当某信道的利用率增大时,该信道引起的时延也就迅速增加。分以下两种
信道利用率
指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。
网络利用率
全网络的信道利用率的加权平均值。
时延与网络利用率的关系
各层主要功能
物理层
物理层的任务就是透明地传送比特流。
物理层所传数据的单位是比特。
物理层不是介质层。
数据链路层
数据链路层的任务是在两个相邻结点间的线路上提供以帧为单位的可靠性数据传输。
数据链路层所传数据的单位是帧。
网络层
网络层负责为互联网上的不同主机提供通信。
完成路由选择、拥塞控制和网络互连。
IP协议是网络互连的关键协议。
网络层所传数据的单位是分组/数据报。
运输层
运输层的任务是负责主机中两个进程之间的通信。
运输层可使用面向连接的传输控制协议TCP和无连接的用户数据报协议UDP。
运输层为应用层屏蔽下层的通信细节。
运输层所传数据的单位是数据报/报文段。
应用层
应用层是体系结构中的最高层,直接为用户的应用进程提供服务。
应用层确定进程之间通信的性质以满足用户的需要(这反映在用户所产生的服务请求)。
应用层所传数据的单位是报文。
应用层协议很丰富,如:HTTP, SMTP, DNS, FTP etc.
协议&服务
实体 (entity) 表示任何可发送或接收信息的硬件或软件进程。
协议(protocol)是控制两个对等实体进行通信的规则的集合。 协议的实现保证了能够向上一层提供服务。
服务(service)是本层的功能。
- 协议是服务的实现。
- 本层协议,向上一层提供服务。
- 要实现本层协议,还需要使用下层所提供的服务。
本层的服务用户只能看见服务而无法看见下面的协议。即下面的协议对上面的服务用户是透明的。
协议是“水平的”,即协议是控制对等实体之间通信的规则。
服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。
同一系统相邻两层的实体进行交互的地方,称为服务访问点 SAP (Service Access Point)。
服务访问点SAP是一个抽象的概念,它实际上就是一个逻辑接口。
OSI把层与层之间交换的数据的单位称为服务数据单元 SDU (Service Data Unit)。
Chapter2.物理层
本章要求:
理解物理层的功能
掌握有关信道的几个基本概念
掌握信道的最高码元传输速率和极限信息传输速率
掌握物理层下面的传输媒体(双绞线、光纤)
掌握模拟传输与数字传输(几种调制方法)
掌握信道复用技术
频分复用、时分复用和统计时分复用、 波分复用、码分复用
了解同步光纤网 SONET 和同步数字系列 SDH
了解几种宽带接入技术:ADSL,HFC,FTTx
数据通信系统
透明性:
- 屏蔽掉不同传输媒体差异,使数据链路层感受不到这种差异。(物理层作用)
- 关心如何在传输媒体上传输bit流,而不关心具体的传输媒体/通信介质,不关心流的实际含义。(物理层关心的)
物理层协议也叫物理层规程procedure
物理层的主要任务描述为确定与传输媒体的接口的一些特性:
- 机械特性 指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等等。
- 电气特性 指明在接口电缆的各条线上出现的电压的范围。
- 功能特性 指明某条线上的某一电平的电压表示何种意义。
- 规程特性 指明对于不同功能的各种可能事件的出现顺序。
消息:语音、文字、图像…
数据:运送消息的实体。有意义的符号序列
信号:数据的电气的或电次的表现。分为:
- 模拟信号:所代表消息的参数取值是连续的,例如语音(电话网络)
- 数字信号:所代表消息的参数取值是离散的,计算机中
基带信号/基本频带信号:来自信源的信号。含有较多的低频部分,甚至直流成分。
调制:信号波形的变换,编码的过程
- 基带调制:仅对基带信号的波形进行变换,把数字信号转换为另一种形式的数字信号。把这种过程称为编码 (coding)。
- 带通调制:使用载波 (carrier)进行调制,把基带信号的频率范围搬移到较高的频段,并转换为模拟信号。经过载波调制后的信号称为带通信号(即仅在一段频率范围内能够通过信道)。
- 脉冲编码调制:模拟信号->数字信号
信道:自信源到信宿之间传递信号的路径。一般指表示向某一个方向传送信息的媒体。信道是一个逻辑概念,不同于物理链路。1-2之间传递信息,可以有多条信道,同时传递信息。
单向通信(单工通信):只能有一个方向的通信而没有反方向的交互。
双向交替通信(半双工通信):通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。
双向同时通信(全双工通信):通信的双方可以同时发送和接收信息。
码元(code):在使用时间域(或简称为时域)的波形表示数字信号时,代表不同离散数值的基本波形。
码元传送速率(波特率):单位时间内通过信道的波形数。单位:波特Baud (1 波特为每秒传送 1 个码元)。
提高数据率:提高k或B
数据编码方法
1基带调制
1.1不归零制
1.2归零制
1.3曼彻斯特编码
1.4差分曼彻斯特编码
从信号波形中可以看出,曼彻斯特编码和差分曼彻斯特编码产生的信号频率比不归零制高。
从自同步能力来看,不归零制不能从信号波形本身中提取信号时钟频率(没有自同步能力),而曼彻斯特编码和差分曼彻斯特编码具有自同步能力。
2带通调制
对选取的载波信号进行波形改变
调幅(AM):载波的振幅随基带数字信号而变化。 A
调频(FM):载波的频率随基带数字信号而变化。ω
调相(PM):载波的初始相位随基带数字信号而变化。φ
多相调制:同时改变相位、振幅或频率中的两个参数,形成多种波形,携带多位信息,提高数据率。
正交调制QAM
不是码元越多越好。每个码元携带的比特数越多,则在接收端进行解调时要正确识别每一种状态就越困难,出错率增加。码元携带的比特数k的提升是有上限的。
信道
任何实际的信道都不是理想的,都不可能以任意高的速率进行传送。
码元传输的速率越高,或信号传输的距离越远,或噪声干扰越大,或传输媒体质量越差,在接收端的波形的失真就越严重。
频率范围
具体的信道所能通过的频率范围总是有限的。信号中的许多高频分量往往不能通过信道。
码间串扰:信号中的高频分量传输时受到衰减,接收端收到的波形的前沿和后沿不那么陡峭,每个码元所占的时间界限不再清晰明显,而是前后拖着“尾巴”,有一定的拖延,使得原本清晰的一串码元变得模糊而无法识别。
码间串扰与信道带宽有关,越宽,串扰越少;越窄,串扰越大。
信噪比
信号功率和噪音功率的比值。
奈奎斯特准则
码元传输的最高速率=2W(码元/s)
在带宽为W(Hz)的低通信道中,若不考虑噪声影响,码元传输速率最高是2W。
适用条件:
- 理想信道,不考虑任何噪声和干扰
- 低通信道,最低0Hz,最高W Hz。
说明:
- 在任何信道中,码元传输的速率是有上限的,否则就会出现码间串扰的问题,使接收端对码元的判决(即识别)成为不可能。
- 如果信道的频带越宽,也就是能够通过的信号高频分量越多,那么就可以用更高的速率传送码元而不出现码间串扰。
信噪比就是信号的平均功率和噪声的平均功率之比。常记为 S/N,并用分贝 (dB) 作为度量单位。即:
信噪比(dB) = 10 log10(S/N)
S:信号的平均功率;N:噪声平均功率
例如,当 S/N = 10 时,信噪比为 10 dB,而当 S/N = 1000时,信噪比为 30 dB。
- 噪声是随机产生的,它的瞬时值有时会很大。因此噪声会使接收端对码元的判决产生错误。
- 但噪声的影响是相对的。如果信号相对较强,那么噪声的影响就相对较小。
极限信息传输速率
香农公式:1948年,香农(Shannon)用信息论的理论推导出了带宽受限且有高斯白噪声干扰的信道的极限、无差错的信息传输速率。
信道的极限信息传输速率 C 可表达为:单位bit/s
W 为信道的带宽(以 Hz 为单位);S 为信道内所传信号的平均功率;N 为信道内部的高斯噪声功率。
表明:
- 信道的带宽或信道中的信噪比越大,则信息的极限传输速率就越高。
- 若信道带宽 W 或信噪比 S/N 没有上限(当然实际信道不可能是这样的),则信道的极限信息传输速率 C 也就没有上限。
- 只要信息传输速率低于信道的极限信息传输速率,就一定可以找到某种办法来实现无差错的传输。
- 实际信道上能够达到的信息传输速率要比香农的极限传输速率低不少。
物理层下面的传输媒体
传输媒体也称为传输介质或传输媒介,它就是数据传输系统中在发送器和接收器之间的物理通路。
传输媒体可分为两大类:
- 导引型传输媒体,常称为有线媒体。电磁波被导引沿着固体媒体(铜线或光纤)传播。
- 非导引型传输媒体,常称为无线媒体,指自由空间,电磁波的传输常称为无线传输。
导引型传输媒体
1双绞线
最常用的引导型传输媒体。把两根互相绝缘的铜导线并排放在一起,然后用规则的方法绞合 (twist) 起来就构成了双绞线。绞合度越高,可用的数据传输率越高。
无屏蔽双绞线UTP
UTP:Unshielded Twisted Pair
无屏蔽层,价格便宜,方便,常用
屏蔽双绞线STP
Shielded Twisted Pair
有屏蔽层,需接地,更好屏蔽电磁干扰,重、粗
x/UTP:对整条双绞线电缆进行屏蔽。
F/UTP (F=Foiled):表明采用铝箔屏蔽层。
S/UTP (S=braid Screen):表明采用金属编织层进行屏蔽。
SF/UTP:表明在铝箔屏蔽层外面再加上金属编织层的屏蔽。
FTP 或 U/FTP:把电缆中的每一对双绞线都加上铝箔屏蔽层。U表明对整条电缆不另增加屏蔽层
F/FTP:在 FTP 基础上对整条电缆再加上铝箔屏蔽层。
S/FTP:在 FTP 基础上对整条电缆再加上金属编织层的屏蔽。
双绞线标准
更常用568B型。B型中,12负责发送数据,36接收数据,其他是冗余,负责校验等?
B-B两头一样:直通线,主机—路由器/交换机
A-B两头不一样:交叉线,主机—主机,交换机—交换机
?还挺重要
2同轴电缆
由内导体铜质芯线(单股实心线或多股绞合线)、绝缘层、网状编织的外导体屏蔽层(也可以是单股的)以及保护塑料外层所组成。
主要用于有线电视、较高速率数据传输
性能评价:成本比双绞线高、易安装性比双绞线差、抗干扰性低比双绞线强,最大带宽接近1GHz
3光纤
光纤是光纤通信的传输媒体通过传递光脉冲来进行通信。
其传输带宽远远大于目前其他各种传输媒体的带宽。
一个完整的光传输系统:
- 发送端:光源 (发光二极管、半导体激光器)
- 接收端:检测器(光电二极管)
工作原理:高折射率介质到低折射率介质,入射角小,折射角大,在一定角度下发生全反射,不断地全反射以传递信息。
多模光纤
只要入射角大于临界角度,可以存在多条不同角度入射的光线在一条光纤中传输。
光脉冲在多模光纤中传输时会逐渐展宽,造成失真,只适合于近距离传输。
单模光纤
将纤芯直径减小到只有一个光的波长(几个微米),可使光线一直向前传播,而不会产生多次反射。
制造成本较高,但衰耗较小。
光源要使用昂贵的半导体激光器,不能使用较便宜的发光二极管。
优点:
(1)通信容量非常大
(2)传输损耗小,中继距离长,对远距离传输特别经济。
(3)抗雷电和电磁干扰性能好。这在有大电流脉冲干扰的环境下尤为重要。
(4)无串音干扰,保密性好,也不易被窃听或截取数据。
(5)体积小,重量轻。
缺点:成本高。但目前工艺成熟,价格降低,已经普遍采用
非导引型传输媒体
(无线介质、自由介质)不能够将信号约束在某个固定的媒体中,就是无线传输捏。主要使用微波波段
多径效应:基站发出的信号可以经过多个障碍物的数次反射,从多条路径、按不同时间等到达接收方。多条路径的信号叠加后一般都会产生很大的失真。
特点:
(1) 微波波段频率很高,频段范围很宽,其通信信道的容量很大。
(2) 工业干扰和天电干扰对微波通信的危害小,微波传输质量较高。
(3) 与相同容量和长度的电缆载波通信比较,微波接力通信建设投资少,见效快,易于实施。
缺点:
(1) 相邻站之间必须直视(常称为视距 LOS (Line Of Sight)),不能有障碍物,存在多径效应。
(2) 有时会受到恶劣气候的影响。
(3) 与电缆通信系统比较,微波通信的隐蔽性和保密性较差。
(4) 对大量中继站的使用和维护要耗费较多的人力和物力。
卫星通信:
- 通信容量大,通信距离远,通信比较稳定,通信费用与通信距离无关。
- 但传播时延较大:在 250~300 ms之间。
- 请注意:“卫星信道的传播时延较大”并不等于“用卫星信道传送数据的时延较大”。
- 保密性相对较差。
- 造价较高。
信道复用技术
允许用户使用一个共享信道进行通信
频分复用
频率不同
将信道的可用频带分为若干子频带。相邻子频带之间留有临界保护频带。将不同用户的信号分别调制到这些子频带上。信道上同时传输多路信号。所有用户在同样的时间占用不同的带宽资源。频分复用适用于模拟传输。
时分复用TDM
时隙,交替
将信道的可用时间分为若干时隙;将这些时隙平分给不同用户的信号;每路信号交替占用信道资源;所有用户在不同的时间占用同样的频带宽度;TDM 信号也称为等时 (isochronous) 信号;时分复用适用于数字传输
导致信道利用率不高,有些人占地方不发信息
统计时分复用STDM
统计时分复用 STDM 是对时分复用的一种改进。使用统计时分复用 STDM帧传送复用数据;时隙数可以不同于用户数。用户有了数据即发往集中器缓存(队列),集中器扫描缓存,将其中数据放入STDM帧,放满即可发送出去。
- 统计时分复用不是平均分配时隙,而是按需分配时隙,明显提高信道的利用率。
- STDM帧的时隙中包括用户地址信息,集中器的设计为具有更多智能性,加入许多控制信息,开销增大。
- STDM不适合于用户数据均衡且重负载的通信。
- 统计复用又称为异步时分复用,而普通的时分复用称为同步时分复用。
波分复用WDM
光纤使用不同的波长,是光的频分复用
码分复用CDM/码分多址CDMA
重要,但是想找题理解一下
数字传输系统
脉码调制PCM
同步光纤网SONET&同步数字系列SDH
各级网络时钟均来自一个精确的主时钟,以51.84Mb/s为基础,必须是其整数倍(什么战力单位)
后来定义SDH=3xSONET=155.52Mb/s
- 使北美、日本、欧洲三个地区的数字传输体制在STM-1等级获得统一。
- 真正实现了数字体制的世界性标准。
- 也适用于微波和卫星传输技术体制。
宽带接入技术
分为有线宽带接入、无线宽带接入
Chapter3.数据链路层
本章要求
一、使用点对点链路的数据链路层
- 理解数据链路层的功能。
- 封装成帧
- 透明传输
- 差错控制
- 掌握循环冗余校验的方法。
- 理解PPP协议的工作原理。
二、使用广播信道的数据链路层
- 掌握CSMA/CD协议的工作原理。
- 掌握传统以太网(主要是10BASE-T)的连接方法。
- 理解MAC地址及DIX Ethernet V2 帧格式 。
- 掌握使用集线器、交换器扩展以太网的方法。
- 交换机的自学习算法和优点。
- 了解虚拟局域网和高速以太网的基本原理。
3.1 概述
透明性;等效于本层间进行数据传递
使用两种类型的信道:点对点信道,广播信道。
数据链路和帧
链路link:一条无源的点到点的物理线路段,中间没有任何其他的交换节点。链路是一条通路的一个组成部分。
数据链路data link:除了物理线路外,还必须有通信协议来控制这些数据的传输,把实现这些协议的硬件和软件加到链路上,就构成了数据链路。使用适配器(即网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。
帧:数据链路层传送单位。
封装成帧
最大传送单元MTU:规定了所能传送的帧的数据部分长度上限。不含数据链路层帧首尾!
封装成帧(framing):在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。
帧定界:首部和尾部的作用,确定帧的界限。只有数据链路层帧有尾部
控制字符 SOH (Start Of Header) 放在一帧的最前面,表示帧开始。帧开始符
控制字符 EOT (End Of Transmission) 放在一帧的末尾,表示帧结束。帧结束符
透明传输
含义:无论发送什么样的比特组合的数据,这些数据都能够按照原样没有差错地通过这个数据链路层,且不会产生误解。
如果数据中某个字节的二进制代码恰好和SOH或EOT一样,数据链路层就会错误地找到帧边界,导致错误。因此,要避免出现与定界符相同的bit组合。
字节填充/字符填充
发送方在数据中出现SOH或EOT的前面,插入一个转义字符,比如ESC(0x1B)(虽然转义字符和ESC不同义,但是ESC感觉更好理解?所以下面写的ESC)
接收方收到后,去掉ESC。如果ESC也出现在数据当中,则在ESC前面再加一个ESC。接收方连续收到两个ESC时,删除前面的一个。
差错控制
传输中可能产生比特差错,1变0,0变1(0异事件(
误码率BER(bit error rate):一段时间内,传输错误的bit所占总bit的比例。与信噪比有很大关系。
为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。主要分两种:
- 检错法,检出错误后丢弃重传,简单易行,适用于重传代价低,距离近的一般通信
- 纠错法,检出错误后改正错误,方法复杂,适用于重传代价高的,例如卫星通信
几种校验:
- 奇偶校验,最简单,错奇数位能检出,错偶数位不能检出
- CRC循环冗余校验
- 还有个啥
循环冗余检验CRC
在发送端,先把数据划分为组,假定每组 k 个比特。
假设待传送的一组数据 M = 101001(现在 k = 6)。我们在 M 的后面再添加供差错检测用的 n 位冗余码一起发送。
在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。
循环冗余检验 CRC 和帧检验序列 FCS并不等同。
- CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。
- FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。
总而言之差不多!混用吧!
有差错,但是不知道具体哪里出错了,闭卷考试只出分现状
差错检测≠可靠传输:
- 凡是接收的帧,都能以非常接近1的概率认为这些帧在传输过程中没有出错。
- 要做到可靠传输,还需要确认和重传机制。
3.2 点对点协议PPP
使用最广泛的数据链路层协议Point to Point Protocol
是用户计算机和ISP进行通信时所使用的数据链路层协议。
PPP协议有三个组成部分:
- 一个将 IP 数据报封装到串行链路的方法。
- 一个链路控制协议 LCP (Link Control Protocol):用来建立、配置、测试数据链路连接,通信双方协商一些选项。协商数据链路层
- 一套网络控制协议 NCP (Network Control Protocol) :每一个协议支持不同的网络层协议。协商网络层
PPP帧格式
PPP帧是面向字节的,所有的PPP帧都是整数字节B
标志字段F=0x7E,是帧定界符,首尾都有
地址字段A=0xFF,保留字段
控制字段C=0x03,保留字段
协议:2B
- 协议字段=0x0021,则信息部分是IP数据报
- 0xC021,PPP链路控制数据
- 0x8021,网络控制数据
FCS:CRC-16的16位冗余码
PPP透明传输问题
异步传输
PPP 用在异步传输(?低速网使用)时,使用字符填充法。
将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列 (0x7D, 0x5E)。
若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列(0x7D, 0x5D)。
若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时改变该字符的编码。
同步传输
PPP 协议用在 SONET/SDH 链路时,使用同步传输(一连串的比特连续传送)。这时 PPP 协议采用零比特填充方法来实现透明传输。
为避免帧定界符F=0x7E=01111110连续6个1的情况
在发送端,只要发现有 5 个连续 1,则立即填入一个 0。
接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除。
如果存在7个连续1,铁传错
PPP工作状态
当用户拨号接入 ISP 时,调制解调器对拨号做出确认,并建立一条物理连接。
PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)这些分组及其响应选择一些 PPP 参数,和进行网络层配置,NCP 给新接入的 PC机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。
通信完毕时,NCP 释放网络层连接,收回分配出去的 IP 地址。接着LCP 释放数据链路层连接;最后释放的是物理层的连接。
3.3 使用广播信道的数据链路层
局域网
特点:
- 网络为一个单位拥有,便于管理
- 拓扑结构规整(最主要特点)
- 地理范围和站点数目均有限,一般不涉及远程通信。
- 网络速率高,传输可靠性好。
局域网物理拓扑:
优点:具有广播功能、便于系统扩展、提高可靠性
媒体共享技术
静态划分信道:和物理层一样,频分、时分、波分、码分
动态媒体接入控制(多点接入)
- 随机接入:争用网,总线网采用,需要解决碰撞
- 受控接入:轮询网,环网采用,需考虑轮询时令牌的分配
数据链路层两个子层
为使数据链路层能更好地适应多种局域网标准,802 委员会就将局域网的数据链路层拆成两个子层:
逻辑链路控制 LLC (Logical Link Control)子层;
媒体接入控制 MAC (Medium Access Control)子层。
与接入到传输媒体有关的内容都放在 MAC子层,而 LLC 子层则与传输媒体无关,不管采用何种协议的局域网对 LLC 子层来说都是透明的。
但由于时代原因,一般不考虑LLC子层
MAC层
数据链路层两个子层之MAC层
硬件地址/物理地址/MAC地址/MAC-48/EUI-48,固化在适配器的ROM中,不会改变
MAC帧格式
有两种标准DIX Ethernet V2;IEEE 802.3,这是V2的格式
无效的MAC帧
- 帧的长度不是整数个字节;如17bit
- 用收到的帧检验序列 FCS 查出有差错;
- 数据字段的长度不在 46 ~ 1500 字节之间。(有效的 MAC 帧长度为 64 ~ 1518 字节之间)
适配器
网络接口板又称为通信适配器(adapter)或网络接口卡 NIC (Network Interface Card),或“网卡”。
适配器的重要功能:
- 进行串行/并行转换。
- 对数据进行缓存。
- 实现以太网协议。
- 在计算机的操作系统安装设备驱动程序。
适配器检查MAC地址
适配器从网络上每收到一个 MAC 帧就首先用硬件检查 MAC 帧中的 MAC 地址.(过滤功能)如果是发往本站的帧则收下,然后再进行其他的处理。否则就将此帧丢弃,不再进行其他的处理。
“发往本站的帧”包括以下三种帧:
- 单播(unicast)帧(一对一)
- 广播(broadcast)帧(一对全体)
- 多播(multicast)帧(一对多)
适配器的“混杂模式”:数据全收,用于数据分析,嗅探
总线拓扑 CSMA/CD
以太网核心协议 载波侦听多路访问/冲突检测detection
“载波监听”是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生冲突。总线上并没有什么“载波”。因此,“载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号。
“多点接入”表示许多计算机以多点接入的方式连接在一根总线上。
“冲突检测”就是计算机边发送数据边检测信道上的信号电压大小。
B广播方式发送,总线上的每一个工作的计算机都能检测到 B 发送的数据信号,由于只有计算机 D 的地址与数据帧首部写入的地址一致,因此只有 D 才接收这个数据帧。 其他所有的计算机(A, C 和 E)都检测到不是发送给它们的数据帧,因此就丢弃这个数据帧而不能够收下来。具有广播特性的总线上实现了一对一的通信。
两个措施:无连接、尽最大努力交付。不编号,不确认,不重传
工作原理:
- 站点在发送数据帧之前,先侦听总线是否忙,只有总线空闲时方可发送;
- 发送过程中边侦听边发送;
- 若出现冲突,则停止发送当前数据帧,向总线发送强化冲突的干扰串;
- 待冲突退避时间之后再侦听总线,重新发送。
1.如何冲突检测
当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了冲突。所谓“冲突”就是发生了碰撞,因此“冲突检测”也称“碰撞检测”。
- 超过高低电平极限值
- 曼彻斯特编码下,跳变的时钟发生偏移->冲突
2.检测到冲突后
一旦检测到冲突,立即停止发送
等待?随机时间后,再次发送
3.何时检测到冲突
当某个站监听到总线是空闲时,也可能总线并非真正是空闲的。
A 向 B 发出的信息,要经过一定的时间后才能传送到 B。B 若在 A 发送的信息到达 B 之前发送自己的帧(因为这时 B 的载波监听检测不到 A 所发送的信息),则必然要在某个时间和 A 发送的帧发生冲突。
t:单程端到端传播时延;A-B,2t时间内若有冲突,A一定能发现
δ:数据发完还需要的时间
4.争用期
最先发送数据帧的站,在发送数据帧后至多经过时间 2t (两倍的端到端往返时延)就可知道发送的数据帧是否遭受了冲突。经过这段时间还没有检测到冲突,才能肯定这次发送不会发生冲突。
以太网的端到端往返时延 2t 称为争用期,或冲突窗口。或512比特时间,或64字节时间
取 51.2 ms 为争用期的长度。
对于 10 Mb/s 以太网,在争用期内可发送512 bit,即 64 字节。因此,争用期的长度也表达为512比特时间。
5.最短有效帧长
如果发生冲突,就一定是在发送的前 64 字节之内。 争用期内
由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于 64 字节。
以太网规定了最短有效帧长为 64 字节,凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧。
发送帧最短要达到64B,不足用0补齐
6.强化冲突
当发送数据的站一旦发现发生了冲突时,除了立即停止发送数据外,双方都要再继续发送若干比特的人为干扰信号(jamming signal),以便让所有用户都知道现在已经发生了冲突。
强化冲突原因:设冲突点离A很远,离B很近,即B发送很少的数据后冲突,后停发,少量的叠加数据远距离传到A,可能被A忽略。A继续发送,浪费时间。
强化冲突的违规码长度介于32-64比特之间,不易被忽略。
7.退避算法
发生冲突的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。
8.帧间隔
帧间最小间隔为9.6微秒,相当于96比特时间。
这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。
若适配器检测到信道空闲(即在96比特时间内没有检測到信道上有信号),就发送这个帧。若检测到信道忙,则继续检测并等待信道转为空闲(加上96比特时间),然后发送个帧。
特点
不是全双工,只能进行半双工通信
每个站在发送数据后的争用期内,均存在冲突的可能性,使以太网的平均通信量远小于最高数据率。
星形拓扑
采用双绞线的星形以太网初期的最大传输速率为10Mb/s,称为10BASE-T
星形的中心设备为集线器
使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是 CSMA/CD 协议,并共享逻辑上的总线。
集线器很像一个多接口的转发器,工作在物理层。 又称盒中总线。
10BASE-T使用无屏蔽双绞线。
每个站需要用两对双绞线,分别用于发送和接收。
集线器使用了大规模集成电路芯片,因此这样的硬件设备的可靠性已大大提高了。
10BASE-T 的通信距离稍短,每个站到集线器的距离不超过 100 m。
信道利用率
看ppt吧如果重要的话
3.4 扩展的以太网
以太网是一种计算机局域网技术
1在物理层扩展以太网
主机使用光纤和一堆光纤调制解调器连接到集线器,用集线器扩展局域网
碰撞率/冲突域:网络中一个站点发出的帧会与其他站点发出的帧产生碰撞或冲突的那部分网络。碰撞域越大,发生碰撞的概率越高。
2在数据链路层扩展以太网
更常用。早期使用网桥,现在使用以太网交换机
网桥:工作在数据链路层。根据 MAC 帧的目的地址对收到的帧进行转发和过滤。或者转发,或者丢弃。
交换机:工作在数据链路层。实质是多端口的网桥。可明显地提高以太网的性能。可以全双工。
交换机
交换机的自学习功能:
第一次发送数据,A->B:
A 先向 B 发送一帧。该帧从接口 1 进入到交换机。
交换机把这个帧的源地址 A 和接口 1 写入交换表中。
交换机收到帧后,先查找交换表。没有查到应从哪个接口转发这个帧给 B,于是向除接口 1 以外的所有的接口广播这个帧。
B,C,D均收到广播,由于与该帧的目的地址不相符,C 和 D 将丢弃该帧。
第二次发送数据,B->A:
- B 向 A 发送一帧。该帧从接口 3 进入到交换机。
- 交换机把这个帧的源地址 B 和接口 3 写入交换表中。
- 交换机收到帧后,先查找交换表。发现交换表中的 MAC 地址有 A,表明要发送给 A 的帧应从接口 1 转发出去。于是就把这个帧传送到接口 1 转发给 A。
考虑到可能有时要在交换机的接口更换主机,或者主机要更换其网络适配器,这就需要更改交换表中的项目。为此,在交换表中每个项目都设有一定的有效时间。过期的项目就自动被删除。
这种自学习方法使得以太网交换机能够即插即用,不必人工进行配置。
两台交换机
不能出现回路
消除回路:使用生成树协议STP:不改变网络实际拓扑,但在逻辑上切断某些链路,使得一台主机到所有其他主机的路径是无环路的树状结构,从而消除兜圈子现象。
- 以太网交换机具有并行性。
- 能同时连通多对接口,使多对主机能同时通信。
- 相互通信的主机都独占传输媒体,无碰撞地传输数据。
- 每一个端口和连接到端口的主机构成了一个碰撞域。
从总线以太网到星形以太网
3虚拟局域网VLAN
以太网存在的问题:
- 广播风暴:广播太多,占用太多带宽,导致单播无法传递。程度收到主机数量影响
- 安全问题:广播,不安全,不能隔绝不同部门的通信
- 管理问题
广播域:指这样一部分网络,其中任何一台设备发出的广播通信都能被该部分网络中的所有其他设备所接收。一个以太网就是一个广播域,交换机间的冗余链路易形成广播风暴。
VLAN
- 由一些局域网网段构成的与物理位置无关的逻辑组。
- 这些网段具有某些共同的需求。
- 每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的工作站是属于哪一个 VLAN。
- 虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。
划分VLAN后,同VLAN 内能接收广播,不同的广播会被隔绝;若不同域想发送消息,需要通过路由器。
基于交换机端口划分
属于在第 1 层划分虚拟局域网的方法
最简单、常用。缺点:不允许用户移动端口。
有实验来着?
基于网卡的MAC地址划分
属于在第 2 层划分虚拟局域网的方法
根据用户计算机的 MAC 地址划分虚拟局域网。允许移动端口
缺点:需要输入和管理大量的 MAC 地址。如果用户的 MAC 地址改变了,则需要管理员重新配置VLAN。
基于IP子网地址的方法
根据以太网帧的第三个字段“类型”和 IP 分组首部中的源 IP 地址字段确定该 IP 分组属于哪一个虚拟局域网。
属于在第 3 层划分虚拟局域网的方法。
基于高层应用或服务的方法
可以基于协议,FTP,QQ等。
更灵活,但也更复杂。
帧格式
3.5 高速以太网
100BASE-T
速率达到或超过 100 Mb/s 的以太网称为高速以太网。采用双绞线的 100 Mb/s 星型拓扑以太网,仍使用 IEEE 802.3 的CSMA/CD 协议。100BASE-T 以太网又称为快速以太网(Fast Ethernet) IEEE802.3u;更换100Mb/s的适配器和集线器,网络拓扑结构、软件可保持不变。(不需要换网卡)可在全双工方式下工作而无冲突发生。此时不使用 CSMA/CD 协议。
当速率增加到10倍时,可将帧长增加10倍或电缆线减为原来的1/10.
100Mb/s以太网的方法是:
- 保持最短帧长64字节保持不变;
- 将一个网段的最大电缆长度减小到 100 m;
- 争用期为5.12 ms(512b)
- 帧间时间间隔为 0.96 ms。
1000BASE-T
Gbit以太网
允许在 1 Gb/s 下全双工和半双工两种方式工作。使用 802.3 协议规定的帧格式,IEEE802.3z 。在半双工方式下使用 CSMA/CD 协议。与 10BASE-T 和 100BASE-T 技术向后兼容。
吉比特以太网仍然保持一个网段的最大长度为 100 m,但采用了“载波延伸”的办法,使最短帧长仍为 64 字节(这样可以保持兼容性),同时将争用时间增大为 512 字节。(原来是512b)(实际最短帧512B)
载波延伸
凡发送的 MAC 帧长不足 512 字节时,就用一些特殊字符填充在帧的后面,使MAC 帧的发送长度增大到 512 字节,但这对有效载荷并无影响。
接收端在收到以太网的 MAC 帧后,要将所填充的特殊字符删除后才向高层交付。
分组突发
当很多短帧要发送时,第一个短帧要采用上面所说的载波延伸的方法进行填充。
随后的一些短帧则可一个接一个地发送,只需留有必要的帧间最小间隔即可。这样就形成可一串分组的突发,直到达到 1500 字节或稍多一些为止。
10G/100Gbit以太网
10 吉/100 吉比特以太网与 10 Mb/s,100 Mb/s 和 1 Gb/s 以太网的帧格式完全相同,IEEE802.3ae10 吉比特以太网还保留了 802.3 标准规定的以太网最小和最大帧长,便于升级。10 吉比特以太网使用光纤作为传输媒体。10 吉比特以太网只工作在全双工方式,因此没有争用问题,也不使用 CSMA/CD 协议。
以太网宽带接入-PPPoE
PPPoE (PPP over Ethernet) :在以太网上运行 PPP。将 PPP 帧封装到以太网中来传输。
现在的光纤宽带接入 FTTx 都要使用 PPPoE 的方式进行接入。
Chapter4.网络层
- 理解数据报服务与虚电路服务
- 掌握分类的IP地址无分类编址、路由聚合、地址块划分
- 掌握分组的转发流程。
- 掌握IP协议 (数据报结构、分片方法)。
- 掌握ARP协议和ICMP协议的工作原理。
- 掌握RIP、OSPF 、BGP路由协议工作原理。
- 理解路由器的结构和作用。
- 理解IPv6
- 理解多播地址(包括IP多播地址和局域网多播地址)、IGMP协议、
反向路径广播机制,多播转发树。 - 理解NAT协议、VPN以及专网的概念。
- 理解MPLS的原理
- 理解SDN基本概念
4.1 网络层提供的两种服务
虚电路服务
- 思路:可靠通信应当由网络来保证
- 面向连接的通信方式-可靠交付
- 虚电路表示建立一条逻辑上连接,分组都沿逻辑连接按照存储转发方式传送
数据报服务
- 思路:可靠通信由用户主机来保证
- 无连接的通信方式-尽最大努力的交付
- 直接发送数据报,每个分组独立路由,与前后分组无关
- 路由器结构简单,价格低;由传输层负责差错等;生存性好(存在通路就有可能发出数据)
4.2 IP
1.虚拟互连网络
网络互连中间设备/中继系统:
- 转发器(repeater):物理层中继系统
- 网桥或桥接器(bridge):数据链路层
- 交换机是一种网桥
- 路由器(router)(有时称网关(易混,蛮怪的)):网络层
- 桥路器(brouter):网桥x路由器
- 网关(gateway):网络层以上的中继系统,目前使用较少
同构网络:物理层/数据链路层不相同,而其他部分相同;这种情况不称之为网络互连,仅是将一个网络扩大,但仍是一个网络。
异构网络:其他的不相同的;使用路由器的(个人理解)
互联网(Internet):指用路由器进行互连的网络
虚拟互连网络:使用IP协议则简称IP网,是逻辑互连网络;当互联网上的主机进行通信时,就好像在一个网络上通信一样,看不见互连的各具体的网络异构细节。
直接交付:通过同构网络交付;相同网络号地址的主机
间接交付:需要通过路由器交付;不同网络号地址的主机
网络(网段):是具有相同网络号的主机的集合
$$
Everyting \space over \space IP \
IP \space over \space everything
$$
与IP配套使用的协议:
- 地址解析协议ARP(MAC地址)
- 逆地址解析协议RARP
- 网际控制报文协议ICMP(出错通知)
- 网际组管理协议IGMP(多播)
2.IP地址划分
IP地址表示法
点 分 十 进 制 记 法(别看见不知道是啥)
分类的IP
IP地址::={<net-id>,<host-id>}
规定:
- net-id不能全0
- host-id全0,代表一个网段/网络/网络地址
- host-id全1,代表一个广播
分类IP也有掩码
A类
net-id第一位标记0,0开头即A类地址
环回地址,用于网络测试,只有A类有好像
掩码255.0.0.0
8位net-id | 24位host-id |
---|---|
0000 0001. 1.x.x.x | |
… (共126个) | 共2^24-2(全0全1)个 |
0111 1110. 126.x.x.x | |
0111 1111.(环回地址) |
B类
标记10,掩码255.255.0.0
16位net-id | 16位host-id |
---|---|
1000 0000.0000 0001 128.1.x.x | |
… 共2^14-1个 | 共2^16-2个 |
1011 1111.1111 1111 191.255.x.x |
C类
标记110,掩码255.255.255.0
24位net-id | 8位host-id |
---|---|
1100 0000.0000 0000.0000 0001. 192.0.1.x | |
… 共2^21-1个 | 共2^8-2个,254 |
1101 1111.1111 1111.1111 1111. 223.255.255.x |
D类
多播地址,标记1110
E类
保留,标记1111
特殊IP
- 0.0.0.0,表示本网络上的主机,相当于“我”;源地址可使用,目的不可用
- 网络号全0,主机号x,表示本网络上主机号为x的主机,“我们班的第几位同学”,但并未具体指明是什么班,只能在本网络通信;源不可用,目的可用
- 1.1.1.1,表示本网络上的广播;源不可用,目的可用
- 网络号y,主机号全1,表示网络号为y上的广播;源不可用,目的可用;(源地址写主机自己,目的写广播)
- 网络号127,主机号非全0全1,用于本地软件环回测试;源、目的均可用
IP地址特点
- 每个IP地址都由网络号和主机号两部分构成。
- IP是标志一台主机(路由器)和一条链路的接口。多归属主机(就是路由器):具有至少两个网络号不同的IP地址
- 转发器/交换机连接的若干局域网仍为一个网络。他们的网络号均相同,具有不同网络号的网络必须使用路由器互连。
- 在IP地址中,所有分配到网络号的网络是平等的。
分类IP优缺点
优点:
- 管理简单
- 使用方便
- 转发分组迅速
- 划分子网,灵活使用
缺点:设计不合理
- 大地址块,浪费地址资源
- 即使采用划分子网,也无法解决IP枯竭
子网划分
似乎没细讲,对最基本编址方法的改进,把基于每类的IP网络进一步分成更小的网络。
无分类编址CIDR
CIDR(Classless Inter-Domain Routing):无分类域间路由选择
有时称CIDR为构造超网/网络聚合
网络前缀
IP地址::={<网络前缀>,<主机号>},CIDR中必须指明前缀
前缀:位数不固定,采用斜线记法;如114.51.4.0/20,前20位是前缀
连续的0可以省略:10.0.0.0/10—-10/10(192.0/10前面x位,后面n位,使x>=n位?老师好像这么讲)
地址块/网络/网段
网络前缀都相同的所有IP地址组成一个CIDR地址块
前缀n位,主机号m=32-n位:
- 共有$2^m$个地址,可分配/指派的地址$2^m-2$个(总之好几种说法,但是看清是总的地址还是分配的!)
- 主机号全0为网络地址,全1为广播地址
- 特例?/31地址块中主机号可以是0或1,通常用于连接两个路由器
地址掩码/子网掩码/掩码
address mark/subnet mark
一串1+一串0,1的个数是网络前缀的长度
用于让机器从IP迅速算出网络地址(进行按位与运算即可)
所以这个可以理解为网络前缀的另一种表达方式
常用CIDR地址块
有啥用啊
构造超网/路由聚合
每一个CIDR地址块中的地址数一定是2的整数次幂。除最后几行,CIDR地址块都包含了多个C类地址(是一个C类地址的$2^n$倍)
你说这个我也不懂啊具体做法:求同存异
你说这个也不具体啊一堆xxx/24,若前面n位相同,就可以变成xxx/n,构造一个大网络
CIDR地址块划分
做题吧
平均划分:主机号借位划分,前缀变长
按需划分:二叉树划分
无论哪种方法,划分后总地址数量减少(需要扣掉网络地址和广播地址)
特殊CIDR块
- /32 全是网络号,255.255.255.255:就是一个IP地址,这个特殊地址用于主机路由(?)
- /31 只有两个IP地址,255.255.255.254:主机号0和1。用于点对点链路/链路路由(两个路由器之间)
- /0 全是主机号,同时IP地址全0,0.0.0.0/0:用于默认路由(?)
下面路由表里面还有讲,别急
主机路由/网络路由
直连路由和网关路由是由下一跳区分的,而主机路由和网络路由是由目的地址的完整度区分的;
主机路由的目的地址是一个完整的主机地址。网络路由目的地址是一个网络地址(主机号部分为0)。
当为某个目的I P地址搜索路由表时,主机地址项必须与目的地址完全匹配,
而网络地址项只需要匹配目的地址的网络号和子网号就可以了。
默认路由(缺省路由)
这个路由将匹配所有的包. 能帮助减少路由条目
配置一条默认静态路由和静态路由相似,但IP地址和子网掩码全部是零
例如:ip route 0.0.0.0 0.0.0.0 [网关ip或接口]
子网掩码 0.0.0.0 代表匹配所有网络
3.IP地址与硬件地址
无法描述,看ppt
透明
IP数据报向下封装成MAC帧;网络层使用IP,数据链路层使用硬件地址
注意帧格式,MAC-目的-源,IP-源-目的
路由器的IP地址并不出现在主机-主机的IP数据报首部中,但在MAC帧中出现
4.ARP协议与RARP协议
Address Resolution Protocol 从IP地址解析出MAC地址
MAC地址/硬件地址/物理地址
ARP分组封装在以太网帧中,只解决同一局域网上的主机或路由器的IP/MAC映射问题
工作过程
ARP高速缓存
存放IP到MAC的映射表,动态更新
ARP工作
概括讲,通过IP查映射表找MAC,找到即写入MAC帧目的地址,找不到就运行ARP获取MAC,并更新高速缓存
ARP查找IP地址对应的MAC地址
主机A在本局域网广播发送ARP请求分组
路由器不转发ARP请求
其他主机重写A的MAC地址,更新ARP高速缓存
主机B向A单播发送ARP响应分组
主机A更新缓存
应用场景
- 发送方是主机,要把 IP 数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。
- 发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
- 发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址。
- 发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上另一个路由器的硬件地址。剩下的工作由这个路由器来完成。
5.IP数据报格式
非常的必考,非常的必考
首部:固定长度/固定部分20Bytes,160bit;可变部分/可选字段最大40B;整个首部不超过60B
版本:4b,IP协议的版本,IPv4-0100,IPv6-0110
首部长度:4b,表示范围0101-1111(5-15)(一个单位表示4字节,所以20-60字节),因此首部长度最大值60B
区分服务:8b,用来获得更好的服务。IPv4没用,v6很有用(流媒体传输QoS等)
总长度:16b,指首部+数据部分总的长度,单位是字节,最大2^16-1=65535B,总长度必须不超过最大传送单元MTU。(MTU:Maxium Transfer Unit,规定所能传送的MAC帧的数据部分长度上限,IP封装成MAC帧时首部+数据部分不能超过MTU)
标识:16b,计数器,用来产生数据报的标识(用于分片,分片的各个数据报标识都一样)
标志:3b
第一位:MF More Fragment,MF=1表示后面还有分片,MF=0表示最后一个分片。
第二位:DF Dont Fragment,DF=0时允许分片,DF=1不允许分片。
第三位:目前无意义
片偏移:13b,分片后,某片在原分组中的相对位置。以8B为单位。(做题)
生存时间TTL(Time To live):8b,数据报在网络中可通过的路由器数的最大值。跳数上限
协议:8b,指出数据报携带的数据使用何种协议,便于目的主机IP层将数据部分上交给哪个处理进程(ICMP/IGMP/OSPF/TCP/UDP)
首部检验和:16b,只检验首部,不检验数据部分。采用反码求和算法(具体怎么算没看懂)
源地址:32b
目的地址:32b
可选字段:最大40B(320b),用来支持排错、测量、安全措施;但会增加每个路由器处理数据报的开销。
4.3 IP转发分组的过程
1.基于终点的转发
分组在互联网中是逐跳转发的,基于终点,基于分组首部中的目的地址传送和转发。(?)
路由表(目的网络地址,下一跳地址)
特殊的路由:
- 默认路由0.0.0.0/0:不在路由表中详细指明目的网络的,采用默认路由,默认通过某个端口转发。放在路由表最后面
- 主机路由x.x.x.x/32:对特定目的主机的IP地址专门指明的一个路由。放在路由表最前面,多为管理员/防火墙使用。
- 链路路由x.x.x.x/31:点对点链路,路由器之间
转发过程:
- 主机H1掩码按位与,获得目的地址的网络号,若在本网络上,直接交付;否则向其他路由器R1转发。
- ARP匹配MAC地址
- R1查找路由表,匹配到之后直接(通过接口直达)/间接交付(给下一个路由器)
- ARP匹配MAC地址
- …
2.最长前缀匹配
使用CIDR时,可能得到不止一个匹配结果。
最长前缀匹配原则:选择前缀最长的一个作为匹配的前缀。网络前缀越长,地址块越小,路由越具体。
将前缀最长的排在路由表第一行。
注:直接交付也应当符合最长前缀匹配。
3.使用二叉线索查找路由表
二叉线索 (binary trie):一种特殊结构的树,可以快速在路由表中找到匹配的叶节点。
从二叉线索的根节点自顶向下的深度最多有 32 层,每一层对应于 IP 地址中的一位。
为简化二叉线索的结构,可以用唯一前缀 (unique prefix) 来构造二叉线索。
为了提高二叉线索的查找速度,广泛使用了各种压缩技术。
构建:
规则:先检查 IP 地址左边的第一位,如为 0,则第一层的节点就在根节点的左下方;如为 1,则在右下方。然后再检查地址的第二位,构造出第二层的节点。依此类推,直到唯一前缀的最后一位。每个叶节点代表一个唯一前缀。
为检查网络前缀是否匹配,必须使二叉线索中的每一个叶节点包含所对应的网络前缀和掩码。
查找:
找到了一个叶节点。
将目的 IP 地址和该叶节点的掩码进行按位 AND 运算,看结果是否与叶节点的网络前缀相匹配。
若匹配,就按下一跳的接口转发该分组。
查到第三个字符 0 时,在二叉线索中找不到匹配的。说明这个地址不在这个二叉线索中。
检查是否存在默认路由。若有,把分组传送到指明的默认路由器,否则丢弃该分组。
4.4 ICMP
网际控制报文协议Internet Control Message Protocol
允许主机或路由器报告差错情况和提供有关异常情况的报告。
种类:ICMP差错报告报文;ICMP询问报文
(报文一般为应用层称呼,但出于习惯…)
差错报告报文
抽象图解释:A-R-B发送数据,然后到R出错了,应当由R向A发送ICMP差错报告报文,此时源地址R,目的地址A
不发送ICMP差错报告报文的情况:
- 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。(loop差错)
- 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。(发了第一个不对-那么所有报片都会被重发)
- 对具有多播地址的数据报都不发送 ICMP 差错报告报文。(不知道要发给谁)(?IP多播有吧)
- 对具有特殊地址(如127.0.0.0 (环回地址)或 0.0.0.0(主机我))的数据报不发送 ICMP 差错报告报文。(话说CIDR有环回地址吗)
询问报文
(1) 回送请求和回答
由主机或路由器向一个特定的目的主机发出的询问。
收到此报文的主机必须给源主机或路由器发送 ICMP 回送回答报文。
这种询问报文用来测试目的站是否可达,以及了解其有关状态。了解对方是否开机;探路;排错;定位到主机/路由器等。
(2) 时间戳请求和回答
请某台主机或路由器回答当前的日期和时间。
时间戳回答报文中有一个 32 位的字段,其中写入的整数代表从1900 年 1 月 1 日起到当前时刻一共有多少秒。
时间戳请求与回答可用于时钟同步和时间测量,测试网络延迟等。
应用
PING packet internet grope
Traceroute
4.5 Internet路由选择协议
理想的路由算法:正确、完整、简单、自适应(适应通信量和网络拓扑变化)、稳定、公平、最佳
不存在绝对最佳,最佳只是相对于某一种特定要求下得出的较为合理的选择。尽可能接近理想情况。
从路由算法的自适应性考虑:
- 静态路由选择策略(已废弃)
- 动态路由选择策略:自适应路由选择,能够适应网络状态变化,但是实现起来较为复杂,开销较大。
分层次的路由选择协议
自治系统AS
Autonomous System
定义:在单一的技术管理
- Internet将整个互联网划分成较小的AS
- 一个AS 是一个互联网,特点:AS有权自主地决定在本系统内使用何种路由协议(有且仅有一个,RIP/OSPF;路由选择评价标准一致)
自治系统内的路由选择-域内路由选择,使用IGP
自制系统外的路由选择-域间路由选择,使用EGP
内部网关协议IGP
RIP 路由信息协议
router information protocol
应用层协议
概念
RIP协议认为距离最短的就是最优的路径。
距离的定义:从⼀路由器到直接连接的⽹络的距离定义为1,从⼀个路由器到⾮直接连接的⽹络的距离定义为所经过的路由器数加1。距离也称为跳数(hop count),因为每经过⼀个路由器,跳数+1。
RIP协议允许⼀条路径最多只能包含15个路由器,距离为16时相当于不可达(代码中置为inf,⼀个⼤整型),因此RIP仅适⽤于⼩型互联⽹。
RIP按照固定的时间间隔(如30s)与相邻的路由器交换路由信息(双⽅交换整个的路由表)。
路由器在刚刚开始⼯作时,只知道到直接连接的⽹络的距离(距离定义为1,下⼀跳为直接交付),之后每⼀个路由器也只和相邻路由器交换并更新路由信息。经过若⼲次更新后,所有的路由器最终都会直到到达本⾃制系统中任何⼀个⽹络的最短距离和下⼀跳路由器的地址。
算法描述
路由器A接收到来自B的路由表后,做出如下之⼀操作:
寻找B能够到达,而自身不能到达的目的网络。此时更新A路由表,增加新的一行,目的网络为这⼀新的目的网络,距离=B距离+1,下⼀跳为B。
寻找自身和B都到达的目的网络,且B是A的下⼀跳。此时⽆论⽹络状态变好或变差,更新距离=B 距离+1。
寻找自身和B都到达的目的网络,且B到达这⼀⽬的⽹络的距离<A到达这⼀目的网络的距离,更新距离=B距离+1。
⼀定时间后,若B未向A发送路由表,认为B 不可达。A路由表中下⼀跳为B的信息,其距离=16(即不可达)。
报文格式
优缺点
优点:实现简单,开销小
缺点:
- 没有负载均衡机制。RIP协议认为距离最短的就是最优的路径,即便在实际使⽤中还存在⼀条⾼速(低时延)但路由器较多的路由。并且RIP不能在两个⽹络之间同时使⽤多条路由。
- 限制了网络规模。最大16跳
- “好消息传得快,坏消息传得慢”。在⽹络所有路由器都正常⼯作的情况下(好消息),此时RIP收敛速度较快;但⽹络中一旦出现某台路由器由于某些原因导致故障(不可达),故障信息(坏消息)的传递会受到协议⾃⾝的限制出现两个路由器之间递归,到达最⼤跳数16时才能检出故障。
- 随着网络规模扩大,开销也将增加(路由器之间交换完整路由表的开销)
OSPF 开放最短路优先
open shortest path first
网际层协议~~
概念
open:开放的协议,不受厂商控制
SPF:dijkstra算法
ospf是一个分布式的链路状态协议,每个路由器都维护一个链路状态数据库,数据库实际上就是本自治系统的网络拓扑结构图。各路由器频繁交换信息,实现链路状态数据库在全网范围内的一致(称为链路状态数据库的同步)。路由器基于此数据库,采用dijkstra算法生成路由表。
信息交换
使用洪泛法向本AS所有路由器发送信息(直接向邻居,间接向其他所有路由器)
信息是与本路由器相邻的所有路由器的链路状态/对当前网络拓扑的认知(说明本路由器与谁相邻,以及该相邻链路上的代价/度量)
只有链路状态发生变化时,路由器才发送信息。
五种信息分组
- 相邻路由器每10s交换一次问候分组,若超过40s没有受到,认为其不可达。
- 摘要信息:有哪些路由器的链路状态信息已写入数据库。降低开销。
- 没有注释
- 只要链路状态发生变化,路由器就使用链路状态更新分组,采用可靠的洪泛法向全网更新链路状态。
- 没有注释
可靠的洪泛法:有限的确认,不会出现大量无效信息(A发给B,B洪泛时不再发给A)
OSPF的区域
使OSPF能作用于规模很大的网络,在AS下划分更小的范围,叫做区域。区域使用32位标识符(点分十进制表示)
一个区域内路由器最好不超过200个。
体现分层设计的思想(主干区域-其他在下层的区域,2层)
主干区域专用于连接下层区域、其他自治系统,标识符规定为0.0.0.0
一个区域的内部路由器只知道本区域的完整网络拓扑,而不知道其他区域网络拓扑情况。
优点:将洪泛的范围局限于每一个区域,而不是整个AS,使通信量减小。
缺点:交换信息的种类增加,更加复杂(但是值得)
报文格式
运输层协议,使用IP数据报传送。构成的数据报很短,减少路由信息的通信量,可以不必将长数据报分片传送,一定程度上避免分片出错重传。
优缺点
优点
- 更新过程收敛快
- 多种度量,可设置不同的代价
- 适合大型互联网
- 多路径负载平衡:如果同一个目的网络有多条相同代价的路径,可以将通信量分配给这几条路径。
- OSPF分组具有鉴别功能,安全
缺点:实现复杂
外部网关协议EGP
BGP
是不同AS的路由器之间交换路由信息的协议。
只保证可达,不考虑最佳
采用路径向量路由选择协议
应用层协议
边界路由器
BGP speaker
每一个自制系统的管理员至少选择一个路由器作为边界路由器
一个边界路由器与其他AS的边界路由器交换信息,要先建立TCP连接,然后在此连接上交换BGP报文以建立BGP会话,利用BGP会话交换路由信息。使用TCP能够提供可靠服务,也简化了路由选择协议。
目标前缀
就是目的网络的意思,不要混淆
eBGP
external BGP
边界路由器在AS之间建立的半永久性TCP连接,eBGP在不同AS间交换路由信息
iBGP
internal BGP
在AS内部,任何互相通信的路由器之间必须有一个逻辑连接(也使用TCP),在AS内部的路由器之间交换BGP路由信息。
BGP协议不仅运行在AS之间,也运行在AS内部。
因此:
- 在AS内部运行的协议:IGP(OSPF/RIP)、iBGP
- 在AS之间运行的协议:eBGP
eBGP&iBGP使用的报文类型、属性、状态机等都完全一致,在通报前缀(目的网络)时,使用的规则不同:
- 在eBGP连接的对等端得知的目的网络信息,可以通报给一个iBGP连接的对等端
- 在iBGP中,不通报给另一个iBGP连接的对等端
BGP路由信息
BGP路由=[前缀(目的网络),BGP属性]=[前缀,AS-PATH,NEXT-HOP] 即路由表一行中的信息
BGP路由选择策略
本地偏好(local preference)值最高的路由
AS跳数最小的路由
字面意思,仅考虑AS数量最少,即便可能在AS4中会经过更多次数的转发
热土豆路由选择算法
选择能最快离开本AS的路径
路由器BGP ID数值最小的路由
这位更是(),R1c序号比1d小,所以选1c
避免兜圈子:在属性AS-PATH中,不允许出现相同的AS号。
三种AS:
- 末梢AS:不转发来自其他AS的分组,自身向所连接的AS付费
- 穿越AS:为其他AS转发分组,其他AS付费
- 对等AS:事先协商的两个AS,彼此之间的发送或接收分组都不付费
BGP报文
- (1) 打开(OPEN)报文,用来与相邻边界路由器建立关系。
- (2) 更新(UPDATE)报文,用来发送某一路由的信息,以及列出要撤消的多条路由。
- (3) 保活(KEEPALIVE)报文,用来确认打开报文和周期性地证实邻站关系。
- (4) 通知(NOTIFICATION)报文,用来发送检测到的差错。
- 在 RFC 2918 中增加了 ROUTE-REFRESH 报文,用来请求对等端重新通告。
报文格式
特点
- BGP协议交换路由信息的节点数是自制系统数,维护路由表开销不大
- 每个AS的边界路由器数目很少,使自制系统之间的路由选择不会过分复杂
- BGP支持CIDR,因此BGP的路由表包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自制系统序列
- BGP刚刚运行时,BGP交换整个路由表;之后只需要在发生变化时更新有变化的部分
路由器的构成
功能:接收数据、转发数据,隔绝广播
物理结构
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。即,路由器某个输入端口收到的分组,按照分组的目的网络,把该分组从路由器的某个合适的输出端口转发给下一跳。下一跳的路由器递归进行这种处理,直到分组到达终点。
转发和路由选择的区别
转发forwarding:路由器根据路由表将用户IP数据报从合适的端口转发出去。
路由选择routing:按照路由协议/算法,动态改变所选择的路由。
路由表是根据路由算法得出的,转发表是从路由表得出的。
输入端口的处理:数据链路层剥去帧首部和尾部后,将分组送到网络层的队列中排队等待处理,这会产生一定时延
输出端口的处理:与输入类似的反过程,先缓存,然后数据链路层加帧首尾,交给物理层后转发给外部线路。
分组丢弃:队列缓存空间耗尽,后面再进入队列的分组由于没有存储空间被丢弃,是造成分组丢失的重要原因,根本原因之一。
丢弃最主要发生在输入端口缓存
交换结构
这是什么?
通过存储器交换
通过总线交换
纵横交换结构
4.6 IP多播
基本概念
多播multicast
单播 一对一,广播 一对多,多播介于两者之间,一对n
可以大大节约网络资源
在互联网上进行多播叫IP多播,能够运行多播协议的路由器叫多播路由器
多播IP地址
IP多播所传送的分组需要使用多播IP地址作为目的地址
IPv4中,多播地址就是IP地址中的D类地址
每一个D类地址标志一个多播组224.0.0.0-239.255.255.255
多播数据报
尽最大努力的交付,不保证能够播到所有成员
不产生ICMP差错报文
局域网上的硬件多播
IP->MAC不使用ARP,使用简单换算的以太网多播地址块(?)
IGMP网际组管理协议&多播路由选择协议
IGMP
网际组管理协议Internet Group Management Protocol
多播路由选择协议:协同工作,路由选择,转发数据
IGMP使多播路由器知道多播组成员信息,只知道有没有,不知道是谁,不知道成员分布在哪些网络上
IP在多播的扩展:IGMP报文加上IP首部构成IP数据报。IGMP也向IP提供服务,因此把IGMP看作IP的一个组成部分
IGMP工作可分为两阶段:1加入多播组;2探询组成员变化情况。
使用范围:
- 多播路由器必须动态适应多播组成员的变化,因为每一台主机可以随时加入和离开。
- 多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员的接入网络。
IGMP采用一些措施,避免增加大量开销
- 所有通信都使用IP多播(?),并尽可能使用硬件多播
- 对所有的组只发送一个请求信息的询问(询问:有组成员吗->回答:组x有)(而不是,询问:组x有吗->回答有)(节省开销,只收一条有无的回复)
- 当同一个网络上连接有多个多播路由器时,能迅速选择其中的一个来探询主机的成员关系
- 分散响应。采用随机数,让主机顺序发言(
- 抑制机制。同一组内每一个主机都要监听响应,只要有本组的其他主机先发送响应,自己就不再发送。
多播路由选择
多播路由选择方法:
- 反向路径广播RPB(检查是否经最短路径传送来的,查单播表,若到达反向主机,看下一跳是否为R1,若是,是来自R1的最优路径,转发;否,不转发)
- 洪泛与减除
- 隧道技术(在不支持多播的网络中封装成单播IP数据报传送)
- 基于核心的发现技术(对每个多播组指定核心路由器,为每一个多播组构建一个转发树,而不是每个源构建。开销较小,扩展性较好)
4.7 IPv6
IPv6基本首部
主要变化
- 更大的地址空间。地址增大到128位,2^128
- 扩展的地址层次结构。不进行地址块划分
- 灵活的首部格式。定义了许多可选的扩展首部
- 改进的选项。允许数据报包含有选项的控制信息,可根据自身需求增加字段(可编程的)
- 允许协议继续扩充
- 支持自动配置。不需要使用DHCP
- 支持资源预分配。QoS使用
- IPv6首部改为8字节对齐。首部长度必须是8B的整数倍
数据报一般格式
由两大部分组成:基本首部+有效载荷
基本首部40B
有效载荷payload,也称净负荷,不超过65535B,有效载荷允许0-n个扩展首部,在后面是数据部分
版本:4b,IPv6该字段为6
通信量类traffic class/服务类型:8b,为了区分不同的IPv6数据报的类别或优先级,与QoS(quality of service?)有关
流标号flow label:20b,“流”是互联网络上从特定源点到特定终点的一系列数据报,“流”所经过的路径上的路由器都保证指明的服务质量。所有属于同一个流的数据报都具有同样的流标号。
流:源到目的地的一批数据,标号相同则属于同一段流,同一段流各种传输、各种属性都一致
有效载荷长度payload length:16b,指明IPv6数据报除基本首部以外的字节数(所有扩展首部都计算在有效载荷之内),最长64KB的扩展首部
下一个首部next header:8b,相当于IPv4协议字段或可选字段?
跳数限制:8b,数据报发出时设置跳数限制,路由器每次转发时-1,值为0时丢弃数据报,防止兜圈子
源地址,目的地址:128b
有效载荷/扩展首部:IPv6将原来IPv4中选项功能放在扩展首部中,且扩展首部在中间路由不处理,只在两端的源站和目的站处理(特例:逐跳选项扩展首部)。提高了路由器的处理效率
IPv6的地址
目的地址可以是:
- 单播unicast:传统的点对点通信
- 多播multicast:一对多的通信
- 任播anycast:IPv6增加的类型;DNS是一种任播
- 任播的目的站是一组计算机,但数据报在交付时只交付其中的一个,通常是距离最近的一个
- 任播地址不能做报文源地址
- 任播地址只能分配给路由器,不能分配给主机
- IPv6没有定义广播地址,认为广播是多播特例
节点与接口
IPv6将实现IPv6的主机和路由器均称为节点
一个节点可能有多个与链路相连的接口,IPv6地址分配给节点上面的接口。(和实验中分配IPv4的一样)
冒号十六进制记法
每16位的值用1位十六进制值表示,各值之间用冒号分割,如
68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
8段,4(一个字母4b)x4(4个16进制一段)x8(8段)=128b
允许把数字前的0省略,例如0000可以写成0
零压缩
一串连续的0可以省略,写两个冒号
FF05:0:0:0:0:0:0:B3->FF05**::**B3
注意:只能用一次零压缩
12AB:0:0:CD30:0:0:0:0/60 压缩为
12AB**::**CD30:0:0:0:0/60 或
12AB:0:0:CD30**::**/60
点分十进制法的后缀
可结合使用点分十进制,将IPv4转换为IPv6地址。如
0:0:0:0:0:0:128.10.2.1->::128.10.2.1
后面128.10.2.1是十进制的,不需要再转换16进制的意思吧
CIDR斜线记法仍然可用
IPv6不再使用掩码(没必要使用)
IPv6常用地址
全球单播地址 详细的在ppt有,有点乱
从IPv4向IPv6过渡
IPv6要兼容IPv4,能够为v4提供路由服务。
使用双协议栈
双协议栈dual stack:在完全过渡到IPv6之前,使一部分主机/路由器装两个协议栈,一个v4一个v6
双协议栈主机记为IPv6/IPv4,表明它同时具有两种IP地址,一个v4地址,一个v6地址。
使用隧道技术
在IPv6数据报要进入IPv4网络时,把IPv6数据报封装成IPv4数据报,整个的IPv6数据报变成了IPv4的数据部分
当v4数据报离开v4网络的隧道进入v6网络时,再把数据部分(即v6数据报)交给主机的v6协议栈
ICMPv6
IPv6也不保证数据报可靠交付,路由器也可能丢弃数据报,因此使用ICMP来反馈一些差错信息,新版本称为ICMPv6。
此外,地址解析协议ARP和网际组管理协议IGMP(多播管理)的功能都被合并到ICMPv6中
ICMPv6报文的分类
4.8 VPN&NAT
虚拟专用网VPN
virtual private network
核心原理:数据加密
节省IP地址的策略:
- 无分类划分CIDR
- VPN
- NAT
由于IPv4地址紧缺,一个机构能申请到的IP地址数往往小于本机构主机数。考虑到安全性,也并不需要将所有主机接入到外部互联网。假定机构内部的计算机通信也是采用TCP/IP协议,仅在机构内部使用的计算机就可以自行分配其IP地址。通过这一原理可以设置网络防火墙,外部无法得知内部主机IP,但不防内部攻击。
本地地址:仅在机构内使用的IP,可以由本机构自行分配
全球地址:全球唯一的IP地址,必须向互联网的管理机构申请
但会出现本地地址和全球地址重复,产生二义性。因此制定了一些专用地址,只能用作本地地址,在互联网中的所有路由器都不转发目的地址是专用地址的数据报
三个专用IP地址块:
- A类,10.0.0.0-10.255.255.255。或记为10.0.0.0/8,又称为24位块(前缀网络号8位,主机号24位)
- B类,172.16.0.0-172.31.255.255。或记为172.16.0.0/12,又称为20位块
- C类,192.168.0.0/16-192.168.255.255。或记为192.168.0.0/16,又称为16位块(常用作FTP服务器)
专用互联网/本地互联网/专用网:采用这样专用IP地址的互联网络
可重用地址resuable address:这些专用地址仅在本机构内部使用,并且可以在物理上集中/分散,在其他机构可以重用
虚拟专用网VPN:利用公用的互联网作为本机构各专用网之间的通信载体,这样的专用网称为虚拟专用网。专用网专用于机构内部的通信;虚拟表示 好像是 但实际不是,因为没有真正使用通信专线,而VPN只是在效果上和真正的专用网一样。
如果专用网不同网点之间的通信必须经过公用的互联网,但又有保密要求,那么所有通过互联网传送的数据都必须加密。构建VPN,需要机构为每个场所购买专门的硬件和软件并配置,使每个场所的VPN系统都知道其他场所的地址。
用隧道技术实现虚拟专用网
内联网&外联网
内联网intranet:由部门A和B的内部网络所构成的虚拟专用网VPN,表示部门A和B都是在一个机构的内部。
外联网extranet:一个机构和某些外部机构共同建立的VPN。
远程接入VPN
remote access VPN
满足外部流动员工访问公司网络的需求。
在外地工作的员工拨号接入互联网,在员工PC机中的VPN软件可在PC机和公司的主机之间建立VPN隧道,外地员工与公司通信的内容是保密的,员工感觉好像在使用公司内部的本地网络。
网络地址转换NAT
在专用网上,使用专用地址的主机与互联网上的主机通信–NAT
路由器需安装NAT软件,称为NAT路由器,至少有一个全球IP地址。使用本地地址的主机与外界通信时,都要在NAT路由器上将其本地地址转换成全球地址,才能与互联网连接。
- 内部主机 A 用本地地址 IPA 和互联网上主机 B 通信所发送的数据报必须经过 NAT 路由器。
- NAT 路由器将数据报的源地址 IPA 转换成全球地址 IPG,并把转换结果记录到NAT地址转换表中,目的地址 IPB 保持不变,然后发送到互联网。
- NAT 路由器收到主机 B 发回的数据报时,知道数据报中的源地址是 IPB 而目的地址是 IPG。
- 根据 NAT 转换表,NAT 路由器将目的地址 IPG 转换为 IPA,转发给最终的内部主机 A。
NAT路由器有n个全球IP地址时,专用网内最多有n台主机接入到互联网,主机可以轮流使用优先数量的全球IP地址。通过NAT的通信必须由专用网内的主机发起,内部的主机不能充当服务器,因为互联网上的客户无法请求专用网内的主机。
网络地址与端口号转换NAPT
为了更加有效地利用 NAT 路由器上的全球IP地址,现在常用的 NAT 转换表把运输层的端口号也利用上。这样,就可以使多个拥有本地地址的主机,共用一个 NAT 路由器上的全球 IP 地址,因而可以同时和互联网上的不同主机进行通信。
使用端口号的 NAT 叫做网络地址与端口号转换NAPT (Network Address and Port Translation),而不使用端口号的 NAT 就叫做传统的 NAT (traditional NAT)。
4.9 MPLS多协议标签转换
多协议标签转换Multi-Protocol Label Switching
更快的转发分组,不查路由表即可转发
作用在网络层-数据链路层之间
是一种IP增强技术,路由器通过一次快速查表完成数据转发
多协议:MPLS的上层可以采用多种协议,例如IP,IPX;可以使用多种数据链路层协议,例如PPP,以太网,ATM(千兆以太网-异步传输)等
标签:给每个分组打上一个标签,根据该标签对分组进行转发。根据短而定长的标签转发报文,省去了通过软件查找IP路由的繁琐过程,数据传输更高速高效。
MPLS工作原理
利用面向连接的概念,使每个分组携带一个叫做标签的小整数。当分组到达标签交换路由器时,标签交换路由器读取分组的标签,用标签值来检索分组转发表。这样比查找路由表来转发分组快得多。
MPLS域:该域中所有的路由器都是支持MPLS技术的标签交换路由器LSR(label switching router)。
LSR:同时具有标签交换和路由选择功能,标签交换是为了快速转发,但在这之前LSR需要使用路由选择功能构建转发表。
特点:
- 支持面向连接的服务质量;支持流量工程,平衡网络负载;支持VPN
- 把IP的路由和转发分离,在源路由(入口处)就可以决定数据报将要走的整条路经(传统的IP路由转发,每一跳都需要查找路由表),可以为不同入口的IP数据报打不同标签
工作过程:
找出标签交换路径 LSP
各 LSR 使用标签分配协议 LDP (Label Distribution Protocol) 交换报文,找出和标签相对应的标签交换路径 LSP (Label Switched Path)。整个标签交换路径就像一条虚连接一样(->支持面向连接)。
MPLS的主干网基本不变,完成1需要对网络情况的足够了解。
打标签,然后转发
入口节点 (ingress node) 给进入 MPLS 域的 IP 数据报打上标签(实际上是插入一个 MPLS 首部),并按照转发表把它转发给下一个 LSR。以后的所有 LSR 都按照标签进行转发。
给 IP 数据报打标签的过程叫做分类 (classification)。
标签对换。
一个标签仅在两个 LSR 之间才有意义。
LSR 要做两件事:转发,更新标签。
更新标签:把入标签更换成为出标签。称之为标签对换 (label swapping)。
去除标签
当分组离开 MPLS 域时,MPLS 出口节点 (egress node) 把分组的标签去除。
把 IP 数据报交付给非 MPLS 的主机或路由器。
显式路由选择explicit routing:由入口LSR确定进去MPLS域之后的转发路径。和传统的每一个路由器逐跳进行路由选择存在很大不同。
转发等价类FEC
forwarding equivalence class,MPLS的重要概念,即,路由器按照同样方式对待的分组的集合。
按照同样方式对待:从同样接口转发到同样的下一跳地址并且具有同样服务类别和同样丢弃优先级等。
- 分类由服务商/网络管理员定义。
- 入口节点并不是给每一个分组指派一个不同的标签,而是将属于同样 FEC 的分组都指派同样的标签。
- FEC 和标签是一一对应的关系。
FEC用于负载平衡:
流量工程TE:traffic engineering:采用FEC,更好的管理网络资源,均衡网络负载的工程。
MPLS首部的位置与格式
在把IP数据报封装成以太网帧之前,需要先插入一个MPLS首部。因此MPLS位于网络层-数据链路层之间。
标签值(占 20 位)
- 可以同时容纳高达 220 个流(即 1048576 个流)
- 实际上几乎没有哪个 MPLS 实例会使用很大数目的流,通常需要管理员人工管理和设置每条交换路径。
试验(占 3 位):目前保留用作试验。
栈S(占 1 位):在有“标签栈”时使用。
生存时间TTL(占 8 位):用来防止 MPLS 分组在 MPLS 域中兜圈子。
新一代的MPLS
MPLS 存在的问题,缺点:
- 控制协议(如 LDP)比较复杂,扩展性差,运行维护较困难。
- 协议 LDP 无法做到基于时延或带宽等要求的流量调度。
新一代的 MPLS:段路由选择协议 SR (Segment Routing)
保留了MPLS的主要特点,更简单。
段 (segment):网络分为多个段,每个段有一个标识符,标签。
SR 基本工作原理:
- 基于标签交换,但不需要使用协议 LDP。
- 由源节点为发送的报文指定路径,并将路径转换成有序的段列表 (Segment List),即 MPLS 标签栈,它被封装在分组首部。
- 网络中的其他节点基于标签进行转发。
- 网络设有SDN控制器,收集并掌握全网的拓扑信息和链路状态信息,计算出分组的整个传输路径。
4.10 SDN软件定义网络
software defined network
网络层的两个层面:控制层面,数据层面。在逻辑上是分离的
在软件定义网络中,把控制层面和数据层面分离,让控制层面利用软件控制数据层面中的设备。控制层面/远程控制器负责计算最佳路由,在每一个路由器中生成其正确的转发表。
优点:
- 提高网络带宽利用率。完全SDN环境下各路由器不需交换路由表等信息,节省开销,提高利用率
- 网络运行更加稳定。
- 管理更加高效简化。进行集中管理
- 运行费用明显降低。路由器的控制层面被移走,实质上类似于交换机
缺点:
- 互联网精神——分布式,打破了这种体系,变为集中式
- 路由器生产厂家利润低,不愿生产支持SDN的路由器
SDN与OpenFlow
SDN是一种新的体系结构,是一种设计、构建和管理网络的新方法或新概念。
OpenFlow是SDN体系结构中控制层面与数据层面之间的通信接口,是交换信息的协议。使控制层面的控制器可以对数据层面中的物理或虚拟设备进行直接访问和操纵,在逻辑上是集中式的、基于流的。
注:SDN未规定必须使用OpenFlow(体系结构和协议之间并无硬性规定)。
OpenFlow协议
怎么就架构了呢?应该是SDN体系结构下openflow协议的使用架构?
OpenFlow架构的三个组成部分:
- 流表:指示OpenFlow交换机如何进行流的处理,每个动作关联一个流表项
- 安全通道:负责控制器与交换机之间的交互,通过安全通道与远端控制器连接
- OpenFlow协议:南向接口标准(控制器与交换机之间通信的开放标准)
数据层面:流表
流表 (flow table):规定“匹配 + 动作”。
流:穿过网络的一种分组序列,而在此序列中的分组都共享分组首部某些字段的值。
流表结构
与转发表不同,可以基于更多信息进行转发。
首部字段值:一组字段(12 个),用来使入分组的对应首部与之相匹配。
- 匹配不上的分组被丢弃,或发送到远程控制器做更多的处理。涉及三个层, Openflow的匹配抽象与之前的分层匹配完全不同。
计数器:一组计数器,可包括已经与该表项匹配的分组数量,以及从该表项上次更新到现在经历的时间。
- 输入缓存 目前计时数/时间,统计出数据xxx操作用的时间
动作:广义转发。当分组匹配某个流表项时,把分组转发到指明的端口,或丢弃该分组,或把分组进行复制后再从多个端口转发出去,或重写分组的首部字段(第二、三和四层的首部字段)等。
SDN特征
- 基于流的转发,流表定义转发规则
- 数据层面与控制层面分离,二者不在同一设备中
- 网络控制功能位于数据层面交换机之外,用软件实现
- 可编程的网络,不会受限于路由器算法固定
SDN控制器
通信层:完成SDN控制器与受控网络设备之间的通信。通信层与数据层面的接口叫做南向接口,基本上采用OpenFlow
SNMP:简单网络管理协议,获取各种设备状态
状态管理层:完成核心功能
- 管理和维护链路、主机、交换机等网络状态;
- 确定和维护流表,对生成流表的设施进行管理。
最上面:SDN控制器与网络控制应用程序交互的接口称为北向接口,该API接口允许网络控制应用程序对状态管理层里的网络状态和流表进行读写操作。
SDN与传统网络的差别:
SDN
- 功能分散。交换机、SDN 控制器、网络控制应用程序都是可以分开的实体。
- 可以由不同的厂商和机构来提供。
传统网络
- 控制层面、数据层面、协议的实现都垂直集成在一个机器里。
- 由单独的厂商提供。
Chapter5.传输层
1、理解传输层的作用;
2、理解端口与插口的概念;
3、理解TCP协议与UDP协议区别;
4、掌握UDP数据报和TCP报文段的首部格式;
5、掌握TCP协议的可靠性控制机制:
拥塞控制(慢启动,拥塞避免,快重传,快恢复)
流量控制(滑动窗口协议)
确认机制(最大重传时间的确定方法)
连接管理(连接建立与释放)
5.1传输层协议概述
进程之间的通信
运输层向应用层提供服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
应用进程之间的通信又称为端到端的通信。网络边缘部分-端系统
当两个主机进行端到端通信时,只有位于网络边缘部分的主机的协议栈才有运输层,网络核心部分的路由器在转发分组时豆豆只用到下三层的功能(路由器只有三层)。
运输层主要功能
为应用进程之间提供端到端的逻辑通信。(对比网络层,为主机之间提供逻辑通信)
运输层向下屏蔽了底层结构,只关心进程,不需了解网络下层的核心细节。
对收到的报文进行差错检测
UDP&TCP提供的服务也存在差别
两个主要协议
UDP(user datagram protocol)用户数据报协议(区分UTP:无屏蔽双绞线)
TCP(transmission control protocol)传输控制协议
TPDU(transport protocol data unit)运输协议数据单元:两个对等运输实体在通信时传送的数据单位
TCP的TPDU是TCP报文段
UDP的TPDU是UDP报文或用户数据报
一些对比:
- UDP提供无连接服务,尽最大努力交付,在网络状况较好时非常高效
- TCP提供面向连接的可靠服务,不提供广播/多播服务。因为可靠(差错、流量、重传、拥塞)所以不可避免地增加了许多开销,不仅使TPDU首部增大、复杂,还要占用许多的处理机资源。
使用UDP和TCP的典型应用和应用层协议
应用进程-端口
端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。
运输层从IP层收到发送给应用进程的数据后,必须分别交付给指明的各应用进程。
协议端口号protocol port number,简称端口port
端口用一个16位端口号进行标志,只具有本地意义,标志本计算机应用层中各进程,在互联网中没有联系。
三类端口
- 熟知端口,0-1023
- 登记端口,1024-49151,使用这个范围的端口号必须在IANA登记,防止重复
- 客户端口号/短暂端口号,49152-65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。
因此,客户机一般是大端口,服务器是小端口
软件端口&硬件端口
软件端口:在协议栈层间的抽象协议端口,是应用层的各种协议进程与运输实体进行层间交互的一种地址
硬件端口:在路由器或交换机上的端口,是不同硬件设备进行交互的接口
?
5.2 UDP用户数据报协议
UDP只在IP数据报服务之上增加了很少一点功能,虽然UDP用户数据报只能提供不可靠的交付,但UDP在某些方面有其优点。
- 复用:将UDP用户数据报组装成不同的IP数据报,发送到互联网
- 分用:根据UDP用户数据报首部中的目的端口号,将数据报分别传送到相应端口,以便应用进程到端口读取数据。
- 差错检测:检出错误,丢弃,不再占用资源传递,采用反码求和方法
主要特点:无连接;尽最大努力交付;无拥塞控制;支持广播/多播;首部开销小;面向报文
面向报文
- 发送方 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。
- 应用层交给 UDP 多长的报文,UDP 就照样发送,即一次发送一个报文。
- 接收方 UDP 对 IP 层交上来的 UDP 用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。
- 应用程序必须选择合适大小的报文。
- 若报文太长,IP 层在传送时可能要进行分片,降低 IP 层的效率。
- 若报文太短,会使 IP 数据报的首部的相对长度太大,降低 IP 层的效率。
UDP首部格式
首部字段8B,由四个字段组成(源端口、目的端口、长度、检验和),每个字段都是2B。
计算检验和时,临时把12B“伪首部”和UDP用户数据报连接在一起。伪首部仅为了计算检验和,无其他含义
UDP基于端口的分用
接收方UDP根据首部中的目的端口号,把报文通过相应的端口上交给应用进程。如果接收方UDP发现收到的报文中的目的端口号不正确(不存在该端口号的进程),就丢弃该报文,并由ICMP发送“端口不可达”差错报文给传送方。
5.3 TCP传输控制协议
概述
TCP主要特点
- 面向连接
- 面向字节流
- 点对点的连接,只有两个端点
- 提供可靠交付服务
- 提供全双工通信
面向字节流:相较于UDP面向报文,面向字节指最小传送单位是字节,字节在缓存中排队等待,达到一定数量后成组传送,不考虑字节组成报文的含义。对应用进程一次把多长的报文发送到TCP缓存中并不关心。
TCP根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少字节,可以把太长的数据分片传送,也可以等待积累足够多的字节再构成报文传送。对比UDP,报文长度由应用进程给出,一次发送整个报文段。
TCP的连接
TCP 连接有两个端点,连接的端点叫套接字socket/插口=IP地址+端口号。
socket = (IP地址:端口号)
socket = (192.168.1.1:2028)
每一条TCP连接唯一地被通信两端(两个套接字)所确定;一对socket唯一定义一个连接。
5.4 TCP报文段的首部格式
MSS(maximum segment size):TCP报文段中的数据字段的最大长度。数据字段+TCP首部=TCP报文段。
源端口、目的端口:各占2B
序号:4B,TCP连接中传送的数据流中的每一个字节都编上一个序号,序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。(可以康康ppt35/172)
确认:4B,是期望收到对方的下一个报文段数据的第一个字节的序号。全双工,双方可以同时发送和确认。
数据偏移/首部长度:4b,指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。单位是32b=4B。最大1111->60B的首部长度
保留:6b,空
下面都是关键校验位,全部都是1位
URG紧急:URG=1时有效,此报文段中有紧急数据,是高优先级的数据,不排队直接传送。
ACK确认:ACK=1时前面的确认号才有效,ACK=0时确认号无效。
PSH推送:PSH=1有效,类似URG,接收端尽快交付不排队直接交付。
RST复位:RST=1有效,表示TCP连接出现严重差错,如由于主机崩溃或其他原因,必须释放连接,然后再重新建立连接。
SYN同步:SYN=1表示连接请求或连接接受报文,握手阶段。
FIN终止:FIN=1表示此报文段的发送端的数据已完成发送,要求释放连接。
窗口:16b,是发送方的接收窗口,从确认号算起,允许对方发送的数据量。
紧急指针:16b,指出在本报文段中紧急数据共有多少字节(紧急数据放在本报文段数据的最前面)。窗口为0也可以发送紧急数据。
选项:长度可变
- 窗口扩大选项 ——占 3 字节,其中有一个字节表示移位值 S。新的窗口值等于TCP 首部中的窗口位数增大到(16 + S),相当于把窗口值向左移动 S 位后获得实际的窗口大小。
- 时间戳选项——占10 字节,其中最主要的字段时间戳值字段(4 字节)和时间戳回送回答字段(4 字节)。
- 用来计算往返时间RTT
- 用来防治序号绕回
- 选择确认选项——见5.6TCP可靠传输
填充字段:使整个首部长度是4B的整数倍的填充,无实际意义。
5.5 可靠传输的工作原理
停止等待协议
每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。
全双工的双方既是发送方也是接收方。方便起见,A为发送方,B为接收方,仅考虑一侧通信情况
1无差错情况
A 发送分组 M1,并在缓存中保留M1副本,发完就暂停发送,等待 B 的确认 (ACK)。
B 收到了 M1 向 A 发送 ACK。
A 在收到了对 M1 的确认后,从缓存中删除M1,就再发送下一个分组 M2。
2差错情况
接收方B会出现两种情况:
- 【分组错误】接收M1时检测出了差错,丢弃M1
- 【分组丢失】M1在过程中传丢,B什么都不知道哦。
此时,B都不发送任何信息。
解决方法:超时重传,A为每个已发送的分组设置独立的超时计时器,超时时间应当比数据平均往返时间更长一些。A只要在超时计时器到期之前收到了相应的确认,就撤销超时计时器,继续发送M2
3确认丢失和确认迟到
B收到数据,但是发出的对M1的确认丢失了。A不能在设定时间内收到确认,重传M1,导致B收到两个M1。
解决方法:B丢弃重复的M1,并重新发送确认
传输过程中没有出现差错,但B对分组M1的确认迟到了。此时A重传M1,B收到重复的M1又发送了ACK,导致A共收到两个M1的ACK。
解决方法:A丢弃重复的对M1的ACK。
注意
发送分组前,必须暂时保留已发送分组的副本,以备重发。
分组和确认都必须编号
通常,A最终总是能收到对所有发出分组的确认。
如果A不断重传,但总收不到确认,就认为通信线路太差,不能通信。
自动重传请求ARQ
automatic repeat request
使用停止等待的机制,就可以在不可靠的传输网络上实现可靠的通信。
ARQ,意思是重传的请求是自动进行的,接收方不需要请求发送方重传某个出错的分组(?用户不需要的意思吗
信道利用率
停止等待协议的优点是简单,缺点是信道利用率太低。
当往返时间RTT远大于分组发送时间TD时,信道利用率就会非常低。若重传,利用率还会进一步降低。
连续ARQ协议
采用流水线传输,连续发送多个分组,不必发完一个就停下来等待确认。可以使信道上一直有数据不间断地传送。这样可以获得很高的信道利用率。
发送窗口:位于发送窗口内的分组都可以连续发送出去,不需要等待对方的确认。
连续ARQ协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。
假设传送了M1M2M3M4,M2超时了,就重传M2M3M4
累计确认:不对收到的分组逐个确认,而是对按序到达的最后一个分组发送确认,表示:到这个分组为止的所有分组都已正确收到。
优点:容易实现,*即使确认丢失也不必重传。(?什么意思)
缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息。
Go-back-N(回退 N):表示需要再退回来重传已发送过的 N 个分组。v如果发送方发送了前 5 个分组,而中间的第 3 个分组丢失了。这时接收方只能对前两个分组发出确认。发送方无法知道后面三个分组的下落,而只好把后面的三个分组都再重传一次。
当通信线路质量不好时,连续 ARQ 协议会带来负面的影响。疯狂重传一大堆分组
滑动窗口协议
5.6 TCP可靠传输的实现
通过滑动窗口协议实现。
然后抽象的两张图,有一个课后题不是很懂
P1P2P3:第一个字节的意思
发送缓存&接收缓存
发送缓存用来暂时存放:
- 发送应用程序传送给发送方TCP准备发送的数据;
- TCP已发送但尚未收到确认的数据
接受缓存用来暂时存放:
- 按序到达的、但尚未被接收应用程序读取的数据;
- 不按序到达的数据
注意:
- A 的发送窗口并不总是和 B 的接收窗口一样大(因为有一定的时间滞后)。
- TCP 标准没有规定对不按序到达的数据应如何处理。操作系统通常是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程。
- TCP 要求接收方必须有累积确认的功能,这样可以减小传输开销。 累计一批/多批数据后发送对最后一个字节数据的确认。
接收方发送确认
接收方可以在合适的时候发送确认,也可以在自己有数据要发送时把确认信息顺便捎带上。
注意:
第一,接收方不应过分推迟发送确认,否则会导致发送方不必要的重传,这反而浪费了网络的资源。
第二,捎带确认实际上并不经常发生,因为大多数应用程序很少同时在两个方向上发送数据。
5.7 TCP的流量控制
利用滑动窗口实现流量控制
流量控制(flow control)就是让发送方的发送速率不要太快,要让接收方来得及接收。
零窗口持续计时器
TCP 为每一个连接设有一个零窗口持续计时器,只要 TCP 连接的一方收到对方的零窗口通知,不能正常发送数据了,就启动持续计时器。
若持续计时器设置的时间到期,就发送一个零窗口探测报文段(仅携带 1 字节的数据,加首部共21B),而对方就在确认这个探测报文段时给出了现在的窗口值。
若窗口仍然是零,则收到这个报文段的一方就重新设置持续计时器。
若窗口不是零,则正常发送数据力
传输时机
指的是TCP缓存堆堆堆,决定发出的时机
- TCP 维持一个变量,它等于最大报文段长度 MSS。只要缓存中存放的数据达到 MSS 字节时,就组装成一个 TCP 报文段发送出去。
- 由发送方的应用进程指明要求发送报文段,即 TCP 支持的紧急URG或推送PSH操作。
- 发送方设置的一个计时器期限到了,这时就把当前已有的缓存数据装入报文段(但长度不能超过 MSS)发送出去。一个通用机制
发送方糊涂窗口综合症
在发送方上层数据速度慢时,发送方应用进程把数据逐个字节地送到TCP缓存中,并且每接收到上层一字节数据就发送。这样,发送效率很低。解决:使用nagle算法
nagle算法
发送方把第一个数据字节先发送出去,把后面到达的数据字节都缓存起来。停止等待后面未到的数据。
当发送方收到对第一个数据字符的确认后,再把发送缓存中的所有数据组装成一个报文段发送出去,同时继续对随后到达的数据进行缓存。
- 只有在收到对前一个报文段的确认后才继续发送下一个报文段。
- 当到达的数据已达到发送窗口大小的一半或已达到报文段的最大长度时,就立即发送一个报文段。满足这一条件时,即便未收到确认也发送。
接收方糊涂窗口综合症
当接收方的 TCP 缓冲区已满,接收方会向发送方发送窗口大小为 0 的报文。
若此时接收方的应用进程以交互方式每次只读取一个字节,于是接收方又发送窗口大小为一个字节的更新报文,发送方应邀发送一个字节的数据(发送的 IP 数据报是 41 字节长),于是接收窗口又满了,如此循环往复。
解决方法:改变发送更新报文时机,让接收方等待一段时间,使得接收缓存已有足够空间容纳一个最长的报文段,或者等到接收缓存已有一半空闲的空间。只要出现这两种情况之一,接收方就发出确认报文,并向发送方通知当前的窗口大小。
超时重传时间的选择
最重要和最复杂的问题
TCP 每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到但还没有收到确认,就要重传这一报文段。
计算方法:超时重传时间RTO=加权平均往返时间RTTs+4*偏差加权平均往返时间RTTd
加权平均往返时间RTTs
超时重传时间RTO
retransmission time-out
Karn算法
在计算平均往返时间 RTT 时,只要报文段重传了,就不采用其往返时间样本。
这样得出的加权平均平均往返时间 RTTS 和超时重传时间 RTO 就较准确。
修正的karn算法
报文段每重传一次,就把RTO增大一些
γ通常取2,即新的RTO变为2倍
当不再发生报文段重传时,才根据报文段的往返时延更新RTT和RTO的数值。缩回正常值。
选择确认SACK
接收方收到了前面的字节流不连续的两个字节块,如果这些字节块都在接受窗口内,接收方先收下这些数据,然后批量发送对他们的确认。
5.8 TCP的拥塞控制
拥塞congestion:在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,产生拥塞。
若网络中有许多资源同时产生拥塞,网络的性能就要变坏,整个网络的吞吐量将随输入负荷的增大而下降。
增加资源能解决拥塞吗?不能,还可能使网络的性能更坏。必须着眼于系统全局解决问题。
- 增大缓存,但未提高输出链路的容量和处理机的速度,排队等待时间将会大大增加,引起大量超时重传,解决不了网络拥塞;
- 提高处理机处理的速率会将瓶颈转移到其他地方;
- 拥塞引起的重传并不会缓解网络的拥塞,反而会加剧网络的拥塞。
- 拥塞控制的前提:网络能够承受现有的网络负荷。
- 实践证明,拥塞控制是很难设计的,因为它是一个动态问题。
- 在许多情况下,甚至正是拥塞控制本身成为引起网络拥塞的原因
- 分组的丢失是网络发生拥塞的结果,而不是原因。
开环控制和闭环控制
开环实际并不现实
闭环控制措施:
- 监测:监测网络系统,拥塞在何时何处发生。
- 传送:将拥塞发生的信息传送到可采取行动的地方。将拥塞发生的信息传送到产生分组的源站,周期性发出探测分组等
- 调整:调整网络系统的运行以解决出现的问题。选择合适调整周期
TCP基于窗口拥塞控制
属于闭环控制。运输层位于端,不可能详细了解网络核心部分。
发送方维持一个拥塞窗口 cwnd (congestion window)
拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。
发送端利用拥塞窗口根据网络的拥塞情况调整发送的数据量。
发送窗口大小不仅取决于接收方公告的接收窗口,还取决于网络的拥塞状况,所以真正的发送窗口值为:
真正的发送窗口值 = Min(通知窗口值,拥塞窗口值)
控制拥塞窗口的原则:
- 只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去,这样就可以提高网络的利用率。
- 但只要网络出现拥塞,拥塞窗口就减小一些,以减少注入到网络中的分组数,以便缓解网络出现的拥塞。
判断网络出现拥塞的依据:出现数据超时,即未接收到ACK,虽然原因有很多,但只能认为产生了拥塞。
TCP四种拥塞控制算法
慢开始
由小到大逐渐增大拥塞窗口数值。
初始拥塞窗口cwnd设置:在刚刚开始发送报文段时,设置为1个发送方的最大报文段SMSS(sender max segment size)
慢开始门限ssthresh(slow start thresh):动态控制变量
在每收到一个对新的报文的确认后,把拥塞窗口增加最多一个SMSS的数值(一个指数增加)
拥塞窗口cwnd每次的增加量 = min (N, SMSS)
其中 N 是原先未被确认的、但现在被刚收到的确认报文段所确认的字节数。不难看出,当 N < SMSS 时,拥塞窗口每次的增加量要小于 SMSS。
传输轮次 (transmission round):
- 使用慢开始算法后,每经过一个传输轮次,拥塞窗口 cwnd 就加倍。
- 传输轮次:把拥塞窗口 cwnd 所允许发送的报文段都连续发送出去,并收到了对已发送的最后一个字节的确认。
- 一个传输轮次所经历的时间约为一个往返时间 RTT。
- 例如,拥塞窗口 cwnd = 4,这时的往返时间 RTT 就是发送方连续发送 4 个报文段,并收到这 4 个报文段的确认,总共经历的时间。
慢开始门限 ssthresh 的用法:cwnd指数增长变为线性
- 当 cwnd < ssthresh 时,使用慢开始算法。
- 当 cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。
- 当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞避免算法。
拥塞避免
拥塞避免算法的思路是让拥塞窗口 cwnd 缓慢地增大,即每经过一个往返时间 RTT 就把发送方的拥塞窗口 cwnd 加 1,而不是加倍,使拥塞窗口 cwnd 按线性规律缓慢增长。
在拥塞避免阶段,有“加法增大” (Additive Increase) 的特点。
出现拥塞时(重传计时器超时未接收ACK):
- ssthresh = max(cwnd/2,2)
- cwnd = 1
- 执行慢开始算法
迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够时间把队列中积压的分组处理完毕。
注:
- “拥塞避免”并非指完全能够避免了拥塞。利用以上的措施要完全避免网络拥塞还是不可能的。
- “拥塞避免”是说在拥塞避免阶段把拥塞窗口控制为按线性规律增长,使网络比较不容易出现拥塞。
快重传
可以让发送方尽早知道发生了报文段的丢失。要求接收方不要等待自己发送数据时捎带确认,而是立即确认,即使收到了失序的报文段也是
发送方只要一连收到三个重复确认,就知道接收方确实没有收到报文段,因而应当立即进行重传(即“快重传”),这样就不会出现超时,发送方也不就会误认为出现了网络拥塞。
使用快重传可以使整个网络的吞吐量提高约20%.
不难看出,快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段。
快恢复
当发送端收到连续三个重复的确认时,就执行“乘法减小”算法,把慢开始门限 ssthresh 减半。
由于发送方现在认为网络很可能没有发生拥塞,因此现在不执行慢开始算法,而是:
- 慢开始门限 ssthresh = 当前拥塞窗口 cwnd / 2 ;
- 新拥塞窗口 cwnd = 慢开始门限 ssthresh ;
- 开始执行拥塞避免算法,使拥塞窗口缓慢地线性增大。
发送窗口的上限值:
发送方的发送窗口的上限值应当取为接收方窗口 rwnd 和拥塞窗口 cwnd 这两个变量中较小的一个。
加法增大&乘法减小AIMD
在拥塞避免阶段,拥塞窗口是按照线性规律增大的。这常称为“加法增大” AI (Additive Increase)。
当出现超时或3个重复的确认时,就要把门限值设置为当前拥塞窗口值的一半,并大大减小拥塞窗口的数值。这常称为“乘法减小”MD (Multiplicative Decrease)。
二者合在一起就是 AIMD 算法。
主动队列管理AQM
?
先进先出FIFO
全局同步
随即早期检测RED
5.9 TCP的运输连接管理
运输连接的三个阶段:连接建立、数据传送、连接释放
采用客户机/服务器 C/S方式。主动发起者为客户,被动等待为服务器。
用三次握手建立TCP连接
四次挥手释放TCP连接
PPT
Chapter6.应用层
- 理解域名解析、文件传送、万维网、电子邮件、动态主机配置、网络管理
- 理解客户服务器与P2P的工作原理
- 掌握 DNS、FTP、HTTP、 SMTP、DHCP协议的工作原理
- 理解Chord、SNMP协议
- 了解POP3、IMAP、MIME
- 了解Napster、Gnutella、BitTorrent、CAN
每个应用层协议都是为了解决某一类应用问题,通常是通过位于不同主机的多个应用进程之间的通信和协同工作来完成的。
应用层的具体内容就是规定应用进程在交互时所遵循的协议。
应用层的许多协议都是基于客户/服务器方式。
- 客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。
- 客户/服务器方式所描述的是进程之间服务和被服务的关系。
6.1 域名系统DNS
域名系统 DNS (Domain Name System) :互联网使用的命名系统,用来把人们使用的机器名字(域名)转换为 IP 地址,为互联网的各种网络应用提供了核心服务。使用UDP通信
DNS 是一个联机分布式数据库系统,采用客户/服务器方式,域名到 IP 地址的解析是由若干个域名服务器程序共同完成。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。
域名解析过程(原理上,但是实际有些区别)
互联网的域名结构
命名方法:层次树状结构方法
域名:任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名 (domain name)。
域:名字空间中一个可被管理的划分。可以划分为子域,而子域还可继续划分为子域的子域,这样就形成了顶级域、二级域、三级域,等等。
域名结构:层次结构。由标号 (label) 序列组成,各标号之间用点隔开,各标号分别代表不同级别的域名。
域名服务器
区:一个能进行域名解析的服务器的解析范围。一个服务器所负责管辖的(或有权限的)范围叫做区(zone)。各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须连通。DNS 服务器的管辖范围不以“域”为单位,而是以“区”为单位。
每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。
根域名服务器
最高层次的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址(知道下面一层)。
Internet上共有13 个不同 IP 地址的根域名服务器,其名字是用一个英文字母命名,从a 一直到 m(前13 个字母)。
根域名服务器共有 13 套装置,不是 13 个机器。采用任播技术,使世界上大部分DNS域名服务器都能就近找到根服务器进行域名解析。
由1主根+12辅根组成,辅根的辅根:镜像,目前很多情况采用镜像。
相应的域名分别是:
- a.rootservers.net
- b.rootservers.net
- …
- m.rootservers.net
13套根域名服务器中:
1套为主根服务器,放置在美国;
其余12套均为辅根服务器,其中美国9套,欧洲2套,位于英国和瑞典,亚洲1套,位于日本。
2016年,中国主导在全球16个国家完成25台IPv6根服务器架设,事实上形成了13个原有根加25个IPv6根的新格局,中国部署了其中的4套,由1套主根服务器和3台辅根服务器组成,打破了中国过去没有根服务器的困境。
根域名服务器并不直接把域名直接转换成 IP 地址。在使用迭代查询时,根域名服务器把下一步应当找的顶级域名服务器的 IP 地址告诉本地域名服务器。
顶级域名服务器
顶级域名服务器(即 TLD 服务器)负责管理在该顶级域名服务器注册的所有二级域名。收到 DNS 查询请求,给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址)
北京有,负责.cn下的所有域名请求
权限域名服务器
任何权限域名服务器,若要对互联网上任何一个域名进行解析,只要自己无法解析,就需要求助于根域名服务器。
负责一个区的域名服务器。当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。(?
本地域名服务器
或默认域名服务器
当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。每一个互联网服务提供者 ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器。
可靠性
DNS 域名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器。辅助域名服务器只会在主服务器故障时运行服务。当主域名服务器出故障时,辅助域名服务器可以保证 DNS 的查询工作不会中断。
主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。
域名的解析过程
主机向本地域名服务器的查询一般都是采用递归查询。
如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
本地域名服务器向根域名服务器的查询通常是采用迭代查询。
当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。
递归查询
迭代查询
高速缓存
每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录。可大大减轻根域名服务器的负荷,使互联网上的 DNS 查询请求和回答报文的数量大为减少。
为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器,并处理超过合理时间的项(例如,每个项目只存放两天)。
当权限域名服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值。增加此时间值可减少网络开销,而减少此时间值可提高域名转换的准确性。
6.2 文件传输协议FTP
文件传送协议 FTP (File Transfer Protocol) 是互联网上使用最广泛的文件传送协议。FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。
文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 可靠的运输服务。
FTP 的主要功能是减少或消除不同操作系统处理文件的不兼容性。
FTP 使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。
过程:
很离谱,三页ppt三个说法
- 打开熟知端口(端口号为 21),使客户进程能够连接上。
- 客户进程发出连接请求,寻找连接服务器进程的熟知端口(21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。
- 服务器进程用自己传送数据的熟知端口(20)与客户进程所提供的端口号码建立数据传送连接。启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
- 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。
由于 FTP 使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。
控制连接在整个会话期间一直保持打开,FTP 客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件。
实际用于传输文件的是数据连接。服务器端的控制进程在接收到 FTP 客户发送来的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。
6.3 万维网WWW
万维网是分布式超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。
一个超文本由多个信息源链接成。利用一个链接可使用户找到另一个文档。超媒体与超文本的区别是文档内容不同。超文本文档仅包含文本信息,而超媒体文档还包含其他表示方式的信息,如图形、图像、声音、动画,甚至活动视频图像。
万维网以客户/服务器方式工作。
浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。在一个客户程序主窗口上显示出的万维网文档称为页面(page)。
(1) 怎样标志分布在整个互联网上的万维网文档?
使用统一资源定位符 URL (Uniform Resource Locator)来标志万维网上的各种文档。
统一资源定位符 URL 是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示。大小写无要求
协议:http可以省略,其他都不能
主机:是存放资源的主机在互联网中的域名,通过DNS查找
端口、路径:可省略,根据协议映射,http-80,ftp-20,21
(2) 用何协议实现万维网上各种超链的链接?
在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。
HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。
(3) 怎样使各种万维网文档都能在互联网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链?
超文本标记语言 HTML (HyperText Markup Language)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到互联网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。
(4) 怎样使用户能够很方便地找到所需的信息?
为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)。
超文本传送协议HTTP
HTTP 是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
(1) 浏览器分析超链指向页面的 URL;
(2) 浏览器向 DNS 请求解析 www.tsinghua.edu.cn 的 IP 地址;
(3) 域名系统 DNS 解析出清华大学服务器的 IP 地址;
(4) 浏览器与服务器建立 TCP 连接;
(5) 浏览器发出取文件命令:GET /chn/yxsz/index.htm;
(6) 服务器给出响应,把文件 index.htm 发给浏览器;
(7) TCP 连接释放;
(8) 浏览器显示“清华大学院系设置”文件 index.htm 中的所有文本。
HTTP报文结构
由于 HTTP 是面向正文的(text-oriented),因此在报文中的每一个字段都是一些 ASCII 码串,因而每个字段的长度都是不确定的。协议接近自然语言。
请求报文
从客户向服务器发送请求报文。
方法:是面向对象技术中使用的专门名词。所谓“方法”就是对所请求的对象进行的操作,因此这些方法实际上也就是一些命令。因此,请求报文的类型是由它所采用的方法决定的。
URL:请求资源的URL
版本:HTTP的版本,有1.0 1.1 2.0。版本协议结构大致相同
响应报文
从服务器到客户的回答。
HTTP特点
HTTP 是面向事务的客户/服务器协议。
HTTP 协议是无状态的(stateless)。
HTTP 协议本身是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务。TCP提供可靠性保障。
无连接,不会记录用户信息;使用cookie记录用户信息
HTTP资源请求工作方式
1.1版本,可以一次传送多个TCP请求,是n个连接一起发送,不是一个连接
HTTP1.1使用持续连接(persistent connection):服务器在发送响应后仍然在一段时间内保持这条连接(不释放),使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文。只要文档都在同一个服务器上,就可以继续使用该 TCP 连接。
两种工作方式:
- 非流水线方式 (without pipelining)
- 流水线方式 (with pipelining)。
HTTP2
- 协议 HTTP/1.1 的升级版本,允许客户复用 TCP 连接进行多个请求。
- 服务器可以并行发回响应(使用同一个 TCP 连接)。时间间隔更小
- 把所有的报文都划分为许多较小的二进制编码的帧,并采用了新的压缩算法,不发送重复的首部字段,大大减小了首部的开销,提高了传输效率。(重大升级)
- 向后兼容。兼容1.0 1.1
代理服务器
代理服务器(proxy server)又称为万维网高速缓存(Web cache),它代表浏览器发出 HTTP 请求。
(1) 浏览器访问互联网的服务器时,要先与校园网的高速缓存建立 TCP 连接,并向高速缓存发出 HTTP 请求报文。
(2) 若高速缓存已经存放了所请求的对象,则将此对象放入 HTTP 响应报文中返回给浏览器,不需要根据URL访问。
(3) 否则,高速缓存就代表发出请求的用户浏览器,与互联网上的源点服务器建立 TCP 连接,并发送 HTTP 请求报文。
(4) 源点服务器将所请求的对象放在 HTTP 响应报文中返回给校园网的高速缓存。
(5) 高速缓存收到此对象后,先复制在其本地存储器中(为今后使用),然后再将该对象放在 HTTP 响应报文中,通过已建立的 TCP 连接,返回给请求该对象的浏览器。
此外,高速缓存设置计时器,一定时间后更新显示内容
优点:
- 减少路由器间的流量
- NAT,不需要内网IP地址,只需代理服务器地址来访问网络,节省IP
- 代理服务防火墙,隐藏了主机
Cookie
万维网站点使用 Cookie 来跟踪用户,Cookie 表示在 HTTP 服务器和客户之间传递的状态信息。
使用 Cookie 的网站服务器为用户产生一个唯一的识别码。利用此识别码,网站就能够跟踪该用户在该网站的活动。
信息检索系统
1.全文检索搜索和分类目录搜索
在万维网中用来进行搜索的程序叫做搜索引擎。
全文检索搜索引擎是一种纯技术型的检索工具。它的工作原理是通过搜索软件到互联网上的各网站收集信息,找到一个网站后可以从这个网站再链接到另一个网站。然后按照一定的规则建立一个很大的在线数据库供用户查询。
用户在查询时只要输入关键词,就从已经建立的索引数据库上进行查询(并不是实时地在互联网上检索到的信息)。
分类目录搜索引擎
- 并不采集网站的任何信息,而是利用各网站向搜索引擎提交的网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符合网站登录的条件,则输入到分类目录的数据库中,供网上用户查询。分类目录搜索也叫做分类网站搜索。
垂直搜索引擎 (Vertical Search Engine)
- 针对某一特定领域、特定人群或某一特定需求提供搜索服务。
- 垂直搜索也是提供关键字来进行搜索的,但被放到了一个行业知识的上下文中,返回的结果更倾向于信息、消息、条目等。
元搜索引擎(META Search Engine)
- 接受用户查询请求后,同时在多个搜索引擎上搜索,并将结果返回给用户。
6.4 电子邮件
电子邮件软件
用户代理
用户代理 UA 就是用户与电子邮件系统的接口,是电子邮件客户端软件。
用户代理的功能:撰写、显示、处理和通信。目前很多网站提供UA功能。专门的电子邮件管理软件可以一起收不同网站的邮箱邮件。
邮件服务器
- 邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。
- 邮件服务器按照客户服务器方式工作。邮件服务器需要使用发送和读取两个不同的协议。
电子邮件的标准
发送邮件的协议:SMTP+MIME
读取邮件的协议:POP3 和 IMAP
通用互联网邮件扩充: MIME 在其邮件首部中说明了邮件的数据类型(如文本、声音、图像、视像等),使用 MIME 可在邮件中同时传送多种类型的数据。
注:一个邮件服务器既可以作为客户,也可以作为服务器。例如,当邮件服务器 A 向另一个邮件服务器 B 发送邮件时,邮件服务器 A 就作为 SMTP 客户,而 B 是 SMTP 服务器。当邮件服务器 A 从另一个邮件服务器 B 接收邮件时,邮件服务器 A 就作为 SMTP 服务器,而 B 是 SMTP 客户。
发送接收过程
(1) 发信人调用用户代理来编辑要发送的邮件。用户代理用 SMTP 把邮件传送给发送端邮件服务器。
(2) 发送端邮件服务器将邮件放入邮件缓存队列中,等待发送。
(3) 运行在发送端邮件服务器的 SMTP 客户进程,发现在邮件缓存中有待发送的邮件,就向运行在接收端邮件服务器的 SMTP 服务器进程发起 TCP 连接的建立。
(4) TCP 连接建立后,SMTP 客户进程开始向远程的 SMTP 服务器进程发送邮件。当所有的待发送邮件发完了,SMTP 就关闭所建立的 TCP 连接。
(5) 运行在接收端邮件服务器中的 SMTP 服务器进程收到邮件后,将邮件放入收信人的用户邮箱中,等待收信人在方便时进行读取。
(6) 收信人在打算收信时,调用用户代理,使用 POP3或 IMAP协议将自己的邮件从接收端邮件服务器的用户邮箱中的取回(如果邮箱中有来信)。
电子邮件的组成
电子邮件由信封(envelope)和内容(content)两部分组成。
信封:在邮件的信封上,最重要的就是收件人的地址。
地址:xxx@邮箱所在主机的域名
内容:正文
电子邮件的传输程序根据邮件信封上的信息来传送邮件。用户在从自己的邮箱中读取邮件时才能见到邮件的内容。
简单邮件传送协议SMTP
SMTP 所规定的就是在两个相互通信的 SMTP 进程之间应如何交换信息,基于TCP协议,端口号:25.
SMTP 使用客户/服务器方式,负责发送邮件的 SMTP 进程就是 SMTP 客户,而负责接收邮件的 SMTP 进程就是 SMTP 服务器。
SMTP 规定了 14 条命令和 21 种应答信息。每条命令用 4 个字母组成,而每一种应答信息一般只有一行信息,由一个 3 位数字的代码开始,后面附上简单的文字说明。
通信的三个阶段
- 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。
SMTP不使用中间的邮件服务器。 - 邮件传送
- 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。
SMTP 有以下缺点:通过MIME解决
- SMTP 不能传送可执行文件或其他的二进制对象。
- SMTP 限于传送 7 位的 ASCII 码。许多其他非英语国家的文字(如中文、俄文,甚至带重音符号的法文或德文)就无法传送。
- SMTP 服务器会拒绝超过一定长度的邮件。
- 某些 SMTP 的实现并没有完全按照[RFC 821]的 SMTP 标准。
邮件读取协议POP3 IMAP
POP3
邮局协议 POP 是一个非常简单、但功能有限的邮件读取协议,现在使用的是它的第三个版本 POP3。POP 也使用客户/服务器的工作方式。在接收邮件的用户 PC 机中必须运行 POP 客户程序,而在用户所连接的 ISP 的邮件服务器中则运行 POP 服务器程序。
最重要的特点:用户从邮件服务器上下载邮件后,只能本地查看邮件内容,在接收服务器中已经删除
IMAP
解决了POP3离线的问题,用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件。
IMAP 还允许收件人只读取邮件中的某一个部分。例如,收到了一个带有视像附件(此文件可能很大)的邮件。为了节省时间,可以先下载邮件的正文部分,待以后有时间再读取或下载这个很长的附件。
IMAP 的缺点是如果用户没有将邮件复制到自己的 PC 机上,则邮件一直是存放在 IMAP 服务器上。因此用户需要经常与 IMAP 服务器建立连接
万维网电子邮件
用户代理 (UA) 的缺点:必须在计算机中安装用户代理软件。
万维网电子邮件优点:需要在计算机中再安装用户代理软件。只要能联网,就能方便地收发电子邮件。界面非常友好。
电子邮件从 发送方A 发送到发送方邮件服务器使用 HTTP 协议。
两个邮件服务器之间的传送使用 SMTP。
邮件从接收方邮件服务器传送到接收方B 使用 HTTP 协议。
通用互联网邮件扩充MIME
MIME 并没有改动 SMTP 或取代SMTP。增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则。
5 个新的邮件首部字段,它们可包含在[RFC 822]首部中。这些字段提供了有关邮件主体的信息。
定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。
quoted-printable编码
base64编码,适合任意长度的二进制数据
定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。
6.5 动态主机配置协议DHCP
配置的项目
(1) IP 地址
(2) 子网掩码
(3) 默认路由器的 IP 地址
(4) 域名服务器的 IP 地址
这些信息通常存储在一个配置文件中,计算机在引导过程中可以对这个文件进行存取。
DHCP 提供了即插即用连网(plug-and-play networking)的机制,这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。
DHCP 使用客户/服务器方式,基于UDP,工作流程包括6阶段。
DHCP工作流程
前四个阶段都是广播,后面两个是单播。全部都是UDP
1发现阶段
即:DHCP客户机寻找DHCP服务器的阶段。
(服务器要求:标准主机;拥有一组IP地址,已配置或能够自行配置掩码、网关等参数)
DHCP客户机以广播方式发送DHCP discover发现信息来寻找DHCP服务器,该广播包中的源IP地址为0.0.0.0(不知道自己IP,所以填”我”),目标IP地址为255.255.255.255(全1广播)
网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。
2提供阶段
即DHCP服务器提供IP地址的阶段。
在网络中接收到DHCP discover发现信息的DHCP服务器做出响应;
从尚未出租的IP地址中挑选一个分配给DHCP客户机;
向DHCP客户机发送一个DHCP offer提供信息广播包。该广播包的源IP地址为DCHP服务器IP,目标IP地址为255.255.255.255,包中还包含提供的IP地址、子网掩码及租期等信息。
3选择阶段
即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。
如果有多台DHCP服务器向DHCP客户机发来的DHCP offer提供信息,则DHCP客户机只接受第一个收到的DHCP offer提供信息,然后它就以广播方式回答一个DHCP request请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。发出的广播,源地址全0,目的地址全1。
之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。
4确认阶段
即DHCP服务器确认所提供的IP地址的阶段。
当DHCP服务器收到客户机的DHCP request请求信息之后,便向DHCP客户机广播一个包含它所提供的IP地址和其他设置的DHCP ACK确认信息,告诉DHCP客户机可以使用它所提供的IP地址。
然后DHCP客户机便将其TCP/IP协议与网卡绑定。
除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址。
5重新登录
以后DHCP客户机每次重新登录网络时,就不需要再发送DHCP discover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。
当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ACK确认信息。
如果此IP地址已无法再分配给原来的DHCP客户机使用时,则DHCP服务器给DHCP客户机回答一个DHCP NACK否认信息。
当原来的DHCP客户机收到此DHCP NACK否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址。回到1发现阶段
6更新租约
DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。
如果DHCP客户机要延长其IP租约,必须更新其IP租约。
DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息。若服务器同意,则延长租约;不同意,到期后客户机重新1发现阶段广播。
DHCP中继代理
并不是每个网络上都有 DHCP 服务器,这样会使 DHCP 服务器的数量太多。现在是每一个网络至少有一个 DHCP 中继代理,它配置了 DHCP 服务器的 IP 地址信息。
当 DHCP 中继代理收到主机发送的发现报文后,就以单播方式向 DHCP 服务器转发此报文,并等待其回答。收到 DHCP 服务器回答的提供报文后,DHCP 中继代理再将此提供报文发回给主机。
6.6 简单网络管理协议 SNMP
一 点 也 不 简 单
网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运行性能,服务质量等。
网络管理常简称为网管。网络管理并不是指对网络进行行政上的管理。
不想粘了,看ppt吧
6.7 P2P文件系统
工作方式概述
自从互联网能够提供音频/视频服务后,用户数也急剧增长。很多用户使用宽带接入的目的就是为了更快地下载音频/视频文件。
P2P 方式受到广泛欢迎,因为它解决了集中式媒体服务器可能出现的瓶颈问题。
在P2P工作方式下,所有音频/视频文件都在普通的互联网用户之间传输。这相当于有很多分散在各地的媒体服务器向其他用户提供所需要下载的音频/视频文件。
在互联网流量中,P2P工作方式下的文件分发已占据了最大的份额,比万维网应用所占的比例大得多。
Napster
集中目录服务器的P2P
第一代P2P系统,提供音乐检索功能。将所有的音乐文件地址集中存放在一个 Napster 目录服务器中,用户要及时向 Napster 的目录服务器报告自己存有的音乐文件。
当用户想下载某个 MP3 文件时,就向目录服务器发出询问。目录服务器检索出结果后向用户返回存放此文件的 PC 机的 IP 地址,用户即可到存放资源的站点下载到所需要的 MP3 文件。
Napster 的文件传输是分散的,但文件的定位是集中的。
这种集中式目录服务器的优点是:协议简单,查询速度快;
但缺点是:中央服务器易成为单一故障点和性能瓶颈,可靠性和扩展性差。
Napster 被判决属于“间接侵害版权”,因此在 2000 年 7 月底 Napster 网站就被迫关闭了。
Snocap,尝试资源合法化,但免费共享是当时互联网的核心理念。
Gnutella
全分布式结构的P2P
BitTorrent
2001年,Brahm Cohen开发的第三代P2P程序,混合结构。
参与某个文件分发的所有对等方集合称为一个洪流 (torrent) 。
每个洪流都有一个基础设施结点,叫做追踪器 (Tracer),当一个对等方加入洪流时,必须向Tracer登记,并且周期的通知Tracer它仍在洪流中。因此, Tracer跟踪了所有的对等方,对所有对等方的信息进行维护。
当一个新的对等方 A 加入洪流时, Tracer就随机地从参与的对等方集合中选择若干个(例如,30 个),并把这些对等方的 IP 地址告诉 A。于是 A 就和这些对等方建立了 TCP 连接。所有与 A 建立了 TCP 连接的对等方为“相邻对等方”(neighboring peers)。
文件发布者生成一个. Torrent文件,即:种子文件(文本文件),包含:Tracer信息(Tracer的地址)和文件相关信息。
下载者B首先需得到种子文件,然后根据种子文件得到Tracer的地址;
B基于TCP与Tracer连接,注册,提供自己的信息,获取其他对等方信息,并且保持与Tracer进行通信,通知自己的在线情况。
B与所获得的其他对等方连接,交互文件片段。并且监听某端口,等待其他对等方与其建立连接,提供文件。
分布式散列表DHT
有结构的P2P系统
Chord算法
哈希函数:一般哈希函数,在Chord中使用SHA-1来进行哈希计算。
节点ID:NID(node identifier),一个m位的数字,表示一个对等方,(m要足够大以保证不同节点的NID相同的几率小的可以忽略不计),由节点机器的IP地址和端口号通过哈希得到。
资源ID:KID(key identifiers),一个m位的数字,表示一个资源,(m要足够大以保证不同资源的KID相同的几率足够小),由Key(如:资源名)通过哈希得到。
Chord环:NID和KID被分配到一个大小为2m的环上,用于节点分布和资源分配(分给某一个节点),以及资源定位(注:在这个环上的ID为0–2m-1)。
资源分配:资源被分配到第一个NID>=KID的节点上,这个节点成为k的后继节点,是环上从k起顺时针方向的第一个节点,记为successor(k)。而节点分布则顺时针将节点NID由大到小放在这个环上。
每个节点需维护自己的资源信息、前驱节点指针、后继节点指针。
节点加入:将部分资源信息移至新节点,更新前驱指针,其原前驱更新后继指针。
资源加入:直接写入对应的节点即可。
节点移出:将资源信息移至后继节点,移除节点的原前驱更新后继指针,原后继更新前驱指针。
资源移出:在原节点删除记录即可。
Chord资源定位
- 结构化的P2P算法,巧妙分配,快速定位资源。
- 特征:去中心,有结构,高可用,高伸缩性,负载平衡。
- 应用广泛:全球文件系统、命名服务、数据库请求处理、互联网级别的数据结构、通信服务、事件通知、文件共享。
- 作为一种DHT,只能精确匹配。
CAN
每个节点维护:自己所对应的坐标空间、存放的资源信息、路由表,维系邻居之间的在线情况。
节点的路由表(coordinate routing table),储存坐标空间中相邻节点的IP 地址及所对应的空间信息。
当保存(key, value)时,使用哈希函数将资源key(如:文件名)映射为坐标空间的点P(坐标),将value保存到点P所在区域的节点上。
节点加入:首先,新加入的节点随机的选择系统中的一个节点,并向它发送加入消息;被选择到的节点收到加入消息时,将自己的坐标空间一分为二,分给新节点一半,将value数据库(档案)也分离对应的记录给新节点。
节点离开:将档案交给邻居,和邻居合并为一个大区域,或交给区域最小的邻居。
CAN 利用每个节点所拥有的路由表来搜寻文件。当需要文件查询时,先利用哈希函数计算出此文件所对应的坐标,然后从系统中任意选择一个节点,并将文件所对应的坐标发送给被选择的节点。被选择的节点收到坐标信息后,先查询档案数据是否存在节点中,如果存在,则返回文件信息(地址);如果不存在,则节点会根据其路由表,按照贪婪算法(找出一个与文件坐标最接近的邻居节点,并转送此查询讯息),依此方式直到找到档案为止。
项目独特之处:采用多维的标识符空间来实现分布式散列算法。 CAN将所有结点映射到一个n维的笛卡尔空间中,并为每个结点尽可能均匀的分配一块区域。无中心、有结构、基于DHT,且具有良好可扩展性。