计算机网络是计算机专业必修的重要课程之一,与现实世界结合得相当紧密,也是考研计算机学科专业基础综合考试中的一门课程。计算机网络就是一些互联的、自治的计算机系统的集合。自治计算机就是能够进行自我管理、配置和维护的计算机。计算机网络学习的核心内容就是网络协议的学习。网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。以下为我在学习过程中所做的笔记,可供参考。
一、计算机网络体系结构
计算机网络的概念
计算机网络:是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。
计算机网络是互连的、自治的计算机集合。互连:通过通信链路互联互通,自治:无主从关系。
计算机网络的功能
- 数据通信。
- 资源共享:同一个计算机网络上的其他计算机可使用某台计算机的计算机资源的行为,可共享硬件、软件、数据。
- 分布式处理:多台计算机各自承担同一工作任务的不同部分,如:Hadoop 平台。
- 提高可靠性:替代机。
- 负载均衡:使得各计算机之间更亲密。
计算机网络的发展:
- ARPAnet 阿帕网美国国防部高级研究计划局的设计一个分散的指挥系统 -> internet(interconnected network)互联网希望实现不同网络互联 -> 1983 年阿帕网接受 TCP/IP,选定 Internet 因特网为主要的计算机通信系统。
- 网络把许多计算机连接在一起, 而互联网则把许多网络连接在一起,因特网是世界上最大的互联网。
- ISP : 因特网服务提供者/因特网服务提供商,是一个向广大用户综合提供互联网接入业务、信息业务、和增值业务的公司,如中国电信、中国联动、中国移动等。分为主干 ISP、地区 ISP 和本地 ISP。
计算机网络的组成
组成部分:硬件、软件、协议(一系列规则和约定的集合)
工作方式:边缘部分(用户直接使用、C/S 方式或 P2P 方式)、核心部分为边缘部分服务
功能组成:通信子网(各种传输介质、通信设备、相应的网络协议组成,实现数据通信)、资源子网(实现资源共享/数据处理功能的设备和软件的集合)
ISO/OSI 模型 |
---|
应用层 |
表示层 |
会话层 |
传输层 |
网络层(路由器) |
数据链路层(交换机,网桥) |
物理层(集线器,中继器) |
传输层是用户的资源子网与通信子网的界面和桥梁,下面三层属于通信子网,面向数据通信,上面三层属于资源子网,面向数据处理,传输层是OSI协议中最重要的一层。
计算机网络的分类:
- 按分布范围分:广域网(WAN、交换技术)、城域网(MAN)、局域网(LAN、广播技术)、个人区域网(PAN)。
- 按使用者分:公用网(中国电信)、专用网(军用网)。
- 按交换技术分:电路交换、报文交换、分组交换。
- 按拓扑结构分:总线型、星型、环型、网状型(常用于广域网)。
- 按传输技术分:广播式网络(共享公共通信信道)、点对点网络(使用分组存储转发和路由选择机制)
标准化工作及相关组织(了解):标准化对计算机网络至关重要,要确定实现不同厂商的硬、软件之间相互连通,必须遵从统一的标准。
- 法定标准:由权威机构制定的正式的、合法标准的分类,如 OSI。
- 事实标准:某些公司的产品在竞争中占据了主流,时间长了,这些产品中的协议和技术就成了标准,如 TCP/IP。
- RFC(Request For Comments):因特网标准的形式。
- 标准化工作的相关组织:国际标准化组织 ISO(OSI 模型、HDLC 协议)、国际电信联盟 ITU(制定通信规则)、电气和电子工程师协会 IEEE(学术机构、IEEE802 系列标准、5G)、Internet 工程任务组 ETF(负责因特网相关标准的制定、RFC XXXX)。
计算机网络性能指标
速率:数据率或称数据传输率或比特率。即连接在计算机网络上的主机在数字信道上传送数据位数的速率。单位是 b/s, kb/s, Mb/s, Gb/s, Tb/s。
存储容量:1 Byte(字节)= 8 bit。1KB = $2^{10}$ Byte,1 MB = $2^{10}$ KB。
带宽:网络设备所支持的最高速度。原本指某个信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹(Hz)。计算机网络中,带宽用来表示网络的通信线路传送数据的能力,通常是指单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。单位是“比特每秒”,b/s,kb/s,Mb/s,Gb/s。
吞吐量:在单位时间内通过某个网络(或信道、接口)的数据量。单位 b/s,kb/s,Mb/s 等。吞吐量受网络的带宽或网络的额定速率的限制。
时延:数据(报文/分组/比特流)从网络(或链路)的一端传送到另一端所需的时间。也叫延迟或迟延。单位是 s。时延 = 发送时延(从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕所需的时间)+ 传播时延(取决于电磁波传播速度和链路长度)+ 排队时延(等待输出/入链路可用)+ 处理时延(检错/找出口)。
$发送时延 = \dfrac{数据长度}{信道带宽(发送速率)}$;$传播时延 = \dfrac{信道长度}{电磁波在信道上的传播速率)}$。
$时延带宽积(bit) = 传播时延(s)\times 带宽(b/s)$。时延带宽积又称为以比特为单位的链路长度,即“某段链路现在有多少比特”。
往返时延(RTT):从发送方发送数据开始,到发送方收到接收方的确认(接收方收到数据后立即发送确认),总共经历的时延。例如:Ping baidu.com。RTT 包括往返传播时延($传播时延\times 2$)+ 末端处理时间。RTT 越大,在收到确认之前,可以发送的数据越多。
利用率:信道利用率($\dfrac{有数据通过时间}{总时间}$)和网络利用率(信道利用率加权平均值)。
计算机网络体系结构
网络体系结构是从功能上描述计算机网络结构。计算机网络体系结构简称网络体系结构是分层结构。每层遵循某个/些网络协议以完成本层功能。计算机网络体系结构是计算机网络的各层及其协议的集合。第 n 层在向 n+1 层提供服务时,此服务不仅包含第 n 层本身的功能,还包含由下层服务提供的功能。仅仅在相邻层间有接口,且所提供服务的具体实现细节对上一层完全屏蔽。体系结构是抽象的,而实现是指能运行的一些软件和硬件。
实体:第 n 层中的活动元素称为 n 层实体。同一层的实体叫对等实体。
协议:为进行网络中的对等实体数据交换而建立的规则、标准或约定称为网络协议。【水平】语法规定传输数据的格式,语义规定所要完成的功能,同步规定各种操作的顺序
接口(访问服务点SAP):上层使用下层服务的入口。
服务:下层为相邻上层提供的功能调用。【垂直】
SDU 服务数据单元:为完成用户所要求的功能而应传送的数据。
PCI 协议控制信息:控制协议操作的信息。
PDU 协议数据单元:对等层次之间传送的数据单位。PDU = PCI + SDU
服务分层的基本原则:
- 各层之间相互独立,每层只实现一种相对独立的功能。
- 每层之间界面自然清晰,易于理解,相互交流尽可能少。
- 结构上可分割开。每层都采用最合适的技术来实现。
- 保持下层对上层的独立性,上层单向使用下层提供的服务。
- 整个分层结构应该能促进标准化工作。
计算机网络分层结构:
- 法定标准:7 层 OSI 参考模型。
- 事实标准:4 层 TCP/IP 参考模型。
ISO/OSI 参考模型
国际标准化组织(ISO)于 1984 年提出开放系统互连(OSI)参考模型。目的:支持异构网络系统的互联互通。
端到端:应用层、表示层、会话层、传输层;点到点:网络层、数据链路层、物理层。记忆方法:“物联网淑惠试用”。
应用层:用户与网络的界面,所有能和用户交互产生网络流量的程序。典型应用层服务:文件传输(FTP)、电子邮件 (SMTP)、万维网(HTTP)。
表示层:用于处理在两个通信系统中交换信息的表示方式(语法和语义)。功能:数据格式变换、数据加密解密、数据压缩和恢复。主要协议 :JPEG、ASCII。
会话层:向表示层实体/用户进程提供建立连接并在连接上有序地传输数据。这是会话,也是建立同步(SYN)。功能:建立、管理、终止会话,使用校验点可使会话在通信失效时从校验点/同步点继续恢复通信,实现数据同步,适用于传输大文件。主要协议 :ADSP、ASP。
传输层:负责主机中两个进程的通信,即端到端的通信。传输单位是报文段或用户数据报。功能:可靠传输、不可靠传输,差错控制,流量控制,复用分用。主要协议:TCP、UDP。
复用:多个应用层进程可同时使用下面运输层的服务。分用:运输层把收到的信息分别交付给上面应用层中相应的进程。
网络层:主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。应用层功能:路由选择(最佳路径)、流量控制、差错控制、拥塞控制(若所有结点都来不及接受分组,而要丢弃大量分组数据链路层的话,网络就处于拥塞状态,因此要采取一定措施缓解这种拥塞。)主要协议:IP、IPX、ICMP、IGMP、ARP、RARP、OSPF。
数据链路层:主要任务是把网络层传下来的数据报组装成顺。数据链路层/链路层的传输单位是帧。功能:成帧(定义帧的开始和结束)、差错控制(帧错+位错)、流量控制、访问(接入)控制(控制对信道的访问)。主要协议:SDLC、HDLC、PPP、STP。
物理层:主要任务是在物理媒体上实现比特流的透明传输。物理层传输单位是比特。功能:定义接口特性、定义传输模式(单工、半双工、双工)、定义传输速率、比特同步、比特编码。主要协议:Rj45、802.3。
透明传输:指不管所传数据是什么样的比特组合,都应当能够在链路上传送。
TCP/IP 参考模型
TCP/IP vs ISO/OSI:
- 都分层,都基于独立的协议栈的概念,都可以实现异构网络互联。
- OSI 定义三点:服务、协议、接口,OSI 先出现,参考模型先于协议发明,不偏向特定协议,TCP/IP 设计之初就考虑到异构网互联问题,将 IP 作为重要层次。
ISO/OSI 模型 | TCP/IP 模型 | |
---|---|---|
网络层 | 无连接 + 面向连接 | 无连接 |
传输层 | 面向连接 | 无连接 + 面向连接 |
5 层参考模型,综合了 OSI 和 TCP/IP 的优点:
应用层 | 支持各种网络应用 FTP、SMTP、HTTP |
---|---|
传输层 | 进程-进程的数据传输 TCP、UDP |
网络层 | 源主机到目的主机的数据分组路由与转发 IP、ICMP、OSPF等 |
数据链路层 | 把网络层传下来的数据报组装成帧 Ethernet、PPP |
物理层 | 比特传输 |
二、物理层
物理层基本概念
物理层接口特性:物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层主要任务:确定与传输媒体接口有关的一些特性,定义标准。
- 机械特性定义物理连接的特性,规定物理连接时所采用的规格、接口形状、引线数目、引脚数量和排列情况。
- 电气特性规定传输二进制位时,线路上信号的电压范围、阻抗匹配、传输速率和距离限制等。
- 功能特性指明某条线上出现的某一电平表示何种意义,接口部件的信号线的用途。
- 规程特性(过程特性)定义各条物理线路的工作规程和时序关系。
数据通信基础
通信的目的是传送消息(消息:语音、文字、图像、视频等)。数据通信指在不同计算机之间传输表示信息的二进制数0、1序列的过程。
数据(data):传送信息的实体,通常是有意义的符号序列。信号:数据的电气/电磁的表现,是数据在传输过程中的存在形式。
数字信号/离散信号:代表消息的参数的取值是离散的。模拟信号/连续信号:代表消息的参数的取值是连续的。
信源:产生和发送数据的源头。信宿:接收数据的终点。信道:信号的传输媒介。一般用来表示向某一个方向传送信息的介质,因此一条通信线路往往包含条发送信道和一条接收信道。
信道按传输信号分模拟信道(传送模拟信号)和数字信道(传送数字信号),按传输介质分无线信道和有线信道,
从通信双方信息的交互方式看,可以有三种通信方式:
- 单工通信:只有一个方向的通信而没有反方向的交互,仅需要一条信道。例如:广播。
- 半双工通信/双向交替通信:通信的双方都可以发送或接收信息,但任何一方都不能同时发送和接收需要两条信道。例如:对讲机。
- 全双工通信/双向同时通信:通信双方可以同时发送和接受信息,也需要两条信道。例如:打电话。
按数据传输方式分为串行传输和并行传输:
- 串行传输将表示一个字符的 8 位二进制数按由低位到高位的顺序依次发送。速度慢,费用低,适合远距离
- 并行传输将表示一个字符的 8 位二进制数同时通过 8 条信道发送,速度快,费用高,适合近距离,常用于计算机内部数据传输。
按实现同步的传输/通信方式分为同步通信和异步通信:
- 同步传输:在同步传输的模式下,数据的传送是以一个数据区块为单位,因此同步传输又称为区块传输。在传送数据时、需先送出 1 个或多个同步字符,再送出整批的数据。
- 异步传输:异步传输将比特分成小组进行传送,小组可以是 8 位的 1 个字符或更长。发送方可以在任何时刻发送这些比特组,而接收方不知道它们会在什么时候到达。传送数据时,加一个字符起始位和一个字符终止位。
码元是指用一个固定时长的信号波形(数字脉冲),代表不同离散数值的基本波形,是数字通信中数字信号的计量单位,这个时长内的信号称为 k 进制码元,而该时长称为码元宽度。当码元的离散状态有 M 个时(M 大于 2)此时码元为 M 进制码元。1 码元可以携带多个比特的信息量。例如,在使用二进制编码时,只有两种不同的码元,一种代表 0 状态,另一种代表 1 状态。
数字通信系统数据传输速率也叫数据率,是指数据的传输速率,表示单位时间内传输的数据量。可以用码元传输速率和信息传输速率表示:
码元传输速率:别名码元速率、波形速率、调制速率、符号速率等,它表示单位时间内数字通信系统所传输的码元个数(也可称为脉冲个数或信号变化的次数),单位是波特(Baud)。1 波特表示数字通信系统每秒传输一个码元。例:若2秒内传4800个码元,码元传输速率是 2400B。数字信号有多进制和二进制之分,但码元速率与进制数无关,只与码元长度 T 有关。$R_{B}=\dfrac{1}{T}\left( B\right)$。
信息传输速率:别名信息速率、比特率等,表示单位时间内数字通信系统传输的二进制码元个数(即比特数),单位是比特/秒(b/s)。若一个码元携带 n bit 的信息量,则 M Baud 的码元传输速率所对应的信息传输速率为 $M×n$ bit/s。
一个 n 进制码元携带 $log_{2}{n}$ bit 信息量。
带宽(Bandwidth):
- 模拟信号系统中:当输入的信号频率高或低到一定程度,使得系统的输出功率成为输入功率的一半时(即 -3 dB),最高频率和最低频率间的差值就代表了系统的通频带宽,其单位为赫兹(Hz)。将模拟信号转换成数字信号时,采样频率必须大于等于最大频率 f 的 2 倍。
- 数字设备中:表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”/单位时间内通过链路的数量,常用来表示网络的通信线路所能传输数据的能力。单位是比特每秒(bps)。拥有更宽的带宽也就是有更大的信息运送能力。
奈氏准则和香农定理
码间串扰:失真的一种现象,接收端收到的信号波形失去了码元之间清晰界限的现象。影响失真程度的因素:码元传输速率、信号传输距离、噪声干扰、传输媒体质量。
奈奎斯特定理(奈氏准则):在理想低通(无噪声,带宽受限)条件下,为了避免码间串扰,码元的最大传输速率为 2W Baud,W 表示理想低通信道的带宽,单位是 Hz,V 表示每个码元的离散电平的数目。
- 在任何信道中,码元传输的速率是有上限的。若传输速率超过此上限,就会出现严重的码间串扰问题,使接收端对码元的完全正确识别成为不可能。
- 信道的频带越宽(即能通过的信号高频分量越多),就可以用更高的速率进行码元的有效传输。
- 奈氏准则给出了码元传输速率的限制,但并没有对信息传输速率给出限制。
- 由于码元的传输速率受奈氏准则的制约,所以要提高数据的传输速率,就必须设法使每个码元能携带更多个比特的信息量,这就需要采用多元制的调制方法。
噪声存在于所有的电子设备和通信信道中。由于噪声随机产生,它的瞬时值有时会很大,因此噪声会使接收端对码元的判决产生错误。但是噪声的影响是相对的,若信号较强,那么噪声影响相对较小。因此,信噪比就很重要。信噪比是信号的平均功率和噪声的平均功率之比,信噪比 = 信号的平均功率/噪声的平均功率,常记为 S/N,单位:分贝 dB。
香农定理:在带宽受限且有噪声的信道中,为了不产生误差,信息的数据传输速率有上限值。香农公式给出了信号传输速率的极限,W 为信道的带宽,单位 b/s。
- 信道的带宽或信道中的信噪比越大,则信息的极限传输速率就越高。
- 对一定的传输带宽和一定的信噪比,信息传输速率的上限就确定了。
- 只要信息的传输速率低于信道的极限传输速率,就一定能找到某种方法来实现无差错的传输。
- 香农定理得出的为极限信息传输速率,实际信道能达到的传输速率要比它低不少。
- 从香农定理可以看出,若信道带宽 W 或信噪比 S/N 没有上限(不可能),那么信道的极限信息传输速率也就没有上限。
奈氏准则 | 香农定理 |
---|---|
带宽受限无噪声条件下,为了避免码间串扰,码元传输速率的上限2 W Baud。 | 带宽受限有噪声条件下的信息传输速率 |
理想低通信道下的极限数据传输率 = $2Wlog_2V$ | 信道的极限数据传输速率 = $W \log _{2}\left( 1+\dfrac{S}{N}\right)$ |
要想提高数据率,就要提高带宽或采用更好的编码技术 | 要想提高数据率,就要提高带宽或信噪比 |
编码与调制
信道:信号的传输媒介。一般用来表示向某一个方向传送信息的介质,因此一条通信线路往往包含一条发送信道和一条接收信道。信道按传输信号分模拟信道(传送模拟信号)和数字信道(传送数字信号),按传输介质分无线信道和有线信道。
信道上传送的信号分为基带信号和宽带信号:
- 基带信号将数字信号 1 和 0 直接用两种不同的电压表示,再送到数字信道上去传输(基带传输)。来自信源的信号,像计算机输出的代表各种文字或图像文件的数据信号都属于基带信。基带信号就是发出的直接表达了要传输的信息的信号,比如我们说话的声波就是送的信号基带信号。
- 宽带信号将基带信号进行调制后形成的频分复用模拟信号,再传送到模拟信道上去传输(宽带传输)。把基带信号经过载波调制后,把信号的频率范围搬移到较高的频段以便在信道中传输(即仅在一段频率范围内能够通过信道)。
- 在传输距离较近时,计算机网络采用基带传输方式(近距离衰减小,从而信号内容不易发生变化)。在传输距离较远时,计算机网络采用宽带传输方式(远距离衰减大,即使信号变化大也能最后过滤出来基带信号)。
数字数据编码为数字信号:
- 非归零编码【NRZ】:高 1 低 0,编码容易实现,但没有检错功能且无法判断一个码元的开始和结束,以至于收发双方难以保持同步。
- 归零编码【RZ】:信号电平在一个码元之内都要恢复到零的这种编码成编码方式。
- 反向不归零编码【NRZI】信号电平翻转表示 0,信号电平不变表示 1。
- 曼彻斯特编码:将一个码元分成两个相等的间隔,前一个间隔为低电平,后一个间隔为高电平表示码元 1;码元 0 则正好相反。也可以采用相反的规定。该编码的特点是在每一个码元的中间出现电平跳变,位中间的跳变既作时钟信号(可用于同步)又作数据信号,但它所占的频带宽度是原始的基带宽度的两倍。每一个码元都被调成两个电平,所以数据传输速率只有调制速率的 1/2。
- 差分曼彻斯特编码:同 1 异 0,常用于局域网传输,其规则是:若码元为 1,则前半个码元的电平与上一个码元的后半个码元的电平相同,若为 0,则相反。该编码的特点是,在每个码元的中间,都有一次电平的跳转,可以实现自同步,且抗干扰性强于曼彻斯特编码。
- 4B/5B 编码:比特流中插入额外的比特以打破一连串的 0 或 1,就是用 5 个比特来编码 4 个比特的数据,之后再传给接收方,因此称为 4B/5B。编码效率为 80%。
数字数据调制为模拟信号:数字数据调制技术在发送端将数字信号转换为模拟信号,而在接收端将模拟信号还原为数字信号,分别对应于调制解调器的调制和解调过程。分类:调幅(ASK),调频(FSK),调相(PSK),调幅 + 调相(QAM)。
模拟数据编码为数字信号:计算机内部处理的是二进制数据,处理的都是数字音频,所以需要将模拟音频通过采样、量化转换成有限个数字表示的离散序列(即实现音频数字化),最典型的例子就是对音频信号进行编码的脉码调制(PCM),在计算机应用中,能够达到最高保真水平的就是 PCM 编码,被广泛用于素材保存及音乐欣赏,CD、DVD 以及我们常见的 WAV 文件中均有应用。它主要包括三步抽样、量化、编码。
- 抽样:对模拟信号周期性扫描,把时间上连续的信号变成时间上离散的信号。为了使所得的离散信号能无失真地代表被抽样的模拟数据,要使用采样定理进行采样:$f{采样频率} ≥ 2f{信号最高频率}$。
- 量化:把抽样取得的电平幅值按照一定的分级标度转化为对应的数字值,并取整数,这就把连续的电平幅值转换为离散的数字量。
- 编码:把量化的结果转换为与之对应的二进制编码。
模拟数据调制为模拟信号:为了实现传输的有效性,可能需要较高的频率。这种调制方式还可以使用频分复用技术,充分利用带宽资源。在电话机和本地交换机所传输的信号是采用模拟信号传输模拟数据的方式;模拟的声音数据是加载到模拟的载波信号中传输的。
数据交换方式
交换是通过某些交换中心将数据进行集中和传送。传输线路为各个用户共用,从而大大节省通信线路,降低系统费用。
数据传输方式包括电路交换、报文交换和分组交换。
电路交换:在数据传输期间,源结点与目的结点之间有一条由中间结点构成的专用物理连接线路,在数据传输结束之前,这条线路一直保持。电路交换一定面向连接。通信时延小、实时性强、有序传输,但信道利用率低、缺乏统一标准、灵活性差。特点:独占资源,用户始终占用端到端的固定传输带宽,适用于远程批处理信息传输或系统间实时性要求高的大量数据传输的情况。
报文交换:报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。报文携带有目的地址、源地址。报文交换无需在两个站点之间建立一条专用通路,其数据传输的单位是报文,传送过程采用存储转发方式。无需建立连接、动态分配线路,但报文大小没限制,要求网络节点需要有较大的存储缓存空间。
分组交换(Package exchanging):大多数计算机网络都不能连续地传送任意长的数据,所以实际上网络系统把数据分割成小块,然后逐块地发送,这种小块就称作分组(packet)。分组交换与报文交换的工作方式基本相同,都采用存储转发方式,形式上的主要差别在于,分组交换网中要限制所传输的数据单位的长度,一般选 128B。发送节点首先对从终端设备送来的数据报文进行接收、存储,而后将报文划分成一定长度的分组,并以分组为单位进行传输和交换。接收结点将收到的分组组装成信息或报文。将一个长报文分割成若干个较短的分组。加速传输、简化存储管理、减少出错概率和重发数据量,但存在传输时延、可能出现失序、丢失或重复分组现象。小数据块 + 控制信息(源和目的地址、编号)= 分组。
数据交换方式选择:
- 传送数据量大,且传送时间远大于呼叫时,选择电路交换。电路交换传输时延最小。
- 当端到端的通路有很多段的链路组成时,采用分组交换传送数据较为合适。
- 从信道利用率上看,报文交换和分组交换优于电路交换,其中分组交换比报文交换的时延小,尤其适合于计算机之间的突发式的数据通信。
分组交换可分为面向连接的虚电路方式和面向无连接的数据报方式,二者都由网络层提供:
数据报方式:源主机将报文分成多个分组,依次发送到直接相连的结点;结点收到分组后,对每个分组差错检测和路由选择,不同分组的下一跳结点可能不同;下一结点收到分组后,对分组进行差错检测,若正确则向源主机发送确认信息,源主机收到结点确认后则丢弃分组副本。数据报无需建立连接、提高吞吐量、对故障适应力强,每个分组包含完整的源地址和目的地址,可靠通信由用户主机来保证。
- 数据报方式为网络层提供无连接服务。发送方可随时发送分组,网络中的结点可随时接收分组。
- 同一报文的不同分组达到目的结点时可能发生乱序、重复与丢失。
- 每个分组在传输过程中都必须携带源地址和目的地址,以及分组号。
- 分组在交换结点存储转发时,需要排队等候处理,这会带来一定的时延。当通过交换结点的通信量较大或网络发生拥塞时,这种时延会大大增加,交换结点还可根据情况丢弃部分分组。
- 网络具有冗余路径,当某一交换结点或一段链路出现故障时,可相应地更新转发表,寻找另一条路径转发分组,对故障的适应能力强,适用于突发性通信,不适于长报文、会话式通信。
虚电路将数据报方式和电路交换方式结合,以发挥两者优点。一条源主机到目的主机类似于电路的路径(逻辑连接),路径上所有结点都要维持这条虚电路的建立,都维持一张虚电路表,每一项记录了一个打开的虚电路的信息。虚电路时延小、按序到达,每个分组包含一个虚电路号,可靠通信由网络来保证。
- 虚电路方式为网络层提供连接服务。源节点与目的结点之间建立一条逻辑连接,而非实际物理连接。
- 一次通信的所有分组都通过虚电路顺序传送,分组不需携带源地址、目的地址等信息,包含虚电路号,相对数据报方式开销小,同一报文的不同分组到达目的结点时不会乱序、重复或丢失。
- 分组通过虚电路上的每个节点时,节点只进行差错检测,不需进行路由选择。
- 每个节点可能与多个节点之间建立多条虚电路,每条虚电路支持特定的两个端系统之间的数据传输,可以对两个数据端点的流量进行控制,两个端系统之间也可以有多条虚电路为不同的进程服务。
- 致命弱点:当网络中的某个结点或某条链路出故障而彻底失效时,则所有经过该结点或该链路的虚电路将遭到破坏。
无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。连接服务:首先为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组系列分组传输路径相同,传输结束后拆除连接。
TCP 可以向应用层提供面向连接的服务,而 UDP 在传输层是无连接的。
传输介质和物理层设备
传输介质也称传输媒体/传输媒介,它就是数据传输系统中在发送设备和接收设备之间的物理通路。传输介质并不是物理层,传输媒体在物理层的下面,因为物理层是体系结构的第一层,因此有时称传输媒体为 0 层。在传输媒体中传输的是信号,但传输媒体并不知道所传输的信号代表什么意思。但物理层规定了电气特性,因此能够识别所传送的比特流。物理层主要的功能就是确定与传输介质的接口有关的一些特性,即物理层接口的特性,如机械特性、电气特性、功能特性、规程特性。
传输介质分为导向性传输介质(电磁波被导向沿着固体媒介(铜线/光纤)传播)和非导向性传输介质(自由空间,介质可以是空气、真空、海水等)。
导向性传输介质包含双绞线、同轴电缆和光纤。
双绞线是古老、又最常用的传输介质,它由两根采用一定规则并排绞合的、相互绝缘的铜导线组成。绞合可以减少对相邻导线的电磁干扰。为了进一步提高抗电磁干扰能力,可在双绞线的外面再加上一个由金属丝编织成的屏蔽层,这就是屏蔽双绞线(STP),无屏蔽层的双绞线就称为非屏蔽双绞线(UTP)。双绞线价格便宜,是最常用的传输介质之一,在局域网和传统电话网中普遍使用。模拟传输和数字传输都可以使用双绞线,其通信距离一般为几公里到数十公里。距离太远时,对于模拟传输,要用放大器放大衰减的信号;对于数字传输,要用中继器将失真的信号整形。
同轴电缆由导体铜质芯线、绝缘层、网状编织屏蔽层和塑料外层构成。按特性阻抗数值的不同,通常将同轴电缆分为两类:50Ω 同轴电缆和 75Ω 同轴电缆。其中,50Ω 同轴电缆主要用于传送基带数字信号,又称为基带同轴电缆,它在局域网中得到广泛应用;75Ω 同轴电缆主要用于传送宽带信号,又称为宽带同轴电缆,它主要用于有线电视系统。由于外导体屏蔽层的作用,同轴电缆抗干扰特性比双绞线好,被广泛用于传输较高速率的数据,其传输距离更远,但价格较双绞线贵。
光纤通信就是利用光导纤维(简称光纤)传递光脉冲来进行通信。有光脉冲表示 1,无光脉冲表示 0。而可见光的频率大约是 10MHz,因此光纤通信系统的带宽远远大于目前其他各种传输媒体的带宽。光纤在发送端有光源,可以采用发光二极管或半导体激光器,它们在电脉冲作用下能产生出光脉冲;在接收端用光电二极管做成光检测器,在检测到光脉冲时可还原出电脉冲。光纤主要由实心的纤芯和包层构成,光波通过纤芯进行传导,包层较纤芯有较低的折射率。当光线从高折射率的介质射向低折射率的介质时,其折射角将大于入射角。因此,如果入射角足够大,就会出现全反射,即光线碰到包层时候就会折射回纤芯、这个过程不断重复,光也就沿着光纤传输下去。
光纤传输损耗小,中继距离长,对远距离传输特别经济。抗雷电和电磁干扰性能好无串音干扰,保密性好,也不易被窃听或截取数据。体积小,重量轻。
光纤分为单模光纤(一种在横向模式接传输光信号的光纤,衰耗小,适合远距离传输,光源:定向性很好的激光二极管)和多模光纤(有多种传输光信号模式的光纤,易失真,适合近距离传输,光源:发光二极管)。
非导向性传输介质有短波、微波、红外线与可见光等。
- 无线电波:较强穿透能力,可传远距离,广泛用于通信领域(如手机通信)。信号向所有方向传播。
- 微波:微波通信频率较高、频段范围宽,因此数据率很高。信号向固定方向传播。分地面微波接力通信和卫星通信(通信容量大、距离远、覆盖广、广播通信和多址通信、但传播时延长(250-270ms)、受气候影响大(强风、太阳黑子爆发、日凌)、误码率较高、成本高)。
- 红外线、激光:把要传输的信号分别转换为各自的信号格式,即红外光信号和激光信号,信号再在空间中传播。向固定方向传播。
物理层设备主要包含中继器和集线器。放大器放大的是模拟信号,中继器放大的是数字信号。
中继器:对信号进行再生和还原,对衰减的信号进行放大,保持与原数据相同,以增加信号传输的距离,延长网络的长度。
- 中继器的两端的网络部分是网段,而不是子网,适用于完全相同的两类网络的互连,且两个网段速率要相同。中继器只将任何电缆段上的数据发送到另一段电缆上,它仅作用于信号的电气部分,并不管数据中是否有错误数据或不适于网段的数据。两端可连相同媒体,也可连不同媒体。中继器两端的网段一定要是同一个协议。(中继器不会存储转发,傻)
- 5-4-3规则:网络标准中都对信号的延迟范围作了具体的规定,因而中继器只能在规定的范围内进行,否则会网络故障。
集线器实际就是一个多端口的中继器(Hub)。集线器在一个时钟周期内只能传输一组信息。集线器不能隔离冲突域,连在集线器上的工作主机平分带宽。
集线器的功能:对信号进行再生放大转发,对衰减的信号进行放大,接着转发到其他所有(除输入端口外)处于工作状态的端口上,以增加信号传输的距离,延长网络的长度。不具备信号的定向传送能力,是一个共享式设备。
通过中继器或集线器连接起来的几个网段仍然是一个局域网。使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用 CSMA/CD 协议,共享逻辑上的总线。
三、数据链路层
数据链路层的功能
结点:主机、路由器
链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。
数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。
帧:链路层的协议数据单元,封装网络层数据报。
数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。
数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
- 功能一:为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务。有连接一定有确认!
- 功能二:链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
- 功能三:组帧。
- 功能四:流量控制。限制发送方。
- 功能五:差错控制(帧错/位错)。
组帧(封装成帧)和透明传输
当 2 个主机互相传送信息时,网络层的分组(IP 数据报)必须封装成帧,并以帧的格式进行传送。封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。帧的数据部分 ≤ 最大传送单元 MTU。
帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
组帧方法分为字符计数法、字符填充法(字节填充的首尾界符法)、零比特填充法(比特填充的首尾标志法)、违规编码法(物理编码违例法)。
- 字符计数法:帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。
- 字符填充法:选定 2 个字符(SOH/EOT)作为每一个帧的开始和结束。字符填充的首尾界符法是将数据中可能出现的控制字符
SOH
和EOT
在接收端不解释为控制字符。当传送的帧是由文本文件组成时(文本文件的字符都是从键盘上输入的,都是 ASCII 码),不管从键盘上输入什么字符都可以放在帧里传过去,即透明传输。当传送的帧是由非 ASCII 码的文本文件组成时(二进制代码的程序或图像等),就要采用字符填充方法实现透明传输。 - 零比特填充法:使用
01111110
作为帧的开始和结束标志。在发送端。每有 5 个连续的1
马上在其后插入0
。在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描,每收到 5个连续的1
自动删除后面紧跟的0
恢复原始数据。保证了透明传输:在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误。 - 物理编码违例法利用物理介质上的编码的违法标志来区分帧的开始和结束,例如在曼彻斯特编码中高 - 高和低 - 低电平的编码方式是无效的,用来作为帧的起始和结束标志。由于字节计数法中 Count 字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。
透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。
差错控制(检错编码)
传输中的差错都是由于噪声引起的。全局性:由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。解决办法是提高信噪比来减少或避免干扰(对传感器下手)。局部性:外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。解决办法通常利用编码技术来解决。
差错分为:位错(比特位出错,1 变成 0,0 变成 1)和帧错(丢失、重复、失序)。差错控制(比特错)分为检错编码和纠错编码。
检错编码分为奇偶校验码和循环冗余码(CRC)。
数据链路层编码和物理层的数据编码与调制不同。物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。
冗余编码:在数据发送之前,先按某种关系附加上一定的冗余位,构成一个符合某一规则的码字后再发送当要发送的有效数据变化时,相应的冗余位也随之变化,使码字遵从不变的规则。接收端根据收到码字是否仍符合原规则,从而判断是否出错。
奇偶校验码是在信息码后面加 1 位校验码,分为奇校验和偶校验。奇校验是添加 1 位校验码后使得整个码字里面1
的个数是奇数。奇偶校验码特点:只能检查出奇数个比特错误,检错能力为 50%。
循环冗余码(CRC)是在发送端产生一个冗余码,附加在信息位后面一起发送到接收端,接收端收到的信息按发送端形成循冗余码同样的算法进行校验,如果发现错误则通知发送端重发。
- 计算冗余码:先加 0(假设生成多项式 G(x) 的阶为 r,则加 r 个 0)。再模 2 除法(数据加 0 后除以多项式,余数为冗余码 FCS)。多项式为 n 位,阶 r = n - 1。
- CRC 的本质是模 2 除法(异或,同 0 异 1,加法不进位,减法不退位)的余数,采用的除数不同,CRC 的类型也就不一样。
- 接收端检错过程:把收到的每一个帧都除以同样的除数,然后检查得到的余数。余数为 0,判定这个帧没有差错,接受。余数为不为 0,判定这个帧有差错(无法确定到位),丢弃。
- FCS 的生成以及接收端 CRC 检验都是由硬件实现,处理很迅速因此不会延误数据的传输。
- 循环冗余码具有 r 检测位的多项式能够检测出所有小于或等于 r 的突发错误,长度大于 r+1 的错误逃脱的概率是 $\dfrac{1}{2^{r}}$。
常见的纠错编码是海明码,在 m 位信息字段中插入若干位数据用于监督码字里的哪一位数据发生变化,具有一位纠错能力。两个合法编码(码字)的对应比特取值不同的比特数称为这两个码字的海明距离(码距),一个有效编码集中,任意两个合法编码(码字)的海明距离的最小值称为该编码集的海明距离(码距)。
- 确认校验码的位数 r:$2^{r}-1\geq m+r$。
- 校验码 $P_i$ 在编码中的位置为 $2^{i-1}$。
- 出错位 $e_n$ 等于所有有关位 $M_n$ 互为异或,求出 $P_i$,按序写出海明码。
- 校验海明码:出错位 $e_n$ 等于所有有关位 $M_n$ 互为异或,求出 $e_n$。
- 出错位 $e_n$ 对应的十进制数就是出错的位数。
流量控制与可靠传输机制
较高的发送速度和较低的接收能力的不匹配,会造成传输出错,流量控制就是要控制发送方发送数据的速率使接收方来得及接收,因此流量控制也是数据链路层的一项重要工作。数据链路层的流量控制是点对点的,而端到端的可靠传输就是在传输层使用面向连接的 TCP,而不是数据链路层。数据链路层流量控制手段:接收方收不下就不回复确认。传输层流量控制手段:接收端给发送端一个窗口公告。
流量控制分为停止 - 等待协议(每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧)和滑动窗口协议(后退 N 帧协议(GBN)和选择重传协议(SR))。
除了比特出差错,底层信道还会出现丢包问题(物理线路故障、设备故障、病毒攻击、路由信息错误等原因,会导致数据包的丢失),为了实现流量控制引入停止 - 等待协议。可靠传输一般使用确认和超时重传两种机制共同完成(ARQ自动请求重发),超时计时器:每次发送一个帧就启动一个计时器,超时计时器设置的重传时间应当比帧传输的平均 RTT 更长一些。
停止等待协议就是发送窗口和接收窗口大小均为 1。帧一般分为数据帧和确认帧。发完一个帧后,必须保留它的副本。数据帧和确认帧必须编号。
滑动窗口流量控制允许一次发送多个帧。在任意时刻发送方都维持一组连续的允许发送的帧的序号,称为发送窗口。同时接收方也维持一组连续的允许接收帧的序号,称为接收窗口。发送端每收到一个帧的确认,发送窗口就向前移动 1 个帧的位置。只有在接收窗口向前滑动时,发送窗口才有可能向前滑动。只要当接收窗口大小为 1 时,则可保证帧按序接受。
后退 N 帧协议:发送方连续发送若干个数据帧,如果收到接收方的确认帧接着发送数据,接收方只按顺序接收顺,不按序无情丢弃,即如果某个帧出错,接收方只能简单丢弃该帧及后续所有帧。增加吞吐量,但造成一定浪费。后退 N 帧协议接收窗口大小 = 1,$1<(发送窗口大小)W_{T}\leq 2^{n}-1$。n 为对帧编号的比特数。
GBN 发送方必须响应的三件事:
- 上层的调用:上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送,如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)。
- 收到了一个ACK:GBN 协议中,对 n 号帧的确认采用累积确认的方式,标明接收方已经收到 n 号帧和它之前的全部帧。
- 超时事件:协议的名字为后退 N 帧/回退 N 帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有已发送但未被确认的帧。
GBN 接收方要做的事:如果正确收到 n 号帧,并且按序,那么接收方为 n 帧发送一个 ACK,并将该帧中的数据部分交付给上层,其余情况都丢弃帧,并为最近按序接收的帧重新发送 ACK。接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum(下一个按序接收的帧序号)。
选择重传(Selective Repeat)协议:当一帧出错时,后续帧先存入接收方的缓冲区中,同时要求发送方重传出错帧。SR 协议对数据帧逐一确认,收一个确认一个,只重传出错帧,接收方有缓存选择,提高信道利用率但增加缓冲空间。
重传协议的接收窗口尺寸和发送窗口尺寸都大于 1,以便能一次性接受多个帧。发送窗口的最大尺寸也不能超过序列号范围的一半。当发送窗口等于接收窗口 = $2^{n}-1$ 时达到最大效率。按序到达的且没有被交付给主机的帧被放在接收缓存里。不按序到达的数据且没有错误的帧放在接收窗口里。不直接给主机,等缺少的帧收到后再一起放到接收缓存。
SR 发送方必须响应的三件事:
- 上层的调用:从上层收到数据后,SR 发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;否则就像 GBN 一样,要么将数据缓存,要么返回给上层之后再传输。
- 收到了一个 ACK:如果收到 ACK,加入该帧序号在窗口内,则 SR 发送方将那个被确认的帧标记为已接收。如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。
- 超时事件:每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。
SR 接收方将确认一个正确接收的帧而不管其是否按序。失序的帧将被缓存,并返回给发送方一个该帧的确认帧【收谁确认谁】,直到所有帧(即序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。如果收到了窗口序号外(小于窗口下界)的帧,就返回一个 ACK。其他情况,就忽略该帧。
信道划分介质访问控制
传输数据使用的两种链路:点对点链路(两个相邻节点通过一个链路相连,没有第三者。应用:PPP协议,常用于广域网);广播式链路(所有主机共享通信介质。应用:早期的总线以太网、无线局域网,常用于局域网。典型拓扑结构:总线型、星型(逻辑总线型))
信道划分介质访问控制:将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。介质访问控制的内容就是,采取一定的措施,使得两对节点之间的通信不会发生互相干扰的情况。
静态分配信道的方法是信道划分介质访问控制。动态分配信道的方法分为随机访问介质访问控制和轮询访问介质访问控制。
多路复用技术是在一条介质上同时携带多个传输信号,使多个计算机或终端设备共享信道资源,提高信道的利用率。实现信道划分介质访问控制。把一条广播信道,逻辑上分成几条用于两个节点之间通信的互不干扰的子信道,实际就是把广播信道转变为点对点信道。
信道划分介质访问控制(静态划分信道)分为频分多路复用 FDM、时分多路复用 TDM、波分多路复用 WDM 和码分多路复用 CDM。
- 频分多路复用(FDM):用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。频分复用的所有用户在同样的时间占用不同的带宽(频率带宽)资源。充分利用传输介质带宽,系统效率较高,由于技术比较成熟,实现也比较容易。如果复用数增加,那么信号的频率带宽增加。
- 时分多路复用(TDM):将时间划分为一段段等长的时分复用帧(TDM 帧)。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙,所有用户轮流占用信道。TDM 帧是在物理层传送的比特流所划分的帧,标志一个周期。
- 统计时分复用(STDM)是一种动态的时间分配,每一个 STDM 帧中的时隙数小于连接在集中器上的用户数。各用户有了数据就随时发往集中器的输入缓存,然后集中器按顺序依次扫描输入缓存,把缓存中的输入数据放入 STDM 帧中,一个 STDM 帧满了就发出。STDM 帧不是固定分配时隙,而是按需动态分配时隙。
- 波分多路复用(WDM)就是光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。
- 码分多址(CDMA)是码分复用的一种方式,既共享信道的频率又共享时间,主要用于无线通信系统。1 个比特分为多个码片/芯片(chip),每个站点被指定一个唯一的 m 位的芯片序列,发送 1 时发送芯片序列(通常把 0 写成 -1)发送 1 时站点发送芯片序列,发送 0 时发送芯片序列反码。
- 多个站点同时发送数据的时候,要求各个站点芯片序列相互正交,规格化内积为 0。$S, T=\dfrac{1}{m}\sum ^{m}{i=1}S{i}T_{i}$。
- 两个向量到了公共信道上,线性相加。$S - T$。
- 数据分离:合并的数据和源站规格化内积。$S (S - T) = 1, T (S - T) = -1$。
动态划分信道(动态媒体接入控制/多点接入:信道并非在用户通信时固定分配给用户):分为轮询访问介质访问控制(令牌传递协议)和随机访问介质访问控制(ALOHA 协议、CSMA 协议、CSMA/CD 协议、CSMA/CA 协议)。
ALOHA协议:不监听信道,不按时间槽发送,随机重发,不检测发送数据,如果发生冲突,接收方在就会检测出差错,然后不予确认,发送方在一定时间内收不到就判断发生冲突,发生冲突的节点等待一段随机事件后再发送数据。
时隙 ALOHA 协议:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。纯 ALOHA 比时隙 ALOHA 吞吐量更低,效率更低。纯 ALOHA 想发就发,时隙 ALOHA 只有在时间片段开始时才能发。
载波侦听多路访问(CSMA)协议:每个节点发送数据之前,都使用载波侦听技术来判定通信信道是否空闲,在局域网中被广泛的应用。协议思想:发送帧之前,监听信道。
- Carrier Sense:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。
- Multiple Access:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
- 1-坚持 CSMA:如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。忙则一直监听,直到空闲马上传输。如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听。优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
- p-坚持 CSMA:P 坚持指的是对于监听信道空闲的处理。如果一个主机要发送消息,那么它先监听信道。监听到信道空闲时,以概率 P 发送数据,以概率 (1-P) 延迟一段时间并重新监听。忙则持续监听直到信道空闲再以 P 概率发送。若冲突则等到下一个时间槽开始再监听并重复上述过程。优点:既能像非坚持算法那样减少冲突,又能像 1-坚持算法那样减少媒体空闲时间的这种方案。但是发生冲突后还是要坚持把数据帧发送完,造成了浪费。
- 非坚持 CSMA。非坚持指的是对于监听信道忙之后就不继续监听。如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。忙则等待一个随机的时间之后再进行监听。优点:采用随机的重发延迟时间可以减少冲突发生的可能性。缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。
CSMA/CD协议(带冲突检测的载波侦听多路访问协议):检测超过发送站点本身发送的载波信号的幅度,由此判断出冲突的存在,并向总线上发一串阻塞信号。
- Carrier Sense:载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据。
- Multiple Access:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。总线型网络。
- Collision Detection:碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。CSMA/CD 用于信道使用半双工的网络环境,而对于使用全双工的网络环境,则无需采用这种介质访问控制技术。
- CSMA/CD 工作流程:先听后发,边听边发,冲突停发,随机重发。
- 争用期($2\tau$):以太网端到端的往返时延,又称冲突窗口或碰撞窗口。只有经过争用期还没有检测到冲突,才能肯定这次发送不会发生冲突。
- 截断二进制指数类型退避算法:确定基本退避(推迟)时间为争用期 $2\tau$。定义参数 k,它等于重传次数,但 k 不超过 10,即 $k=min[重传次数, 10]$。当重传次数不超过 10 时,k 等于重传次数;当重传次数大于 10 时,k 就不再增大而一直等于 10。从离散的整数集合 $[0,1,2^k-1]$ 中随机取出一个数 r,重传所需要退避的时间就是倍的基本退避时间,即 $2r \tau$。当重传达 16 次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错。若连续多次发生冲突,就表明可能有较多的站参与争用信道使用此算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而减小发生碰撞的概率,有利于整个系统的稳定。
- 最短有效帧长和最远 2 个站的距离及传输速率成正比。帧的传输时延至少要两倍于信号在总线中的传播时延,以太网规定最短帧长为64B,凡长度小于64B的都是由于冲突而异常停止的无效帧。以太网端到端的单程时延实际上小于争用期的一半(25.6μs)。最小帧长 = $2\tau * 数据传输速率$
载波监听多点接入/碰撞避免 CSMA/CA(carrier sense multiple access with collision avoidance)协议主要用在无线局域网中,在 CSMA 的基础上增加了冲突避免的功能。CSMA/CA 协议要对正确接收到的数据帧进行确认。发送数据前,先检测信道是否空闲。空闲则发出 RTS(request to send),RTS 包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;信道忙则等待。接收端收到 RTS 后,将响应 CTS(clear to send)。发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)。接收端收到数据帧后,将用 CRC 来检验数据是否正确,正确则响应 ACK 帧。发送方收到 ACK 就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)。
CSMA/CD 检测冲突,CSMA/CA 避免冲突,二者出现冲突后都会进行有上限的重传。
轮询访问介质访问控制(既要不产生冲突,又要发送时占全部带宽)主要用于在令牌环局域网中。典型的轮询访问介质访问控制协议就是令牌传递协议。
- 轮询协议:主结点轮流“邀请”从属结点发送数据。
- 令牌传递协议:令牌是一个特殊格式的 MAC 控制帧,不含任何信息。控制信道的使用,确保同一时刻只有一个结点独占信道。令牌环网无碰撞每个结点都可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌。应用于令牌环网(物理星型拓扑,逻辑环形拓扑)。采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。
局域网
局域网(local area network,LAN)是指一个较小范围内的多台计算机或其他通信设备通过双绞线、同轴电缆等连接介质互联起来,以达到资源和信息共享目的的互联网络。局域网有较高的数据率、较低的时延和较小的误码率,具有广播功能,便于系统的扩展和演变。
局域网的主要技术要素包括网络拓扑结构传输介质与介质访问控制方法。局域网的主要拓扑结构包括星型拓扑、环形拓扑、总线型拓扑和树型拓扑(星型拓扑和总线型拓扑的结合)。双绞线、同轴电缆、光纤、电磁波为局域网的主流传输介质。
局域网的主要介质访问控制方法包括 CSMA/CD、令牌总线(把总线型或树型网络中的各个工作站按一定顺序如按接口地址大小排列形成一逻辑环)和令牌环。前两种作用于总线型和树型网,令牌环作用于环形网。
局域网的分类:
- 以太网:以太网是应用最为广泛的局域网,包括标准以太网(10Mbps)、快速以太网(100Mbps)、千兆以太网(1000Mbps)和 10G 以太网,它们都符合 IEEE802.3 系列标准规范。逻辑拓扑总线型,物理拓扑是星型或拓展星型。使用CSMA/CD。
- 令环网:物理上采用了星形拓扑结构,逻辑上是环形拓扑结构。
- FDDl 网(Fiber Distrlbuted Data Interface):物理上采用了双环拓扑结构,逻辑上是环形拓扑结构。
- ATM网(Asynchronous Transfer Mode):较新型的单元交换技术,使用 53 字节固定长度的单元进行交换。
- 无线局域网(Wireless Local Area Networks WLAN)采用 IEEE802.11 标准。IEEE802 系列标准是 IEEE802 LAN/MAN 标准委员会制定的局域网、城域网技术标准(1980年2月成立)。其中最广泛使用的有以太网、令牌环、无线局域网等。这一系列标准中的每一个子标准都由委员会中的一个专门工作组负责。
IEEE 802 标准所描述的局域网参考模型只对应 OSI 参考模型的数据链路层与物理层,并将数据链路层划分为 2 个子层,逻辑链路控制(LLC)子层和介质访问控制(MAC)子层。
- LLC 负责识别网络层协议,然后对它们进行封装。LLC 报头告诉数据链路层一旦帧被接收到时,应当对数据包做何处理。为网络层提供服务:无确认无连接、面向连接、带确认无连接、高速传送。
- MAC 子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等。MAC 子层的存在屏蔽了不同物理链路种类的差异性。
以太网(Ethernet)指的是由 Xerox 公司创建并由 Xerox、Intel 和 DEC 公司联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络采用总线拓扑结构,所有计算机都共享一条总线信息,以广播方式发送,使用 CSMA/CD(载波监听多路访问及冲突检测)技术对总线进行访问控制。以太网造价低廉(以太网网卡不到100块),比令牌环网、ATM 网便宜,简单,满足网络速率要求(10Mb/s~10Gb/s) ,是应用最广泛的局域网技术。
以太网两个标准:DIX Ethernet V2(第一个局域网产品/以太网规约),IEEE 802.3(IEEE802委员会 802.3 工作组制定的第一个 IEEE 的以太网标准,帧格式有一丢丢改动)
以太网采用无连接的工作方式,发送方和接收方之间无握手过程。以太网提供的服务是不可靠服务,不对发送的数据帧进行编号,也不要求对发送方发送确认,差错帧直接丢弃,所以有重传机制,且差错纠正由传输层的 TCP 完成。以太网只实现无差错接收,不实现可靠传输。
使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是 CSMA/CD 协议。以太网拓扑:逻辑上总线型,物理上星型。
10BASE-T 是传送基带信号的双绞线以太网,为快速以太网,T 表示采用双绞线,现 10BASE-T 采用的是无屏蔽双绞线(UTP),传输速率是 10Mb/s。物理上采用星型拓扑,逻辑上总线型,每段双绞线最长为100m。采用曼彻斯特编码。采用 CSMA/CD 介质访问控制。
计算机与外界有局域网的连接是通过通信适配器的:网络接口板、网络接口卡 NIC(network interface card)。适配器上装有处理器和存储器(包括 RAM 和 ROM,ROM 上有计算机硬件地址 MAC 地址)。在局域网中,硬件地址又称为物理地址,或 MAC 地址(实际上是标识符)。MAC 地址:每个适配器有一个全球唯一的 48 位二进制地址,前 24 位代表厂家(由IEEE规定),后 24 位厂家自己指定。常用 6 个十六进制数表示,如 02-60-8c-e4-b1-21。最常用的 MAC 帧是以太网 V2 的格式。
数据传输速率达到或超过 100Mbit/s 的以太网称为高速以太网。吉比特以太网为千兆以太网,允许在全双工和半双工两种方式工作,在半双工方式下工作时必须使用 CSMA/CD 协议进行冲突检测。
IEEE802.11 是无线局域网通用的标准,它是由 IEEE 所定义的无线网络通信的标准。无线局域网分为有固定基础设施和无固定基础设施两类。IEEE802.11 规定有固定基础设施的无线局域网的最小构建为基本服务集(BSS),BSS 中的基站称为接入点(AP)。
- 基本服务集可以是孤立的,也可以通过接入点连接到一个主干分配系统(DS)构成扩展的服务器(ESS),ESS还可通过门桥(portal)设备为无线用户提供到非IEEE802.11无线局域网的接入。
- IEEE802.11 标准中的物理层有跳频扩频(FHSS)、直接序列扩频(DSS)、红外线(IR)3种实现方法。
- IEEE802.11 标准中的 MAC 层在物理层上,包括 2 个子层,从下往上依次为分布协调功能(DCF)子层和点协调功能(PCF)子层。在带有碰撞避免功能的 CSMA/CA 协议的基础上增加确认机制。
传统局域网缺乏流量隔离,管理用户不便,路由器成本较高。虚拟局域网 VLAN(Virtual Local Area Network)是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组有某些共同的需求。每个 VLAN 是一个单独的广播域/不同的子网。
- 交换机上生成的各 VLAN 互不相通,若想实现通信,需要借助路由器和三层交换机。
广域网(WAN, Wide Area Network),通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。广域网的通信子网主要使用分组交换技术。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。因特网是世界范围内最大的广域网。
- 广域网是通过交换机连接多个局域网组成,因特网是由广域网和局域网共同通过路由器相连。
- 局域网使用的协议主要在数据链路层,而广域网使用的协议主要在网络层。
- 广域网的路由选择协议负责搜索分组从某个节点到目的节点的最佳传输路由,以便构成路由表,从路由表再构造出转发分组的转发表,分组是通过转发表进行转发的。
点对点协议(PPP)由一个将 IP 数据报封装到串行链路的方法、一个用于建立配置和测试数据链路连接的链路控制协议(LCP)和一套用来建立和配置不同的网络层协议的网络控制协议(NCP),其中每个协议支持不同的网络层协议。PPP 是一个面向字节的协议,不需要纠错(只负责检错)、流量控制(由 TCP 负责)、序号(不可靠的传输协议)、多点线路,只支持全双工链路。
高级数据链路控制(HDLC)协议是 ISO 制定的面向比特的数据链路控制协议,数据报文可透明传输,用于实现透明传输的 0 比特插入法,易于硬件实现,采用全双工通信,所有帧采用 CC 检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高。可适用于链路的非平衡配置(一个主站控制整个链路的工作)和平衡配置(链路两端2个站都是复合站)。
- PPP 帧比 HDLC 协议帧多一个 2 字节的协议字段,当协议字段值为 Ox0021 时表示信息字段是 IP 数据报。
- PPP 不使用序号和确认机制,只保证无差错接收(通过硬件进行循环冗余码校验),HDLC 协议的信息帧使用了编号和确认机制。
HDLC 的站(主站、从站、复合站):
- 主站的主要功能是发送命令(包括数据信息)帧、接收响应帧,并负责对整个链路的控制系统的初启、流程的控制、差错检测或恢复等。
- 从站的主要功能是接收由主站发来的命令帧,向主站发送响应帧,并且配合主站参与差错恢复等链路控制。
- 复合站的主要功能是既能发送,又能接收命令帧和响应帧,并且负责整个链路的控制。
- 三种数据操作方式:正常响应方式、异步平衡方式、异步响应方式。
数据链路层设备
在物理层拓展局域网使用中继器和集线器扩大冲突域,但总吞吐量未提高,且不能互联使用不同以太网技术的局域网。
在数据链路层扩展局域网使用网桥,具有过滤帧的功能。网桥至少有 2 个端口,每一个端口与一个网段相连。网桥根据 MAC 帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。
- 网桥过滤通信量,增大吞吐量、扩大物理范围、提高可靠性、可互连不同物理层、不同MAC子层和不同速率的以太网,但存储转发增加时延,且在 MAC 层并没有流量控制功能,用户过多会因传播过多的广播信息而产生网络拥塞(广播风暴)。
- 网桥包括透明网桥(选择的不是最佳路由)和源选径网桥(选择的是最佳路由)。最佳路由并不一定是经过路由器最少的路由,也可以是发送帧往返时间最短的路由(实现负载平衡)。
局域网交换机实质上是工作在数据链路层的多端口网桥。局域网交换机的每个端口都直接与主机或集线器相连,并且一般都工作在全双工方式。交换机分为直通式交换和存储转发式交换,工作原理与网桥类似。
- 交换机总容量 = 端口数×每个端口带宽(半双工)or 端口数×每个端口带宽×2(全双工)
- 网桥的端口一般连接到局域网的网段,而以太网交换机的每个端口一般都直接与主机相连,也可连接到Hub。
一块网卡发出一个广播,能收到这个广播的所有网卡集合为一个广播域。通常情况下,一个网段就是一个冲突域,一个局域网就是一个广播域。
- 冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。简单的说就是同一时间内只能有一台设备发送信息的范围。
- 广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,所有能接收收到这个信号的设备范围称为一个广播域。
四、网络层
网络层提供的服务
网络层的主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。功能一:路由选择与分组转发最佳路径;功能二:异构网络互联;功能三:拥塞控制(若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施)
网络层向上只提供简单灵活的、无连接的、尽最大努力交互的数据报服务,并且网络层不提供服务质量的承诺。这样的好处在于网络造价大大降低,运行方式灵活。
IP 数据报
网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。其中,与 IP 协议配套使用的有三种协议:地址解析协议 ARP、网际控制报文协议 ICMP、网际组管理协议 IGMP。其中,ICMP、IGMP 协议是往基层向上提供的两种服务。
一个 IP 数据报由首部(20 字节+可选字段)和数据(TCP、UDP 段)两部分组成,
- 版本:IPv4 或 IPv6。首部长度:单位是 4B,最小为 5。区分服务:指示期望获得哪种类型的服务。总长度:首部+数据,单位是 1B。
- 生存时间(TTL):IP 分组的保质期,经过一个路由器 -1,变成 0 则丢弃。协议:数据部分的协议。首部检验和:只检验首部。
- 源 IP 地址和目的 IP 地址:32位。可选字段:0~40B,用来支持排错、测量以及安全等措施。填充:全0,把首部补成 4B 的整数倍。
最大传送单元(MTU):链路层数据帧可封装数据的上限,以太网的 MTU 是 1500 字节。如果所传送的数据报长度超过某链路 IP 分组首部数据部分的 MTU 值就需要分片。
- 标识:同一数据报的分片使用同一标识。标志:只有 2 位有意义(×——)。
- 中间位 DF(Don’t Fragment):DF=1 时禁止分片,DF=0 时允许分片。最低位 MF(More Fragment):MF=1 时后面还有分片,MF=0 时代表最后一片/没分片。
- 片偏移:指出较长分组分片后,某片在原分组中的相对位置。以 8B 为单位。除了最后一个分片,每个分片长度一定是 8B 的整数倍。
- 总长度单位是 1B,片偏移单位是 8B,首部长度单位是 4B。
IPv4 地址
IP 地址:全世界唯一的 32 位/ 4 字节标识符,标识路由器主机的接口。IP 地址::={<网络号>,<主机号>}
。点分十进制:11011111 00000001 00000001 00000001 = 223.1.1.1。
IP地址根据网络号和主机号来分,分为 A、B、C 三类及特殊地址 D、E。全 0 和全 1 的都保留不用。
- A 类:(1.0.0.0-126.0.0.0)(默认子网掩码:255.0.0.0 或 0xFF000000)第一个字节为网络号,后三个字节为主机号。该类 IP 地址的最前面为“0”,所以地址的网络号取值于 1~126 之间。一般用于大型网络。
- B 类:(128.0.0.0-191.255.0.0)(默认子网掩码:255.255.0.0 或 0xFFFF0000)前两个字节为网络号,后两个字节为主机号。该类 IP 地址的最前面为“10”,所以地址的网络号取值于 128~191 之间。一般用于中等规模网络。
- C类:(192.0.0.0-223.255.255.0)(子网掩码:255.255.255.0或 0xFFFFFF00)前三个字节为网络号,最后一个字节为主机号。该类IP地址的最前面为“110”,所以地址的网络号取值于 192~223 之间。一般用于小型网络。
- D 类:是多播地址。该类IP地址的最前面为“1110”,所以地址的网络号取值于 224~239 之间。一般用于多路广播用户。
- E 类:是保留地址。该类IP地址的最前面为“1111”,所以地址的网络号取值于 240~255 之间。
在 IP 地址 3 种主要类型里,各保留了 3 个区域作为私有地址,其地址范围如下:
- A类地址:10.0.0.0~10.255.255.255
- B类地址:172.16.0.0~172.31.255.255
- C类地址:192.168.0.0~192.168.255.255
- 回送地址:127.0.0.1。 也是本机地址,等效于 localhost 或本机 IP。一般用于测试使用。例如:ping 127.0.0.1 来测试本机 TCP/IP 是否正常。
网络地址转换 NAT
路由器对目的地址是私有 IP 地址的数据报一律不进行转发。
网络地址转换 NAT(Network Address Translation):在专用网连接到因特网的路由器上安装 NAT 软件,安装了 NAT 软件的路由器叫 NAT 路由器,它至少有一个有效的外部全球 IP 地址。
子网划分与子网掩码
两级IP(<网络号>,<主机号>)的缺陷:IP 地址空间的利用率有时很低,两级 IP 地址不够灵活。
子网划分:将其中二级 IP 的主机号取出并高 x 位变成子网络,形成网络号 + 子网号 + 主机号的地址格式划分为三级 IP 地址。某单位划分子网后,划分子网属于一个单位内部的事情,对外仍表现为一个网络,即本单位外的网络看不见本单位内子网的划分。
子网掩码:在划分子网的同时,还能通过它知道主机在子网里面的具体 IP 的具体地址。
互联网络
- 因为用户的需求是多种多样的,没有一种单一的网络能够适应所有用户的需求,所以不同的网络之间,将网络互联起来需要使用一些中间设备。
- 物理层使用的中间设备是转发器
- 数据链路层使用的中间设备是网桥或者桥接器
- 网络层使用的中间设备是路由器
- 网络层以上使用的中间设备叫网关
无分类编址 CIDR
CIDR 取消了传统的 A 类、B 类和 C 类地址以及划分子网的概念,并且用网络前缀代替网络号和子网号,后面的部分指明主机。因此,CIDR 使 IP 地址从三级地址(使用子网掩码),又回到了两级地址(无分类的两级编址)。
CIDR 把网络前缀相同的连续的 IP 地址组成一个”CIDR 地址块”,只要知道 CIDR 地址块中的任何一个地址,就可以知道这地址块的起始地址(即最小地址)和最大地址,以及地址块中的地址数。
CIDR 记法:IP 地址后加上“/
”,然后写上网络前缀(可以任意长度)的位数。例如:128.14.32.0/20
。
地址掩码:是一连串的 1 和 0 组成,而 1 的个数救赎网络前缀长度。在斜线记法中。斜线后面的数字就是地址掩码中 1 的个数。
构成超网:由于一个 CIDR 地址块中含有很多地址,所以在路由表中就利用 CIDR 地址块来查找目标网络,将多个子网聚合成一个较大的子网,这种地址的聚合常称为路由聚合,也称构成超网。方法:将网络前缀缩短(所有网络地址取交集)。
最长前缀匹配:使用 CIDR 时,查找路由表可能得到几个匹配结果(跟网络掩码按位相与),应选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体。
地址解析协议 ARP
由于在实际网络的链路上传送数据帧时,最终必领使用 MAC 地址。ARP 协议的主要内容在于从网络层使用的 IP 地址,解析出在数据链路层使用的硬件地址(完成主机或路由器 IP 地址到 MAC 地址的映射。解決下一跳走哪的问题)。
工作原理:一个主机都设有一个 ARP 高速缓存,里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。
ARP 协议使用过程:检查 ARP 高速缓存,有对应表项则写入 MAC 帧,没有则用目的 MAC 地址为 FF-FF-FF-FF-FF-FF 的帧封装并广播 ARP 请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个 ARP 响应分组,源主机收到后将此映射写入 ARP 缓存(10-20min更新一次)。ARP 协议自动进行。
ARP 协议 4 种典型情况:
- 主机 A 发给本网络上的主机 B:用 ARP 找到主机 B 的硬件地址;
- 主机 A 发给另一网络上的主机 B:用 ARP 找到本网络上一个路由器(网关)的硬件地址;
- 路由器发给本网络的主机 A:用 ARP 找到主机 A 的硬件地址;
- 路由器发给另一网络的主机 B:用 ARP 找到本网络上的一个路由器的硬件地址。
DHCP 协议
IP地址与硬件地址
物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和网络层以上各层使用的地址
在发送数据时,数据从高层下到底层,然后才到通信链路上使用IP的IP数据报一旦交给了数据链路层,就被封装成MAC帧(MAC地址)
最长前缀匹配
最长前缀匹配之前,使用CIDR时,每个项目由网络前缀和下一跳地址组成。但是在查找路由表时会得到不止一个匹配结果该怎么办呢?
此时应该选择匹配结果中,有最长网络前缀的路由。因为网络前缀越长,可分配的地址数就越少,其地址信息路由就越具体
网际控制报文协议ICMP
为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了ICMP,ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP是互联网的标准协议,但不是高层协议。其种类如下:
- ICMP差错报告报文
- ICMP询问报文
- ICMP的应用在于分组网间探测PING,以用来测试两台主机之间的连通性。
互联网的路由选择协议
路由选择协议分为两大类:
- 内部网关协议
- 外部网关协议
内部网关协议
- RIP是内部网关协议中最先得到广泛应用的协议,也被称为路由信息协议,但是其很少被使用。其主要特点如下:
- 仅和相邻路由器交换信息。
- 路由器交换的信息是当前路由器所知道的全部信息,即自己现在的路由
- 按固定的时间间隔交换路由信息,例如,每隔30秒。
- 因此,RIP有如下的优缺点。
- 当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。
- RIP 协议最大的优点就是实现简单,开销较小。
- RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
- 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
- RIP是内部网关协议中最先得到广泛应用的协议,也被称为路由信息协议,但是其很少被使用。其主要特点如下:
OSPF最主要的特征就是使用分布式的链路状态协议,其主要特点:
- 使用洪泛法向本自治系统中所有路由器发送信息。
发送的信息是与本路由器相邻的所有路由器的链路状态。
只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
IPv6
- 解决IP地址耗尽的根本措施在于采用具有更大地址空间的新版本IP,即IPv6。它有两大部分组成:基本首部,有效载荷
- IPv6采用的是点分十六进制的记法,把每个十六位的值用十六进制表示,并且各个值之间用冒号分割
- 冒号十六进制允许零压缩,但只能使用一次零压缩
- 冒号十六进制可以结合使用点分十进制记法的后缀。
传输层
运输层协议概述
- 运输层功能
- 运输层应用进程之间提供端到端的逻辑通信。这与网络层的区别在于网络层是为主机之间提供逻辑通信的
- 运输层需要对收到的报文进行差错检验
- 运输层有两种不同的运输协议,即面向连接的TCP和无连接的UDP
- TCP/IP的运输层有两个不同的协议:
- 用户数据报协议UDP
- 传输控制协议TCP
- UDP协议特点
- 提供无连接服务
- 尽最大努力交付
- 面向报文,UDP 一次交付一个完整的报文
- 没有拥塞控制,网络拥塞不会使源主机的发送速率降低
- 支持一对一、一对多、多对一和多对多的交互通信
- 首部开销小,只有 8 个字节
- 应用:对可靠性要求不高,需要传送的数据不多,使用频率不高。并且可以实时应用。
- TCP协议特点
- 提供面向连接的服务
- 可靠传输:主要以字节为单位的滑动窗口和超时重传时间的选择
- 面向字节流
- 拥塞控制:避免由于对网络中某资源的需求超过可用资源,令网络的性能变坏
- TCP 的流量控制:让发送方的发送速率不要太快
- 总结:TCP和UDP协议的区别
- TCP的特点
- 面向连接协议
- 提供交互保证
- 较UDP实时性低
- TCP首部开销20个字节
- TCP速度较慢
- 拥塞机制
- TCP将数据看成一连串的字节
- 重量级协议,资源占用多
- 只有点对点连接
- UDP的特点
- 无连接协议
- 尽最大努力交付,不提供有序、序列保证
- 较好的实时性
- 首部开销8字节
- 运行速度较快
- 无拥塞机制
- 面向报文
- 轻量级
- 一对一,一对多,多对多
- 运输层的端口
- 运行在计算机中的进程是用进程标识符来标志的。但运行在应用层的各种应用进程却不应当让计算机操作系统指派它的进程标识符。这是因为在互联网上使用的计算机的操作系统种类很多,而不同的操作系统又使用不同格式的进程标识符。
为了使运行不同操作系统的计算机的应用进程能够互相通信,就必须用统一的方法对 TCP/IP 体系的应用进程进行标志。 - 由于进程的创建和撤销都是动态的,发送方几乎无法识别其他机器上的进程。有时我们会改换接收报文的进程,但并不需要通知所有发送方。所以我们往往需要利用目的主机提供的功能来识别终点,而不需要知道实现这个功能的进程。
- 解决这个问题的方法就是在运输层使用协议端口号 (protocol port number),或通常简称为端口(port)。虽然通信的终点是应用进程,但我们可以把端口想象是通信的终点,因为我们只要把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即最后交付目的进程)就由 TCP来完成。
- 运行在计算机中的进程是用进程标识符来标志的。但运行在应用层的各种应用进程却不应当让计算机操作系统指派它的进程标识符。这是因为在互联网上使用的计算机的操作系统种类很多,而不同的操作系统又使用不同格式的进程标识符。
TCP可靠传输的实现
以字节单位的滑动窗口
TCP使用流水线传输和滑动窗口协议实现高效、可靠的传输。TCP 的滑动窗口是以字节为单位的。
发送方 A 和接收方 B 分别维持一个发送窗口和一个接收窗口。
- 发送窗口表示:在没有收到确认的情况下,可以连续把窗口内的数据全部发送出去。
- 接收窗口表示:只允许接收落入窗口内的数据。
超时重传时间的选择
- 重传机制是 TCP 中最重要和最复杂的问题之一。
- TCP 每发送一个报文段,就对这个报文段设置一次计时器。
- 只要计时器设置的重传时间到但还没有收到确认,就要重传这一报文段。
- 重传时间的选择是 TCP 最复杂的问题之一。
利用滑动窗口实现流量控制
- 一般说来,我们总是希望数据传输得更快一些。但如果发送方把数据发送得过快,接收方就可能来不及接收,这就会造成数据的丢失。
- 流量控制 (flow control) 就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。
- 利用滑动窗口机制可以很方便地在 TCP 连接上实现流量控制。
拥塞机制
- 在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏。这种现象称为拥塞 (congestion)。
- 最坏结果:系统崩溃。
网络拥塞往往是由许多因素引起的。例如:
- 点缓存的容量太小;
- 链路的容量不足;
- 处理机处理的速率太慢;
- 拥塞本身会进一步加剧拥塞;
- 总的来说,出现拥塞的原因在于对资源的需求大于可用资源
TCP的拥塞控制方法
慢开始与拥塞窗口
- TCP 采用基于窗口的方法进行拥塞控制。该方法属于闭环控制方法。
- TCP发送方维持一个拥塞窗口 cwnd
发送端利用拥塞窗口根据网络的拥塞情况调整发送的数据量。
发送窗口大小不仅取决于接收方窗口,还取决于网络的拥塞状况
- 只要网络没有出现拥塞,拥塞窗口就可以再增大一些,以便把更多的分组发送出去,这样就可以提高网络的利用率。
- 但只要网络出现拥塞或有可能出现拥塞,就必须把拥塞窗口减小一些,以减少注入到网络中的分组数,以便缓解网络出现的拥塞。
- 其中,对于拥塞的判断,有以下两个指标:1.重传定时器超时。2.收到三个重复的ACK。
应用层协议
- 应用层协议主要定义运行在不同端系统上的应用程序进程之间如何相互传递信息
常用的几种协议:DNS、FTP、HTTP、DHCP 的作用
- DNS:域名系统DNS是互联网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址。DNS同时占用TCP协议与UDP协议的53号端口。
- FTP:文件传送协议FTP是互联网上使用的最广泛的文件传送协议。FTP使用的传输层协议是
- TCP,FTP 传数据流占用20号端口,FTP传控制流占用21号端口。
- HTTP:HTTP协议定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。HTTP使用传输层协议为TCP,端口号为80。
- DHCP:互联网目前广泛使用的动态主机配置协议DHCP,它提供一种机制,成为即插即用联网。DHCP使用UDP,端口号为67和68。
在应用层,用到DNS协议,作用是域名解析,HTTP协议浏览器和服务器之间的交互访问协议。
- 在传输层,运用UDP域名解析协议使用的运输层协议,TCP浏览器和WWW服务器之间建立连接,提供可靠的数据传输。
- 在网际层IP,IP数据报传输和路由选择,ICMP提供网络传输中的差错检测,ARP将本机缺省的网关IP地址映射成物理地址(MAC地址)