admin 管理员组

文章数量: 887021

笔记首发于:lengyueling

PDF版本附在 lengyueling 对应文章结尾,欢迎下载访问交流

网络体系结构

概念与功能

网络:网样的东西或者网站系统

计算机网络:是一个将分散的、具有独立功能的计算机系统,通过通信设备和线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。

计算机网络的功能: 数据通信、资源共享、分布式处理(hadoop平台)、提高可靠性、负载均衡...

发展阶段-第一阶段: ARPAnet(美国国防部的分散指挥系统)-> Internet(TCP/IP协议)

发展阶段-第二阶段: 1985后,三层结构的因特网(校园网、地区网、主干网)

发展阶段-第三阶段: 多层次的ISP结构(本地ISP、地区ISP、主干ISP,电信、移动、联通都是ISP)

组成: 硬件、软件、协议(一系列规则和约定的集合)

工作方式:

  • 边缘部分

    • C/S方式(客户、服务)

    • P2P方式(对等的连接peer-to-peer)

  • 核心部分

    • 为边缘部分服务

功能组成:

  • 通信子网(网络层、数据链路层、物理层 )

    • 各种传输介质、通信设备、对应的网络协议组成

  • 资源子网(应用层、表示层、会话层)

    • 实现资源共享/数据处理的设备和软件的集合

  • 传输层(承上启下)

按照分布分类:

  • 广域网WAN(交换技术)

  • 城域网MAN

  • 局域网LAN(广播技术)

  • 个人区域网PAN

按照使用者分类:

  • 公用网

  • 专用网

按交换技术分类:

  • 电路交换

  • 报文交换

  • 分组交换

按照拓扑结构分:

  • 总线型

  • 星形

  • 环形

  • 网状型(常用于广域网)

按传输技术分:

  • 广播式网络 共享公共信号通道

  • 点对点网络 使用分组储存转发和路由选择机制

标准化工作及相关组织

标准的分类:

  • 法定标准 由权威机构制订的正式的、合法的标准 比如OSI模型

  • 事实标准 某些公司的产品在竞争中占据了主流产生的标准 比如TCP/IP协议

标准化工作:

RFC要上升为Internet正式标准的四个阶段

  • 因特网草案

  • 建议标准

  • 草案标准(现在已经取消了)

  • 因特网标准

相关组织:

  • 国际标准化组织ISO OSI模型、HDLC协议

  • 国际电信联盟ITU 指定通信规则

  • 电气和电子工程师协会IEEE 学术机构、IEEE802系列标准、5G

  • Internet工程任务组IETF 负责因特网相关标准的制定 RFCYYYY

性能指标

速率:数据率、数据传输率、比特率,连接在计算机网络的主机在数字信道上传输数据位数的速率,单位有b/s kb/s Mb/s等,都是100倍关系

存储容量:1Byte=8bit 1KB=2^10B=1024B=1024*8b(一般用的都是比特不是字节)

带宽:表示网络的通信线路传送数据的能力单位是b/s,链路带看=1MB/s意味着主机在1us内可向链路发送1bit数据,以此类推,传输速度不变

吞吐量:单位时间内通过某个网络或信道或接口的数据量。单位b/s等,受到网络的带宽和网络的额定速率的限制,多个服务器的最高速率相加,最高不可能超过带宽。

时延:从网络的一段传送到另一端所需的时间,单位是s,分为发送时延(传输时延)、传播时延、排队时延、处理时延

发送时延=数据长度/信道带宽

传播时延=信道长度/电磁波在信道上的传播速率

排队时延=等待输入/出链路可用的时间

处理时延=检错、找出口

时延带宽积:传播时延*带宽 单位:b 又被称为以比特为单位的链路长度

往返时间RTT:从发送方发送数据开始,到发送方收到接收方的确认总共经历的时延。

RTT越大,在收到确认之前,可以发送的数据越多

RTT包括:

  • 往返传播时延=传播时延*2

  • 末端处理时间

利用率:

  • 信道利用率

    • 有数据通过的时间/总时间

  • 网络利用率

    • 信道利用率加权平均值

分层结构、协议、接口、服务

为什么要分层?

发送文件前要完成的动作:

  • 发起通信的计算机必须将数据通信的通路进行激活。

  • 要告诉网络如何识别目的主机。

  • 发起通信的计算机要查明目的主机是否开机,并且与网络连接正常。

  • 发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作。

  • 确保差错和意外可以解决。

  • ......

  • 因此需要分层

分层的原则:

  • 每层相对独立

  • 每层界面自然清晰,易于理解

  • 每层都采用最合适的技术来实现

  • 保持下层和上层的独立性

  • 分层结构应该促进标准化工作

实体:第n层的活动元素被称为n层实体,同一层的实体叫对等实体。

协议:为进行网络中对等实体数据交换而建立的规则、标准或约定。(水平)

  • 语法:规定传输数据的格式

  • 语义:规定所要完成的功能

  • 同步:规定各种操作的顺序

接口:上层使用下层服务的入口

服务:下层为相邻上层提供的功能调用。(垂直)

SDU服务数据单元:为完成用户所要求的的功能而应传送的数据。(上一层真正有意义的信息)

PCI协议控制信息:控制协议操作的信息。(控制信息)

PDU协议数据单元:对等层次之间传送的数据单元。(上面两种信息之和)

PCI+SDU=PDU 紧接着PDU作为下一层的SDU,是一个类似于金字塔的结构

OSI参考模型

OSI是7层模型,是法定标准,但是现在大家都用TCP/IP协议,理论是成功的,但是市场是失败的。

  • 应用层

  • 表示层

  • 会话层

  • 传输层

  • 网络层

  • 数据链路层

  • 物理层

通信过程:

应用层:

面向用户的所有能和用户交互产生网络流量的程序就是应用层。

典型的应用层服务:

  • 文件传输(FTP)

  • 电子邮件(SMTP)

  • 万维网(HTTP)

  • ......

表示层:

用于处理在两个通信系统中交换信息的表示方式(语法和语义)

功能:

  • 数据格式变换(翻译官)

  • 数据加密/解密

  • 数据压缩和恢复

协议:JPEG ASCII

会话层:

向表示层/用户进程提供简历了解并在连接上有序的传输数据。这就是会话,也被曾为建立同步(SYN)

功能:

  • 建立、管理、终止会话

  • 通过校验点可使会话在通信失效时从校验点/同步点继续恢复通信,实现数据同步点继续恢复通信,实现数据同步。(传输大文件)

协议:ADSP ASP

传输层:

负责主机中两个进程的通信,即端到端的通信。传输单位是报文段或用户数据报。

功能:

  • 可靠传输、不可靠传输

  • 差错控制

  • 流量控制

  • 复用分用

复用:多个应用层进程可同时使用下面运输车的服务

分用:运输层把收到的信息分别交付给上面应用层相应的进程。

协议:UDP TCP

网络层:

主要任务是把分组从源端传送目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。

功能:

  • 路由选择 选择合适的路由(最佳路径)

  • 流量控制 协调发送端和接收端的速度

  • 差错控制

  • 拥塞控制 通过一定措施缓解所有节点都来不及接收分组的状态

协议:IP IPX ICMP IGMP ARP RARP OSPF

数据链路层:

主要任务是把网络层传下来的数据报组装成帧。数据链路层/链路层的传输单位是帧。

功能:

  • 成帧(定义帧的开始和结束)

  • 差错控制 帧错+位错

  • 流量控制

  • 访问(接入)控制 控制对信道的访问

协议:SDLC HDLC PPP STP

物理层:

主要任务是在物理媒体上实现比特流的透明传输。传输单位是比特。

透明传输:指的是不敢是什么样的比特组合,都应当能够在链路上传送。

功能:

  • 定义接口特性

  • 定义传输模式 单工、半双工、双工

  • 定义传输速率

  • 比特同步

  • 比特编码

协议:Rj45 802.3

TCP/IP参考模型

OSI与TCPIP参考模型的关系:

与OSI参考模型的相同点:

  • 都分层

  • 基于独立的协议栈的概念

  • 可以实现异构网络互联

不同点:

  • OSI定义三点:服务、协议、接口

  • OSI先出现,参考模型先于协议发明,不偏向特定协议

  • TCPIP设计之初就考虑到异构网互联问题,将IP作为重要层次

面向连接分为三个阶段,第一是建立连接,在此阶段发出一个建立连接的请求,只有在连接成功建立之后,才能开始数据传输,这是第二阶段,接着当数据传输完毕,必须释放连接。

无连接没有那么多阶段,直接进行数据传输。

五层参考模型:

综合了OSI和TCPIP协议的优点,应用层支持各种网络应用(FTP SMTP HTTP),传输层负责进程-进程的数据传输(TCP UDP),网络层负责源主机到目的主机的数据分组路由与转发(IP ICMP OSPF等)数据链路层负责吧网络层传下来的数据报组装成帧,物理层负责比特传输。

封装与解封装:

物理层

基本概念

物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。

物理层的主要任务:确定与传输媒体接口有关的一些特性(定义标准)

机械特性:定义物理连接的特性,规定物理连接时所采用的规格、接口形状、引脚数目、引脚数量和排列情况。

电气特性:规定传输二进制位时,线路上信号的电压范围、阻抗匹配、传输速率和距离限制等。

功能特性:某调线上出现的某一电平表示某种意义,接口部件的信号线的用途。

规程特性:定义各条物理线路的工作规程和时序关系。

数据通信

通信的目的是传送消息(语音文字图像视频等)

数据data:传送信息的实体,通常是有意义的符号序列。

信号:数据的电气/电磁的表现,是数据在传输过程中的存在形式。

数字信号:消息的参数的取值是离散的。

模拟信号:信息的参数的取值是连续的。

信源:产生和发送数据的源头。

信宿:接受数据的终点。

信道:信号的传输媒介,包含发送信道和接收信道。

按照传输信号分模拟信道和数字信道

按照传输介质分为无线信道和有线信道

三种通信方式:

单工通信:只有一个方向的通信而没有反方向的交互,仅通过一条信道。例子:广播

半双工/双向交替通信:通信双方都可以发送或接受信息但是不能通知发送或接受,需要两条信道。例子:对讲机

全双工信道/双向同时通信:通信双方可以同时发送和接受信息,也需要两条信道,例子:打电话

数据传输方式:

串行传输:将一个字符的8位二进制数按低维到高维的顺序依次发送。速度慢,费用低,适合远距离。

并行传输:将一个字符的8为二进制数同时向八条信道发送。速度快,费用高,适合近距离

