一、概述
网络把许多计算机连接在一起,而互连网则把许多网络通过路由器连接在一起。与网络相连的计算机称为主机。
1.1 网络、互连网与因特网(互联网)
- 若干节点和链路互连形成网络(节点:路由器、集线器、交换机、计算机等)
- 若干网络通过路由器互连形成互连网
- 因特网是当今世界上最大的互连网
1.1.1 Internet 和internet的区别
- internet:互连网,通用名词
- Internet:互联网(因特网),专有名词,指当前全球最大的、开放的、由众多网络相互连接而成的特定互连网,它采用TCP/IP协议族作为通信的规则。
1.2 因特网简介
1.2.1 因特网发展的三个阶段
1.2.2 ISP、IXP、内容提供者
(1)不同层次的ISP(互联网服务提供者):主干ISP,地区ISP,本地ISP
- 主干ISP:彼此之间可以互通
- 地区ISP:通过一个或多个主干ISP连接起来
- 本地ISP:给用户提供直接的服务。可连接到地区ISP也可直接连接主干ISP
(2)互联网交换点 IXP
- 允许两个网络直接相连并交换分组,而不需要通过第三个网络来转发分组(如地区ISP之间通过IXP连接,而不需要通过主干ISP)
(3)内容提供者
- 定义:在互联网上向所有用户提供视频文件的公司
- 这些公司都有独立于互联网的专门网络,并且能够和各级ISP以及IXP相连。
1.3 互联网的标准化工作
- 因特网的标准化工作是面向公众的,其任何一个建议标准在成为因特网标准之前都以RFC技术文档的形式在因特网上发表。
- RFC(Request For Comments)的意思是“请求评论”。任何人都可以从因特网上免费下载RFC文档(http://www.ietf.org/rfc.html),并随时对某个RFC文档发表意见和建议。
1.3.1 制订互联网的正式标准三阶段
(1)互联网草案:不是RFC文档
(2)建议标准:成为RFC文档
(3)互联网标准:某个建议标准可以成为互联网标准后,就给它分配一个标准编号。
一个互联网标准可以和多个RFC文档关联。
1.4 互联网的组成
从互联网的工作方式上看,划分为边缘部分和核心部分。
1.4.1 边缘部分
由所有连接在互联网上的主机组成。是用户直接使用的,用来通信和资源共享。
(1)客户-服务器方式(C/S方式):
客户是服务请求方,服务器是服务提供方。
提供一个长期在线的服务器,客户机间无需直接通信
(2)对等方式(P2P):
两主机通信时不区分哪个是服务请求方,哪个是服务提供方。
同一端系统既可以作为主机也可以作为服务器。
没有长期在线的服务器,任意端系统间可以直接进行通信。
1.4.2 核心部分
- 由大量网络和连接这些网络的路由器组成。是为边缘部分提供服务的。
- 起核心作用的是路由器,一种专用计算机(不能被称为主机),是实现交换分组的关键构件,任务是转发收到的分组。
1.4.2.1 电路交换、分组交换和报文交换
(1)电路交换
- 缺点: 计算机之间的数据传送是突发式的,当使用电路交换来传送计算机数据时,其线路的传输效率一般都会很低,线路上真正用来传送数据的时间往往不到10%甚至1%。
- 特点:在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。
- 三步骤
(2)分组交换
利用存储转发技术,把一个报文划分为几个分组后再进行传送。
- 分组:将报文划分为几个等长的数据段,在一个数据段前面加上必要控制信息组成的首部后,构成了一个分组。分组是互联网中传送的数据单元。
- 优缺点:
(3)报文交换
(4)三种交换方式的对比
1.5 计算机网络的类别
1.5.1 计算机网络的定义
计算机网络主要是由一些通用的、可编程的硬件互连而成的。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
1.5.2 计算机网络的分类
(1)交换方式:
电路交换、报文交换、分组交换
(2)使用者
公用网、专用网(军队、铁路、电力、银行)
(3)传输介质
有线网络、无线网络
(4)覆盖范围
(5)拓扑结构
总线型、星型、环形、网状型
1.6 计算机网络的性能指标
(1)速率
速率是指数据的传送速率(即每秒传送多少个比特),也称为数据率或比特率。
(2)带宽
- 带宽在模拟信号系统中的意义:某个信号所包含的各种不同频率成分所占据的频率范围(如带宽3.1kHz(300Hz~3.4kHz))
- 带宽在计算机网络中的意义:用来表示网络的通信线路所能传送数据的能力,即在单位时间内网络中的某信道所能通过的最高数据率。
(3)吞吐量
吞吐量是指在单位时间内通过某个网络或接口的实际数据量。吞吐量受网络带宽的限制。
(4)时延
总时延=发送时延+传播时延+处理时延+排队时延
发送速率 = min [主机接口速率,线路带宽,交换机或路由器的接口速率]
- 传播时延:电磁波在信道中传播一定距离需要花费的时间。
- 处理时延:主机或路由器在收到分组时要花费一定的时间进行处理
- 排队时延:分组进入路由器后,要在输入队列中等待处理,在输出队列中等待转发。
(5)时延带宽积
- 时延带宽积=传播时延×带宽。
- 链路的时延带宽积也称为以比特为单位的链路长度。
(6)往返时间
往返时间(RTT)是指从发送端发送完数据分组开始,到发送端刚收到接收端发来的相应确认分组为止,总共耗费的时间。
(7)利用率
- 链路利用率:是指某条链路有百分之几的时间是被利用的(即有数据通过)。
- 完全空闲的链路的利用率为零。
- 网络利用率:是指网络中所有链路的链路利用率的加权平均。
- 一些大型ISP往往会控制信道利用率不超过50%。如果超过了就要进行扩容,增大线路的带宽。
(8)丢包率
丢包率是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率。
1.7 计算机网络体系结构
1.7.1 常见的三种计算机网络体系结构
- 应用层:为应用软件提供服务。
- 表示层:为应用层进程提供格式化表示和转换数据服务。
- 会话层:建立及管理会话。
- 运输层:解决进程之间基于网络的通信问题
- 网络层:解决数据包在多个网络之间传输和路由的问题
- 数据链路层:解决数据包在一个网络或一段链路上的传输问题。
- 物理层:在物理媒体上传输原始的数据比特流。
1.7.2 计算机网络体系结构分层的必要性
- 计算机网络是个非常复杂的系统,“分层”可将庞大复杂的问题转化为若干较小的局部问题,便于研究和处理。
- 分层能带来很多好处:各层之间是独立的、灵活性好、结构上可分割、易于实现和维护、能促进标准化工作、差错控制、流量控制、分段和重装、复用和分用、连接建立和释放。
1.7.3 协议与划分层次
(1)协议
- 定义:为进行网络中的数据交换而建立的规则、标准或约定称为网络协议(协议)
- 协议是控制两个(或多个)对等实体在“水平方向” 进行“逻辑通信”的规则的集合
(2)协议三要素
1.7.4 具有五层协议的体系结构
OSI参考模型把对等层次之间传送的数据单位称为该层的协议数据单元PDU
(1)应用层
- 任务:通过应用进程间的交互来完成特定网络应用
- 应用层协议:应用进程间通信和交互的规则(进程:主机中正在运行的程序)
- 应用层协议:域名系统DNS、支持万维网应用的HTTP协议、支持电子邮件的SMTP 协议、支持文件传送的FTP协议
- 应用层交互的数据单元:报文
(2)运输层
- 任务:解决进程之间基于网络的通信问题
- 复用、分用功能:
- 复用:多个应用层进程同时使用运输层的服务
- 分用:运输层把收到的信息分别交付给应用层的相应程序
传输控制协议TCP:提供面向连接的、可靠的数据传输服务
数据传输单位:报文段
用户数据报协议UDP:提供无连接的、尽最大努力的不可靠的数据传输服务
数据传输单位:用户数据报
(3)网络层(网际层/IP层)
- 任务:解决数据包在多个网络之间传输和路由的问题
- 网络层把报文段或用户数据报封装成分组或包进行传送
- 数据传输单位:(分组==IP数据报==)数据报
- 使用IP协议
(4)数据链路层(链路层)
- 任务:解决数据包在一个网络或一段链路上的传输问题
- 将IP数据报封装成帧,在相邻节点的链路上传送帧。
- 数据传送单位:帧
- 每一帧包括数据和必要的控制信息(如同步、地址、差错控制信息等)
(5)物理层
- 任务:确定与传输媒体的接口有关的一些特性
- 数据传输单位:比特
- 传递信息所用的物理传输媒体:双绞线、同轴电缆、光缆、无线信道等,并不在物理层协议之内。
1.7.5 实体、协议、服务、服务访问点
(1)实体
- 实体:指任何可发送或接收信息的硬件或软件进程。
- 对等实体:指通信双方相同层次中的实体。
(2)协议
- 协议:是控制两个(或多个)对等实体在“水平方向”进行“逻辑通信”的规则的集合
(3)服务和协议的区别和关系
- 1.区别:
- 协议是“水平”的,即协议是控制对等实体之间的通信规则。
- 而服务是“垂直”的,即服务是由下层向上层通过层间接口提供的。
- 实体看得见下层提供的服务而无法看见下层的协议。下层的协议对上层的实体是“透明”的。
2.关系:
- 在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。
(4)服务
- 在同一系统中相邻两层的实体交换信息的逻辑接口称为服务访问点SAP,它被用于区分不同的服务类型。
- 上层要使用下层所提供的服务,必须通过与下层交换一些命令,这些命令称为服务原语。
二、物理层
2.1 物理层概述
2.1.1 物理层接口特性
2.2 物理层下面的传输媒体
2.2.1 传输媒体的分类
- 传输媒体是计算机网络设备之间的物理通路,也称为传输介质或传输媒介。
- 传输媒体并不包含在计算机网络体系结构中。
(1)导向型传输媒体
电磁波被导引着沿着固体媒体(铜或光纤)传播。
(2)非导向型传输媒体:指自由空间
2.3 传输方式
2.3.1 串行传输和并行传输
2.3.2 同步传输和异步传输
2.4 数据通信基本知识
2.4.1 信号种类
(1)模拟信号(连续信号):消息的参数的取值是连续的
(2)数字信号(离散信号):消息的参数的取值是离散的。
- 代表不同离散数值的基本波形就称为码元。(码元携带的信息量不确定)
2.4.2 计算机传输模式
- 信道:向某一方向传送信息的媒体
- 一个通信电路通常包含一条发送信道和一条接收信道
(1)单向通信
只能有一个方向的通信而没有反方向的交互
(2)双向交替通信
通信双方都可以发送消息,但不能同时发送
(3)双向同时通信
通信双方能同时发送和接收消息
2.4.3 编码与调制
- 信源(发送端)的信号称为基带信号(属于数字信号),许多信道并不能传输基带信号的低频和直流分量,因此要对基带信号进行调制。
调制分为两类:编码(基带调制)和带通调制
(1)编码(数字信道)
仅仅对基带信号进行波形变换,变换后的信号仍是基带信号。
(2)带通调制(模拟信道)
使用载波进行调制,把基带信号的频率搬到较高的频段,并转换为模拟信号。
2.4.3.1 常用的编码方式
10BaseT以太网使用的是曼彻斯特编码
2.4.3.2 常用的带通调制方式
2.5 信道的极限容量
2.5.1 造成信号失真的主要因素
2.5.2 奈氏准则
(1)码间串扰:
在接收端接收到的信号波形失去了码元之间的清晰界限,这种现象称为码间串扰
(2)奈氏准则:
理想(无噪声情况)低通信道的最高码元传输速率= 2W Baud=2W 码元/秒
W:信道的频率带宽(单位为Hz)
Baud:波特,即码元/秒
- 只要码元传输速率不超过根据奈氏准则计算出的上限,就可以避免码间串扰。
- 使用奈氏准则给出的公式,就可以根据信道的频率带宽,计算出信道的最高码元传输速率。
(3)码元传输速率:
又称为波特率、调制速率、波形速率或符号速率。
(4)波特率和比特率的关系
数据传播速率(比特率) = 波特率×每个码元的比特数
2.5.3 香农公式
(1)提高信息传输速率的方法
- 提高信道中的信噪比
- 让每个码元携带更多的比特信息量
(2)奈氏准则:采用更先进的编码技术,让每个码元携带更多比特的信息量
香农公式:在有噪声实际信道中,不可能突破香农公式给出的极限信息传输速率
2.6 信道复用技术
2.6.1 信道复用技术的基本原理
- 复用就是在一条传输媒体上同时传输多路用户的信号。
- 当一条传输媒体的传输容量大于多条信道传输的总容量时,就可以通过复用技术,在这条传输媒体上建立多条通信信道,以便充分利用传输媒体的带宽。
2.6.2 常见的信道复用技术
(1)频分复用FDM
- 频分复用的所有用户同时占用不同的频带资源(频带资源)并行通信:
n路信号在一个信道中传送,采用调制,将各路信号分别搬移至适当的频率位置。
(2)时分复用TDM
时分复用的所有用户在不同的时间占用同样的频带
(3)波分复用WDM
- 波分复用WDM就是光的频分复用
- 可在一根光纤上同时传输多个频率(波长)相近的光载波信号,实现基于光纤的频分复用技术。
(4)码分复用CDM
CDMA的每个用户可以在相同的时间使用相同的频带进行通信
- 码分复用CDM常称为码分多址CDMA。
- CDMA将每个比特时间划分为m个更短的时间片,称为码片。m的取值通常为64或128。
- CDMA中的每个站点都被指派一个唯一的m比特码片序列
1.某个站要发送比特1,则发送它自己的m比特码片序列;
2.某个站要发送比特0,则发送它自己的m比特码片序列的反码。
- 为了从信道中分离出每个站的信号,给每个站指派码片序列时,必须遵循以下规则:
1.分配给每个站的码片序列必须各不相同,实际常采用伪随机码序列。
2.分配给每个站的码片序列必须相互正交,即各码片序列相应的码片向量之间的规格化內积为0。
1.计算公式
① 不同站码片向量的规格化内积都为0
② 两个相同的码片向量的规格化内积为1
③ 一个码片向量与它的码片向量的反码的规格化内积为-1
2.CDMA的应用
举例1:
运算时,都要将码片序列转换为码片向量来计算。
举例2!!!:
方式①:发送方按照接收方的码片序列给接收方发送消息,此时接收方不能区 别发送方(因为接收方只用自己的码片向量来计算)
方式②:发送方按照自己的码片序列给接收方发送消息,此时接收方能区别发 送方(因为接收方要用不同发送方的码片向量来计算)
三、数据链路层
数据链路层使用的信道主要有两种类型:
- 点对点信道:使用一对一的点对点通信方式
- 广播信道:使用一对多的广播通信方式
3.1链路、数据链路和帧
- 链路:是指从一个节点到相邻节点的一段物理线路(有线或无线),而中间没有任何其他的交换节点。
- 数据链路:是基于链路的。当在一条链路上传送数据时,除需要链路本身,还需要一些必要的通信协议来控制这些数据的传输,把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
- 计算机中的网络适配器(俗称网卡)和其相应的软件驱动程序就实现了这些协议。一般的网络适配器都包含了物理层和数据链路层这两层的功能。
- 帧:是数据链路层对等实体之间在水平方向进行逻辑通信的协议数据单元PDU
3.2 数据链路层的三个重要问题
3.2.1 封装成帧
(1)封装成帧:是指数据链路层给网络层交付的数据报添加一个首部和一个尾部,使之成 为帧。
- 帧长度=数据部分长度(IP数据报长度)+首尾部长度
- 帧的首部和尾部中包含有一些重要的控制信息。
- 帧首部和尾部的作用之一就是帧定界。(让接收方的数据链路层能够从物理层交付上来的比特流中提取出一个个的帧)
帧定界符:帧开始符SOH,帧结束符EOT
(2)最大传送单元MTU
- 为了提高数据链路层传输帧的效率,应当使帧的数据载荷的长度尽可能地大于首部和尾部的长度。
- 每一种数据链路层协议都规定了帧的数据载荷的长度上限,即最大传送单元MTU
- 以太网的MTU: 46~1500B
3.2.2 透明传输
(1)透明传输:是指数据链路层对上层交付下来的协议数据单元PDU没有任何限制,就好像数据 链路层不存在一样。
(2)实现透明传输
数据中出现“SOH”和“EOT”以及ESC时:
发送端:数据链路层在该字符前面添加一个转义字符ESC
接收端:数据链路层把数据送往网络层之前删掉这个插入的转义字符
发送端:先扫描整个信息字段。只要发现5个连续的1,其后立即填充一个0
接收端:找到帧边界后,扫描信息字段,只要发现5个连续的1,其后立即删除一个0
3.2.3 差错检测
(1)误码的相关概念
(2)奇偶校验
(3)循环冗余校验CRC
1.发送方CRC操作
2.接收方CRC操作
3.差错检测CRC步骤:
3.2.4 可靠传输
3.2.4.1可靠传输的相关基本概念
3.2.4.2传输差错的分类
3.2.4.3停止-等待协议的工作原理
① “停止-等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。
② 在传输过程中出现了差错,发送方超过了一段时间仍然没有收到确认,就认为刚才发送的分组丢失了,因而重传前面发送过的分组。这叫做超时重传。为实现超时重传,发送方可在每发送完一个分组时就设置一个超时计时器。如果在超时计时器到期之前就收到了对方的确认,就撤销已设置的超时计时器。
需注意三点:
③ 确认丢失和确认迟到:接收方收到了发送方的消息M1,并发送了确认消息
- 但该确认消息在传输过程中丢失了(确认丢失),发送端重传M1,接收端再一次收到M1时,采取两个行动
(1)接收端丢弃这个重复的分组
(2)向发送端发送确认
- 确认消息未丢失但是到达发送端时已经超过的发送端的重传时间(确认迟到),到达发送端时,发送端收到了重复的确认。接收端也会收到重复的消息M1
(1)发送端:收到了重复的确认后就丢弃
(2)接收端:丢弃这个重复的分组,向发送端发送确认
停止-等待协议属于自动重传请求(ARQ)协议。即重传的请求是发送方自动进行的,而不是接收方请求发送方重传某个误码的数据分组。
3.2.4.4停止-等待协议的信道利用率
3.2.4.5连续ARQ协议
采用流水线传输可以显著提高信道利用率
分为两种
(1)停止-等待协议、回退N帧协议和选择重传协议对比
(2)回退N帧协议
接收方只能按序接收正确到达的数据分组
例如:
发送方发送帧1~7,接收方按序接收了0~2,此时3丢失,4~7正确到达。接收方没接收3也不能接收4~7,必须按序,发送方重发3~7。
- 采用n个比特给分组编序号,序号范围是 0 ~ (2^n−1)。本例假设采用3个比特给分组编序号,则序号范围是0~7。
(3)选择重传协议
为了使发送方仅重传出现差错的数据分组,接收方不再采用累积确认,而需要对每一个正确接收的数据分组进行逐一确认。
例如:发送方发送帧0~5,接收方正确接收0,2,4,发送方只需重发1,3帧。
3.3 点对点协议PPP
点对点协议(PPP)是目前使用最广泛的点对点数据链路层协议。
图 1 PPP的组成
3.3.1 PPP的帧格式
3.3.2 PPP帧的透明传输
(1)字节填充(面向字节的异步链路)
异步传输:逐个字符的传送
(2)零比特填充(面向比特的同步链路)
同步传输:一连串的比特连续传送
3.3.3 PPP帧的差错检测
- 接收方每收到一个PPP帧,就进行CRC检验。若CRC检验正确,就收下这个帧;否则,就丢弃这个帧。
- 使用PPP的数据链路层,向上提供的是不可靠数据传输服务
3.3.4 PPP的工作状态
3.4 使用广播信道的数据链路层
3.4.1 局域网的数据链路层
(1)局域网的主要特点:网络为一个单位所有,且地理范围和站点数目都有限
(2)实现共享信道技术:
- 静态划分信道:预先固定分配好信道,如频分复用、时分复用、波分复用、码分复 用。不适合局域网使用
- 动态媒体接入控制(多点接入):并非在用户通信时固定分配给用户。它分为两类:
(3)以太网
- 以太网(DIX Ethernet V2):第一个局域网产品的标准,被大量使用
- 以太网:局域网的代名词
(4)网络适配器
- 要将计算机连接到以太网,需要使用相应的网络适配器,网络适配器称为“网卡”
- 在计算机内部,网卡与CPU之间的通信,一般是通过计算机主板上的I/O总线以并行传输方式进行。
- 网卡与外部以太网(局域网)之间的通信,一般是通过传输媒体(同轴电缆、双绞线电缆、光纤)以串行方式进行的。
- 网卡除要实现物理层和数据链路层功能,其另外一个重要功能就是要进行并行传输和串行传输的转换。由于网络的传输速率和计算机内部总线上的传输速率并不相同,因此在网卡的核心芯片中都会包含用于缓存数据的存储器。
- 在确保网卡硬件正确的情况下,为了使网卡正常工作,还必须要在计算机的操作系统中为网卡安装相应的设备驱动程序。驱动程序负责驱动网卡、发送和接收帧。
- 适配器装有处理器和存储器(ROM和RAM),计算机的硬件地址(MAC地址/物理地址)在适配器的ROM中,计算机的软件地址(IP地址)在计算机的存储器中。
3.4.2 以太网的MAC层(数据链路层)
1. MAC层的硬件地址
硬件地址又称为物理地址或MAC地址
- 当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址。
- 在每个主机发送的帧的首部中,都携带有发送主机(源主机)和接收主机(目的主机)的数据链路层地址。
(1)6字节MAC地址
(2)适配器的过滤功能
当适配器从网上收到一个MAC帧,就先用硬件检查MAC帧中的目的地址。如果是发往本站的帧则收下,否则丢弃该帧。
发往本站的帧的类型:
(3)MAC帧的格式
类型:标志上一层使用的什么协议,以便将MAC帧数据交给上一层的这个协议
- 接收方收到无效的MAC帧时,就简单将其丢弃,以太网的数据链路层没有重传机制。
3.4.3 CSMA/CD协议
3.4.3.1 CSMA/CD协议的基本原理
- 在以太网的发展初期,将多个站点连接在一条总线上来构建共享总线以太网。
- 当两个或多个站点同时使用总线发送帧时,就会产生信号碰撞。
- 为了解决各站点争用总线的问题,共享总线以太网使用了一种专用协议CSMA/CD,它是载波监听多点接入/碰撞检测的英文缩写词。
(1)CSMA/CD协议
- 载波监听检测到总线空闲,但总线并不一定空闲。
- 使用CSMA/CD协议的共享总线以太网上的各站点,只是尽量避免碰撞并在出现碰撞时做出退避后重发的处理,但不能完全避免碰撞。
- 在使用CSMA/CD协议时,由于正在发送帧的站点必须“边发送帧边检测碰撞”,因此站点不可能同时进行发送和接收,也就是不可能进行全双工通信,而只能进行半双工通信(双向交替通信)。
(2)共享式以太网的争用期
- 共享总线以太网的端到端往返时间2τ被称为争用期或碰撞窗口
- 单程端到端传播时延τ
(3)共享式以太网的最小帧长和最大帧长
(4)共享式以太网的退避算法
共享总线以太网中的各站点采用截断二进制指数退避算法来选择退避的随机时间
- 当重传达16次仍不能成功时,就表明同时打算发送帧的站点太多,以至于连续产生碰撞,此时应放弃重传并向高层报告。
(5)以太网的信道利用率
参数a的值应尽可能小
3.4.3.2 CSMA/CD协议数据发送过程
3.4.4 使用集线器的共享式以太网------共享式以太网
3.4.5 扩展的以太网
- 物理层-----集线器方式:扩大了广播域也扩大了碰撞域
- 数据链路层------交换机方式:扩大了广播域,不扩大碰撞域
3.4.5.1 在物理层扩展以太网(集线器)
(1)扩展站点与集线器之间的距离
- 共享总线以太网中两站点之间的距离不能太远,否则它们之间所传输的信号就会衰减到使CSMA/CD协议无法正常工作。
- 使用双绞线和集线器的10BASE-T星型以太网成为以太网的主流类型
- 10BASE-T星型以太网中每个站点到集线器的距离不能超过100m,因此两站点间的通信距离最大不能超过200m。
- 10BASE-F,“F”表示光纤。光纤主要用作集线器之间的远程连接。站点与集线器之间的距离扩展到1000米以上。
(2)扩展共享式以太网的覆盖范围和站点数量
缺点:
- 采用多个集线器连接而成的多级星型以太网,在扩展了网络覆盖范围和站点数量的同时,也扩大了碰撞域。
- 不同系使用不同的以太网技术(如数据率不同),那么集线器互连起来后,数据率为系中的最小值。因为集线器没有帧缓存功能。
3.4.5.2 在数据链路层扩展以太网(交换机)-----交换式以太网
(1)使用网桥在数据链路层扩展以太网
(2)使用交换机在数据链路层扩展以太网
交换机
- 交换机一般都具有多种速率的接口,例如10Mb/s、100Mb/s、1Gb/s甚至10Gb/s的接口,大部分接口支持多速率自适应。
- 以太网交换机的端口有存储器,能进行帧缓存(集线器不能)
- 以太网交换机具有并行性,能同时连通多对端口,使多对主机能同时通信。(网桥一次转发一个帧)
- 交换机工作方式
① 存储转发:软件
② 直通:硬件
(3)交换机或网桥的自学习功能
- 先登记后转发:只要源主机发送帧,交换机未登记该主机时,会先登记源主机后进行转发。
- 转发:
帧交换表中无目的地址-------广播转发;
帧交换表中有目的地址-------单播转发
3.5 虚拟局域网
3.5.1 虚拟局域网VLAN的诞生背景
分割广播域的方法:
3.5.2 虚拟局域网VLAN概述
- 虚拟局域网VLAN并不是一种新型网络,它只是局域网能够提供给用户的一种服务。
3.5.3 虚拟局域网VLAN的实现机制
3.5.3.1 IEEE 802.1Q帧
- IEEE 802.1Q帧也称为Dot One Q帧,它对以太网V2的MAC帧格式进行了扩展:在源地址字段和类型字段之间插入了4字节的VLAN标签(tag)字段。
- 802.1Q帧一般不由用户主机处理,而是由以太网交换机来处理:
四、网络层
4.1 网络层概述
- 网络层的主要任务:将分组从源主机经过多个网络和多段链路传输到目的主机,可以将该任务划分为分组转发和路由选择两种重要的功能。
- 网络层的主要任务:实现网络互连,进而实现数据包在各网络之间的传输
- 网络层向其上层只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
4.1.1 网络层向其上层提供的两种服务
4.1.1.1 面向连接的虚电路服务
- 虚电路:表示这是一条逻辑上的连接,分组沿着这条逻辑连接按照存储转发方式传送,而不是真正建立了一条物理连接。(采用电路交换的电话通信,则是先建立一条真正的物理连接。)
- 分组的首部仅在连接建立阶段使用完整的目的主机地址,之后每个分组的首部只需要携带一条虚电路编号即可。
- 这种通信方式如果再使用可靠传输的网络协议,就可使所发送的分组最终正确(无差错按序到达、不丢失、不重复)到达接收方。
4.1.1.2 无连接的数据报服务(因特网使用)
- 这种通信方式所传送的分组可能误码、丢失、重复和失序。
4.2 网际协议IP
- 网际协议(IP)是TCP/IP体系结构网际层中的核心协议与协议IP配套使用的还有三个协议:
- 地址解析协议ARP
- 网际控制报文协议ICMP
- 网际组管理协议IGMP
4.2.1 虚拟互连网络
这些网络的拓扑、性能以及所使用的网络协议都不尽相同,这是由用户需求的多样性造成的,没有一种单一的网络能够适应所有用户的需求。
(1)将网络互连要使用一些中间设备:
- 物理层:转发器、中继器、集线器(扩大冲突域和扩大广播域)
- 链路层:网桥、交换机(隔离冲突域,扩大广播域)
- 网络层:路由器(隔离冲突域和广播域)
- 网络层以上:网关
(2)直接交付和间接交付
源主机A给目的主机B发送消息
- 直接交付:不需要经过任何路由器(A、B在一个网络上)
- 间接交付:中间必须经过一个或多个路由器(A、B不在同一网络上)
4.2.2 IPv4地址及其编址方法
4.2.1.1 IPv4地址的表示方法——点分十进制
- IPv4地址是给因特网上的每一个主机(或路由器)的每一个接口分配的一个在全世界范围内唯一的32比特的标识符。
- 由于IPv4地址由32比特构成,不方便阅读、记录以及输入等,因此IPv4地址采用点分十进制表示方法以方便用户使用。
4.2.1.2 分类的IP地址
一个IP地址在整个互联网范围内是唯一的
IP地址 ∷= { <网络号>,<主机号>}
- 网络号:在整个互联网范围内必须是唯一的
- 主机号:在所连接的网络中必须是唯一的
(1)IP地址分为五类
- A类(n=8),B类(n=16),C类(n=24)都是单播地址 (n:网络号长度)
- D类多播地址(不能分配给主机或路由器,只能做目的地址)
- E类保留地址
① A类
- 全0:表示本网络,不能指派
- 网络号为127(01111111):作为本地环回测试地址,不能指派
② A、B、C类
- 全0:表示该IP地址是“本主机”所连接的单个网络地址(如:主机IP地址为5.6.7.8,则该主机所在的网络的网络号是5,而该网络的网络地址是5.0.0.0),不指派
- 全1:该网络的所有主机(表示目的地址用来广播),不指派
A类:
(2)A,B,C网络数量和主机数量
(3)一般不使用的特殊IPv4地址
4.2.1.3 IPv4地址的划分子网编址方法
分类编址方法不够灵活且容易造成大量地址浪费,划分子网编址方法对其进行改进.
应用:
- 默认子网掩码是指在未划分子网的情况下使用的子网掩码。
A类地址的默认子网掩码:255.0.0.0
B类地址的默认子网掩码:255.255.0.0
C类地址的默认子网掩码:255.255.255.0
4.2.1.4 无分类编址CIDR(无分类域间路由选择)
- CIDR消除了传统A类、B类和C类地址以及划分子网的概念。
- CIDR把网络号改称为“网络前缀”,简称为前缀,前缀不定长,在0~32之间任意取值
IP地址 ∷= { <网络前缀>,<主机号>}
(1)斜线记法
在IP地址后面加上斜线“/”,斜线后面是网络前缀所占的位数。
- 如IP地址5.6.7.8/20,即前20位为网络前缀,剩下后面12位是主机号
- 单纯的IP地址5.6.7.8未指明网络前缀长度,所有不知道网络地址是什么
(2)地址块
将网络前缀都相同的、连续的多个无分类IPv4地址,组成一个CIDR地址块,只要知道CIDR地址块中的任何一个地址,就可以知道该地址块的以下全部细节:
- 常用地址块中的最小地址和网络前缀的位数指明一个地址块
- 三个特殊的地址块
(3)地址掩码
- 同子网掩码功能一样,地址掩码和IP地址相与得到网络前缀
- A、B、C类默认的地址掩码同默认的子网掩码
(4)路由聚合(构造超网)
4.2.1.5 IP地址的特点
(1)路由器根据目的主机所连接的网络前缀(即地址块)来转发分组(而不考虑目的主机)
(2)IP地址是标志一台主机(或路由器)和一条链路的接口。当一个主机同时连接到两个网络上,就必须拥有两个IP地址,且网络前缀不能相同,该主机称为多归属主机。
(3)一个网络(或子网)是指具有相同网络前缀的主机的集合。因此用转发器或交换机连接起来的若干局域网仍是一个网络。具有不同网络前缀的局域网必须使用路由器相连。
4.2.3 IPv4地址的应用规划
IPv4地址的应用规划是指将给定的IPv4地址块(或分类网络)划分成若干个更小的地址块(或子网),并将这些地址块(或子网)分配给互联网中的不同网络,进而可以给各网络中的主机和路由器的接口分配IPv4地址。
4.2.3.1 定长的子网掩码
- 所划分出的每一个子网都使用同一个子网掩码。
- 每个子网所分配的IP地址数量相同,容易造成地址资源的浪费。
4.2.3.2 变长的子网掩码
- 所划分出的每一个子网可以使用不同的子网掩码。
- 每个子网所分配的IP地址数量可以不同,尽可能减少对地址资源的浪费。
① 定长的子网掩码
② 变长的子网掩码
4.2.4 IPv4地址与MAC地址
- MAC地址:数据链路层使用的地址,是物理地址。(交换机链路层设备,只有MAC地址)
- IP地址是网络层及其上层使用的地址,是逻辑地址。
(1)IPv4地址与MAC地址的封装位置
(2)数据报传送过程中IPv4地址与MAC地址的变化情况
- 在数据包的传送过程中,数据包的源IP地址和目的IP地址保持不变;
- 在数据包的传送过程中,数据包的源MAC地址和目的MAC地址逐链路(或逐网络)改变
4.2.5 地址解析协议ARP
ARP用于解决同一局域网上的主机或路由器的IP地址和MAC地址的映射问题。
- ARP只能在同一局域网使用,已知IP地址得到MAC地址。
- 每台主机都有一个ARP高速缓存,里面存着本局域网上各主机和路由器的IP地址到MAC地址的映射表。该映射表还经常动态更新(新增或超时)
主机A向本局域网的主机B发送IP数据报时,ARP协议工作过程:
- 主机A先在自己的高速缓存中查看是否有无主机B的IP地址。
- 若有,则在ARP高速缓存中查出对应的MAC地址,再把这个MAC地址写入MAC帧,通过局域网发送此帧给B。
- 若无,主机A自动运行ARP,按以下步骤查找B的MAC地址
- ARP进程在本局域网上广播发送一个ARP请求分组。
- 本局域网上的所有主机都收到此ARP请求分组。
- 主机B的IP地址与ARP请求分组中要查询的IP地址一致,就收下这个ARP请求分组,并将ARP请求分组中的IP地址和MAC地址写入自己的ARP Cache中,并向主机A发送ARP响应请求(单播)。其余主机的IP地址和ARP请求分组中要查询的IP地址不一致,不理睬这个ARP请求分组。
- A收到B的ARP响应分组后,将主机B的IP地址和MAC地址写入自己的ARP Cache中。
4.2.6 IP数据报格式
4.2.6.1 IPv4数据报的首部格式
(1)标识、标志、片偏移共同用于IPv4数据报分片
(2)首部检验和的计算方法
因特网检验和方法:适用于IP协议、UDP协议、TCP协议
4.3 IP层转发分组的过程
(1)最长前缀匹配:
(2)静态路由
- 默认路由条目中的目的网络0.0.0.0/0,其中0.0.0.0表示任意网络,而网络前缀“/0”(相应的地址掩码为0.0.0.0)是最短的网络前缀。
- 路由器在查找转发表转发IP数据报时,遵循“最长前缀匹配”的原则,因此默认路由条目的匹配优先级最低。
- 特定主机路由条目中的目的网络a.b.c.d/32,其中a.b.c.d是特定主机的IP地址,而网络前缀“/32”(相应地址掩码为255.255.255.255)是最长的网络前缀。
- 路由器在查找转发表转发IP数据报时,遵循“最长前缀匹配”的原则,因此特定主机路由条目的匹配优先级最高。
下一跳为null0
(3)分组转发算法:
为了更加迅速的查找转发表,按照前缀的长短顺序从上往下排
4.4 网际控制报文协议ICMP
4.4.1 网际控制报文协议概述
4.4.2 ICMP报文类型
4.4.2.1 ICMP差错报告报文
(1)终点不可达
(2)时间超过(超时)
(3)参数问题
(4)改变路由(重定向)
4.4.2.2 ICMP询问报文
4.4.3 ICMP的典型应用
(1)分组网间探测PING
(2)跟踪路由
4.5 因特网的路由选择协议
4.5.1 路由选择分类
4.5.2 因特网采用分层次的路由选择协议
4.5.2.1 路由选择协议的分类
(1)内部网关协议IGP:一个自治系统内部使用的路由选择协议。
常用的有RIP和OSPF协议
(2)外部网关协议EGP:不同自治系统之间的路由选择协议。常用BGP-4
- 自治系统内部的路由选择叫做域内路由选择
- 自治系统之间的路由选择叫做域间路由选择
4.5.3 内部网关协议RIP
- 思科路由器中的RIP,将路由器到直连网络的距离定义为0
(1)RIP具有以下三个重要特点:
(2)RIP的基本工作过程
(3)RIP的距离向量算法
(4)RIP存在的问题
当网络出现故障时,要经过较长时间才能将此消息传送到所有的路由器
(5)RIP版本和相关报文的封装
4.5.4 内部网关协议OSPF
4.5.4.1开放最短路径优先OSPF的相关基本概念
(1)OSPF最主要的特征是使用链路状态协议:
(2)OSPF的特点
(3)OSPF路由器邻居关系的建立和维护
每两个相邻的路由器每隔10秒就要交换一次问候分组
(4)链路状态通告
(5)链路状态更新分组
(6)链路状态数据库
(7)基于链路状态数据库进行最短路径优先计算
4.5.4.2 OSPF的五种分组类型
OSPF分组:直接使用网际层的IP数据报进行封装,而不像RIP报文需要使用运输层用户数据报协议UDP封装。从数据包按网络体系结构逐层封装的角度看,OSPF属于网际层协议,而RIP属于应用层协议(但其核心功能是路由选择,属于网际层)。
4.5.4.3 OSPF划分区域
- 为了使OSPF协议能够用于规模很大的网络,OSPF把一个自治系统AS再划分为若干个更小的范围,称为区域。每个区域都有一个32位的标识符(点分十进制)
- 划分区域的好处就是把利用洪泛法交换链路状态信息的范围局限于每一个区域,而不是整个自治系统AS,这样就减少了整个网络上的通信量。
OSPF采用层次结构的区域划分:
- 上层区域:主干区域(标识符0.0.0.0),主要来连接下层区域
- 自治系统边界路由器(ASBR):主干区域内的一个路由器专门和其他自治系统交换路由消息,如R6
- 主干路由器(BBR):主干区域内的路由器,如R3、R4、R5、R6和R7
- 区域内路由器(IR):区域1内的R1和R2,区域2内的R8,区域3内的R9
- 区域边界路由器(ABR):每个区域至少有一个区域边界路由器,如R3、R4和R7
五、运输层
5.1 运输层概述
5.1.1 进程间基于网络的通信
- 物理层、数据链路层和网络层,它们共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信。
- 运输层,实现运行在不同主机上的应用进程之间的逻辑通信。(逻辑通信并没有建立物理连接)运输层协议又称为端到端协议。
- 计算机网络中实际进行通信的真正实体,是位于通信两端主机中的进程。
5.1.2 TCP/IP运输层中的两个重要协议
- 传输控制协议TCP:运输层使用该协议时,尽管下面的网络是不可靠的,但这种逻辑通信信道就相当于一条全双工的可靠信道。
- 用户数据报协议UDP:逻辑通信信道是一条不可靠信道。
两个协议都使用端口号实现进程间通信
5.1.3 运输层端口号
5.2 UDP和TCP的对比
5.2.1 UDP
- UDP只在IP的数据报服务之上增加了复用、分用以及差错检测功能。
- UDP是面向报文的:UDP对于应用层交付下来的报文,添加首部后就向下交付给IP层。UDP一次交付一个完整的报文。
(1)UDP的首部格式
- 如果接收方发现收到的UDP报文中的目的端口号不正确(即接收方不存在对应该端口号的应用进程),就丢弃该报文,并由ICMP发送“端口不可达”差错报文给发送方。
(2)伪首部和差错检测
- 计算检验和时,在UDP报文前临时增加的12字节伪首部
- 伪首部既不向下传送也不向上递交,而仅仅是为了计算检验和
- UDP计算检验和的方法与IP数据报类似,都用了二进制反码运算求和(4.6.2.1)。不同的是:IP数据报的检验和只检验IP数据报的首部,UDP的检验和是首部和数据部分一起检验。
- 检验和步骤
发送方
- 把全0放入检验和字段
- 把伪首部以及UDP用户数据报拆分成多个16比特,若UDP数据报的数据部分不是偶数个字节,则在最后填充一个全0的字节(但此字节不发送)
- 任何按二进制反码运算求和计算出这些16位字的和
- 将此和的二进制反码填入检验和字段后发送。
接收方
- 把接收的UDP用户数据报连同伪首部(以及可能要填充的全0字节)一起,按照二进制反码一起求出这些16位字的和。
- 当无差错时,其结果应为全1.
- 否则,接收方丢弃该UDP用户数据报
5.2.2 TCP报文段的首部格式
TCP是面向字节流的:将上层的报文拆开成小段,再分别交付给IP层
TCP也有12字节伪首部,检验和步骤同UDP的步骤(5.2.1 (2)):只是将伪首部的第四个字段中的17改为6,把第五个字段UDP长度改为TCP长度。
填充:若选项字段的长度加上20字节固定首部的长度不能被4字节整除时,需要填充相应数量的比特0,以确保首部长度能被4字节整除。
5.2.3 TCP的运输连接管理
5.2.3.1 “三报文握手”建立TCP连接
- TCP连接采用客户服务器方式。主动发起连接建立的应用进程叫客户,被动等待的应用进程叫服务器。
- TCP规定同步标志位SYN被设置为1的报文段(例如TCP连接请求报文段和TCP连接请求确认报文段)不能携带数据,但要消耗掉一个序号。
(1)三报文握手过程(考!!!)
客户A主动打开连接,服务器B被动打开连接
- 服务器B的TCP服务器进程先创建传输控制块TCB,准备接收客户进程的连接请求。然后服务器进程就处于LISTEN(收听状态),等待客户的连接请求。
- B收到A的确认后,也进入ESTABLISHED(已建立连接状态)
(2)使用“三报文握手”而不是“两报文握手”建立TCP连接的原因
采用“三报文握手”而不是“两报文握手”来建立TCP连接,是为了防止已失效的TCP连接请求报文段突然又传送到了TCP服务器进程,因而导致错误。
5.2.3.2 “四报文挥手”释放TCP连接
TCP规定终止标志位FIN等于1的TCP报文段即使不携带数据(可带也可不带数据),也要消耗掉一个序号。
(1)四报文挥手过程
数据传输结束后,通信的双方都可释放连接。
现在客户A先发送TCP连接释放报文段,释放步骤
- TCP连接释放报文段首部中的终止标志位FIN和确认标志位ACK的值都被设置为1。表明这是一个TCP连接释放报文段,同时也对之前收到的TCP报文段进行确认。序号seq字段的值设置为u,它等于TCP客户进程之前已经传送过的数据的最后一个字节的序号加1。确认号ack字段的值设置为v,它等于TCP客户进程之前已收到的数据的最后一个字节的序号加1。FIN报文段即使不带数据也要消耗掉一个序号。
注意:B只要一收到A发送的确认,就进入close状态。B在撤销相应的传输控制块TCB后,就结束了这次的TCP连接。B结束TCP连接的时间比A要早。
(2)客户等待2MSL才关闭的原因。
(3)TCP保活计时器的作用
防止服务器白白等待,资源浪费
5.2.4 传输控制协议TCP概述
(1)TCP的特点
(2)套接字socket
- 每一条TCP连接有两个端点。TCP的端点叫套接字socket。
- 端口号拼接到IP地址就构成了套接字。
- 套接字的表示方法:点分10进制的IP地址后面写上端口号,用冒号或逗号隔开
套接字socket=(IP地址:端口号)
- 每一条TCP连接唯一的被通信两端的两个端点(套接字)所确定。
TCP连接 ::= { socket1, socket2 } = { ( IP1 : port1 ) , ( IP2 : port2 ) }
5.2.5 UDP和TCP对比
5.3 TCP可靠传输的实现
5.3.1 可靠传输的实现
5.3.2 TCP超时重传时间的选择
5.3.3 TCP的选择确认SACK
- TCP接收方只能对按序收到的数据中的最高序号给出确认。当发送方超时重传时,接收方之前已收到的未按序到达的数据也会被重传。
- TCP可以使用选择确认:只传送缺少的数据而不重传已经正确到达、只是未按序到达的数据
5.4 TCP的流量控制
- A的swnd被调控为0了不能再发送数据了
- TCP规定:即使接收窗口值为0,也必须接受零窗口探测报文段、确认报文段以及携带有紧急数据的报文段。
5.5 TCP的拥塞控制
(1)流量控制与拥塞控制的区别
(2)拥塞控制的基本方法
5.5.1 TCP的四种拥塞控制方法
- 发送方的cwnd的维护原则:只要网络没有出现拥塞,拥塞窗口就再增大一些,但只要网络出现拥塞,拥塞窗口就减少一些。
- 判断网络出现拥塞的依据:没有按时收到应当到达的TCP确认报文段而产生了超时重传
5.5.1.1慢开始算法和拥塞避免算法
(1)慢开始算法规定:
- 发送方每收到一个对新报文段的确认(对重传的确认不算在内),就把发送方的拥塞窗口加1
- 发送方的初始cwnd=1
(2)拥塞避免算法:
(3)慢开始:指一开始向网络注入的报文段少,而并不是指拥塞窗口cwnd的值增长速度慢。拥塞避免:也并非指完全能够避免拥塞,而是指在拥塞避免阶段将cwnd值控制为按线 性规律增长,使网络比较不容易出现拥塞。
5.5.1.2 快重传算法和快恢复算法
- 若个别报文段丢失或者有误被丢弃,而不是网络拥塞,但此时重传计时器超时误认为网络出现拥塞将cwnd的值陡然降低为1并错误地启动慢开始算法因而降低了传输效率。
5.5.2 TCP拥塞控制与网际层拥塞控制的关系
六、应用层
应用层的许多协议都是基于客户服务器方式(C/S)
6.1 域名系统DNS (UDP)
6.2 文件传送协议FTP(TCP)
6.3 简单文件传送协议 TFTP(UDP)
6.4 远程终端协议 TELNET
6.5 超文本传送协议HTTP(TCP)
6.6 电子邮件
邮件发送协议
- 简单邮件传送协议SMTP(TCP):25
- 扩充的SMTP(ESMTP)
- 通用互联网邮件扩充MIME:
邮件读取协议:
- 邮局协议POP3(TCP)
- 网际报文存取协议(IMAP)
(1)电子邮件系统的三构件:
- 用户代理(UA):电子邮件客户端软件
- 邮件服务器
- 邮件发送协议(如SMTP)和邮件读取协议(如POP3)
- 邮件发送协议:用于用户代理向邮件服务器发送邮件或邮件服务器之间发送邮件。(如:简单邮件传送协议SMTP)
- 邮件读取协议:用于用户代理从邮件服务器读取文件(如:邮局协议POP3)
6.7 动态主机配置协议DHCP