计算机网络
时间:2023-05-01 00:07:00
绪论
1.1 因特网概述
1.1.1 计算机网络在新时代的作用
互联网可以为用户提供许多服务,有两个最重要的基本特征:连接与共享
连通性:用户之间交换各种信息,但要注意互联网的虚拟性,不能准确知道对方是谁
共享:资源共享包括:信息共享、软件共享、硬件共享
1.1.2 互联网和互联网
计算机网络:网络由几个结点和连接这些结点的链路组成,结点可以是:计算机、集线器、交换机、路由器等。
互连网internet:通过路由器连接网络,形成更大范围的计算机网络,因此互联网是网络的网络
互联网,特指Internet,它已发展成为世界上覆盖世界最大的计算机网络
Internet与internet的区别:
internet互联网是指由多个计算机网络连接而成的计算机网络 Internet互联网,专有名词,全球最大的,开放的,由众多网络连接而成的特定互连网,采用TCP/IP作为通信规则,协议簇的前身是美国ARPANET。
1.1.3 因特网发展的三个阶段
第一阶段:从单个网络ARPANET发展到互联网的过程
1983年TCP/IP协议成为ARPANET上述协议使所有使用TCP/IP该协议的计算机可以使用互联网进行相互通信。 -=-互联网诞生时间
第二阶段:互联网级结构的互联网
主干网、区域网、校园网(企业网)
第三阶段:多层次ISP互联网的结构
根据提供服务的覆盖面积和所拥有的服务IP地址数量不同,ISP可分为:
- 主干ISP:服务面积最大
- 地区ISP:
- 本地ISP:为用户提供直接服务
ISP:互联网服务提供商(Internet Service Provider),可以从互联网管理机构申请很多IP互联网上的主机必须有地址IP地址才能上网(通过ISP获得IP并接入网络)。
基于ISP的三层结构的因特网
1.1.4 互联网的标准化
制定正式的互联网标准需要三个阶段:
- 互联网草案
- 建议标准:成功RFC文档
- 互联网标准
1.1.4 互联网的组成
从工作方式上看,互联网的拓扑结构分为:
- 边缘部分:由连接到互联网的所有主机组成,用户直接用于通信和资源共享
- 核心部分:这些路由器由大量的网络和连接组成,为边缘部分提供服务
1.1.5 边缘部分
计算机之间的通信:主机A的一个过程和主机B上的另一个过程及其通信。
端系统在网络边缘之间通信方式分为:客户-服务器模式(C/S)和对等方式(P2P)
1.客户client-服务器server方式
客户程序:
- 向服务器发起通信必须知道服务器地址
- 不需要特殊的硬件或复杂的操作系统
服务器程序:
- 专门提供服务的程序可以同时处理多个请求
- 系统启动后,被动等待接收客户的通信请求,无需了解客户的程序地址
- 需要强大的硬件和先进的操作系统支持
2.对等连接
两个主机都运行平等连接软件,不区分哪个是服务请求方,哪个是服务提供商。它们是平等和平等连接的通信,双方都可以下载存储在硬盘上的共享文档
1.1.6 核心部分
互联网最复杂的部分应该连接到边缘的大量主机,这样每个主机都可以通信到其他主机
路由器:专用计算机是实现的分组交换关键部件,任务是转发收到的分组。
1.2 三种交换方式
1.2.1 电路交换
交换:传世线路的资源以某种方式动态分配
电路交换过程:建立连接->通话->释放连接
电路交换的一个重要特点是:在整个通话时间内,两个用户总是占用端到端的通信资源
电路交换的缺点:计算机数据突然,通信时通信线路利用率很低
1.2.2 报文交换
Message Switching
1.2.3 分组交换
采用存储转发技术,把一个报文(需要发送的整个数据)分为几个等长数据段,加上一些必要的控制信息首部(包头)之后,它构成了分组(又称包)然后传输,接收端收到分组剥去第一部还原报文。
- 分组是互联网上的传输单元。
- 第一部分包括重要控制信息,如目的地址和源地址
核心部分的互联网**路由器(转发分组)边缘通常采用高速链路连接主机(用户信息处理)**接入核心的部分通常以相对较低的速率连接
路由器分组过程:
把收到的分组放入缓存,查找转发表找出目标地址,把分组送到适当的端口转发出去,交给下个路由器。
优点:高效、灵活、快速、可靠
缺点:分组需要在每个结点的存储和转发中排队,导致延迟;分组必须携带第一个,造成一定的费用
1.2.4 对比三种交换方式
三种优缺点:
1.3 计算机网络的定义和分类
1.3.1 定义计算机网络
计算机网络主要由一些计算机网络组成通用和可编程的硬件互连这些硬件不是专门用来实现特定目的的可编程硬件(硬件必须包含中央处理机cpu)它可以用来传输各种不同类型的数据,并支持广泛和不断增长的应用程序。
定义:
- 计算机网络连接的硬件不限于普通计算机,而是包括智能手机。
- 计算机网络不是专门用来传输数据的,而是支持许多应用
1.3.2 计算机网络的分类
-
根据网络的作用范围进行分类:
广域网WAN、城域网MAN、局域网LAN、个人区域网PAN
-
按网络用户分类:
**公用网**(按电信公司规定缴纳费用的人可以使用) **专用网**(为特殊业务工作需要建立的网络)
-
将用户连接到互联网网络:
这种网络叫**接入网AN**也被称为本地访问网络或居民访问网络,既不属于互联网的核心部分,也不属于边缘部分,是用户访问互联网的特殊网络,是用户端系统到互联网的第一个路由器(也称为边缘路由器)之间的网络。 从范围上看,接入网属于局域网; 从功能上看,接入网络只起到让用户与互联网连接的桥梁作用。
.4 计算机网络的性能指标
1.4.1 速率
数据传送的速率,也称数据率或比特率。速率往往是额定速率或标称速率,并非实际速率。
单位是bit/s,kbit/s千103,Mbit/s兆106,Gbit/s吉10^9
比特bit:二进制数字中的一个0或1,是计算机中数据量的单位
1.4.2 带宽
两个含义:
-
本来是指某信号具有的频带宽度,单位是赫,千赫,兆赫,吉赫
-
在计算机网络中,表示网络中某通道传送数据的能力,即在单位时间内网络中某通信所能通过的最高数据率,单位是biit/s比特每秒
联系:
- 前者是频域称谓,后者是时域称谓,本质相同,即一条通信链路带宽越窄,所能传输的最高数据率也越高。
1.4.3 吞吐量
单位时间内通过某个网络(或接口、通道)的数据量,更经常地用于现实世界中的网络一种测量,以便知道实际上到底有多少数据量能通过网络。
1.4.4 时延
数据从网络的一端传送到里那个一端所需的时间,也称延迟或迟延
总 时 延 = 发 送 时 延 + 传 播 时 延 + 处 理 时 延 + 排 队 时 延 总时延=发送时延+传播时延+处理时延+排队时延 总时延=发送时延+传播时延+处理时延+排队时延
网络中的时延由几个不同部分组成:
-
发送时延:主机或路由器发送数据帧所需的时间,也就是从发送数据帧的第一个比特算起,到最后一个比特发送完毕所需的时间。也叫发送时延。
发生在机器内部的发送器中
发 送 时 延 = 数 据 帧 长 度 ( b i t ) / 发 送 速 率 ( b i t / s ) 发送时延=数据帧长度(bit)/发送速率(bit/s) 发送时延=数据帧长度(bit)/发送速率(bit/s) -
传播时延:电磁波在通信中传播一定距离需要花费的时间
传 播 时 延 = 通 信 长 度 ( 米 ) / 信 号 在 通 道 上 的 传 播 速 率 ( 米 / 秒 ) 传播时延=通信长度(米)/信号在通道上的传播速率(米/秒) 传播时延=通信长度(米)/信号在通道上的传播速率(米/秒)
发生在机器外的传送道媒体上 -
处理时延:主机或路由器在收到分组时,为处理分组(分析首部、提取数据、差错检验或查找路由)所花费的时间
-
排队时延:分组在路由器输入输出队列中排队等待所经历的时延,取决于网络中当时的通信量。
1.4.5 时延带宽面积
又称比特为单位的链路
时 延 带 宽 积 = 传 播 时 延 ∗ 带 宽 时延带宽积=传播时延*带宽 时延带宽积=传播时延∗带宽
1.4.6 往返时间RTT
从发送方发送数据开始,到发送方收到接收方的确认,总共经历的时间。
有 效 数 据 率 = 数 据 长 度 / ( 发 送 时 间 + R T T ) 有效数据率=数据长度/(发送时间+RTT) 有效数据率=数据长度/(发送时间+RTT)
在使用卫星通信时,往返时间相对较长,是很重要的指标。
1.4.7 利用率
分为信道利用率和网络利用率。
信道利用率,指出通道有百分之几的是被利用的(有数据通过),完全闲置的信道利用率是零。
网络利用率,是全网络的信道利用率加权平均值
信道利用率并非越大越好,信道的利用率增大时,时延也增加。
**时延与网络利用率的关系:**
D表示网络当前时延 D0表示网络空闲时时延 U表示网络利用率
D = D 0 / ( 1 − U ) D=D0/(1-U) D=D0/(1−U)
1.5 计算机网络体系结构
1.5.1 计算机网络体系结构分层的必要性
“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理
- 物理层 ——解决使用何种信号来传输比特的问题,实际上传输媒体不属于物理层
- 数据链路层 ——解决分组在一个网络(或一段链路)上传输的问题
- 网络层 ——解决分组在多个网络上传输(路由)的问题
- 运输层 ——解决进程之间基于网络的通信问题
- 应用层 ——解决通过应用进程的交互来实现特定网络应用的问题
1.5.2 计算机网络体系结构分层思想举例
各层对数据进行加码
物理层会将帧看作比特流并加上前导码
各层加码的具体内容与作用(后面会学,先了解一下)
- HTTP请求报文内容
- TCP报文段首部格式 ——区分应用进程、实现可靠传输
- IP数据报首部格式 ——使IP数据报可以在互联网上传输(即被路由器转发)
- 帧首部格式 ——使帧能在一个网络(或一段链路)上传输,能够被响应的主机接收
- 帧尾部格式 ——让目的主机检查所接收到的帧是否有误码
- 比特流前导码格式 ——为了让目的主机做好接收帧的准备
1.5.3 计算机网络体系结构专用术语
-
实体:任何可发送或接收消息的硬件或软件进程
-
对等实体:收发双方相同层次中的实体
- 协议:控制两个对等实体进行逻辑通信的规则的集合
-
协议三要素
-
语法:定义所交换信息的格式
- 语义:定义收发双方所要完成的操作
- 同步:定义收发双方的时序关系
-
服务
协议与服务的关系:
- 在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务
- 要实现本层协议,还需要使用下面一层所提供的服务
- 协议是”水平的“,服务是”垂直的“
- 实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是”透明的“
服务访问点:在同一系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型
- 数据链路层的服务访问点:帧的类型字段
- 网络层的服务访问点:IP数据报首部中的协议字段
- 运输层的服务访问点:端口号
服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语
协议数据单元PDU:对等层次之间传送的数据包称为该层的协议数据单元
服务数据单元SDU:同一系统内,层与层之间交换的数据包称为服务数据单元
- 多个SDU可以合成为一个PDU,一个SDU也可划分为几个PDU
物理层
物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是具体的传输媒体
2.1物理层的基本概念
物理层数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么
2.2 物理层下面的传输媒体
2.2.1 导引型传输媒体
- 同轴电缆
-
双绞线
-
光缆
光纤的优点
- 通信容量大(25000 - 30000GHz的带宽)
- 传输损耗小,远距离传输时更加经济
- 抗雷电和电磁干扰性能好(这在大电流脉冲干扰的环境下尤为重要)
- 无串音干扰,保密性好,不易被窃听
- 体积小,重量轻
光纤的缺点
- 割接需要专用设备
- 光电接口价格较贵
2.2.2 非导引型传输媒体
2.3 传输方式
2.3.1 串行传输与并行传输
2.3.2 同步传输与异步传输
2.3.3 单工,半双工和全双工
2.4 编码与调制
常用编码:
基本调制方法:
2.5 信道极限容量
2.5.1 失真因素
- 码元传输速率
- 信号传输速率
- 噪声干扰
- 传输媒体质量
2.5.2 奈氏准则
2.5.3 香农公式
在信道带宽一定的情况下,根据奈氏准则和香农公式,要想提高信息的传输速率就必须采用多元制(更好的调制方法)和努力提高信道中的信噪比
2.5.4 信道复用
复用(Multiplexing)是通信技术中的一个重要概念。复用就是通过一条物理线路同时传输多路用户的信号
- 当网络中的传输媒体的传输容量大于多条单一信道传输的总通信量时,可以利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽
常见的信道复用技术:
- 频分复用技术FDM
- 时分复用TDM
- 波分复用WDM
- 码分复用CDM
在CDMA中,每一个比特时间再划分为m个短的间隔,称为码片(Chip)。通常m的值是64或128。为了简单期间,后续的举例中,假设m为8
使用CDMA的每个站被指派一个唯一的m bit码片序列(Chip Sequence)
- 一个站若要发送比特1,则发送它自己的m bit码片序列
- 一个站若要发送比特0,则发送它自己的m bit码片序列的二进制反码
码片序列的挑选原则如下:
- 分配给每个站的码片序列必须各不相同,实际常采用伪随机码序列
- 分配给每个站的码片序列必须相互正交(规格化内积为0)
数据链路层
在同一个局域网中,分组怎样从一台主机传送到另一台主机,但不经过路由器转发
3.1 数据链路层概述
链路(Link)就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点
数据链路(Data Link)是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路
- 数据链路层以帧为单位传输和处理数据
数据链路层三个重要问题
- 封装成帧
- 透明传输
- 差错检测
3.2 封装成帧
封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧
- 帧头和帧尾中包含有重要的控制信息
- 帧头和帧尾的作用之一就是帧定界
- 帧开始符SOH,帧结束符EOT
3.3 透明传输
透明传输指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样
- 传输的是文本文件组成的帧时,数据部分显然不会出现像SOH或EOT这二样的帧定界字符。可见不管从键盘上输入什么样的字符,都可以放这样的帧传输过去,这样的传输就是透明传输
- 但当数据部分是非ASCII码时,就可能出现帧定界字符
解决方法:
-
面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输
在数据中与标识符相同的字段前加上转义字符
- 面向比特的物理链路使用比特填充的方法实现透明传输
零比特填充法:对于数据部分出现的同标志位的字段,在每连续5个1后添加1个0(无论其是否构成和帧标志相同,都一律按该规则添0),保证了数据部分不再与标志位相同,接收方接收时将每连续的5个1后的一个0进行剔除
传输效率
- 为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些
- 考虑到差错控制等多种因素,每种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU(Maximum Transfer Unit)
3.4 差错检测
比特差错,实际的通信链路都不是理想的,比特在传输的过程中可能会产生差错:1可能变为0,而0也可能变为1
误码率BER(Bit Error Rate)在一段时间内,传输错误的比特占所传输比特总数的比率
使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一
3.4.1 奇偶校验
- 在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)“1”的个数为奇数(奇校验)或偶数(偶校验)
- 如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码
- 如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检)
3.4.2 循环冗余校验CRC
Cyclic Redundancy Check
- 收发双方约定好一个生成多项式G ( x )
- 发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输
- 接收方通过生成多项式来计算收到的数据是否产生了误码
- 检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误
- 想要纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用
- 循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但是非常易于用硬件实现,因此被广泛应用于数据链路层
- 在计算机网络中通常采用检错重传方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务
3.5 可靠传输
3.5.1 可靠传输的基本概念
-
数据链路层向上层提供的服务类型:
-
不可靠传输服务:仅仅丢弃有误码的帧,其他什么也不做
-
可靠传输服务:想办法实现发送端发送什么,接收端就收到什么
-
-
一般情况下,有线链路的误码率较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理
-
无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务
-
比特差错只是传输差错中的一种,从整个计算机网络体系结构来看,传输差错还包括分组丢失、分组失序以及分组重复(这些传输差错一般出现在数据链路层的上层)
-
可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输
3.5.2 可靠传输的实现机制 ——停止等待协议
- 发送方向接收方发送数据,并等待
- 接收方通过差错检测若无误码则接收并向发送方发送确认分组(ACK)
- 发送方接收到确认分组后便可删除上条数据的缓存并发送下一组数据
- 若出现了误码,接收方丢弃该数据并向发送方发送否认分组(NAK)
- 发送方收到否认分组后重新传送上一条数据
- 若到了计时器所设置的重传时间而发送方仍收不到接收方的任何ACK或NAK,则重传原来的数据分组,这就叫超时重传
- 为避免分组重复这种传输错误,必须给每个分组带上序号。接收方通过编号便可判断是否是重复的数据,对于重复的数据丢弃即可
- 为避免重复的确认分组,还需给确认分组编号,遇到重复的确认分组将其忽略
信道利用率
信 道 利 用 率 = 数 据 帧 发 送 时 延 / ( 数 据 帧 发 送 时 延 + 端 到 端 的 往 返 时 延 R T T ) 信道利用率=数据帧发送时延/(数据帧发送时延+端到端的往返时延RTT) 信道利用率=数据帧发送时延/(数据帧发送时延+端到端的往返时延RTT)
缺点:
- 当往返时延RTT远大于数据帧发送时延时(例如使用卫星链路),信道利用率非常低
- 若出现重传,则对于传送有效的数据信息来说,信道利用率更低
- 为克服停止-等待协议信道利用率很低的缺点,便产生另外两种协议(后退N帧协议GBN 和 选择重传协议SR)
3.5.2 可靠传输的实现机制 ——回退N帧协议GBN
缺点:
- 回退N帧协议的接收窗口尺寸WR只能等于1,因此接收方只能按序接收正确到达的数据分组
- 一个数据分组的误码就会导致其后续多个数据分组不能被接收方按序接收而丢弃(尽管它们无乱序和误码)。这必然会造成发送方对这些数据分组的超时重传,显然这时对通信资源的极大浪费
3.5.3 可靠传输的实现机制 ——选择重传协议SR
3.6 点对点协议PPP
-
点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议
-
PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成
-
对各种协议数据报的封装方法(封装成帧)
-
链路控制协议LCP,用于建立、配置以及测试数据链路的连接
-
一套网络控制协议NCPs,其中的每一个协议支持不同的网络层协议
-
3.6.1 帧格式
3.6.2 透明传输
-
面向字节的异步链路采用插入转义字符的字节填充法
-
出现的每个7E(PPP帧的定界符)字节转变成2字节序列(7D5E)
- 出现的每个7D(转义字符)字节转变成2字节序列(7D5D)
- 出现的每个ASCII码控制字符(数值小于0x20的字符),则在该字符前插入一个7D字节,同时将该字符的编码加上0x20
接收方进行反变换即可恢复出原来的帧的数据部分
- 面向比特的同步链路采用插入比特0的比特填充法
- 发送方:对帧的数据部分进行扫描(一般由硬件实现)只要发现5个连续的比特1,则立即填充1个比特0
- 接收方:对帧的数据部分进行扫描(一般由硬件实现)只要发现5个连续的比特1,就把其后的1个比特0删除
3.6.3 差错检测
接收方每收到一个PPP帧,就进行CRC检验。若CRC检验正确,就收下该帧;反之就丢弃该帧。使用PPP的数据链路层向上提供的是不可靠传输服务
3.7 使用广播信道的数据链路层
3.7.1 媒体接入控制MAC的基本概念
共享信道要考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)
随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已经完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术
3.7.2 媒体接入控制——静态划分信道
用户只要分配到了信道,就不会和其它用户发生冲突,但此方法代价高,不适合局域网使用。
信道复用技术,详见信道复用
3.7.3 媒体接入控制——动态接入控制
总线局域网使用的协议CSMA/CD
载波监听多址接入/碰撞检测 CSMA/CD (Carrier Sense Multiple Access/Collision Detection)
争用期(碰撞窗口)
主机最多经过2 τ (即δ → 0 )的时长就可以检测到本次发送是否遭受了碰撞,因此,以太网端到端往返传播时延2 τ 称为争用期或碰撞窗口
-
经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞
-
每个主机在自己发送帧之后的一小段时间内,存在着遭遇碰撞的可能性。这小段时间是不确定的,它取决于另一个发送帧的主机到本主机的距离,但不会超过总线的端到端往返传播时延,即一个争用期时间
-
显然,在以太网中发送帧的主机越多,端到端往返传播时延越大,发送碰撞的概率就越大。因此,共享式以太网不能连接太多的主机,使用的总线也不能太长
最小帧长
- 以太网规定最小帧长为64字节,即512比特(512比特时间即为争用期)
- 如果要发送的数据非常少,那么必须加入一些填充字节,是帧长不小于64字节
- 以太网的最小帧长确保了主机可在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞
- 如果在争用期(共发送64字节)没有检测到碰撞,那么后续发送的数据就一定不会发送碰撞
- 如果在争用期内检测到碰撞,就立即中止发送,这时已经发送出去的数据一定小于64字节,因此凡长度小于64字节的帧都是由于碰撞而异常中止的无效帧
最大帧长
截断二进制指数退避算法
- 若连续多次发生碰撞,就表明可能有较多的主机参与竞争信道。但使用上述退避算法可使重传需要推迟的平均时间随重传次数而增大(这也称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定
- 当重传达16次仍不能成功时,表明同时打算发送帧的主机太多,以至于连续发生碰撞,则丢弃该帧,并向高层报告
信道利用率
帧发送流程
帧接受流程
学习+习题
无线局域网使用的协议CSMA/CA
载波监听多址接入/碰撞避免 CSMA/CA (Carrier Sense Multiple Access/Collision Avoidance)
深度学习!
3.8 MAC地址
MAC地址是以太网的MAC子层所用的地址 ——数据链路层
当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址
在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC(Media Access Control),因此这类地址被称为MAC地址
-
MAC地址一般被固化在网卡(网络适配器)的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址
-
MAC地址有时也被称为物理地址。请注意:这并不意味着MAC地址属于网络体系结构中的物理层!
一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识
MAC地址格式
MAC地址发送顺序
- 字节发送顺序:第一字节->第六字节
- 字节内的比特发送顺序:b0->b7
3.9 IP地址 —网络层
IP地址是TCP/IP体系结构网际层使用的地址
IP地址是因特网上的主机和路由器所使用的地址,用于标识两部分信息
- 网络编号:标识因特网上数以百万计的网络
- 主机编号:标识同一网络上不同主机(或路由器各接口)
3.9.1 从网路体系结构看IP地址与MAC地址
- Ip地址,封装有源IP地址
- MAC地址,封装有源MAC地址和目的MAC地址
3.9.2 数据包转发过程中IP地址与MAC地址的变化情况
- 数据包转发过程中源IP地址和目的IP地址保持不变
- 数据包转发过程中源MAC地址和目的MAC地址逐个链路(或逐个网络)改变
目前发送站知道应该将数据包转给具体哪个路由或主机,发送站知道其目的站的IP地址,但不知道其对应的MAC地址是什么(将在后续的ARP协议中解释)
3.10 ARP协议
ARP协议属于TCP/IP体系结构的网际层,作用是在已知设备所分配的IP地址,使用ARP协议就可以获取到设备的MAC地址
- 主机B打算给C发送数据包。目前B知道C的IP地址,但不知道MAC地址,因此B的数据链路层封装MAC帧时,无法填写目的MAC地址
- 由于未找到,则主机B需要发送ARP请求报文(广播)获取主机C的MAC地址
- 主机C收到广播后,首先将B的IP地址与MAC地址记录到自己的ARP高速缓存表中,再给B发送ARP响应(单播),以告知自己的MAC地址
- 主机B收到主机C发送的ARP响应后,将对应信息添加在自己的ARP高速缓存中
其中每条记录的类型分为动态(dynamic)和静态(static)两种:
- 动态:自动获取,生命周期默认为2min
- 静态:手工设置,不同的操作系统下的生命周期不同,例如系统重启后不存在或系统重启后依然有效
- ARP协议只能在一段链路或一个网络上使用,而不能跨网络使用,ARP协议的使用是逐段链路进行的
3.11 集线器与交换机的区别
- 早期的总线型以太网
-
使用双绞线和集线器HUB的星型以太网
- 使用集线器的以太网在逻辑上仍是一个总线网,各站共享总线资源,使用的还是CSMA/CD协议
- 集线器只工作在物理层,它的每个接口仅简单地转发比特,不进行碰撞检测(由各站的网卡检测)
- 集线器一般都有少量的容错能力和网络管理功能。例如,若网络中某个网卡出了故障,不停地发送帧。此时,集线器可以检测到这个问题,在内部断开与出故障网卡的连线,使整个以太网仍然能正常工作
小结
集线器HUB | 交换机SWITCH |
---|---|
早期以太网的互联设备 工作在OSI体系结构的物理层 对接收到的信号进行放大、转发 实用集线器作为互联设备的以太网仍然属于总线式以太网,集线器互联起来的所有主机共享总线带宽,属于同一碰撞与和广播域 |
目前以太网中使用最广泛的互联设备 工作在OIS体系结构中的数据链路层(也包括物理层) 根据MAC地址对帧进行转发 使用交换机作为互联设备的以太网,称为交换式以太网。交换机可根据MAC地址过滤帧,即隔离碰撞区域 交换机的每一个接口是一个独立的区域 交换机隔离碰撞域但不隔离广播域(VLAN除外) |
3.12 以太网交换机自学习和转发帧的流程
以太网交换机自学习和转发帧的流程:
- 收到帧后进行登记。登记的内容为帧的源MAC地址及进入交换机的接口号
- 根据帧的目的MAC地址和交换机的帧交换表对帧进行转发,有以下三种情况:
- 明确转发:交换机知道应当从哪个(或哪些)接口转发该帧(单播,多播,广播)
- 盲目转发:交换机不知道应当从哪个端口转发帧,只能将其通过除进入交换机的接口外的其他所有接口转发(也称为泛洪)
- 明确丢弃:交换机知道不应该转发该帧,将其丢弃
帧交换表中,每条记录都有自己的有效时间,到期自动删除。这是因为MAC地址和交换机接口的对应关系并不是永久性的
- 交换机的接口改接了另一台主机
- 主机更换了网卡
网络层
4.1 网络层概述
- 网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输
- 要实现网络层任务,需要解决以下主要问题:
- 网络层向运输层提供怎样的服务(“可靠传输”还是“不可靠传输”)
- 网络层寻址问题
- 路由选择问题
- 因特网(Internet)是目前全世界用户数量最多的互联网,它使用TCP/IP协议栈,由于TCP/IP协议栈的网络层使用网际协议IP,它是整个协议栈的核心协议,因此在TCP/IP协议栈中网络层常称为网际层
- 综上所述,我们通过学习TCP/IP协议栈的网际层来学习网络层的理论知识和实践技术
4.2 网络层提供的两种服务
4.2.1 面向连接的虚电路服务
- 可靠通信由网络来保证
- 必须建立网络层的连接——虚电路VC(Virtual Circuit)
- 通信双方沿着已建立的虚电路发送分组
- 这种通信方式如果再使用可靠传输的网络协议,就可使所发送的分组最终正确到达接收方(无差错按序到达、不丢失、不重复)
- 通信结束后,需要释放之前所建立的虚电路
- 很多广域分组交换网都使用面向连接的虚电路服务。例如,曾经的X.25和逐渐过时的帧中继FR、异步传输模式ATM等
4.2.2 无连接的数据报服务
-
可靠通信应当由用户主机来保证
-
不需要建立网络层连接
-
每个分组可走不同的路径
-
每个分组的首部必须携带目的主机的完整地址
-
这种通信方式所传送的分组可能误码、丢失、重复和失序
-
由于网络本身不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)
-
因特网采用了这种设计思想,也就是将复杂的网络处理功能置于因特网的边缘(用户主机和其内部的运输层),而将相对简单的尽最大努力的分组交付功能置于因特网核心
4.3 IPv4地址
4.3.1 概述
IPv4地址就是给因特网(Internet)上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32比特的标识符
- IP地址由因特网名字和数字分配机构ICANN(Internet Corporation for Assigned Names and Numbers)进行分配
- 我国用户可向亚太网络信息中心APNIC(Asia Pacific Network Information Center)申请IP地址,需要缴费
- 2011年2月3日,互联网号码分配管理局IANA(由ICANN行使职能)宣布,IPv4地址已经分配完毕
- 我国在2014至2015年也逐步停止了向新用户和应用分配IPv4地址。同时全面开展商用部署IPv6
IPv4地址编址方式经历的三阶段:
4.3.2 分类编址的IPv4地址
- A类地址
- B类地址
- C类地址
各类地址详细区别:
4.3.3 划分子网的IPv4地址
32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号
- 子网掩码使用连续的比特1来对应网络号和子网号
- 子网掩码使用连续的比特0来对应主机号
- 将划分子网的IPv4地址与其相应的子网掩码进行逻辑与运算就可得到IPv4地址所在子网的网络地址
默认子网掩码是指在未划分子网的情况下使用的子网掩码
4.3.4 无分类的IPv4地址
划分子网在一定程度上缓解了因特网在发展中遇到的困难,但是数量巨大的C类网因为其地址空间太小并没有得到充分使用,而因特网的IP地址仍在加速消耗,整个IPv4地址空间面临全部耗尽的威胁,为此,因特网工程任务组IETF又提出了采用无分类编址的方法来解决IP地址紧张的问题,同时还专门成立IPv6工作组负责研究新版本IP以彻底解决IP地址耗尽问题
-
1993年,IETF发布了无分类域间路由选择CIDR(Classless Inter-Domain Routing)的RFC文档:RFC 1517~1519和1520
-
CIDR消除了传统的A类、B类和C类地址,以及划分子网的概念