同步传输:

  • 在同步传输的模式下,数据的传送是以一个数据区块为单位,因此同步传输又称为区块传输。

  • 在传送数据时,需先送出一个或多个同步字符,再送出整批的数据。

异步传输:

  • 将比特分为 小组进行传输,小组可以使8位的一个字符或者更长。

  • 发送方可以在任何时刻发送这些比特组,而接收方不知道他们会在什么时候到达。

  • 传送数据时,加一个字符起始位和一个字符终止位。

码元:

  • 码元是指用一个固定时长的信号波形,代表不同离散数值的基本波形是数字通信中数字信号的计量单位

  • 这个时长内的信号成为k进制码元,而该时长称为码元宽度

  • 码元的离散状态有几种状态就是几进制码元

  • 1码元可以携带多个比特的信息量,2^n进制码元可以携带n进制信息量

速率:

  • 是指数据的传输速率,表示单位时间内传输的数据量。

  • 可以用码元传输速率和信息传输速率表示。

  • 码元传输速率:单位时间内数字通信系统所传输的码元个数,单位是波特(Baud)1波特表示每秒传输一个码元。

  • 码元速率和进制无关,之和码元长度有关R=1/T(B) T:码元长度 R:码元速率

  • 信息传输速率表示单位时间内数字通信系统的二进制码元个数(比特数)单位是b/s

  • 关系:若一个码元携带n bit信息量, M Baud的码元传输速率所对应的信息传输速率为M*n bit/s

带宽:

模拟信号中:输入的信号频率高或低到一定程度,使得系统的输出功率成为输入功率的一半时,最高频率和最低频率之间的差值就代表了系统的通频带宽。单位为Hz

数字设备中:表示在单位时间内从网络中的某一点到另一点所能通过的最高传输数据率/单位时间内通过链路的数量,常用来表示网络的通信线路所能传输数据的能力。单位是b/s

奈氏准则和香农定理

失真:在现实中的信道中出现的码元传输速率、信号传输距离、噪声干扰、传输媒体质量等因素可能产生为失真,分为有失真但可识别和失真大无法识别。

失真的一种现象-码间串扰:模拟信号的频率过高,接收端收到的信号波形失去了码元之间清晰界限的现象。

奈氏准则:

  • 在理想低通条件下,为了避免码间串扰,极限传输速率为2WBaud W为信道带宽,单位是Hz

  • 理想低通信道下极限数据传输率=2Wlog 2 V(b/s)

  • 在任何信道中码元传输速率是有上限的,若传输速率超过此上限,就会出现严重的码间串扰问题,使接收单对码元的完全正确识别成为不可能。

  • 信道的频带越宽,就能用更高的速率进行码元的有效传输。

  • 奈氏准则给出了码元传输速率的限制,但并没有对信息传输速率给出限制

  • 码元传输速率受到奈氏准则的制约,多以要提高数据的传输速率,就必须设法使每个码元能携带更多个比特的信息为,这就需要采用多元制的调制方式。

香农定理:

  • 噪声存在于所有的电子设备和通信信道中。由于噪声随机产生,它的瞬时值有时会很大,

  • 因此噪声会使接收端对码元的判决产生错误。但是噪声的影响是相对的,若信号较强,那么噪声影响相对较小。

  • 因此,信噪比就很重要,信噪比=信号的平均功率/噪声的平均功率S/N 单位为分贝 dB

  • dB=10log 10 (S/N)

  • 信道的极限数据传输速率=Wlog2 (1+S/N)(b/s) W为带宽 S/N为信噪比

  • 信道的带宽或信道中的信噪比越大,则信息的极限传输速率就越高

  • 对一定传输带宽和一定的信噪比,信息传输速率的上限就确定了。

  • 只要信息传输独立低于信道的极限传输速率,就一定能找到某种方法来无差错的传输。

  • 香农定理得出的为极限信息传输速率,实际信道能达到的传输速率要比他低不少。

  • 从香农定理可以看出,若信道带宽W或信噪比S/N没有上限(不可能),那么信道的极限信息传输速率就没有上限

选用情况:

  • 奈氏准则:带宽受限无噪声条件下,避免码间串扰

  • 香浓定理:带宽受限有噪声条件下的信息传输速率

编码与调制

信道上传送的信号:

基带信号:

  • 将数字信号1和0直接用两种不同的电压表示,再送到数字信道上去传输。

  • 来自信源的信号,像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号。

  • 基带信号就是发出的直接表达了要传输信息的信号,比如我们说话的声波。

宽带信号:

  • 将基带信号进行调制后形成的频分复用模拟信号,再传送到模拟信道上去传输。

  • 把基带信号经过载波调制后,把信号的频率范围搬移到较高的频段以便在信道中传输(即仅在一段频率范围内能够通过信道)。

应用:

  • 在传输距离较近的时候使用基带传输的方式(近距离衰减小,从而信号内容不易发生变化)

  • 在传输距离较远时采用宽带传输方式(远距离衰减大,即使信号变化大也能最后过滤出来基带信号)

编码与调制的过程:

数字数据编码分为数字信号:

编码方式有下面六种:

4B/5B编码,编码效率80%

数字数据调制为模拟信号:

数字数据调制技术在发送端将数字信号转换为模拟信号,而在接收端将模拟信号还原为数字信号,分别对应于调制解调器的调制和解调过程。

模拟信号编码为数字信号:

  • 计算机内部处理的是二进制数据,处理的都是数字音频,所以需要将模拟音频通过采样、量化转换成有限个数字表示的离散序列(即实现音频数字化)

  • 最典型的例子就是对音频信号进行编码的脉码调制(PCM),在计算机应用中,能够达到最高保真水平的就是PCM编码,被广泛用于素材保存及音乐欣赏,CD、DVD以及我们常见的WAV文件中均有应用。它主要包括三步:抽样、量化、编码。

  • 抽样:对模拟信号周期性扫描,把时间上连续的信号变成时间上离散的信号。f采样频率 >= 信号最高频率

  • 量化:把抽样取得的电平幅值按照一定的分级标度转化为对应的数字值,并取整数,这就把连续的电平幅值转换为离散的数字量。

  • 编码:把量化的结果转换为与之对应的二进制编码。

模拟数据调制为模拟信号:

  • 为了实现传输的有效性,可能需要较高的频率。

  • 这种调制方式还可以使用频分复用技术,充分利用带宽资源。

  • 在电话机和本地交换机所传输的信号是采用模拟信号传输模拟数据的方式;

  • 模拟的声音数据是加载到模拟的载波信号中传输的。

数据交换方式

为什么要数据交换:通过某些交换中心将数据进行集中和传送,传输线路为各个用户公用,从而大大节省通信下路,降低系统费用。

数据交换方式:

  • 电路交换

  • 报文交换(存储转发交换方式)

  • 分组交换(存储转发交换方式)

    • 数据报方式

    • 虚电路方式

电路交换:

报文交换:

分组交换:

数据交换的选择:

  • 传输数据量大,且传送时间远大于呼叫时,选择电路交换。电路交换传输时延最小。

  • 当端到端的通路有许多段的链路组成时候,采用分组交换传送数据较为合适。

  • 从信道利用率来看,报文交换和分组交换优于电路交换,其中分组交换比报文交换的时延小,尤其适合于计算机之间突发式的数据通信。

分组交换之数据报方式:

特点:

  • 数据报方式为网络层提供无连接服务。发送方可以随时发送分组,网络中的节点可随时接收分组。

    • 无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。

  • 统一报文的不同分组到达目的节点时可能出现乱序、重复和丢失

  • 每个分组在传输过程中都必须携带源地址和目的地址,以及分组号。

  • 分组在交换结点存储转发时,需要排队等候处理,这会带来一定的时延。当通过交换结点的通信量较大或网络发生拥塞时,这种时延会大大增加,交换结点还可根据情况丢弃部分分组。

  • 网络具有冗余路径,当某一-交换结 点或一段链 路出现故障时,可相应地更新转发表,寻找另一条路径转发分组,对故障的适应能力强,适用于突发性通信,不适于长报文、会话式通信。

分组交换之虚电路方式:

特点:

  • 虚电路方式为网络层提供连接服务。源节点和目的节点之间建立一个逻辑连接,而非物理连接。

    • 连接服务:首先为分组的传输确定传输路径,然后沿着路径传输系列分组,系列分组传输路径相同,传输结束后拆除连接

  • 一次通信的所有分组都通过虚电路顺序传送,分组不需要携带源地址,地址等信息,包含虚电路号,相对数据报方式开销小,同一报文的不同分组到达目的结点时不会乱序、重复或丢失。

  • 分组通过虚电路.上的每个节点时,节点只进行差错检测,不需进行路由选择。

  • 每个节点可能与多个节点之间建立多条虚电路,每条虚电路支持特定的两个端系统之间的数据传输,可以对两个数据端点的流量进行控制,两个端系统之间也可以有多条虚电路为不同的进程服务。

  • 致命弱点:当网络中的某个结点或某条链路出故障而彻底失效时,则所有经过该结点或该链路的虚电路将遭到破坏

虚电路和数据报的区别:

物理传输介质

介绍:

  • 传输介质也被称为传输媒体,是数据传输系统中在发送设备和接收设备之间的物理通路。

  • 传输层不是物理层,在物理层的下面,有时候也被称为第0层。

  • 物理层规定了电气特性,因此能够识别传送的比特流。

分类:

  • 导向型传输介质,电磁波被导向沿着固体媒介(铜线/光纤)传播

  • 非导向性传输介质,自由空间,介质可以是真空、空气、海水等。

双绞线:

同轴电缆:

光纤:

定义光源特点
单模光纤一种在横向模式直接传输光信号的光纤定向性很好的激光二极管损耗小,适合长距离出书
多模光纤有多重传输光信号模式的光纤发光二极管易失真,适合短距离传输

特点:

  • 传输损耗小,中继距离长,对远距离传输特别经济

  • 抗雷电和电磁干扰性能好

  • 无串音干扰,保密性好,不易被窃听或截取数据

  • 体积小,重量轻

非导向行的传输介质:

无线电波:向所有方向传播,较强穿透能力,可传远距离,广泛用于通信领域(如手机通信)

微波:信号固定方向传播,微波通信频率较高频段范围宽,数据率高,分为地面微波接力通信和卫星通信

红外线、激光:信号固定方向传播,把要传输的信号分别转换为各自的信号格式,即红外光信号和激光信号,再到空间中传播

物理层设备

