本篇文章内容与摘要来自哔哩哔哩【计算机网络微课堂(有字幕无背景音乐版)】——湖科大书匠
概述
计算机网络在信息时代的作用
-
计算机网络已由一种通信基础设施发展成为一种重要的信息服务基础设施
-
计算机网络已经像水,电,煤气这些基础设施一样,成为我们生活中不可或缺的一部分\
因特网
网络:网络(Network)由若干结点(Node)和连接这些结点的链路(Link)组成。
互连网(互联网):多个网络通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互连网(互联网)。因此,互联网又称为“网络的网络(Network of Networks)”。
因特网:因特网(Internet)是世界上最大的互连网络(用户数以亿计,互连的网络数以百万计)。
三种交换方式、端点交换方式
C/S方式:客户端与服务端之间的端对端交换方式
P2P:结点之间的对等交换方式
交换技术:电路交换、分组交换、报文交换
1.电路交换
2.分组交换
三种交换方式对比
计算机网络分类
1.按交换技术分类:电报交换网络、报文交换网络、分组交换网络
2.按覆盖范围分类:广域网WAN、城域网MAN、局域网LAN、个域网PAN
3.按使用者分类:公用网、专用网
4.按覆盖范围分类:总线型网络、星型网络、环型网络、网状型网络
计算机网络的性能指标
速率,带宽,吞吐量,时延,时延带宽积,往返时间,利用率,丢包率
1.速率
2.带宽
3.吞吐量
4.时延
5.时延带宽积
6.往返时间
7.利用率
8.丢包率
常见的计算机网络体系结构
1.OSI体系 开放系统互连参考模型
从下往上依次是物理层、数据链路层、网络层、运输层、会话层、表示层、应用层
2.TCP/IP体系(事实上的国际标准)
下往上依次是网络接口层、网际层、运输层、应用层
3.原理体系结构【物理层、数据链路层、网络层、运输层、应用层】
计算机网络体系结构分层的必要性
1.物理层
2.数据链路层
如何标识网络中的各主机(主机编址问题,例如MAC地址)
如何从信号所表示的一连串比特流中区分出地址和数据
如何协调各主机争用总线
3.网络层
如何标识各网络以及网络中的各主机 (网络和主机共同编址的问题,例如IP地址)
路由器如何转发分组,如何进行路由选择
4.运输层
如何解决进程之间基于网络的通信问题
出现传输错误时,如何处理
5.应用层
通过应用进程间的交互来完成特定的网络应用
计算机网络体系结构分层思想举例
计算机网络体系结构专用术语
■实体:任何可发送或接收信息的硬件或软件进程
■对等实体:收发双方相同层次中的实体
■协议:控制两个对等实体进行逻辑通信的规则的集合
■ 协议的三要素 (语法、语义、同步)
□语法 定义所交换信息的格式
□语义 定义收发双方所要完成的操作(上述分层思想举例内容)
□同步 定义收发双方的时序关系
■服务
1.在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务
2.要实现本层协议,还需要使用下面一层所提供的服务。
3.协议是”水平的”,服务是”垂直的”。
4.实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是”透明”(不可见)的。
■服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型。
□数据链路层的服务访问点为帧的”类型”字段
□网络层的服务访问点为IP数据报首部中的”协议字段”
□运输层的服务访问点为”端口号”
■服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语
■协议数据单元PDU:对等层次之间传送的数据包称为该层的协议数据单元
■服务数据单元SDU:同一系统内,层与层之间交换的数据包称为服务数据单元。
■多个SDU可以合成为一个PDU;一个SDU也可划分为几个PDU。(如上述举例中,在不同层中操作形成的SDU,传递给下一层变为PDU)
物理层
解决在各种传输媒体上传输比特0和1的问题(数据比特流);为数据链路层提供透明服务
物理层协议的主要任务
1.机械特性:指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置。
2.电气特性:指明在接口电缆的各条线上出现电压的范围。
3.功能特性:指明某条线上出现的某一电平的电压表示何种意义。
4.过程特性:指明对于不同功能的各种可能事件的出现顺序。
物理层下面的传输媒体
传输媒体也称为传输介质或传输媒介,是数据传输系统中在发送器和接收器之间的物理通路
1.导引型传输媒体:双绞线、同轴电缆、光纤、电力线
2.非导引型传输媒体:微波通信(2~40GHz)、无线电波、红外线、可见光
传输方式
1.串行传输——并行传输
■串行传输:是指一个比特一个比特依次发送,因此在发送接受段上只需要一条数据传输线路
■并行传输:是指一次发送N个比特,因此发送接受段之间需要N条传输线路。
在计算机网络中,数据传输的主要方式是串行传输,而计算机内部主要方式是并行传输
2.同步传输——异步传输——时钟同步
■同步传输:数据块以稳定的比特流形式传输,字节之间无间隔
■时钟同步:接受端在每个比特信号的中间时刻进行检测0、1;
不同设备的时钟频率不同会导致接收端对比特信号的判别错位并使得时刻误差积累。需要采取方法使得收发双方时钟保持同步
□外同步:在收发双方之间添加一条单独的时钟信号线
□内同步:发送端将时钟同步信号编码到发送数据中一起传输(例如曼彻斯特编码)
■异步传输:以字节为独立的传输单位,字节之间的时间间隔不固定;接收端仅在每个字节起始处对字节的比特实现同步,为此在每个字节前后分别加上起始位和结束位
□字节之间异步:字节之间的时间间隔不固定
□字节中的每个比特仍然要同步:各比特的持续时间是相同的
3.单向通信、双向交替通信、双向同时通信
■单向通信(单工):通信双方只有一个数据传输方向;例如无线电广播
■双向交替通信(半双工):通信双方可以互相传输数据,但不能同时进行;例如对讲机
■双向同时通信(全双工):通信双方可以同时发送接受信息;例如电话
单工需要一条信道,除单工以外都需要两条信道(每个方向各一条)
编码与调制
编码: 将信号转换成数字信号
调制: 将信号转换成模拟信号
模拟信号:是用连续变化的物理量表示的信息
数字信号:是用离散的数值表示的信息
码元:在使用时间域的波形表示数字信号时,代表不同离散数值的基本波形。
数字信号是通过对模拟信号进行采样、量化和编码而得到的
在计算机网络中,常见的是将数字基带信号通过编码或调制的方法在相应信道进行传输
传输媒体不完全等于信道,因为存在半双工、全双工传输含有双信道,信道复用技术含有多个信道
常用编码
■不归零编码NRZ:所谓不归零编码,就是指在整个码元时间内,电平不会出现零电平(位于正负电平中间)
(因为存在同步问题,计算机网络中的数据传输不采用此类编码)
■归零编码RZ return zero(自同步,编码效率低)
■曼彻斯特编码
下面理解时,注意区分比特0、1是在每个码元的中间时刻进行判定
正电平跳负电平为比特1
负电平跳正电平为0
■差分曼彻斯特编码
差分曼彻斯特编码的比特流变化可以概述为,以第一个为基准(1),其后面为0时,变化趋势复制,当再遇到1时,取反,此刻基准变为此刻的1,后面也是如此往复
基本调制方法
调幅(Am):即载波的振幅随基带数字信号而变化。例如,0或 1 分别对应于无载波或有载波输出。
调频(FM):即载波的频率随基带数字信号而变化。例如,0或1分别对应于频率f1或f2。
调相(pm):即载波的初始相位随基带数字信号而变化。例如,0或1分别对应于相位0度或180度
混合调制
频率+相位:因为频率和相位是相关的,即频率是相位随时间的变化率。所以一次只能调制频率和相位两个中的一个
相位+振幅:通常情况下,相位和振幅可以结合起来一起调制,称为正反振幅调制QAM
(通信专业相关内容,此处听不懂……..)
信道的极限容量
码间串扰:输入的信号波形经过信道之后,输出的信号波失真严重导致无法识别
失真的因素:码元传输速率;信号传输距离;噪声干扰、传输媒体质量
奈氏准则
重点为调制速率等
只要采用更好的调制方法,让码元可以携带更多的比特,岂不是可以无限制地提高信息的传输速率?
答案是否定的。因为信道的极限信息传输速率还要受限于实际的信号在信道中传输时的信噪比。
香农公式
重点为信道带宽、信噪比等
注意此处信噪比有两种形式(数字形式和分贝形式)
在信道带宽一定的情况下,根据奈氏准则和香农公式,要想提高信息的传输速率就必须采用多元制(更好的调制方法)和努力提高信道中的信噪比。
数据链路层
概述
链路、数据链路、帧
三个重要问题
点对点信道的数据链路层
封装成帧
添加帧头帧尾的目的都是为了在链路上以帧为单位进行传输数据
差错检测
帧在物理层传输过程中会出现误码,接收方通过检错码检测帧中是否有误码
可靠传输
尽管在传输过程中无法避免误码,确保发送方发送什么接收方能接受什么
其他问题
如果使用广播信道的数据链路层除了包含上面三个问题外,还有一些问题要解决
问题一:对于广播信道传输,当发出方主机A发送数据给接收方主机C时,代表帧的信号通过总线传输到各个主机。
各个主机如何判断帧是否是传输给自己的?
答:通过将帧的目的地址添加在帧中一起传输进行判断
问题二:数据碰撞问题,在共享信道中,当有多个主机进行传输帧信号,发生碰撞时,通过CSMA/CD协议解决问题
在有线领域网中,使用点对点链路和链路层交换机的交换式局域网
在无线局域网中,使用的是共享信道技术
封装成帧
封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧
□帧头和帧尾中包含有重要的控制信息
□帧头和帧尾的作用之一就是帧定界
透明传输
是指数据链路层不对上层交付的传输数据进行任何限制
在帧的数据部分中,存在部分数据内容与帧定界一致,为不影响接收方正常接受完整的数据内容采取以下方法:
□字节填充:在与帧定界内容一致的数据内容前(包括转义字符)添加转义字符
□比特填充:在与帧定界内容一致的数据内容前添加比特
帧的数据部分长度
1.为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些。
2.考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU (Maximum Transfer Unit)。
差错检测
比特差错:实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1
误码率:传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)
使用差错检测码(尾中FCS字段的检错码)来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。
奇偶校验
□在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中”1″的个数为奇数(奇校验)或偶数(偶校验)
□如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码
□如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检)
由于奇偶校验漏检率高,计算机网络数据链路层中一般不采用该方法
循环冗余校验
循环冗余校验CRC(Cyclic Redundancy Check)
例如:1.约定的多项式为 G (x) = x^4 – x^2 + x – 1
2.生成多项式各项系数构成的比特串为10111
1* x^4 + 0 *x^3 – 1* x^2 + 1* x – 1* x^0
3.生成多项式最高次个0 为 0000
常用的生成多项式(算法要求生成多项式必须包含最低次项,即x^0)
CRC-16=x^{16}+x^{15}+x^{2}+1
CRC-CCITT=x^{16}+x^{12}+x^{5}+1
CRC-32=x^{32}+x^{26}+x^{23}+x^{22}+x^{16}+x^{12}+x^{11}+x^{10}+x^{8}
+x^{7}+x^{5}+x^{4}+x^{2}+x+1
例题
关于
■检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。
■ 要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用。
■ 循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层。
■ 在计算机网络中通常采用检错重传方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务。
可靠传输
基本概念
数据链路层不一定要实现可靠传输,有线链路一般不需要实现可靠传输,无线局域网数据链路层要实现可靠传输,数据链路层可靠是点对点的可靠,并不是真的可靠,主要保证物理层的可靠
可靠传输的实现机制
停止﹣等待协议SW 、回退N帧协议GBN、选择重传协议SR
这三种可靠传输实现机制的基本原理不仅限于数据链路层,可以应用到计算机网络体系结构的各层协议中。
停止﹣等待协议SW
【注意事项】
■接收端检测到数据分组有误码时,将其丢弃并等待发送方的超时重传。但对于误码率较高的点对点链路,为使发送方尽早重传,也可给发送方发送NAK分组。
■为了让接收方能够判断所收到的数据分组是否是重复的,需要给数据分组编号。由于停止﹣等待协议的停等特性,只需1个比特编号就够了,即编号0和1。
■为了让发送方能够判断所收到的ACK分组是否是重复的,需要给ACK分组编号,所用比特数量与数据分组编号所用比特数量一样。数据链路层一般不会出现ACK分组迟到的情况,因此在数据链路层实现停止﹣等待协议可以不用给ACK分组编号。
■超时计时器设置的重传时间应仔细选择。一般可将重传时间选为略大于”从发送方到接收方的平均往返时间”。
□在数据链路层点对点的往返时间比较确定,重传时间比较好设定。
□ 然而在运输层,由于端到端往返时间非常不确定,设置合适的重传时间有时并不容易。
对于数据链路层点对点信道而言,往返时间比较固定,不会出现确认迟到的情况
因此如果只在数据链路层实现SW协议,可以不用对确认分组进行编号
SW的信道利用率
回退N帧协议GBN
■停止﹣等待协议的信道利用率很低若出现超时重传,则信道利用率更低
■采用流水线传输可提高信道利用率
采用N个比特确认分组序号
发送窗口的大小在1< WT≤2N-1区间范围内
接受窗口只能为 WR=1
无差错情况
①当发送方发送多个数据分组时,接收方在确认分组无差错后,每接受一个分组后窗口向后移动一个位置并发送确认分组;
②发送方接受确认分组后,每接受一个确认分组后窗口向后移动一个位置
③完成上述任务后,发送方将收到确认分组的数据从缓存中删去;接收方可将接受的数据交付上层处理
累计确认
接收方不一定要对收到的数据分组逐个发送确认,而是可以在收到几个数据分组后(由具体实现决定),对按序到达的最后一个数据分组发送确认。ACKn表示序号为n及以前的所有数据分组都已正确接收。
接受后无需逐一发送确认,赶紧实际情况发送累计确认,即使ACK1丢失,ACK4被发送方接受后,知道分组被正确接受,发送窗口依旧可以移动
有差错情况
当接收窗口与分组序号匹配不一致时,接收方会发送之前最后一组的确认分组信号;
发送方收到重复的确认,就知道出现了差错,即可重新发送;
除此之外,发送方也可以等待超时计时器超时并重新发送
总结
选择重传协议SR
■回退N帧协议的接收窗口尺寸WR只能等于1,因此接收方只能按序接收正确到达的数据分组。
■一个数据分组的误码就会导致其后续多个数据分组不能被接收方按序接收而丢弃(尽管它们无乱序和误码)。这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大浪费。
■为了进一步提高性能,可设法只重传出现误码的数据分组。因此,接收窗口的尺寸WR不应再等于1(而应大于1),以便接收方先收下失序到达但无误码并且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后再一并送交上层。这就是选择重传协议。
选择重传协议为了使发送方仅重传出现差错的分组,接收方不能再采用累积确认,而需要对每个正确接收到的数据分组进行逐一确认!
当接收方按序收到一个正确分组后,窗口才可移动;
接收方非按序收到,窗口不可移动,等待发送方后续超时计时器超时重新发送接受;
发送方同理按序收到一个正确分组后,窗口才可移动;
总结
点对点协议PPP
简介
■ 点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议。
■ PPP协议是因特网工程任务组IETF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议已成为因特网的正式标准[RFC1661,RFC1662]。
■ PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:
□ 对各种协议数据报的封装方法(封装成帧)
□ 链路控制协议LCP 用于建立、配置以及测试数据链路的连接
□ 一套网络控制协议NCPs 其中的每一个协议支持不同的网络层协议
帧格式
PPP的透明传输
PPP的差错检测
媒体接入控制
基本概念
共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)。
分类
静态划分信道
信道复用
■ 复用(Multiplexing)是通信技术中的一个重要概念。复用就是通过一条物理线路同时传输多路用户的信号。
■ 当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽。
频分复用FDM
时分复用TDM
波分复用WDM
码分复用CDM
简介与特点
■ 码分复用CDM是另一种共享信道的方法,因主要用于多址接入,常称为码分多址CDMA
■ 同理也有频分多址FDMA、时分多址TDMA
■ 复用与多址区别
□ 复用是指“多个共同使用的”意思;目的是让多个信号源共同使用同一个物理资源(比如同一条物理信道),并且互不干扰;
□ 多址为了让用户地址之间互不干扰,地址之间必须满足相互正交;目的是来区分不同用户的一种技术;
■ 相较于FDM、TDM,CDM的每一个用户可以在同样的时间使用同样的频带进行通信
■ 因为各用户使用经过特殊挑选的不同码型,各用户之间不会造成干扰
具体实现
■ 在CDMA中,每个比特时间被划分为m个短的间隔,称为码片(Chip)。通常m=64或128
■ CMDA的每一个站被指派一个唯一的m bit 码片序列(Chip Sequence)
□ 某个站如果发送比特1,发送自己的码片序列
□ 某个站如果发送比特0,发送自己的码片序列的二进制反码
□ 例如:某站点唯一码片序列为:11110000,发送比特1为11110000,发送比特0为00001111
通常情况,我们将二进制的1表示为+1,0表示-1。即上述码片序列为(+1,+1,+1,+1,-1,-1,-1,-1)
■ 这种通信方式称为直接序列扩频 DSSS
■ 码片序列的挑选原则
1. 分配给每个站的码片序列必须各不相同,常采用伪随机码序列
2. 分配给每个站的码片序列必须相互正交(规格化内积为0)
向量S:表示站S的码片序列;向量T表示其他任何站的码片序列
码片序列相互正交就是向量S和T规格化内积为0
S\cdot T = \frac{1}{m}\sum_{i=1}^{m}S_{i}T_{i} = 0
S\cdot S = \frac{1}{m}\sum_{i=1}^{m}S_{i}S_{i} = 1
S\cdot \bar{T} \equiv 0
S\cdot \bar{S} \equiv -1
例题练习
动态接入控制——随机接入
载波监听多址接入/碰撞检测 CSMA/CD
总线局域网使用的协议
■ 多址接入MA:多个站连接在一条总线上,竞争使用总线
■ 载波监听CS:每一个站在发送帧之前先要检测一下总线上是否有其他站点在发送帧
□ 若检测到总线空闲96比特时间(帧间最小间隔)则发送这个帧;
□ 若检测到总线忙,则继续检测并等待总线转为空闲96比特时间,然后发送这个帧。
帧间最小间隔:使接收方检测出一个帧的结束,同时使得所有其他站点能够有机会平等竞争信道发送帧
■ 碰撞检测CD:每一个正在发送帧的站,边发送边检测碰撞;一旦发现总线出现碰撞,则停止发送,退避一段随机时间后再次发送
争用期(碰撞窗口)
最小帧长
最小帧长=争用期x数据传输速率
最大帧长
截断二进制指数退避算法
信道利用率
帧接受流程
载波监听多址接入/碰撞避免 CSMA/CA
无线局域网使用的协议
■ 在无线局域网中,仍然可以使用载波监听多址接入CSMA,即在发送帧之前先对传输媒体进行载波监听。若发现有其他站在发送帧,就推迟发送以免发生碰撞。
■ 在无线局域网中,不能使用碰撞检测CD,原因如下:
□ 由于无线信道的传输条件特殊,其信号强度的动态范围非常大,无线网卡上接收到的信号强度往往会远远小于发送信号的强度(可能相差百万倍)。如果要在无线网卡上实现碰撞检测CD,对硬件的要求非常高。
□ 即使能够在硬件上实现无线局域网的碰撞检测功能,但由于无线电波传播的特殊性(存在隐蔽站问题),进行碰撞检测的意义也不大。
帧间间隔IFS(InterFrame Space)
■ 802.11标准规定,所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧,这段时间称为帧间间隔IFS。
■ 帧间间隔的长短取决于该站点要发送的帧的类型:
□ 高优先级帧需要等待的时间较短,因此可优先获得发送权;
□ 低优先级帧需要等待的时间较长。若某个站的低优先级帧还没来得及发送,而其他站的高优先级帧已发送到信道上,则信道变为忙态,因而低优先级帧就只能再推迟发送了。这样就减少了发生碰撞的机会。
■ 常用的两种帧间间隔如下:
□ 短帧间间隔SIFS(28us):是最短的帧间间隔,用来分隔开属于一次对话的各帧。一个站点应当能够在这段时间内从发送方式切换到接收方式。使用SIFS的帧类型有ACK帧、CTS帧、由过长的MAC帧分片后的数据帧、以及所有回答AP探询的帧和在PCF方式中接入点AP发送出的任何帧。
□ DCF帧间间隔DIFS(128us):它比短帧间间隔SIFS要长得多,在DCF方式中用来发送数据帧和管理帧。
工作原理
1. 源站为什么在检测到信道空闲后还要再等待一段时间DIFS?
答:考虑到可能有其他的站有高优先级的帧要发送。若有,就要让高优先级帧先发送。
2. 目的站为什么正确接收数据帧后还要等待一段时间SIFS才能发送ACK帧?
答:SIFS是最短的帧间间隔,用来分隔开属于一次对话的各帧。在这段时间内,一个站点应当能够从发送方式切换到接收方式。
■ 当站点检测到信道是空闲的,并且所发送的数据帧不是成功发送完上一个数据帧之后立即连续发送的数据帧,则不使用退避算法。
■ 以下情况必须使用退避算法:
□ 在发送数据帧之前检测到信道处于忙状态时;
□ 在每一次重传一个数据帧时;
□ 在每一次成功发送后要连续发送下一个帧时(这是为了避免一个站点长时间占用信道)。
退避算法
■ 在执行退避算法时,站点为退避计时器设置一个随机的退避时间:
□ 当退避计时器的时间减小到零时,就开始发送数据;
□ 当退避计时器的时间还未减小到零时而信道又转变为忙状态,这时就冻结退避计时器的数值,重新等待信道变为空闲,再经过时间DIFS后,继续启动退避计时器。
■ 在进行第i次退避时,退避时间在时隙编号{0,1,.,22+i-1}中随机选择一个,然后乘以基本退避时间(也就是一个时隙的长度)就可以得到随机的退避时间。这样做是为了使不同站点选择相同退避时间的概率减少。当时隙编号达到255时(对应于第6次退避)就不再增加了。
信道预约
虚拟载波监听
MAC地址、IP地址以及ARP协议
■ 数据链路层中:MAC地址是以太网的MAC子层所使用的地址;
■ 网际层中:
1. IP地址是TCP/IP体系结构网际层所使用的地址;
2. ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址;
■ 尽管IP地址和ARP协议属于TCP/IP体系结构的网际层(而不属于数据链路层),但是它们与MAC地址存在一定的关系,并且我们日常的网络应用都离不开MAC地址、IP地址以及ARP协议。因此,我们将这三者放在一起讨论。
MAC地址
■ 当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址;
■ 在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制
MAC(Media Access Control),因此这类地址被称为MAC地址;
□ MAC地址一般被固化在网卡(网络适配器)的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址;
□ MAC地址有时也被称为物理地址。请注意:这并不意味着MAC地址属于网络体系结构中的物理层!
■ 一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识。
MAC地址格式
MAC地址发送顺序
如上上图
字节发送顺序:1——>6
字节内比特发送顺序:b0——>b7
单播MAC地址
广播MAC地址
多播MAC地址
随机MAC地址
IP地址
■ IP地址是因特网(Internet)上的主机和路由器所使用的地址,用于标识两部分信息:
□ 网络编号:标识因特网上数以百万计的网络
□ 主机编号:标识同一网络上不同主机(或路由器各接口)
■ MAC地址不具备区分不同网络的功能。
□ 如果只是一个单独的网络,不接入因特网,可以只使用MAC地址(这不是一般用户的应用方式)。
□ 如果主机所在的网络要接入因特网,则IP地址和MAC地址都需要使用。
ARP协议
地址解析协议
思路过程
通过ARP协议,获得IP地址对应设备的MAC地址
在本地ARP高速缓存中,若未找到对应的MAC地址,发送ARP请求报文(广播)
被请求方收到请求后,发送响应报文(单播);
请求方收到响应后,将对应的IP与MAC地址记录(动态类型)在ARP高速缓存表中
ARP高速缓存类型
动态:自动获取,生命周期默认为两分钟;
静态:手工设置,不同操作系统下的生命周期不同
作用范围
ARP协议的使用是逐段链路进行的,ARP协议只能在一段链路或一个网络上使用。
集线器与交换机
集线器
集线器的扩展
使用集线器HUB在物理层对以太网进行扩展
交换机
集线器与交换机区别
忽略ARP过程
假设交换机的帧交换表已‘学习好’
1.对于发送广播帧,二者无显著差别
2.两台主机向目标主机同时发送单播帧,交换机对比集线器不会产生碰撞
3.对于二者扩展以太网进行发送广播帧,无显著差别
4.对于二者扩展以太网进行发送单播帧,交换机对比集线器有显著优势
5.对于二者扩展以太网进行竞争总线,交换机对比集线器有显著优势
6.交换机对比集线器,起到隔离碰撞域作用集线器HUB
■ 早期以太网的互连设备
■ 工作在OSI体系结构的物理层(在物理层扩展以太网)
■ 对接收到的信号进行放大、转发
■ 使用集线器作为互连设备的以太网仍然属于共享总线式以太网。集线器互连起来的所有主机共享总线带宽属于同一个碰撞域和广播域。
交换器SWITCH
■ 目前以太网中使用最广泛的互连设备
■ 工作在OSI体系结构的数据链路层(也包括物理层)根据MAC地址对帧进行转发(在数据链路层扩展以太网)
■ 使用交换机作为互连设备的以太网,称为交换式以太网。交换机可以根据MAC地址过滤帧,即隔离碰撞域。
■ 交换机的每个接口是一个独立的碰撞域
■ 交换机隔离碰撞域但不隔离广播域(VLAN除外)
以太网交换机自学习、转发帧流程
■ 以太网交换机工作在数据链路层(也包括物理层)
■ 以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
■ 以太网交换机是一种即插即用设备,刚上电启动时其内部的帧交换表是空的。随着网络中各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表。
■ 以太网交换机自学习和转发帧的流程:
①收到帧后进行登记。登记的内容为帧的源MAC地址及进入交换机的接口号;
② 根据帧的目的MAC地址和交换机的帧交换表对帧进行转发,有以下三种情况:
□ 明确转发:交换机知道应当从哪个(或哪些)接口转发该帧(单播,多播,广播)
□ 盲目转发:交换机不知道应当从哪个端口转发帧,只能将其通过除进入交换机的
接口外的其他所有接口转发(也称为泛洪)。
□ 明确丢弃:交换机知道不应该转发该帧,将其丢弃。
■ 帧交换表中的每条记录都有自己的有效时间,到期删除。原因如下
□ 交换机的接口改接另一个主机。
□ 主机更换了网卡。
以太网交换机的生成树协议STP
显然,添加冗余链路(即BC线)后,即使AB或AC线出现链路故障,也不会影响各个交换机之间通信
但添加冗余链路形成网络环路会使得广播帧不断的在各链路中循环(逆时针和顺时针同时进行)转发,造成其他的负面影响
■ 以太网交换机使用生成树协议STP(Spanning Tree Protocol),可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题。
□ 不论交换机之间采用怎样的物理连接,交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树型的(无逻辑环路);
□ 最终生成的树型逻辑拓扑要确保连通整个网络;
□ 当首次连接交换机或网络物理拓扑发生变化时(有可能是人为改变或故障),交换机都将进行生成树的重新计算。
虚拟局域网VLAN
随着交换式以太网的扩大,广播域也随之扩大。
巨大的广播域会造成很多弊端(广播风暴、难以管理和维护、潜在安全问题)
占用大量网络资源和各主机CPU资源
■ 网络中会频繁出现广播信息
□ TCP/IP协议栈中的很多协议都会使用广播:
1. 地址解析协议ARP(已知IP地址,找出其相应的MAC地址)
2. 路由信息协议RIP(一种小型的内部路由协议)
3. 动态主机配置协议DHCP(用于自动配置IP地址)
□ NetBEUI:Widnows下使用的广播型协议
□ IPX/SPX:Novell网络的协议栈
□ Apple Talk:Apple公司的网络协议栈
■ 分割广播域
□ 使用路由器可以隔离广播域:由于路由器默认情况下不对广播数据包进行转发,但由于路由器成本高,局域网内部全部使用路由器来隔离广播域是不现实的
□ 虚拟局域网VLAN技术应运而生
概述
■ 虚拟局域网VLAN(Virtual Local Area Network)是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求。
实现机制
IEEE 802.1Q帧
端口类型
■ 交换机的端口类型有以下三种:
□ Access
□ Trunk
□ Hybrid
■交换机各端口的缺省VLAN ID
□ 在思科交换机上称为Native VLAN,即本征VLAN。
□ 在华为交换机上称为Port VLAN ID,即端口VLAN ID,简记为PVID
Access
Trunk
Hybrid
网络层
网络层:实现网络互连,进而实现数据包在各网络之间的传输
解决的问题:提供可靠/不可靠传输服务;寻址问题;路由(路径)选择问题(帧交换表)
网际层使用TCP/IP协议栈(地址解析协议ARP、网际控制报文协议ICMP、网际组管理协议IGMP)
提供的两种服务
面向连接的虚电路服务、无连接的数据包服务
■ 可靠通信由网络来保证
■ 必须建立网络层的连接﹣﹣虚电路VC(Virtual Circuit)
■ 通信双方沿着已建立的虚电路发送分组
■ 目的主机的地址仅在连接建立阶段使用,之后每个分组的首部只需携带一条虚电路的编号(构成虚电路的每一段链路都有一个虚电路编号)。
■这种通信方式如果再使用可靠传输的网络协议,就可使所发送的分组最终正确到达接收方(无差错按序到达、不丢失、不重复)
■通信结束后,需要释放之前所建立的虚电路。
■ 很多广域分组交换网都使用面向连接的虚电路服务。例如,曾经的X.25和逐渐过时的帧中继FR、异步传输模式ATM