中继器:

  • 由于存在损耗,在线路上传输的信号功率会逐渐衰减,衰减到一定程度时将造成信号失真,因此会导致接收错误。

  • 中继器对信号进行再生和还原,对衰减的信号进行放大,保持与原数据相同,以增加信号传输的距离,延长网络的长度。

  • 中继器的两端:

    • 两端的网络部分是网段,而不是子网,适用于完全相同的两类网络的互连,且两个网段速率要相同。

    • 中继器只将任何电缆段上的数据发送到另一段电缆上,它仅作用于信号的电气部分,并不管数据中是否有错误数据或不适于网段的数据。

    • 两端可连相同媒体,也可连不同媒体。

    • 中继器两端的网段一定要是同一个协议。

  • 5-4-3规则:

    • 网络标准中都对信号的延迟范围作了具体的规定,因而中继器只能在规定的范围内进行,否则会网络故障。

    • 最多五个网段,只能有四个网络设备(可以是中继器、集线器等),只有三个段中可以挂载计算机

集线器:

  • 也被称为多口中继器,星型拓扑设备。

  • 对信号进行再生放大转发,对衰减的信号进行放大,接着转发到其他所有(除输入端口外)处于工作状态的端口上,以增加信号传输的距离,延长网络的长度。不具备信号的定向传送能力,是一个共享式设备。

  • 不能分割冲突域,连载集线器上的工作设备平分带宽。

数据链路层

功能概述

结点:主机、路由器

链路:网络中两个结点之间的物理通道

数据链路:网络中两个结点之间的逻辑通道

帧:链路层的协议数据单元,封装网络层数据报

负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。(搬运工)

功能:

  • 为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务(有连接一定有确认)

  • 链路管理,即连接的建立、维持、释放(用于面向连接的服务)

  • 组帧

  • 流量控制

  • 差错控制(帧错/位错)

封装成帧和透明传输

封装成帧:

  • 封装成帧就是在一段数据的前后部分添加首部和尾部,这样就形成了一个帧。

  • 接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。

  • 首部和尾部包含许多控制信息,他们的一个重要作用:帧定界(确定帧的界限)

  • 帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。

  • 组帧的四种方法:1.字符计数法,2.字符(节)填充法,3.零比特填充法,4.违规编码法

透明传输:

  • 透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。

  • 因此,链路层就“看不见”有什么妨碍数据传输的东西。

  • 当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。

字符计数法:

字符填充法:

ESC就是一个转义字符

零比特填充法:

违规编码法:

差错控制(检错编码)

差错的来源:

概括来说,传输中的差错都是由于噪声引起的,分为全局性和局部性噪音。

全局性:由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。

解决办法:提高信噪比来减少或避免干扰。(对传感器下手)

局部性:外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。

解决办法:通常利用编码技术来解决。

差错的分类:

  • 位错 比特位出错,1变0,0变1

  • 帧错

    • 失去

    • 重复

    • 失序

位错的差错控制:

  • 检错编码

    • 奇偶校验码

      • 奇校验 1的个数为奇数

      • 偶校验 1的个数为偶数

    • CRC循环冗余码

      • FCS的生成以及接收端CRC检验都是由硬件实现,处理很迅速,因此不会延误数据的传输。

  • 纠错编码

    • 海明校验码

差错控制(纠错编码)

海明距离:两个合法编码(码字)的对应比特取值不同的比特数称为这两个码字的海明距离(码距),一个有效编码集中,任意两个合法编码(码字)的海明距离的最小值称为该编码集的海明距离(码距)。

海明校验过程:

  • 确定校验码位数r

    • 数据/信息有m位,冗余码/校验码有r位

    • 校验码一共有2^r种取值

    • 2^r >= m+r+1(海明不等式)

  • 确定校验码和数据的位置

  • 求出校验码的值

  • 检错并纠错

流量控制与可靠传输机制

流量控制:

  • 较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。

  • 数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的

  • 数据链路层流量控制手段:接收方收不下就不回复确认。

  • 传输层流量控制手段:接收端给发送端一个窗口公告

流量控制的方法:

  • 停止等待协议,每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧。(效率低)发送窗口大小=1 接受窗口大小=1

  • 滑动窗口协议

    • 后退N帧协议(GBN)发送窗口大小>1 接受窗口大小=1

    • 选择重传协议(SR)发送窗口大小>1 接受窗口大小>1

可靠传输:发送端发啥,接收端收啥

流量控制:控制发送速率,使接收方有足够的缓冲空间来接收每一个帧。

滑动窗口解决:流量控制(收不下就不给确认,想发也发不了) 可靠传输(发送方自动重传)

停止-等待协议

为什么要有停止等待协议?

除了比特位发生差错,底层信道会发生丢包问题,为了实现流量控制。

丢包:物理线路故障、设备故障、病毒攻击、路由信息错误等原因,会导致数据包的丢失。

研究停等协议的前提?

虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据(接收方)。

因为是在讨论可靠传输的原理,所以并不考虑数据是在哪一个层次上传送的。

“停止-等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。

无差错情况:

每发送1个数据帧就停止并等待,因此用1bit来编号就够了

ACK:确认帧

数据帧丢失或检测到帧出错:

  • 发完一个帧后,必须保留他的副本

  • 数据帧和确定帧必须编号

ACK丢失:

ACK迟到:

性能分析:

简单但是信道利用率太低

信道利用率:

发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。

信道吞吐率=信道利用率*发送方的发送速率

后退N帧协议(GBN)

GBN发送方必须响应的三件事:

  • 上层的调用

    • 上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)。

  • 收到了一个ACK

    • GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和它之前的全部帧。

  • 超时事件

    • 协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有已发送但未被确认的帧。

GBN接收方要做的事情:

  • 如果正确收到n号帧,并且按序,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。

  • 其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum(下一个按序接收的帧序号)。

运行中的GBN:

滑动窗口长度:

若采用n个比特对帧编号,那么发送窗口的尺寸WT应满足:1≤WT≤2n-1。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。

重点总结:

  • 累积确认(偶尔捎带确认)

  • 接收方只按顺序接收帧,不按序则抛弃

  • 确认序列号最大的、按序到达的帧

  • 发送窗口最大为(2^n)-1,接收窗口大小为1

性能分析:

  • 优点:因连续发送数据帧而提高了信道利用率

  • 缺点:在重传时必须把原来已经正确传送的数据帧重传,是传送效率降低。

选择重传协议(SR)

解决办法GBN的缺点:设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧。

解决办法:设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧。

选择重传协议中的滑动窗口:

SR发送方必须响应的三件事:

  • 上层的调用

    • 从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。

  • 收到了一个ACK

    • 如果收到ACK,加入该帧序号在窗口内,则SR发送方将那个被确认的帧标记为已接收。如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。

  • 超时事件

    • 每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。

SR接收方要做的事:

  • SR接收方将确认一个正确接收的帧而不管其是否按序。

  • 失序的帧将被缓存,并返回给发送方一个该帧的确认帧【收谁确认谁】,直到所有帧(即序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口

  • 如果收到了窗口序号为(小于窗口下届)的帧,就返回一个ACK,其他情况就忽略该帧

运行中的SR:

滑动窗口长度:

  • 发送窗口最好等于接收窗口。(大了会溢出无法判断是重传的还是开始的帧,小了没意义)

  • W发送窗口=W接受窗口=2^(n-1)

SR协议重点总结:

  • 对数据帧逐一确认,收一个确认一个

  • 只重传出错帧

  • 接收方有缓存

  • W发送窗口=W接受窗口=2^(n-1)

信道划分介质访问控制

传输数据使用的两种链路:

点对点链路:

两个相邻节点通过一个链路相连,没有第三者。应用:PPP协议,常用于广域网

广播式链路:

所有主机共享通信介质,应用:早期的总线以太网、无线局域网,常用于局域网 典型拓扑结构:总线型、星型(逻辑总线型)

介质访问控制:

采取一定的措施,使得两对节点之间的通信不会发生相互干扰的情况。

  • 静态划分信道,信道划分介质访问控制

    • 频分多路复用 FDM

    • 时分多路复用 TDM

    • 波分多路复用 WDM

    • 码分多路复用 CDM

  • 动态分配信道

    • 轮询访问介质

      • 令牌传递协议

    • 随机访问介质访问控制

      • ALOHA协议

      • CSMA协议

      • CSMA/CD协议

      • CSMA/CA协议

信道划分介质访问控制:

将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开。把时域和频域资源合理地分配给网络上的设备。

多路复用技术:

  • 把多个信号组合在一条物理信道上进行传输,是的多个信号机或终端设备共享信道资源,提高信道利用率。

  • 把一条广播信道,逻辑上分成几条用于两个节点之间通信的互不干扰的子信道,实际就是把广播信道转变为点对点信道。

频分多路复用FDM:

  • 用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。

  • 频分复用的所有用户在同样的时间占用不同的带宽资源。

  • 充分利用传输介质带宽,系统效率较高,由于技术比较成熟,实现也比较容易。

  • 类似于并行。

时分多路复用TDM:

  • 将时间划分为一段段等长的时分复用帧。

  • 每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙,所有用户轮流占用信道。

  • 类似于并发。

改进的时分复用——统计时分复用STDM:

波分多路复用VDM:

  • 波分多路复用就是光的频分多路复用,在一根光纤中传输多种不同波长的光信号

  • 由于波长不同,所以各路光纤互不干扰,最后再用波长分解复用器将各路波长分解出来。

码分多路复用CDM:

CDMA:码分多址是码分复用的一种方式

1个比特分为多个码片/芯片,每一个站点被指定一个唯一的m位的芯片序列,发送1时发送芯片序列(通常把0写成-1)

过程:

  • 多个站点同时发送数据的时候,要求各个站点芯片序列相互正交,规格化内积为0

  • 两个向量到了公共信道上,线性相加

  • 数据分离:合并的数据和源站规格化内积。

ALOHA协议

动态媒体接入控制/多点加入特点:信道并非在用户通信时固定分配给用户。

随机访问介质访问控制:所有用户可随机发送信息,发送信息时占全部带宽,会产生不协调产生的冲突。

纯ALOHA协议:

纯ALOHA协议思想:不监听信道,不按时间槽发送,随机重发。想发就发

冲突如何检测:如果发生冲突,接收方在就会检测出差错,然后不予确认,发送方在一定时间内收不到就判断发生冲突。

冲突如何解决:超时后等一随机时间再重传。

时隙ALOHA协议:

时隙ALOHA协议的思想:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。控制想发就发的随意性。

总结:

  • 纯ALOHA比时隙ALOHA吞吐量更低,效率更低。

  • 纯ALOHA想发就发,时隙ALOHA只有在时间片段开始时才能发。

CSMA协议

全名:载波监听多路访问协议CSMA(carrier sense multiple access)

CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据

当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。

当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。

MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。

协议思想:发送帧之前,监听信道。

监听结果:

  • 信道空闲:发送完整帧

  • 信道忙:推迟发送

1-坚持CSMA:

坚持指的是对于监听信道忙之后的坚持。

1-坚持CSMA思想:

  • 如果一个主机要发送消息,那么它先监听信道。

  • 空闲则直接传输,不必等待。

  • 忙则一直监听,直到空闲马上传输。

  • 如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程。

优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。

缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。

非坚持CSMA:

非坚持指的是对于监听信道忙之后就不继续监听。

非坚持CSMA思想:

  • 如果一个主机要发送消息,那么它先监听信道。

  • 空闲则直接传输,不必等待。

  • 忙则等待一个随机的时间之后再进行监听。

优点:采用随机的重发延迟时间可以减少冲突发生的可能性。

缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。

p-坚持CSMA:

p-坚持指的是对于监听信道空闲的处理。

p-坚持CSMA思想:

  • 如果一个主机要发送消息,那么它先监听信道。

  • 空闲则以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输。

  • 忙则持续监听直到信道空闲再以p概率发送。

  • 若冲突则等到下一个时间槽开始再监听并重复上述过程。

优点:

  • 既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的这种方案。

  • 但是,发生冲突后还是要坚持把数据帧发送完,造成了浪费。

  • 所以,发明了CSMA/CD协议,可以减少资源浪费,一冲突就能发现。

三种CSMA对比总结:

CSMA/CD协议

全名:载波监听多点接入/碰撞检测CSMA/CD(carrier sense multiple access with collision detection)

CS:载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据。

MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。运用于总线型网络。

CD:碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。运用于半双工网络

为什么还会出现冲突——传播时延对载波监听的影响:

重传时机:

  • 确定基本退避(推迟)时间为争用期2𝜏。

  • 定义参数k,它等于重传次数,但k不超过10,即k=min[重传次数,10]。当重传次数不超过10时,k等于重传次数;当重传次数大于10时,k就不再增大而一直等于10。

  • 从离散的整数集合[0, 1, , 2k-1]中随机取出一个数r,重传所需要退避的时间就是r倍的基本退避时间,即2r 𝜏 。

  • 当重传达16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错。

例如:

  • 第一次重传,k=1,r从{0,1}选;

  • 重传推迟时间为0或2𝜏,在这两个时间中随机选一个;

  • 若再次碰撞,则在第二次重传时,k=2,r从{0,1,2,3}选;

  • 重传推迟时间为0或2𝜏或4𝜏或6𝜏,在这四个时间中随机选一个;

  • 若再次碰撞,则第三次重传时,k=3,r从{0,1,2,3,4,5,6,7}选……

总结:

  • 若连续多次发生冲突,就表明可能有较多的站参与争用信道。

  • 使用此算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而减小发生碰撞的概率,有利于整个系统的稳定。

最小帧长问题:

  • 如果发送了一个很短的帧但是发生了碰撞,但是在发送完毕才检测到了碰撞,无法停止发送,因此衍生出最小帧长。

  • 帧的传输时延至少要两倍于信号在总线中的传播时延。

  • 帧长(bit)/数据传输速率>=2 𝜏

  • 最小帧长=总线传播时延x 数据传输速率x 2 (2𝜏 x 数据传输速率)

  • 以太网规定最短帧长为64B,凡是长度小于64B的都是由于冲突而异常终止的无效帧。

CDMA/CA协议

全名:载波监听多点接入/碰撞避免CSMA/CA(carrier sense multiple access with collision avoidance)

运用场景:

CD协议:总线式以太网

CA协议:无限局域网(无法做到360°全面检测碰撞,当A和C都检测不到信号,认为信道空闲时,同时向终端B发送数据帧,就会导致冲突(隐蔽站))

工作原理:

  • 发送数据前,先检测信道是否空闲。

  • 空闲则发出RTS(request to send),RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;信道忙则等待。

  • 接收端收到RTS后,将响应CTS(clear to send)。(解决隐蔽站的问题)

  • 发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)。

  • 接收端收到数据帧后,将用CRC来检验数据是否正确,正确则响应ACK帧。

  • 发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)。

三个手段:

  • 预约信道

  • ACK帧

  • RTS/CTS帧(可选)

CSMA/CD与CSMA/CA:

相同点:

  • CSMA/CD与CSMA/CA机制都从属于CSMA的思路,其核心是先听再说。

  • 换言之,两个在接入信道之前都须要进行监听。

  • 当发现信道空闲后,才能进行接入。

不同点:

  • 传输介质不同:CSMA/CD 用于总线式以太网【有线】,而CSMA/CA用于无线局域网【无线】。

  1. 载波检测方式不同:因传输介质不同,CSMA/CD与CSMA/CA的检测方式也不同。CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式。

  2. CSMA/CD检测冲突,CSMA/CA避免冲突,二者出现冲突后都会进行有上限的重传。

轮询访问介质访问控制

信道划分介质访问控制(MAC Multiple Access Control )协议:

  • 基于多路复用技术划分资源。

  • 网络负载重:共享信道效率高,且公平

  • 网络负载轻:共享信道效率低

随机访问MAC协议:(会发生冲突)

  • 用户根据意愿随机发送信息,发送信息时可独占信道带宽。

  • 网络负载重:产生冲突开销

  • 网络负载轻:共享信道效率高,单个结点可利用信道全部带宽

轮询访问MAC协议/轮流协议/轮转访问MAC协议:

既要不产生冲突,又要发送时占全部带宽。

  • 轮询协议

  • 令牌传递协议

轮训协议:

主结点轮流“邀请”从属结点发送数据。

问题:

  • 轮询开销

  • 等待延迟

  • 单点故障

令牌传递协议:

  • 令牌:一个特殊格式的MAC控制帧,不含任何信息。

  • 控制信道的使用,确保同一时刻只有一个结点独占信道。

  • 每个结点都可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌。

  • 应用于令牌环网(物理星型拓扑,逻辑环形拓扑)。

  • 采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。

问题:

  • 令牌开销

  • 等待延迟

  • 单点故障

局域网基本概念和体系结构

局域网:

  • 简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道。

  • 特点1:覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内。

  • 特点2:使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高(10Mb/s~10Gb/s)。

  • 特点3:通信延迟时间短,误码率低,可靠性较高。

  • 特点4:各站为平等关系,共享传输信道。

  • 特点5:多采用分布式控制和广播式通信,能进行广播和组播。

  • 决定局域网的主要要素为:网络拓扑,传输介质与介质访问控制方法。

局域网拓扑结构:

总线型拓扑性能相对最好,用得最多

局域网传输介质:

  • 有线局域网 常用介质:双绞线、同轴电缆、光纤

  • 无线局域网 常用介质:电磁波

拓扑结构:

  • CSMA/CD:

    • 常用于总线型局域网,也用于树型网络

  • 令牌总线:

    • 常用于总线型局域网,也用于树型网络

    • 它是把总线型或树型网络中的各个工作站按一定顺序如按接口地址大小排列形成一个逻辑环。只有令牌持有者才能控制总线,才有发送信息的权力。

  • 令牌环:

    • 用于环形局域网,如令牌环网

局域网的分类:

  • 以太网:

    • 以太网是应用最为广泛的局域网,包括标准以太网(10Mbps)、快速以太网(100Mbps)、千兆以太网(1000 Mbps)和10G以太网,它们都符合IEEE802.3系列标准规范。

    • 逻辑拓扑总线型,物理拓扑是星型或拓展星型。使用CSMA/CD

  • 令牌环网:

    • 物理上采用了星形拓扑结构,逻辑上是环形拓扑结构。已是“明日黄花”。IEEE 802.5

  • FDDI网:

    • 物理上采用了双环拓扑结构,逻辑上是环形拓扑结构。

  • ATM网:

    • 较新型的单元交换技术,使用53字节固定长度的单元进行交换。

  • 无线局域网:

    • 采用IEEE 802.11标准。

IEEE 802标准:

  • IEEE 802系列标准是IEEE 802 LAN/MAN 标准委员会制定的局域网、城域网技术标准(1980年2月成立)。

  • 其中最广泛使用的有以太网、令牌环、无线局域网等。

  • 这一系列标准中的每一个子标准都由委员会中的一个专门工作组负责。

MAC子层和LLC子层:

IEEE 802标准所描述的局域网参考模型只对应OSI参考模型的数据链路层与物理层,它将数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层。

以太网

概况:

  • 以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。

  • 以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术。

  • 以太网在局域网各种技术中占统治性地位:

    • 造价低廉(以太网网卡不到100块);

    • 是应用最广泛的局域网技术;

    • 比令牌环网、ATM网便宜,简单;

    • 满足网络速率要求:10Mb/s~10Gb/s.

  • 以太网两个标准:

    • DIX Ethernet V2:第一个局域网产品(以太网)规约。

    • IEEE 802.3:IEEE 802委员会802.3工作组制定的第一个IEEE的以太网标准。(帧格式有一丢丢改动)

  • 802.3局域网=以太网

以太网提供无连接、不可靠的服务:

  • 无连接:发送方和接收方之间无“握手过程”。

  • 不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。

  • 以太网只实现无差错接收,不实现可靠传输。

传输介质和拓扑结构的发展:

  • 传输介质:粗同轴电缆->细同轴电缆->双绞线+集线器

  • 拓扑结构:总线型->星型拓扑

  • 使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是CSMA/CD协议。

  • 以太网拓扑:逻辑上总线型,物理上星型。

10BASE-T以太网:

  • 10BASE-T是传送基带信号的双绞线以太网,T表示采用双绞线,现10BASE-T 采用的是无屏蔽双绞线(UTP),传输速率是10Mb/s。

  • 物理上采用星型拓扑,逻辑上总线型,每段双绞线最长为100m。采用曼彻斯特编码。

  • 采用CSMA/CD介质访问控制。

适配器与MAC地址:

  • 计算机与外界有局域网的连接是通过通信适配器的。

  • 适配器上装有处理器和存储器(包括RAM和ROM)。

  • ROM上有计算机硬件地址MAC地址。

  • 在局域网中,硬件地址又称为物理地址,或MAC地址。【实际上是标识符】

  • MAC地址:每个适配器有一个全球唯一的48位二进制地址,前24位代表厂家(由IEEE规定),后24位厂家自己指定。

  • 常用6个十六进制数表示,如02-60-8c-e4-b1-21。

以太网MAC帧:

最常用的MAC帧是以太网V2的格式。

与IEEE 802.3的区别:

  • 第三个字段是长度/类型

  • 当长度/类型字段值小于0x0600时,数据字段必须装入LLC子层

高速以太网:

  • 100BASE-T以太网

    • 在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE802.3的CSMA/CD协议。

    • 支持全双工和半双工,可在全双工方式下工作而无冲突。 交换机

  • 吉比特以太网

    • 在光纤或双绞线上传送1Gb/s信号。

    • 支持全双工和半双工,可在全双工方式下工作而无冲突。

  • 10吉比特

    • 10吉比特以太网在光纤上传送10Gb/s信号。

    • 只支持全双工,无争用问题。

IEEE 802.11无线局域网

概况:IEEE 802.11是无线局域网通用的标准,它是由IEEE所定义的无线网络通信的标准。

802.11的MAC帧头格式:

AP:无线接入点/基站

无线局域网的分类:

有固定基础设施的无线局域网

无固定基础设施的无线局域网

PPP协议和HDLC协议

广域网:

  • WAN,Wide Area Network,通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。

  • 广域网的通信子网主要使用分组交换技术。

  • 广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。

  • 如因特网(Internet)是世界范围内最大的广域网。

广域网和局域网的区别:

  • 广域网覆盖数据链路层、物理层和网络层,更强调资源共享

  • 局域网仅仅覆盖数据链路层和物理层,更强调数据传输

PPP协议的特点:

  • 点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的数据链路层协议

  • 用户使用拨号电话接入因特网时一般都使用PPP协议

  • 只支持全双工链路。

PPP协议应满足的要求:

  • 简单,对于链路层的帧,无需纠错,无需序号,无需流量控制。

  • 封装成帧,帧定界符

  • 透明传输,与帧定界符一样比特组合的数据应该如何处理:异步线路用字节填充,同步线路用比特填充

  • 多种网络层协议,封装的IP数据报可以采用多种协议。

  • 多种类型链路,串行/并行,同步/异步,电/光….

  • 差错检测,差错检测

  • 检测连接状态,链路是否正常工作。

  • 最大传送单元,数据部分最大长度MTU。

  • 网络层地址协商,知道通信双方的网络层地址。

  • 数据压缩协商

PPP协议不需满足的要求:

  • 纠错

  • 流量控制

  • 序号

  • 不支持多点线路

PPP协议的三个组成部分:

  • 一个将IP数据报封装到串行链路(同步串行/异步串行)的方法。

  • 链路控制协议LCP:建立并维护数据链路连接。 (身份验证)

  • 网络控制协议NCP:PPP可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。

PPP协议的状态图:

PPP协议的帧格式:

HDLC协议:

  • 高级数据链路控制(High-Level Data Link Control或简称HDLC)

  • 是一个在同步网上传输数据、面向比特的数据链路层协议

  • 它是由国际标准化组织(ISO)根据IBM公司的SDLC(SynchronousData Link Control)协议扩展开发而成的

  • 数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现

  • 采用全双工通信

  • 所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高。

HDLC的站——主站、从站、复合站:

  • 主站的主要功能是发送命令(包括数据信息)帧、接收响应帧,并负责对整个链路的控制系统的初启、流程的控制、差错检测或恢复等。

  • 从站的主要功能是接收由主站发来的命令帧,向主站发送响应帧,并且配合主站参与差错恢复等链路控制。

  • 复合站的主要功能是既能发送,又能接收命令帧和响应帧,并且负责整个链路的控制。

  • 三种数据操作方式:

    • 正常响应方式

    • 异步平衡方式

    • 异步响应方式

HDLC的帧格式:

  • 信息帧(I)第1位为0,用来传输数据信息,或使用捎带技术对数据进行确认;

  • 监督帧(S)10,用于流量控制和差错控制,执行对信息帧的确认、请求重发和请求暂停发送等功能

  • 无编号帧(U)11,用于提供对链路的建立、拆除等多种控制功能。

PPP协议&HDLC协议相同点与不同点:

相同点:

  • HDLC、PPP只支持全双工链路

  • 都可以实现透明传输

  • 都可以实现差错检测,但不纠正差错

不同点:

链路层设备

物理层拓展以太网

链路层扩展以太网:

  • 网桥&交换机

  • 网桥根据MAC帧的目的地址对帧进行转发和过滤。

  • 当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。

  • 网段:一般指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)能够直接通讯的那一部分。

  • 网桥优点:

    • 过滤通信量,增大吞吐量。

    1. 扩大了物理范围。

    2. 提高了可靠性。

    3. 可互连不同物理层、不同MAC子层和不同速率的以太网。

透明网桥:“透明”指以太网上的站点并不知道所发送的帧将经过哪几个网桥,是一种即插即用设备,使用自学习的算法。

源路由网桥:

  • 在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部中。

  • 方法:源站以广播方式向欲通信的目的站发送一个发现帧。

  • 类似于走迷宫并记录所有的路径,下次走最短的路径

以太网交换机(多接口网桥):

以太网交换机的两种交换方式:

  • 直通式交换机

    • 查完目的地址(6B)就立刻转发。

    • 延迟小,可靠性低,无法支持具有不同速率的端口的交换。

  • 储存转发式交换机

    • 将帧放入高速缓存,并检查否正确,正确则转发,错误则丢弃。

    • 延迟大,可靠性高,可以支持具有不同速率的端口的交换。

冲突域和广播域:

冲突域:

  • 在同一个冲突域中的每一个节点都能收到所有被发送的帧。

  • 简单的说就是同一时间内只能有一台设备发送信息的范围。

广播域:

  • 网络中能接收任一设备发出的广播帧的所有设备的集合。

  • 简单的说如果站点发出一个广播信号,所有能接收收到这个信号的设备范围称为一个广播域。

网络层

功能概述

网络层的功能和任务:

  • 主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。

  • 网络层传输单位是数据报。

  • 功能

    • 功能一:路由选择与分组转发(最佳路径)

    • 功能二:异构网络互联

    • 功能三:拥塞控制

      • 若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞。

      • 开环控制(静态)

      • 闭环控制(动态)

IP数据报格式

TCP/IP协议栈:

IP数据报格式:

  • 1B=8b

  • 版本:IPv4 / IPv6?

  • 首部长度:单位是4B,最小为5

  • 区分服务:指示期望获得哪种类型的服务

  • 总长度:首部+数据,单位是1B

  • 生存时间(TTL):IP分组的保质期。经过一个路由器-1,变成0则丢弃

  • 协议:数据部分的协议

  • 首部检验和:只检验首部。

  • 源IP地址和目的IP地址:3892位

  • 可选字段:0~40B ,用来支持排错、测量以及安全等措施

  • 填充:全0,把首部补成4B的整数倍

IP数据报分片

最大传送单元MTU:

  • 链路层数据帧可封装数据的上限。

  • 以太网的MTU是1500字节。

  • 如果传输的数据报长度大于MTU就需要分片

IP数据报格式:

  • 标识:同一数据报的分片使用同一标识

  • 标志:只有2位有意义x DF MF

    • 中间位DF(Don’t Fragment):DF=1,禁止分片 DF=0,允许分片

    • 最低位MF (More Fragment):MF=1,后面“还有分片” MF=0,代表最后一片/没分片

  • 片偏移:指出较长分组分片后,某片在原分组中的相对位置

    • 以8B为单位

    • 除了最后一个分片,每个分片长度一定是8B的整数倍

  • 单位:

    • 总长度单位是1B

    • 片偏移单位是8B

    • 首部长度单位是4B

例如:

IPv4地址

IP编址的历史阶段:

  • 分类的IP地址

  • 子网的划分

  • 构成超网(五分类编址方法)

分类的IP地址:

  • IP地址:全世界唯一的32位/4字节标识符,标识路由器主机的接口。

  • IP地址:={<网络号>,<主机号>}

  • 例如:11011111 00000001 00000001 00000001=223.1.1.1(点分十进制)

特殊的IP地址:

私有的IP地址:

网络地址转换(NAT)

定义:Network Address Translation,在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。

子网划分和子网掩码

分类的IP地址的弱点:

  • IP地址空间的利用率有时很低。

  • 两级IP地址不够灵活。

子网划分:

某单位划分子网后,对外仍表现为一个网络,即本单位外的网络看不见本单位内子网的划分。

子网掩码:

使用子网时分组的转发:

路由表中:

  • 目的网络地址

  • 目的网络子网掩码

  • 下一跳地址

路由器转发分组的算法:

  • 提取目的IP地址

  • 是否直接交付(逐位相与)

  • 特定主机路由

  • 检测路由表中有无路径(逐位相与)

  • 默认路由0.0.0.0(回到第一步循环)

  • 丢弃,报告转发分组出错

无分类编址CIDR

为什么使用CIDR:B类地址很快将分配完毕,路由表中的项目急剧增长。

CIDR的特点:

  • 消除了传统的A类,B类和C类地址以及划分子网的概念。

  • 融合子网地址与子网掩码,方便子网划分。

    • CIDR把网络前缀都相同的连续的IP地址组成一个 “CIDR地址块”。

    • 例如:128.14.35.7/20是某CIDR地址块中的一个地址,20表示网络前缀长度

构成超网:

将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合。

方法:将网络前缀缩短(所有网络地址取交集)。

最长前缀匹配:

  • 使用CIDR时,查找路由表可能得到几个匹配结果(跟网络掩码按位相与),应选择具有最长网络前缀的路由。

  • 前缀越长,地址块越小,路由越具体。

ARP协议

发送数据的过程:

为什么要使用ARP协议:

  • 由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址。

  • ARP协议完成主机或路由器IP地址到MAC地址的映射。(解决下一跳走哪的问题)

  • ARP协议是自动进行的。

ARP协议使用过程:

  • 检查ARP高速缓存,有对应表项则写入MAC帧

  • 没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求

  • 目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)

ARP协议4种典型情况:

  • 主机A发给本网络上的主机B:用ARP找到主机B的硬件地址

  1. 主机A发给另一网络上的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址

  2. 路由器发给本网络的主机A:用ARP找到主机A的硬件地址

  3. 路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址

DHCP协议

主机如何获得IP地址:

  • 静态配置,需要配置:

    • IP地址

    • 子网掩码

    • 默认网关

  • 动态配置

    • 用DHCP服务器来分配IP

定义:

  • 动态主机配置协议DHCP是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP。

  • DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租。

工作流程:

  • 主机广播DHCP发现报文(试图找到网络中的服务器,服务器获得一个IP地址)

  • DHCP服务器广播DHCP提供报文(服务器拟分配给主机一个IP地址及相关配置,先到先得)

  • 主机广播DHCP请求报文(主机向服务器请求提供IP地址)

  • DHCP服务器广播DHCP确认报文(正式将IP地址分配给主机)

ICMP协议

TCP/IP协议栈:

网际控制报文协议ICMP:

ICMP差错报文(五种):

  • 重点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报文(无法交付)

  • 源点抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。(拥塞丢数据,现在已经被遗弃了)

  • 时间超过:当路由器收到生存时间TTL=0的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到以个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。(TTL=0)

  • 参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。(首部字段有问题)

  • 改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)

不应发送ICMP差错报文的情况:

  • 对ICMP差错报告报文不再发送ICMP差错报告报文。

  • 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。

  • 对具有组播地址的数据报都不发送ICMP差错报告报文。

  • 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。

ICMP询问报文:

  • 回送请求和回答报文

    • 主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。

    • 测试目的站是否可达以及了解其相关状态。

    • ping + 域名

  • 时间戳请求和回答报文

    • 请某个主机或路由器回答当前的日期和时间。

    • 用来进行时钟同步和测量时间。

  • 掩码地址请求和回答报文(遗弃)

  • 路由器询问和通告报文(遗弃)

ICMP的应用:

  • PING:测试两个主机之间的连通性,使用了ICMP回送请求和回答报文。

  • Traceroute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文。

IPv6

为什么要有IPv6:

  • CIDR和NAT技术治标不治本,IPv6从根本上解决了地址耗尽问题

  • 改进了首部格式

  • 快速处理/转发数据报

  • 支持QoS

IPv6数据报格式:

  • 基本首部40B固定长度,路由器处不能分片

  • 版本:指明了协议版本,总是6。

  • 优先级:区分数据报的类别和优先级。

  • 流标签:“流”是互联网络上从特定源点到特定终点的一系列数据报。

  • 有效载荷长度:所有属于同一个流的数据报都具有同样的流标签。

  • 下一个首部:标识下一个扩展首部或上层协议首部。

  • 跳数限制:相当于IPv4的TTL。

IPv6和IPv4的区别:

  • IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间。

  • IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间。

  • IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率。

  • IPv6支持即插即用(即自动配置),不需要DHCP协议。

  • IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍。

  • IPv6只能在主机处分片,IPv4可以在路由器和主机处分片。

  • ICMPv6:附加报文类型“分组过大”。

  • IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用。

  • IPv6取消了协议字段,改成下一个首部字段。

  • IPv6取消了总长度字段,改用有效载荷长度字段。

  • IPv6取消了服务类型字段。

IPv6地址表示形式:

  • 一般形式:冒号十六进制记法:4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170

  • 压缩形式:多个0用一个0代替。例如:4BF5:0000:0000:0000:BA 5F:039A:000A:2176 -> 4BF5:0:0:0:BA5F:39A:A:2176

  • 零压缩:一连串连续的0可以被一对冒号取代。 例如:FF05:0:0:0:0:0:0:B3 -> FF05::B3(双冒号表示法在一个地址中仅可出现一次。)

IPv6基本地址类型:

  • 单播:一对一通信,可做源地址+目的地址

  • 多播:一对多通信,可做目的地址

  • 任波:一对多中的一个通信,可做目的地址

IPv6向IPv4过渡的策略:

  • 双栈协议

    • 双协议栈技术就是指在一台设备上同时启用IPv4协议栈和IPv6协议栈。

    • 这样的话,这台设备既能和IPv4网络通信,又能和IPv6网络通信。

    • 如果这台设备是一个路由器,那么这台路由器的不同接口上,分别配置了IPv4地址和IPv6地址,并很可能分别连接了IPv4网络和IPv6网络。

    • 如果这台设备是一个计算机,那么它将同时拥有IPv4地址和IPv6地址,并具备同时处理这两个协议地址的功能。

  • 隧道技术

    • 通过使用互联网络的基础设施在网络之间传递数据的方式。

    • 使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。

    • 隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送。

路由算法和路由协议概述

路由算法:

最佳路由:相对于某一种特定要求下得出的相对合理的选择。

路由算法的分类:

  • 静态路由算法(非自适应路由算法)

    • 管理员手工配置路由信息。

    • 简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络。

    • 路由更新慢,不适用大型网络。

  • 动态路由算法(自适应路由算法)

    • 路由器间彼此交换信息,按照路由算法优化出路由表项。

    • 路由更新快,适用大型网络,及时响应链路费用或网络拓扑变化。

    • 算法复杂,增加网络负担。

    • 全局性 链路状态路由算法 OSPF

      • 所有路由器掌握完整的网络拓扑和链路费用信息

    • 分散性 距离向量路由算法 RIP

      • 路由器只掌握物理相连的邻居及链路费用

分层次的路由选择协议:

  • 因特网规模很大

  • 许多单位不想让外界知道自己的路由选择协议,但还想连入因特网

  • 因此产生了自治系统AS

  • 自治系统AS:

    • 在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由

    • 同时还使用一种AS之间的路由协议以确定在AS之间的路由。

    • 一个AS内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通

  • 路由选择协议

    • 内部网关协议IGP 一个AS内使用的(RIP、OSPF)

    • 外部网关协议EGP AS之间使用的(BGP-4)

RIP协议和与距离向量算法

RIP协议:

  • RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单。

  • 距离:通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1

  • 特别的,从一路由器到直接连接的网络距离为1

  • RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达

  • RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)

  • RIP协议只适用于小型互联网

  • 信息交换:仅和相邻路由器交换信息

  • 交换什么:自己的路由表

  • 多久交换一次:每30秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过180s没收到邻居路由器的通告,则判定邻居没了,并更新自己路由表。

  • 路由器刚开始工作时,只知道直接连接的网络的距离(距离为1),接着每一个路由器也只和数目非常有限的相邻 路由器交换并更新路由信息。

  • 经过若干次更新后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址, 即“收敛”。

距离向量算法:

  • 修改相邻路由器发来的RIP报文中所有表项,对地址为X的相邻路由器发来的RIP报文,修改此报文中的所有项目:把“下一跳”字段中的地址改为X,并把 所有的“距离"字段+1

  • 对修改后的RIP报文中的每一个项目,进行以下步骤:

    • R1路由表中若没有Net3,则把该项目填入R1路由表

    • R1路由表中若有Net3,则查看下一跳路由器地址:

      • 若下一跳是X,则用收到的项目替换源路由表中的项目

      • 若下一跳不是X, 原来距离比从X走的距离远则更新,否则不作处理

  • 若180s还没收到相邻路由器X的更新路由表,则把X记为不可达的路由器,即把距离设置为16。

  • 返回

RIP报文格式:

  • RIP是应用层协议, 使用UDP传送数据

  • 一个RIP报文最多可包括25个路由,如超过,必须再用一个RIP报文传送

RIP的特点:

当网络出现故障时,要经过比较长的时间 (例如数分钟) 才能将此信息传送到所有的路由器,“慢收敛”。

OSPF协议与链路状态算法

OSPF协议:

  • 开放最短路径优先OSPF协议:“开放”标明OSPF协议不是受某一家厂商控制,而是公开发表的;

  • “最短路径优先” 是因为使用了Dijkstra提出的最短路径算法SPF。

  • OSPF最主要的特征就是使用分布式的链路状态协议。

OSPF协议的特点:

  • 和谁交换:使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器。 (广播)最终整个区域内所有路由器都得到了这个信息的一个副本。

  • 交换什么:发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度量/代价——费用、距离、时延、带宽等)。

  • 多久交换:只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息。

  • 最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图。

链路状态路由算法:

  • 每个路由器发现它的邻居结点【HELLO问候分组】,并了解邻居节点的网络地址。

  • 设置到它的每个邻居的成本度量metric。

  • 构造【DD数据库描述分组】,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。

  • 如果DD分组中的摘要自己都有,则邻站不做处理;如果有没有的或者是更新的,则发送【LSR链路状态请求分组】 请求自己没有的和比自己更新的信息。

  • 收到邻站的LSR分组后,发送【LSU链路状态更新分组】进行更新。

  • 更新完毕后,邻站返回一个【LSAck链路状态确认分组】进行确认。

只要一个路由器的链路状态发生变化:

  • 泛洪发送【LSU链路状态更新分组】进行更新。

  • 更新完毕后,其他站返回一个【LSAck链路状态确认分组】进行确认。

  • 使用Dijkstra根据自己的链路状态数据库构造到其他节点间的最短路径。

OSPF的区域:

  • 为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫做区域。

  • 每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。

  • 区域也不能太大,在一个区域内的路由器最好不超过 200 个。

OSPF分组:

OSPF直接用IP数据报传送

OSPF的其他特点:

  • 每隔30min,要刷新一次数据库中的链路状态。

  • 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。

  • OSPF不存在坏消息传的慢的问题,它的收敛速度很快

BGP协议

和谁交换:与其他AS的邻站BGP发言人交换信息。

交换什么:交换的网络可达性的信息,即要到达某个网络所要经过的一系列AS。

多久交换:发生变化时更新有变化的部分

BGP协议交换信息的过程:

  • BGP 所交换的网络可达性的信息就是要到达某个网络所要经过的一系列 AS。

  • 当 BGP 发言人互相交换了网络可达 性的信息后,各 BGP 发言人就根据所采用的策略从收到的路由信息中找出到达各 AS 的较好路由。

  • 是树形结构。

BGP协议报文格式:

  • 一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,即通过TCP传送

  • 然后 在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。

BGP协议的特点:

  • BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。

  • 在 BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。

  • 但以后只需要在发生变化时更新有变化的部分。

  • 这样做对节省网络带宽和减少路由器的处理开销都有好处。

BGP-4的四种报文:

  • OPEN(打开)报文:用来与相邻的另一个BGP发言人建立关系,并认证发送方。

  • UPDATE(更新)报文:通告新路径或撤销原路径。

  • KEEPALIVE(保活)报文:在无UPDATE时,周期性证实邻站的连通性;也作为OPEN的确认。

  • NOTIFICATION(通知)报文:报告先前报文的差错;也被用于关闭连接。

三种路由协议比较:

  • RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文来交换路由信息

  • OSPF是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如UDP 或TCP),而是直接采用IP

  • BGP是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP

IP组播

IP数据报的三种传输方式:

  • 单播:单播用于发送数据包到单个目的地,且每发送一份单播报文都使用一个单播IP地址作为目的地址,是一种点对点传输方式。

  • 广播:广播是指发送数据包到同一广播域或子网内的所有设备的一种数据传输方式,是一种点对多点传输方式。

  • 组播(多播):当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分 发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发,是一种点对多点传输方式。

    • 组播提高了数据传送效率

    • 减少了主干网出现拥塞的可能性

    • 组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络

    • 如果有组播路由器的支持,需要运行组播协议的路由器

IP组播地址:

  • IP组播地址让源设备能够将分组发送给一组设备。

  • 属于多播组的设备将被分配一个组播组IP地址(一群共同需求主机的相同标识)

  • 组播地址范围为224.0.0.0~239.255.255.255(D类地址),一个D类地址表示一个组播组。

  • 只能用作分组的目标地址。源地址总是为单播地址。

  • 组播数据报也是“尽最大努力交付”,不提供可靠交付,应用于UDP。

  • 对组播数据报不产生ICMP差错报文。

  • 并非所有D类地址都可以作为组播地址。

硬件组播:

  • 同单播地址一样,组播IP地址也需要相应的组播MAC地址在本地网络中实际传送帧

  • 组播MAC地址以十六进制值01-00-5E打头,余下的6个十六进制位是根据IP组播组地址的最后23位转换得到的

  • TCP/IP 协议使用的以太网多播地址的范围是:从01-00-5E-00-00-00到01-00-5E-7F-FF-FF

  • 收到多播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃

IGMP协议:

  • GMP协议让路由器知道本局 域网上是否有主机(的进程)参加或退出了某个组播组

  • ICMP和IGMP都使用IP数据报传递报文。

IGMP工作的两个阶段:

  • 1.某主机要加入组播组时,该主机向组播组的组播地址发送一个IGMP报文,声明自己要称为该组的成员。

    • 本地组播路由器收到IGMP报文后,要利用组播路由选择协议把这组成员关系发给因特网上的其他组播路由器。

  • 2.本地组播路由器收到IGMP报文后,要利用组播路由选择协议把这组成员关系发给因特网上的其他组播路由器。

    • 只要有一个主机对某个组响应,那么组播路由器就认为这个组是活跃的;

    • 如果经过几次探询后没有一个主机响应,组播路由器就认为本网络上的没有此组播组的主机,因此就不再把这组的成员关系发给其他的组播路由器。

  • 组播路由器知道的成员关系只是所连接的局域网中有无组播组的成员。

组播路由选择协议:

  • 组播路由选择协议目的是找出以源主机为根节点的组播转发树。

  • 构造树可以避免在路由器之间兜圈子。

  • 对不同的多播组对应于不同的多播转发树

  • 同一个多播组,对不同的源点也会有不同的多播转发树

  • 组播路由选择协议常使用的三种算法

    • 基于链路状态的路由选择

    • 基于距离-向量的路由选择

    • 协议无关的组播(稀疏/密集)

移动IP

定义:移动IP技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。

移动节点:具有永久IP地址的移动设备。

归属代理(本地代理):一个移动结点的永久“居所”称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理

永久地址(归属地址/主地址):移动站点在归属网络中的原始地址

外部代理(外地代理):在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。

转交地址(辅地址):可以是外部代理的地址或动态配置的一个地址。

移动IP通信过程:

  • A刚进入外部网络

    • 获得外部代理的转交地址(外部代理广播报文)

    • 移动节点通过外部代理发送注册报文给归属代理(包含永久地址&转交地址)

    • 归属代理接收请求,并将移动节点的永久地址和转交地址绑定(以后到达该归属代理的数据报且要发往移动节点的数据报将被封装并以隧道方式发给转交地址),并返回一注册响应报文。

    • 外部代理接收注册响应,并转发给移动节点。

  • A移动到了下一个网络:

    • 在新外部代理登记注册一个转交地址。

    • 新外部代理给本地代理发送新的转交地址(覆盖旧的)。

    • 通信

  • A回到了归属网络:

    • A向本地代理注销转交地址。

    • 按原始方式通信。

网络层设备

路由器:

定义:路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。

路由选择:根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。

交换结构:根据转发表(路由表得来)对分组进行转发。

分组转发:若收到RIP/OSPF分组等,则把分组送往路由选择处理机; 若收到数据分组,则查找转发表并输出。

输入端口对线路上收到的分组的处理:

输入端口中的查找和转发功能在路由器的交换功能中是最重要的。

输出端口将交换结构传送来的分组发送到线路:

  • 若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入 队列的分组由于没有存储空间而只能被丢弃。

  • 路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。

三层设备的区别:

路由器(网络层):可以互联两个不同网络层协议的网段。

网桥(数据链路层):可以互联两个物理层和链路层不同的网段。

集线器(物理层):不能互联两个物理层不同的网段。

路由表与路由转发:

路由表:根据路由选择算法得出的,主要用途是路由选择,总用软件来实现。

转发表:

  • 由路由表得来,可以用软件实现,也可以用特殊的硬件来实现。

  • 转发表必须包含完成转发功能所必需的信息,在转发表的每一行必须包含从要到达的目的网络到输出端口和某些MAC地址信息的映射。

传输层

功能概述

概述:传输层是只有主机才有的层次,为应用层提供通信服务使用网络层的服务

传输层的功能:

  • 传输层提供进程和进程之间的逻辑通信

  • 复用和分用

    • 复用:应用层所有的应用进程都可以通过传输层使用同一个传输协议再传输到网络层。

    • 分用:传输层从网络层收到数据后交付指明的应用进程。

  • 传输层对收到的报文进行差错检测

  • 传输层的两种协议

传输层的两个协议:

  • 面向连接的传输控制协议TCP

    • 传送数据之前必须建立连接,数据传送结束后要释放连接。不提供广播或多播服务。由于TCP要提供可靠的面向连接的传输服 务,因此不可避免增加了许多开销:确认、流量控制、计时器及连接管理等。

    • 可靠,面向连接,时延大,适用于大文件。

  • 无连接的用户数据报协议UDP

    • 传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认。

    • 不可靠,无连接,时延小,适用于小文件。

传输层的寻址与端口:

端口:

  • 是传输层的SAP,标识主机中的应用进程

  • 端口号只有本地意义,在因特网中不同计算机的相同端口是没有联系的

  • 端口号长度为16bit,能表示65536个不同的端口号

  • 服务端使用的端口号

    • 熟知端口号:0-1023 给TCP/IP最重要的一些应用程序,让所有用户都知道

    • 登记端口号:1024-49151 为没有熟知端口号的应用程序使用的

  • 客户端使用的端口号:49152~65535 仅在客户进程运行时才动态选择

套接字:

  • 在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的一个进程。

  • 套接字Socket=(主机IP地址,端口号)

UDP协议

概述:UDP只在IP数据报服务之上增加了很少功能检测功能。

主要特点:

  • UDP是无连接的,减少开销和发送数据之前的时延

  • UDP使用最大努力交付,即不保证可靠交付。

  • UDP是面向报文的,适合一次性传输少量数据的网络应用。

  • 应用层给UDP多长的报文,UDP就照样发送,即一次发一个完整报文。

  • UDP无拥塞控制,适合很多实时应用。

  • UDP首部开销小,8B,TCP要20B。

UDP首部格式:

分用时,找不到对应的目的端口号,就丢弃报文,并给发送方发送ICMP“端口不可达”差错报告报文。

UDP校验:

  • 伪首部只有在计算检验和时才出现,不向下传送也不向上递交。

  • 17:封装UDP报文的IP数据报首部协议字段是17。

  • UDP长度:UDP首部8B+数据部分长度(不包括伪首部)。

在发送端:

  • 填上伪首部

  • 全0填充检验和字段

  • 全0填充数据部分(UDP数据报要看成许多4B的字串接起来)

  • 伪首部+首部+数据部分采用二进制反码求和

  • 把和求反码填入检验和字段

  • 去掉伪首部,发送

在接收端:

  • 填上伪首部

  • 伪首部+首部+数据部分采用二进制反码求和

  • 结果全为1则无差错,否则丢弃数据报/交给应用层附上出差错的警告。

TCP协议特点和TCP报文段格式

TCP协议特点:

  • TCP是面向连接(虚连接)的传输层协议

  • 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的

  • TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达

  • TCP提供全双工通信

    • 发送缓存:准备发送的数据&已发送但尚未收到确认的数据

    • 接收缓存:按序到达但尚未被接受应用程序读取的数据&不按序到达的数据

  • TCP面向字节流(流:流入到进程或从进程流出的字节序列)

    • TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流

TCP报文段格式:

  • 序号:在一个TCP连接中传送的字节流中的每一个字节都按顺序编号,本字段表示本报文段所发送数据的第一个字节的序号。

  • 确认号:期望收到对方下一个报文段的第一个数据字节的序号。若确认号为N,则证明到序号N-1为止的所有数据都已正确收到。

  • 数据偏移(首部长度):TCP报文段的数据起始处距离TCP报文段的起始处有多远,以4B位单位,即1个数值是4B。

  • 紧急位URG:URG=1时,标明此报文段中有紧急数据,是高优先级的数据,应尽快传送,不用在缓存里排队,配合紧急指针字段使用。

  • 确认位ACK:ACK=1时确认号有效,在连接建立后所有传送的报文段都必须把ACK置为1。

  • 推送位PSH:PSH=1时,接收方尽快交付接收应用进程,不再等到缓存填满再向上交付。

  • 复位RST:RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立传输链接。

  • 同步位SYN:SYN=1时,表明是一个连接请求/连接接受报文。

  • 终止位FIN:FIN=1时,表明此报文段发送方数据已发完,要求释放连接。

  • 窗口:指的是发送本报文段的一方的接收窗口,即现在允许对方发送的数据量。

  • 检验和:检验首部+数据,检验时要加上12B伪首部,第四个字段为6。

  • 紧急指针:URG=1时才有意义,指出本报文段中紧急数据的字节数。

  • 选项:最大报文段长度MSS、窗口扩大、时间戳、选择确认等

TCP连接管理

TCP连接传输的三个阶段:

  • 连接建立

  • 数据传送

  • 连接释放

  • (三次握手)

TCP连接的建立采用客户服务器方式,主动发起连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫服务器。

TCP连接建立:

假设运行在一台主机(客户)上的一个进程想与另一台主机(服务器)上的一个进程建立一条连接,客户应用进程首先通知客户TCP,他想建立一个与服务器上某个进程之间的连接,客户中的TCP会用以下步骤与服务器中的TCP建立一条TCP连接:

步骤:

  • 客户端发送连接请求报文段,无应用层数据。SYN=1,seq=x(随机)

  • 服务器端为该TCP连接分配缓存和变量,并向客户端返回确认报文段,允许连接,无应用层数据。SYN=1,ACK=1,seq=y(随机),ack=x+1

  • 客户端为该TCP连接分配缓存和变量,并向服务器端返回确认的确认,可以携带数据。SYN=0,ACK=1,seq=x+1,ack=y+1

SYN洪泛攻击:

  • SYN洪泛攻击发生在OSI第四层,这种方式利用TCP协议的特性,就是三次握手。

  • 攻击者发送TCP SYN,SYN是TCP三次握手中的第一个数据包,而当服务器返回ACK后,该攻击者就不对其进行再确认,那这个TCP连接就处于挂起状态,也就是所谓的半连接状态,服务器收不到再确认的话,还会重复发送ACK给攻击者。

  • 这样更加会浪费服务器的资源。攻击者就对服务器发送非常大量的这种TCP连接,由于每一个都没法完成三次握手,所以在服务器上,这些TCP连接会因为挂起状态而消耗CPU和内存,最后服务器可能死机,就无法为正常用户提供服务了。

  • 设置SYN Cookie可以防止洪泛攻击

TCP的连接释放:

参与一条TCP连接的两个进程中的任何一个都能终止该连接,连接结束后,主机中的“资源”(缓存和变量)将被释放。

  • 客户端发送连接释放报文段,停止发送数据,主动关闭TCP连接。FIN=1,seq=u

  • 服务器端回送一个确认报文段,客户到服务器这个方向的连接就释放了——半关闭状态。 ACK=1,seq=v,ack=u+1

  • 服务器端发完数据,就发出连接释放报文段,主动关闭TCP连接。FIN=1,ACK=1,seq=w,ack=u+1

  • 客户端回送一个确认报文段,再等到时间等待计时器设置的2MSL(最长报文段寿命)后,连接彻底关闭。 ACK=1,seq=u+1,ack=w+1

TCP可靠传输

可靠:保证接收方进程从缓存区读出的字节流与发送方发出的字节流是完全一样的。

TCP实现可靠传输的机制:

  • 校验(和UDP校验一样,增加伪首部)

  • 序号

  • 确认

  • 重传

序号:一个字节占一个序号。序号字段指的是一个报文段第一个字节的序号。

确认:

重传:

超时重传:确认重传不分家,TCP的发送方在规定的时间内没有收到确认就要重传已发送的报文段。

TCP采用自适应算法,动态改变重传时间RTTs(加权平均往返时间)。

冗余ACK(冗余确认):

每当比期望序号大的失序报文段到达时,发送一个冗余ACK,指明下一个期待字节的序号。

eg:发送方已发送1,2,3,4,5报文段

接收方收到1,返回给1的确认(确认号为2的第一个字节)

接收方收到3,仍返回给1的确认(确认号为2的第一个字节)

接收方收到4,仍返回给1的确认(确认号为2的第一个字节)

接收方收到5,仍返回给1的确认(确认号为2的第一个字节)

快速重传:发送方收到3个对于报文段1的冗余ACK,则认为2报文段丢失,重传2号报文段

TCP流量控制

流量控制:让发送方慢点,要让接收方来得及接收,TCP利用滑动窗口机制实现流量控制

  • 在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小

  • 即接收窗口rwnd(接收方设置确认报文段的窗口字段来将rwnd通知给发送方)

  • 发送方的发送窗口取接收窗口rwnd和拥塞窗口cwnd的最小值。

流量控制过程:

A向B发送数据,连接建立时,B告诉A:“我的rwnd=400(字节)”,设每一个报文段100B,报文段序号初始值为1。

避免主机AB相互等待:

  • TCP为每一个连接设有一个持续计时器,只要TCP连接的一方收到对方的零窗口通知,就启动持续计时器。

  • 若持续计时器设置的时间到期,就发送一个零窗口探测报文段。

  • 接收方收到探测报文段时给出现在的窗口值。

  • 若窗口仍然是0,那么发送方就重新设置持续计时器。

TCP拥塞控制

出现拥塞的条件:

  • 对资源需求的总和>可用资源

  • 网络中有许多资源同时呈现供应不足网络性能变坏网络吞吐量将随输入负荷增大而下降

拥塞控制:防止过多的数据注入到网络中,全局性的问题(流量控制时本位的问题)

拥塞控制的四种算法:

  • 慢开始

  • 拥塞避免

  • 快重传

  • 快恢复

假设:

  • 数据单方向传送,而另一个方向只传送确认

  • 接收方总是有足够大的缓存空间,因而发送窗口大小取决于拥塞程度

接收窗口:接收方根据接受缓存设置的值,并告知给发送方,反映接收方容量。

拥塞窗口:发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络当前容量。

发送窗口:发送窗口=Min{接收窗口rwnd,拥塞窗口cwnd}

慢开始和拥塞避免:

传输轮次:

  • 发送了一批报文段并收到它们的确认的时间

  • 一个往返时延RTT。

  • 开始发送一批拥塞窗口内的报文段到开始发送下一批拥塞窗口内的报文段的时间。

快重传和快恢复:

新的ssthresh值为拥塞处/2

应用层

网络应用模型

应用层:应用层对应用程序的通信提供服务。

应用层协议定义:

  • 应用进程交换的报文类型,请求还是响应?

  • 各种报文类型的语法,如报文中的各个字段及其详细描述。

  • 字段的语义,即包含在字段中的信息的含义。

  • 进程何时、如何发送报文,以及对报文进行响应的规则。

应用层的功能:

  • 文件传输、访问和管理 FTP协议

  • 电子邮件 SMTP POP3

  • 虚拟终端 HTTP

  • 查询服务和远程作业登录 DNS

网络应用模型:

  • 客户/服务器模型(C/S)

  • P2P模型

客户/服务器模型(C/S):

服务器:提供计算服务的设备。

  • 永久提供服务

  • 永久性访问地址/域名

客户机:请求计算服务的主机。

  • 与服务器通信,使用服务器提供的服务

  • 间歇性接入网络

  • 可能使用动态IP地址

  • 不与其他客户机直接通信

应用:Web,文件传输FTP,远程登录,电子邮件

P2P模型:

  • 不存在永远在线的服务器

  • 每个主机既可以提供服务,也可以请求服务

  • 任意端系统/节点之间可以直接通讯

  • 节点间歇性接入网络

  • 节点可能改变IP地址

  • 可拓展性好

  • 网络健壮性强

DNS系统

DNS服务的作用:将域名解析成IP地址。

域名:

域名服务器:

域名解析过程:

递归查询:靠别人(下层的域名服务器)

迭代查询:靠自己(本地域名服务器)

高速缓存:存储最近查过的域名,下次要查的时候直接进去就可以了

文件传送协议FTP

文件传输协议:

  • FTP(文件传送协议)

    • 提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。

  • TFTP(简单文件传送协议)

FTP服务器和用户端:

  • FTP是基于客户/服务器(C/S)的协议。

  • 用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。

  • 依照FTP 协议提供服务,进行文件传送的计算机就是FTP 服务器。

  • 连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。

FTP工作原理:

  • 登录(输入ftp地址、用户名、密码)

    • 匿名登录:互连网中有很大一部分FTP 服务器被称为“匿名”(Anonymous)FTP 服务器。这类服务器的目的是向公众提供文件拷贝服务,不要求用户事先在该服务器进行登记注册,也不用取得FTP服务器的授权。

    • Anonymous(匿名文件传输)能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“anonymous”登录FTP服务,就可访问远程主机上公开的文件。

  • FTP服务

    • 一个主进程

    • n个从属进程

  • FTP传输模式

    • 文本模式:ACSII模式,以文本序列传输数据

    • 二进制模式:Binary模式,以二进制序列传输数据

电子邮件

电子右键的信息格式:

  • 信封 xx@xx

  • 内容

    • 首部

      • To: xxx@xx

      • Subject: Hello!

    • 主体

      • 写信的内容

组成结构:

用户代理功能:

  • 撰写

  • 显示

  • 处理

  • 通信

邮件服务器功能:

  • 发送&接受邮件

  • 向发件人报告邮件传送结果

发件、收件过程:

简单邮件传输协议SMTP:

  • SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息。

  • 负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的进程就是SMTP服务器。

  • SMTP规定了14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)

  • SMTP通信的三个阶段

    • 连接建立

    • 邮件传送

    • 连接释放

MIME:

SMTP的缺点:

  • SMTP不能传送可执行文件或者其他二进制对象。

  • SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字。

  • SMTP服务器会拒绝超过一定长度的邮件。

使电子邮件系统可以支持声音、图像、视频、多种国家语言等等。

邮局协议POP3:

TCP连接 端口号110 C/S模式

工作模式:下载并保留(在服务器)、下载并删除

网际报文存取协议IMAP:

  • IMAP协议比POP协议复杂

  • 当用户Pc上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,若用户需要打开某个邮件,该邮件才上传到用户的计算机上

  • IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件,还允许只读取邮件中的某一个部分(先看正文,有WiFi的时候再下载附件)

基于万维网的电子邮件:

特点:方便

万维网和HTTP协议

万维网:

  • WWW(World Wide Web)是一个大规模的、联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合。

  • 用户通过点击超链接(百度一下,你就知道)获取资源,这些资源通过超文本传输协议(HTTP)传送给使用者。

  • 万维网以客户/服务器方式工作,用户使用的浏览器就是万维网客户程序,万维网文档所驻留的主机运行服务器程序。

  • 万维网使用超文本标记语言HTML,使得万维网页面设计者可以很方便地从一个界面的链接转到另一个界面,并能够在自己的屏幕上显示出来。

URL:统一资源定位符可以转换为资源(文字、视频、音频)

URL一般形式:<协议>://<主机>:<端口>/<路径> 协议为http/ftp 主机填写ip地址/域名 url不区分大小写

超文本传输协议HTTP:

HTTP协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。

HTTP协议的特点:

  • HTTP协议是无状态的

  • 但是在实际工作中,一些万维网站点常常希望能使用Cookie识别用户

  • Cookie是存储在用户主机中的文本文件,记录一段时间内某用户(使用识别码识别,如“123456”)的访问记录,以此提供个性化服务

  • HTTP采用TCP作为运输层协议,但HTTP协议本身是无连接的(通信双方在交换HTTP报文之前不需要先建立HTTP连接)

HTTP的连接方式:

  • 持久连接(keep-alive)

    • 非流水线

    • 流水线

  • 非持久连接(close)

报文结构:

  • 请求报文

  • 响应报文

HTTP报文是面向文本的,因此在报文中的每一个字段都是一些ASCII码串。

状态码:(共33种)

  • 1xx表示通知信息的,如请求收到了或正在处理。

  • 2xx表示成功,如接受或知道了。例如:202 Accepted

  • 3xx表示重定向,如要完成请求还必须采取进一步的行动。例如:301 Moved Permanently

  • 4xx表示客户的差错,如请求中有错误的语法或不能完成。例如:404 Not Found

  • 5xx表示服务器的差错,如服务器失效无法完成请求。

本文标签: 王道 计算机网络