• 学习视频
  • 在观看学习视频前,可以先了解一下大概:互联网是如何运作的

随看随记

  • TCP和UDP
  • MAC和IP地址,从几个不同的角度讲的:
    1. CSDN博客
    2. 知乎
    3. 博客园
    4. 从我的角度来看,MAC地址是区分IP地址的,在一个路由下如果没有MAC,则一个IP地址也可以对应很多个主机,而使得IP能够对应一个主机,其主要原因是IP地址与MAC的绑定。通过MAC的物理唯一性,来唯一标定一个主机,并与IP地址绑定,同时记录在路由表中。
  • 集线器,交换机,路由器

前言

因特网概述

网络、互联网和因特网

  • 网络:由若干结点(Node)和连接这些结点的链路(Link) 组成。
  • 互连网:多 个网络还可以通过路由器互连起来,这样就构成了-个覆盖范围更大的网络。互连网是“网络的网络(Netwrok of Networks)”
  • 因特网(互联网):是世界上最大的互连网络(用户数以亿计,互连的网络数以百万计)。
  • 三个概念是从小到大的。 网络是一种类似局域网的概念,是在一个地域下的。当多个地域进行互联互通时,就诞生了互连网。当互连网在变大,变成全球大小时,就变成了互联网

因特网发展的三个阶段

  • ISP(Internet Service Provider) 因特网服务供应商
  • 基于ISP三层结构的因特网
  • 我们作为电脑终端,是通过层层向上一层请求,来进行不同终端之间的通信。我们作为终端也可以通过成添加路由器等方式成为一层新的ISP。

因特网的标准化工作

因特网的组成

  • 边缘部分:由所有连接在因特网.上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
  • 核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。:
  • 边缘部分都是终端,核心部分与数据传输相关。

三种交换方式

电路交换(Circuit Switching)

  • 在数量少时间,使用两两对接直接电路连接。当数目增加时,电线数量剧增,不再合适,因此出现电话交换机,与各个电话相连。
  • 电话交换机接通电话线的方式称为电路交换;
  • 从通信资源的分配角度来看,交换(Switching) 就是按照某种方式动态地分配传输线路的资源;
  • 电路交换的三个步骤:
    1. 建立连接(分配通信资源)
    2. 从通话(一直占用通信资源)
    3. 释放连接(归还通信资源)

电路交换尽管可以用来传输计算机数据,但是不建议,因为其线路的传输效率往往很低。

分组交换(Packect Switching)(计算机网络通常采用)

  • 发送方(H6):将报文分组,在分组后的报文添加首部,并发送出去。
  • 路由器(Rx):将每个组的报文根据期首部缓存、转发到目的地。
  • 接收方(H2):接受每个组的报文,并且根据首部,将报文还原回初始的报文。
  • 每组报文的首部中存在着大量的信息,包括地址、报文顺序等信息。
  • 各个组报文也不一定会仅仅沿着一个路径传输,也会沿着多个路径传输,同时每个报文到达目的地的时间也不同。因此通过首部还原报文的内容就很重要了。

报文交换(Message Switching)

  • 传输交换与分组交换类似,但是每个组的报文大小没有限制。因此要求了交换节点较大的缓存空间。

三种类型对比

  • 电路交换每次都需要建立新的连接,但是分组和报文不需要。
  • 分组是将整个报文分成多个组进行传输。
  1. 电路交换
  • 优点
  1. 通信时延小:双方用户直连,数据直达。
  2. 有序传输:只有一条专有线路,数据仅在这一条链路中传输。
  3. 没有冲突:不同的通信双方有不同的信道,不会出现争抢信道的问题
  4. 适用范围广:可以传输模拟信号,也可以传输数字信号。
  5. 实时性强:同1.
  6. 控制间单:对于节点交换机来说,控制较为简单。
  • 缺点
  1. 建立连接时间长:每次交换都需要建立连接,对于计算机数据交换来说,时间过于长。
  2. 线路独占,使用效率低:连接一旦建立,这条通信线路就会被独占,即使没有数据交换,也不会空闲。
  3. 灵活性差:连理了物理通路的任何一点出现故障,整个链路都会出现故障而无法使用。
  4. 难以规格化:数据直达,但是不同类型,不同规格,不同速率的终端之间很难进行通信。
  1. 报文交换
  • 优点
  1. 无需建立连接:不需要建立专有链路,可以随时传输。
  2. 动态分配线路:可以动态选择传输线路,提高传输效率。
  3. 提高线路可靠性:一条路径故障,可以切换到另一个路径。
  4. 提高线路利用率:不会一直占用一个线路,会分时多段部分占用物理线路。
  5. 提供多目标服务:一个报文可以发送到多个地址。
  • 缺点
  1. 引起了转发时延:一个报文再转发的时候有延迟。
  2. 需要较大存储缓存空间:报文交换对于报文大小无限制。
  3. 需要传输额外的信息量:需要新加入传输地址等信息。
  1. 分组交换
  • 优点
  1. 无需建立连接:不需要建立专有链路,可以随时传输。
  2. 线路利用率高:不会一直占用一个线路,会分时多段部分占用物理线路。
  3. 简化了存储管理:分组长度固定,缓冲区大小固定。
  4. 加速传输:分组传输时,后一个组的存储工作与前一个组的转发操作可以同时进行。
  5. 减少出错概率和重发数据量:分组比报文小,出错的概率小。即使出错也仅仅需要把出错的分组再次传输即可,不需要把整个报文全部重新传输。
  • 缺点
  1. 引起了转发时延:一个分组再转发的时候有延迟。
  2. 需要传输额外的信息量:每个组需要新加入传输地址等信息。
  3. 对于数据报服务,存在失序、丢失或重复分组的问题;对于虚电路服务,存在呼叫建立、数据传输和虚电路释放三个过程。

计算机网络的定义和分类

  • 计算机网路的分类
  • 按交换技术分类
  1. 电路交换网络
  2. 报文交换网络
  3. 分组交换网络
  • 按覆盖范围分类
  1. 广域网WAN(Wide Area Network):连接多个国家和地区的。
  2. 城域网MAN(Metropolitan Area Network):一个城市中组建的网络。
  3. 局域网LAN(Local Area Network ):局部小地区组建成的网络
  4. 个域网PAN(personal area network):个人与周围之间的通信连接,例如蓝牙等。
  • 按使用者分类
  1. 公用网
  2. 专用网
  • 按拓扑结构分类
  1. 总线型网络
  2. 星型网络
  3. 环型网络
  4. 网状型网络
  • 按传输介质分类
  1. 有线网络
  2. 无线网络

计算机网络的性能

  1. 速率
  • 比特:计算机中数据量的单位,也是信息论中信息量的单位。一个比特就是二进制数字中的一个1或0。
  • 常用数据量单位

速率:连接在计算机网络.上的主机在数字信道上传送比特的速率,也称为比特率或数据率.

  • 注意:

    1. 比特等一系列数据量的单位其对应的都是2^10。而速率对应的都是1000。
    2. 比特等一系列数据量的1B对应的是8bit。而速率对应的1b对应的是1bit。比特是大写B标识Byte,速率是小写b标识bit。
  1. 带宽
  • 在计算机网络中带宽就是最高数据率,和速率的单位相同。也就是从一点到另一点的最高速率。
  • “带宽” 的这两种表述之间有着密切的联系。一条通信线路的“频带宽度”越宽,其所传输数据的“最高数据率”也越高。
  1. 吞吐量
  1. 时延
  • 时延的分类:

    1. 发送时延:报文分组,加首部的时延。其计算公式为
      分组长度(b)/发送速率(b/s)。其中的发送速率见上图,遵循木桶原则
    2. 传播时延:分好的报文发送给第一个路由器的时延。
      其计算公式为:信道长度(m)/电磁波传输速率(m/s)。自由空间中为310^8(m/s) 铜导线为 310 ^8(m/s) 光纤3*10 ^8(m/s)
    3. 处理时延:路由器之间进行缓存和分发的时间延迟。一般不方便计算。
  • 在忽略处理时延的情况下,发送时延和传播时延没有那个起决定性作用,其和报文的分组长度,数据需要传输的距离等都有关系。
  1. 时延带宽积
  • 一个信道最多可以容纳的比特数据量。
  1. 往返时间
  • 卫星链路耗时较多。
  1. 利用率
  • 利用率越高,说明信道的同时传输的数据越多,数据越多越堵塞,因此其引起的时延也对迅速增加。
  • 通常情况下,尽量控制利用率在50%。太高时延高,太低浪费资源。
  1. 丢包率
  • 主要和网络的堵塞状况有关,越堵塞,丢包率越高。
  • 丢包主要分为误码丢弃和网络拥挤导致缓存空间满盈而丢弃。详细见图片。

计算机网络体系结构

常见的计算机网络体系结构

  1. 开放系统互联参考模型(七层模型)(OSI)
  2. TCP/IP体系结构
  3. 原理体系结构
  • OSI协议是理论研究协议,TCP/IP协议是商业协议,是目前中实际使用的比较多的协议。
  • TCP/IP协议中将OSI的数据链路层和物理层合并成网络接口层,并且删除表示层和会话层,来简化。但是网络接口层中所包含的东西太多,因此从原则上又将其分成了两个层次。就成了TCP/IP五层协议。
  • 终端主机都会有满套的TCP/IP协议。路由器通常只包含忘记曾和网络接口层。在整个体系中IP最为关键,起到承上启下的作用。向上提供应用服务需求,向下接收网络数据。
  • 网络接口层中的网络接口包括WAN、LAN、WiFi等各种不同的网络接口。
  • TCP主要提供可靠数据传输,UDP主要提供不可靠数据传输。TCP和UDP的主要区别

计算机网络体系结构分层的必要性

  • 物理层(两台主机之间的直接通信):对于物理实体而言,其主要包括信号接收和发送的接口(例如网线接口),信号传输形式(数字信号)等问题。
  • 数据链路层(单个网络的之间的通信):当多台主机连接到一个网络中时,如何寻找相应主机(MAC地址),如何从信号中得到目的地与数据,当多个信息同时传输时,如何进行避免信息冲突。(采用交换机进行地址分配)
  • 网络层(多个网络之间的主机通信):当存在多个网络时,如何将从多个网络中寻找到指定目的地的主机,路由器如何进行转发。
  • 传输层(基于网络的进程之间的通信问题):网络通信之间的不同进程问题,传输中如果出现错误如何解决。
  • 应用层(针对主机的进程,遵守各种协议,开发各种应用)。

计算机网络体系结构分层思想的举例

  • 原视频

左主机

  • 每一层都会添加一个与自己相关的首部来辅助信息传输。
  • 应用层添加HTTP报文,和HTTP相关首部。
  • 运输层添加TCP相关首部
  • 网络层添加IP相关首部,在网络中找到目的主机。
  • 数据链路层添加前首部和尾首部,这整个整体称之为帧。方便在多个网络中传输。
  • 物理层将其转化为比特流,转化成相应的信号进行传输。

中路由

  • 物理层接收比特流,还原数据
  • 链路层去除前后ETH首部
  • 网络层解析IP地址寻找合适的目标主机
  • 链路层添加前后ETH首部
    数据链路层添加前首部和尾首部,这整个整体称之为帧。

右主机

  • 物理层接收比特流,还原数据
  • 链路层去除前后ETH首部
  • 网络层解析IP地址
  • 解析TCP协议
  • 解析HTTP报文内容。
  • 反方向同理

计算机网络体系结构专有术语

  • 实体
  • 在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。
  • 要实现本层协议,还需要使用下面一层所提供的服务。
  • 协议是“水平的”,服务是“垂直的实体看得见相邻”下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对.上面的实体是"透明"的。
  • 服务访问点在同- 系统中相邻两层的实体交换信息的逻辑接口,用于区分不同的服务类型。数据链路层的服务访问点为帧的“类型”字段。
  • 网络层的服务访问点为IP数据报首部中的“协议字段”。
  • 运输层的服务访问点为“端口号”
  • 服务原语:上层使用下层所提供的服务必须通过与下层交换一些命令,这些命令称为服务原语。
  • 协议数据单元PDU 对等层次之间传送的数据包称为该层的协议数据单元。
  • 服务数据单元SDU 同一系统内,层与层之间交换的数据包称为服务数据单元。
  • 多个SDU可以合成为一个PDU; 一个SDU也可划分为几个PDU.

第一章习题课

计算机网络体系分层

. 本题中的端到端可以理解为端口到端口之间的信息交互,即进程之间的信息交互。

  1. 重点在分组 只有数据链路层在分组中提供数据传输,运输层和网络层不分组。

时延

根据公式在第一种情况下,发送一个比特所需的时间为1μs。在第二种情况下,发送一个比特所需的时间为1/8μs.得出下面的对比图。


  1. -

  • 注意数据的单位为B,要乘以8。分组交换以后,整个报文的数据量不再是980000,因为增加了很多头部,因此需要重新计算整个报文的数据量。因此还是用n个分组的发送时延进行计算,不能使用上图的宝粉的发送时延进行计算。

物理层

物理层下面的传输媒体

  • 传输媒体不存在于计算机网络体系中的任何一层。最多算到物理层的下面一层。

传输媒体可以分成两类

引导型传输媒体

  • 同轴电缆:价格较贵,布线不灵活不方便
  • 双绞线:
    绞合的作用:抵御部分来自外界的电磁波干扰,较少相邻导线的电磁干扰。
  • 光纤

  • 电力线

非引导型传输媒体

其使用的是不同频率的电磁波

  • 无线电波 地表传播和电离层反射传播
  • 微波 直线传播
  • 红外线:下图表明了其缺点,同时在笔记本电脑上也被淘汰掉了。
  • 可见光是未来要发展的一个方向,目前还无法取代现有的传输手段。

传输方式

传输通常都是异步串行传输和同步并行传输

串行传输与并行传输

  • 远距离传输是串行传输。(多个硬件终端之间的数据传输)
  • 近距离传输是并行传输。(电脑内部硬件之间的数据传输)

同步传输与异步传输

  • 所谓异步是指字节之间异步,之间可以有不同的时间间隔。但是对于一个字节来讲,其中的每一位都是需要同步的。

单工、半双工、全双工

  • 不同方向的信息传输都需要各自的信道。
  • 单工:单方向通信。(广播)(只需要一条信道)
  • 半双工:双方能互相通信,但是不能同时通信。(对讲机)(需要两条信道)
  • 全双工:双方能互相通信,也能同时通信。(电话)(需要两条信道)

编码与调制

  • 码元:在使用时间域的波形表示数字信号时,代表不同离散数值的基本波形。
  • 传输媒体不等同于信道,传输媒体可以有多个信道,每个信道也可以有不同的表现形式,例如数字信道和模拟信道。

编码方法

  • 不归零编码(NRZ):高电平表示1,低电平表示0;但是当相同的数字信号传输的时候,计算机无法区分是一个信号还是两个信号。例如当两个0在一起时,计算机可能会识别出一个0而不是两个。因此这就需要时序同步。反向不归零编码(NRZI),其波形和NRZ正相反,高电平代表0,低电平代表1.
  • 归零编码(RZ):避免了同步问题,但是因为出现了很多的0电平。0电平对于数字信号的传输来讲是无用的资源浪费,编码效率低。
  • 曼彻斯特编码:传统的以太网使用曼彻斯特编码,通过每个时段的中间部分的电平跳变来进行编码。是时段的中部,而不是时段的结束或开始。跳变即表示时钟也表示数据。
  • 差分曼彻斯特编码:中间时段跳变仅表示时钟,码元开始处的电平跳变情况表示数据。
  • 习题10BaseT以太网使用的是曼彻斯特编码。中间时段的跳变即表示时钟也表示数据。

调制方法

  • 基本调制方法

    一个码元仅仅能表示一个比特的信息。为了使得一个码元表示多个比特的信息,因此产生了混合调制的方法

  • 混合调制方法 因为频率和相位相关,因此这两个只能选择一个。当选择了相位和振幅时成为正交振幅调制QAM。


    一个QAM-16可以定义四个比特,为了使得传输过程中的误差尽量小,因此使用格雷码,即相邻数据之间仅有一位是不同的。

信道的极限容量

  • 信号失真的几种原因:1. 码元传输速率2.信号传输距离 3.噪声干扰4. 传输媒体质量
  • 提高信息传输速率的两种方法:采用多元制和提高信道中的信噪比。

奈氏准则

  • 波特率单位码元/秒 w表示信道带宽(单位Hz)
  • 理想低通的最高码元传输速率 : 2w (波特率)
  • 理想带通的最高码元传输速率 : w (8波特率)
  • 码元传输速率和比特率之间的关系,一个码元可以携带多个比特的信息,假设一个码元携带了n个比特的信息。则比特率为n倍的码元传输速率。

香农公式

香农公式里的c的极限值就是上面奈氏准则的n倍码元传输速率。
S/N表示信噪比,使用dB=10*log10_{10}10​ (S/N)(分贝作为度量单位)

  • 4*4 一共16种不同的码元可以表示4位 2^4=16



数据链路层

概述

  • 点对点数据链路层主要解决的三个问题: 1.封装成帧2.差错检测3.可靠传输。
  • 使用广播信道的数据链路层
    共享式以太网的媒体接入控制协议CSMA/CD
    802.11 局域网的媒体接入控制协议CSMA/CA
  • 数据链路层的互联设备
    网桥和交换机的工作原理
    集线器(物理层互连设备)与交换机的区别

封装成帧

  • 封装成帧是指数据链路层给. 上层交付的协议数据单元添加帧头和帧尾使之成为帧。帧头和帧尾中包含有重要的控制信息。帧头和帧尾的作用之一就是帧定界。
  • 见下图
  • 透明传输主要需要解决两个问题。1.界定帧的开始标志和结束标志 2.当标识与数据部分冲突时,如何解决
    透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
  1. 面向字节的物理链路 使用字节填充(或称字符填充)的方法实现透明传输。(对数据中和标识位相同的字节和转义字节进行转义)
  2. 面向比特的物理链路 使用比特填充的方法实现透明传输。(当0111110作为真的标志位时,例如规定在5个1位后必须填充一个0)
  • 为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些。
    考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU (Maximum Transfer Unit)
  • 两种协议举例 - 对于以太帧来讲,不需要没有标志位,因为其在物理层中会再添加前导码,前导码具有标志位的作用,因此以太帧不需要标志位。

差错检测

  • 两种检验方法

奇偶校验

  • 仅能检测出有奇数个比特位发生误码的情况,当有偶数个比特发生误码时,无法检测出。
  • 其漏检率很高,因此不使用此法。

循环冗余校验(CRC Cylic Redundancy Check)

  • 生成的冗余码拼接到待发送的数据后面,再后续的检测时再对其进行处理检测,如果余数为0则没有产生误码,如果不为0,则产生误码。
  • 具体处理过程如下:
  • 发送端处理

    1. 被除数: 原信息拼接多项式最高次位个0。图中位3次方,因此为
      101001+000=> 101001000
    2. 除数:多项式系数,图中为1x^3+1x ^2+ 0x ^1+1x ^0。因此除数为1101
    3. 做类似除法的操作,但是和除法不同的是,除法中有减法操作,在这里是异或操作,得出余数。够4位异或,不够4位落下被除数的一位进行补位。
    4. 检查余数(拼接): ,余数的位数与多项式最高项次数相同。将余数拼接到原数据的最后,得到生成的数据发送给接收方。
  • 接收端和发送端类似
    1. 被除数: 接受的数据图中为101101001
    2. 除数:多项式系数,图中为1x^3+1x ^2+ 0x ^1+1x ^0。因此除数为1101
    3. 做类似除法的操作,但是和除法不同的是,除法中有减法操作,在这里是异或操作,得出余数。
    4. 检查余数(是否为0): 如果余数为0,则表示数据在传输过程中没有发生误码。如果不是0,则表示产生误码。
  • 差错检测的小结
  • CRC校验的检错能力很强,目前被广泛应用到数据链路层。

可靠传输

  • CRC技术可以判断数据传输的过程中是否出现了误码,但是当出现误码时CRC无法进行处理。因此需要对可靠传输进行讨论。

概述

  • ARQ(Automatic Repeat-reQues)自动重传协议。包含停止-等待ARQ协议连续ARQ协议(流水线)。
  • 实现可靠传输需要的成本较大,是否需要可靠传输取决于应用需求。
  • 数据链路层向上提供的服务类型
    1. 不可靠的传输服务:仅仅丢弃有误码的帧。
    2. 可靠的传输服务:想办法接收到发送端原本想发送的东西。
  • 有线链路的数据链路层的误码率低,一般不要求可靠传输。
  • 无线链路易受干扰,误码率高,因此要求其必须提供可靠传输。
  • 我们把视角从帧转移到数据,上述说的差错指的是比特差错是传输差错的一种。
  • 传输差错还包括分组丢失(缓存满导致分组丢弃),分组失序(分组的传输速度不同,到达目的地的顺序有误),分组重复(因延迟问题导致发送端发重发了该分组,导致接收端接收到两个相同的分组)。
  • 可靠传输并不局限于数据链路层,其他各层也可实现可靠传输。

停止-等待协议(SW Stop-Wait)

  • 这三种协议都不仅仅局限于数据链路层,而是适用于计算机体系中的各个层。
  • SW协议的演化进程
  • SW的原理是发送端发送数据以后,如果接收方接收,则发送成功接收帧给发送端,表示已接受,如果出现问题则发送否认帧让发送方重新发送数据。

问题1:接受方没有接收到数据

  • 为解决接收方接收不到数据帧的问题,发送方应有超时重发机制,当发送方在重传时间内没有接收到ACK或NAK的情况下,进行超时重传。
  • 一般重传时间设置为略大于“从发送方到接收方的平均往返时间”。

问题2:接受方接收到数据,但是发送方没有接收到回应帧,并重发了刚刚的数据,接收端接受到了重复的数据。

  • 发送端发送数据时携带编号,用来区分数据是否重复,当接收端检测到重复数据时,返回ACk,同时删除重复数据。

问题3:接受方接收到数据,发送方接收到回应帧有延迟导致数据重发问题同时回应帧重复的问题。

  • 当出现重复时,回应帧如果没有编码,会导致发送方判断回应帧有问题,因此回应帧也需要添加编码。重复的回应帧进行忽略。
  • 在有线链路中,一般往返时间比较固定,不用给确认分组加编号。

小结

信道利用率计算

  • 数据传输时间/整个数据并成功接收所需要的时间。

回退N帧协议(GBN Go-Back-N)

视频放在这里,如有遗忘,直接观看

  • 当仅仅有一个帧进行传输时,信道利用率低,当多个帧同时传输则会提高信道利用率,其也被称之为流水线传输。
  • 发送方
  • 在发送方添加了发送窗口,发送窗口的大小WT_{T}T​取值为1-2^3-1.
  • 发送方可以直接发送WT_{T}T​个分组给接收方。
  • 当接收到接收方的ACK帧后,进行判断是进行数据重传还是进入下一个窗口继续传输。
  • 发送方收到重复的确认,就知道之前所发送的数据分组出现了差错,于是可以不等超时计时器超时就立刻重传!至于收到几个重复确认就立刻重传,由具体实现决定。
  • 接收方
  • 在接收方添加了接收窗口,发送窗口的大小WR_{R}R​仅为1。
  • 接收方每次仅接收一个分组,当一个分组接收成功后,会发送一个带有编号的ACK,然后接收下一个分组,再发送ACK。直到整个数据都接受完毕。
  • 接收方的接收窗口的序号必须和发送方每个分组的序号相对应才能接收成功,否则不会发送ACK,同时接收窗口也不会向下移动,因此接收方发送的ACK编号还是会停留在误码的位置,并重复发送多个相同的ACK,让发送方重传。
  • 当ACK的中间有一帧丢失了,但是后面还在,发送方会直接取最后一个ACK帧,因此并不会影响整个数据的判断。

  • 当WT_{T}T​>8时,接收方会无法辨认这是新数据还是旧数据。因为上一个的编码和本次的编码相同。
  • 整体过程梳理
  • 练习题:
  • 回退N帧协议在流水线传输的基础上利用发送窗回来限制发送方连续发送数据分组的数量,是一种连续ARQ协议。在协议的工作过程中发送窗回和接收窗回不断向前滑动,因此这类协议又称为滑动窗口协议。由于回退N帧协议的特性,当通信线路质量不好时,其信道利用率并不比停止:等待协议高。

选择重传协议(SR Selective Request)

视频放在这里,如有遗忘,直接观看

  • 此协议就是当WR_{R}R​>1时,进一步提高性能。选择重传协议为了使发送方仅重传出现差错的分组,接收方不能再采用累积确认,而需要对每个正确接收到的数据分组进行逐一确认!
  • 发送方
  • 在发送方添加了发送窗口,发送窗口的大小WT_{T}T​取值为1-2^(3-1).
  • 发送方可以直接发送WT_{T}T​个分组给接收方。
  • 当接收到接收方的ACK帧后,判断是否是发送窗口内的编号成功了,如果都成功了则向下移动窗口一位,否则重发没有接到ACK信息的分组。同时发送还未发送的分组。
    发送方只有再按序接受ACK后,发送窗口才能向前相应滑动。
  • 接收方
  • 在接收方添加了接收窗口,发送窗口的大小WR_{R}R​和WT_{T}T​相同。
  • 接收方接收一个分组后,接收端口向后移动一个编号,同时发送一个带有编号的ACK,然后接收下一个分组,再发送ACK。直到整个数据都接受完毕。
  • 当传输出现错误时,接收窗口内的所有编号进行比对时,有没有成功的,这时接收窗口不会向下移动,而是等待发送端口重复发送相应的信息。
    -接收方只有再按序接受数据分组后,接收窗口才能向前相应滑动。

  • 当其大于4时,会导致接收方无法判断是否是重复分组,从而导致误码。


点对点协议 PPP(Point-to-Point Protocol)

  • PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:
    1. 对各种协议数据报的封装方法(封装成帧)
    2. 链路控制协议LCP 用于建立、配置以及测试数据链路的连接
    3. 一套网络控制协议NCPs 其中的每一个协议支持不同的网络层协议

PPP帧的数据格式

  • P部分的目的是为了表明数据部分的内容是提供给哪些协议的。

透明传输(前面讲过了,这里就贴两张图了)

  • 一面向字节的异步链路采用插入转义字符的字节填充法

  • 面向比特的同步链路采用插入比特0的比特填充法

差错检测(PPP帧不提供可靠传输)

  • 接收方每收到一个PPP帧,就进行CRC检验。若CRC检验正确,就收下这个帧;反之,就丢弃这个帧。使用PPP的数据链路层向上不提供可靠传输服务。

PPP协议的工作流程和状态

  • PPP协议的工作流程及状态CSDN
  1. 当用户拨号接入ISP后,就建立了一条从用户PC机到ISP的物理连接。
  2. 这时用户PC机向ISP发送一系列的LCP分组(封装成多个PPP帧),以便建立LCP连接。
  3. 这些分组及其响应选择了将要使用的一些PPP参数。
  4. 接着还要进行网络层配置,NCP给新接入的用户PC机分配一个临时的IP地址。
  5. 这样,用户PC机就成为因特网上的一个有IP地址的主机了。
  6. 当用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。
  7. 接着,LCP释放数据链路层连接。
  8. 最后释放的是物理层的连接。

媒体接入控制

  • 共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)。
  • 随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术。

静态划分信道

  • 复用(Multiplexing) 是通信技术中的一个重要概念。复用就是通过一条物理线路同时传输多路用户的信号。
  • 当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路.上建立多条通信信道来充分利用传输媒体的带宽。

复用技术分类

  • 频分复用(FDM)
  • 时分复用(TDM)
  • 波分复用(WDM)
  • 码分复用(CDM)(重点)
  • 码分复用CDM是另一种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词是码分多址CDMA(Code Division Multiple Access)。
    同理,频分复用FDM和时分复用TDM同样可用于多址接入,相应的名词是频分多址FDMA(Frequency Division Multiple Access)和时分多址TDMA(Time Division Multiple Access)。
    在本课程中, 我们不严格区分复用与多址的概念。可简单理解如下:
    1. 复用是将单一 媒体的频带资源划分成很多子信道, 这些子信道之间相互独立,互不干扰。从媒体的整体频带资源.上看,每个子信道只占用该媒体频带资源的一部分。
    2. 多址(更确切地应该称为多点接入)处理的是动态分配信道给用户。这在用户仅仅暂时性地占用信道的应用中是必须的,而所有的移动通信系统基本上都属于这种情况。相反,在信道永久性地分配给用户的应用中,多址是不需要的(对于无线广播或电视广播站就是这样)。
    某种程度.上,FDMA、TDMA、CDMA可以分别看成是FDM、TDM、CDM的应用。
  • 与FDM和TDM不同,CDM的每一一个用户可以在同样的时间使用同样的频带进行通信。
    由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰
    CDM最初是用于军事通信的,因为这种系统所发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。
    随着技术的进步,CDMA设备的价格和体积都大幅度下降,因而现在已广泛用于民用的移动通信中。
  • 其重点在于:
  • 通过结果码和发送的三个码进行乘积,得出1则发送1,得出-1则发送0,得出0则无发送。

总线局域网使用的CSMA/CD 协议(Carrier Sense Multiple Access/Collision Detection)

  • 视频地址
  • 载波监听多址接入/碰撞检测CSMA/CD 协议(Carrier Sense Multiple Access/Collision Detection)
  • 媒体接入控制一动态接入控制一随机接入一CSMA/CD协议。
  • CSMA/CD协议的工作原理:
    1. 多点接入MA:多个主机连接在一条总线上,竞争使用总线;
    2. 载波监听CS:发送帧前先检测总线,若总线空闲96比特时间,则立即发送;若总线忙,则持续检测总线直到总线空闲96比特时间后再重新发送;
    3. 碰撞检测到CD:边发送边检测碰撞,若检测到碰撞,则立即停止发送,退避一段随机时间后再重新发送。
    4. 上述过程可比喻为:先听后说,边听边说;一旦冲突,立即停说;等待时机,重新再说。
  • 碰撞发生时的处理流程

  • 因此,以太网的端到端往返传播时延2tτ称为争用期或碰撞窗口。
  • 显然,在以太网中发送帧的主机越多,端到端往返传播时延越大,发生碰撞的概率就越大。因此,共享式以太网不能连接太多的主机,使用的总线也不能太长。
  • 以太网的帧长不能太短,否则会出现帧完全发送,但是无法还没有到达目的地,然后不进行碰撞检测,导致帧丢失。
  • 以太网的帧长不能太长,否则会出现帧完全占据发送信道。
  • 截断二进制指数退避算法,计算退避时间。
  • 信道利用率和帧长与端到端的距离有关,帧长越长,端到端距离越短信道利用率越高。
  • 帧的发送流程
    • 帧的接收流程




无线局域网使用协议CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)协议

  • 视频
  • 载波监听多址接入/碰撞避免CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)
  • 在无线局域网中,仍然可以使用载波监听多址接入CSMA,即在发送帧之前先对传输媒体进行载波监听。若发现有其他站在发送帧,就推迟发送以免发生碰撞。
  • 无线局域网无法使用CSMA/CD的原因。
  • 由于不可能避免所有的碰撞,并且无线信道误码率较高,802.11标准还使用了数据链路层**确认机制(停止-等待协议)**来保证数据被正确接收。
  • 802.11的MAC层标准定义了两种不同的媒体接入控制方式:
    1. 分布式协调功能DCF(Distributed Coordination Function)。在DCF方式下,没有中心控制站点,每个站点使用CSMA/CA协议通过争用信道来获取发送权,这是802.11定义的默认方式。
    2. 点协调功能PCF(Point Coordination Function)。PCF方式使用集中控制的接入算法(一般在接入点AP实现集中控制), 是802.11定义的可选方式,在实际中较少使用。
  • 帧间间隔
  • CSMA/CA 协议的工作原理

    1. 源站为什么在检测到信道空闲后还要再等待一段时间DIFS?
      就是考虑到可能有其他的站有高优先级的帧要发送。若有,就要让高优先级帧先发送。
    2. 目的站为什么正确接收数据帧后还要等待一-段时间SIFS才能发送ACK帧?
      SIFS是最短的帧间间隔,用来分隔开属于一次对话的各帧。在这段时间内,一个站点应当能够从发送方式切换到接收方式。
    3. 信道由忙转为空闲且经过DIFS时间后,还要退避一段随机时间才能使用信道?
      防止多个站点同时发送数据而产生碰撞。
  • 退避算法
  • 退避算法的应用情况
    当站点检测到信道是空闲的,并且所发送的数据帧不是成功发送完上一个数据帧之后立即连续发送的数据帧,则不使用退避算法。
    以下情况必须使用退避算法:

    1. 在发送数据帧之前检测到信道处于忙状态时;
    2. 在每一次重传一个数据帧时;
    3. 在每一次成功发送后要连续发送下一个帧时(这是为了避免一个站点长时间占用信道)

  • 信道预约
  • 使用信道预约的意义




MAC地址、IP地址与ARP协议

  • MAC地址是以太网的MAC子层所使用的地址。属于数据链路层
  • IP地址是TCP/IP体系结构网际层所使用的地址。属于网际层。
  • ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址。属于网际层。

MAC地址

  • 当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址;
  • 在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC(Media Access Control), 因此这类地址被称为MAC地址;
    1. MAC地址一般被固化在网卡(网络适配器)的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址;
    2. MAC地址有时也被称为物理地址。 请注意:这并不意味着MAC地址属于网络体系结构中的物理层!
  • 一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。 而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识。

MAC地址的格式(EUI-48)

  • MAC地址有6个字节组成,前半部分时组织唯一标识符,由IEEE机构分配。后半部分由厂商自行分配。
  • MAC地址的第一个字节的第一位和第二位有特殊的意义。如图所示。
  • 您拥有几个全球管理单播MAC地址?
    对于使用EUI-48空间的应用程序,IEEE的目标寿命为EUI-48地址空间会耗尽吗?100年(直到2080),但是鼓励采用EUI-64作为替代。
  • 当整个MAC地址的位全都是1时,则表示是广播地址,所有的主机都可以接受的到。
  • MAC地址的发送顺序是第一字节到第六字节,字节内比特的发送顺序是b0到b7

单播,广播和多播

  • 在封装成帧的时候,目标MAC在前,源MAC在后。
  • 单播,b0位是0,因此第一个字节是偶数的都表示单播。
  • 广播,目标MAC使用FF-FF-FF-FF-FF-FF,来表示广播,所有的终端都可以接受的到。
  • 多播,b0位是1,因此第一个字节是奇数的都表示多播。和单播类似,也是寻找相应的MAC地址,只是多播可以找到很多个主机。

IP地址

  • IP地址是因特网(Internet) 上的主机和路由器所使用的地址,用于标识两部分信息:
    网络编号:标识因特网.上数以百万计的网络
    主机编号:标识同一网络上不同主机(或路由器各接口)

  • 在数据包的传输过程中源IP和目标IP永远保持不变,但是数据包在期间发送的源MAC和目标MAC是会改变的,与当时发送和接收的实际设备的接口MAC决定。
  • 习题

ARP协议

  • ARP协议只能在一段链路或一个网络中使用,而不能跨网络使用,对于跨网路而言,只能在每个链路中逐段使用ARP协议。
  • ARP协议的流程:

    1. 当B在ARP高速缓存表中没有找到C的MAC地址时无法书写MAC帧,需要先在总线中发送广播寻找C的终端。
    2. 指定终端接©收到MAC帧后将B的MAC帧记录到ARP高速缓存表,并发送单播MAC告诉B自己的MAC地址。非指定终端接收到广播后,发现不是自己,不予回应。
  1. 在单播MAC帧中,B接收到来自C的MAC帧,将C的MAC地址记录到ARP高速缓存表中,然后进行原本想要的通信。对于A来讲,因为是单播MAC帧,当发现目标MAC地址和自己的MAC地址不对时,丢弃该帧。
  • ARP高速缓存表存储MAC地址的类型


集线器和交换机

集线器

  • 集线器的本质上还是总线形网络,通过CSMA/CD协议来进行碰撞检测。
  • 集线器对总线型网络的优化在于,对于初始的机械接口,更换成了RJ-45接头,并相当于将总线转换成星型结构,方便使用。
  • 集线器工作在物理层。

  • 当多个集线器同时使用时,相当于对总线进行扩展,扩大了广播域的同时也扩大了需要进行碰撞检测的范围(即更大的冲突域)。

交换机

  • 在我看来交换机和集线器的最主要的区别在于,集线器基本上只有传输的作用,但是交换机增加了记录地址的作用。集线器是每个终端各自记录一张MAC表,然后再进行数据传输给集线器。而交换机知道所有的MAC地址,因此可以有针对性的将信息发送到目标地址。
  • 交换机

    1. 一般有多个接口,并且一般都工作在全双工模式。
    2. 具有并行性,可以连通多对接口,不适用CSMA/CD协议。
    3. 以太网交换机工作在数据链路层(也包括物理层),它收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
    4. 以太网交换机是一种即插即用设备,其内部的帧交换表是通过自学习算法自动地逐渐建立起来的。
    5. 帧的两种转发方式:1.存储转发.2.直通交换:采用基于硬件的交叉矩阵(交换时延非常小,但不检查帧是否右差错)

帧传输时的对比:

  • 单播时,集线器是将信息发送给所有的终端,终端根据MAC地址,决定是否接收。交换机是根据信息中的目标MAC地址,寻找相应主机,直接发送相应主机。
  • 广播时,集线器是将信息发送给所有的终端,终端接收到FF-FF-FF-FF-FF-FF,接收信息。交换机是根据信息中的目标MAC地址为FF-FF-FF-FF-FF-FF,发送给所有终端,终端接收广播信息。
  • 单播碰撞时,集线器是在终端通过CSMA/CD协议检测到碰撞后,执行退避算法,导致信息碰撞。交换机是在接收到不同的终端的信息后,在交换机进行缓存,然后发送到各自的目的终端。

  • 扩展时的区别
  • 对于集线器来讲,使用集线器扩展,相当于在总线上多加了很多终端,导致了广播域的增加,也导致了冲突域的增加。交换机因为不存在冲突域,交换机的每个接口都会把碰撞域进行隔离,使用交换机扩展,也仅仅导致了广播域的增加。

  • 交换机将冲突域隔离开,而不是将其融合到一起。

小结

以太网交换机自学习和转发帧的流程。

  • 交换机进行转发的时候不修改MAC地址,路由器是会修改的。
  • 对发送到交换机信息的源MAC地址进行记录,在其MAC地址缓存表中,如果没有就转发(盲目泛洪的转发),如果已有记录,则仅仅发送到目标MAC地址的终端。
  • 交换机是基于MAC地址进行转发的,而不是IP。因为IP在其上层,涉及不到。
  • 注意:
  1. 对于交换机1,记录E的MAC是记录在4接口上。对于交换机2,记录A的MAC是记录在2接口上.
  2. 对于交换机,当源MAC和目的MAC都在一个接口的时候,交换机会将该帧丢弃,因为交换机判定这是在一个广播域内的信息通信。
  • 每条记录都有自己的有效时间,到期自动删除!
    这是因为MAC地址与交换机接的对应关系并不是永久性的!


以太网交换机的生成树协议STP

  • STP诞生的原因就是如果仅有一个数据链路,则容易产生故障,导致网络出问题,因此通过增加冗余链路的方式增加整个以太网的可靠性。
  • 冗余链路也产生了大量的问题:
  1. 广播风暴
  2. 主机收到重复的广播帧
  3. 交换机的帧交换表漂移震荡。

虚拟局域网VLAN

  • 使用多个交换机可以得到很大的广播域,虽然没有扩大冲突域,但是广播域过大也会产生很多问题。
  • 需要进行广播的协议
  • 路由器工作在网际层,默认不对广播数据包进行转发。

VLAN的实现机制

  • 802.1Q帧是对MAC帧进行扩展得到的。因为不是MAC帧,因此主机是无法解析802.1Q帧,只能在交换机中对这个帧进行处理。
  • 802.1Q帧通过对原有的MAC帧进行打标签和去标签来实现VLAN。
  • 交换机的接口有三种:Access,Trunk,Hybrid。其中Hybrid端口思科是没有的,华为是有的。
  • 交换机各端口的缺省VLAN ID
  1. 在思科交换机.上称为Native VLAN,即本征VLAN。
  2. 在华为交换机. 上称为Port VLAN ID,即端口VLAN ID,简记为PVID。

Access

  • 一般用于连接用户计算机,仅属于一个VLAN。Access端口的PVID与端口所属的VLAN相同。
  • 在原有的MAC帧基础上,添加VID,生成802.1Q帧(打标签)。
  • 对VID和PVID相同的接口进行去标签和转发,广播原有的MAC帧。


Trunk

  • 我认为Trunk设置PVID的目的是,当交换机1的VLAN1,想和交换机2的VLAN2形成一个VLAN时,需要将交换机1的PVID设置成1,交换机2的PVID设置成2,这时普通的转发就会失效。
  • Trunk端口一 般用于交换机之间或交换机与路由器之间的互连
  • Trunk端口可以属于多个VLAN
  • 用户可以设置Trunk端口的PVID值。默认情况下,Trunk端口的PVID值为1。
  • Trunk端口发送处理方法:
  1. 对VID等于PVID的帧,“去标签” 再转发;
  2. 对VID不等于PVID的帧,直接转发;
  • Trunk端口接收处理方法:
  1. 接收“未打标签”的帧,根据接收帧的端口的PVID给帧“打标签”,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等。
  2. 接收“已打标签的帧”



Hybrid(既可以用于主机又可以用于交换机)

  • 通过对每个接口设置其去标签列表,来控制其可以接收或不能接收到的帧的信息。
  • 这里说明一下,在这个交换机中无论去不去标签,接口都会将其转发到用户机,但是用户机无法识别802.1Q帧,只能将其舍弃。
  • 小结

计算机网络基础学习笔记(上)相关推荐

  1. 计算机网络基础学习笔记(下)

    学习视频 随看随记 ABCD类型地址的分类 根据地址左起第-个十进制数的值,可以判断出网络类别(小于127的为A类, 128 ~ 191 的为B类,192 ~ 223的为C类) ; 根据网络类别,就可 ...

  2. CreateJS基础 学习笔记(上)

    1.CreateJS介绍 了解CreateJS 1.CreateJS:     一款HTML5游戏开发的引擎     CreateJS是一套可以构建丰富交互体验的HTML5游戏的开源工具包,旨在降低H ...

  3. jQuery基础学习笔记(上)

    1.简介及语法 认识jQuery 1.jQuery:     jQuery库可以通过一行简单的标记被添加到网页中. 2.什么事jQuery:     jQuery是一个JavaScript函数库. 3 ...

  4. Oracle PL/SQL语句基础学习笔记(上)

    PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL ...

  5. HTML5新特性基础学习笔记上

    1.HTML5音频视频 音频播放 1.Audio(音频) HTML5提供了播放音频文件的标准 2.control(控制器) control属性供添加播放,暂停和音量控件 3.标签: <audio ...

  6. 1.html5+css3基础学习笔记(上)

    1 HTML简介 1.1 W3C标准 伯纳斯李1994年建立万维网联盟( W3C ),W3C的出现为了制订网页开发的标准,以使同一个网页在不同的浏览器中有相同的效果.所以,我们需要制订我们编写的网页都 ...

  7. 计算机网络协议学习笔记

    title: "计算机网络协议学习笔记" url: "https://wsk1103.github.io/" tags: 学习笔记 OSI模型 开放式系统互联通 ...

  8. guido正式发布python年份_Python 基础学习笔记.docx

    Python 基础学习笔记 基于<Python语言程序设计基础(第2版)> 第一部分 初识Python语言 第1章 程序设计基本方法 1.1 计算机的概念 计算机是根据指令操作数据的设备, ...

  9. ASP.Net MVC开发基础学习笔记(5):区域、模板页与WebAPI初步

    http://blog.jobbole.com/85008/ ASP.Net MVC开发基础学习笔记(5):区域.模板页与WebAPI初步 2015/03/17 · IT技术 · .Net, Asp. ...

最新文章

  1. 通信基站电源维护培训PPT课件
  2. python哪些类型可以作为迭代器_python0.8-----set类型与迭代器
  3. 如果不清楚设计方向,圣诞设计模板可以帮助你轻松建立节日主题。
  4. Exp5 MSF基础应用 ——20164316张子遥
  5. 计算机开机无讯号,【图片】电脑突然开机没反应,显示器没信号!~【显卡吧】_百度贴吧...
  6. 《人月神话》之外科手术队伍
  7. pdffactory 打印字体_PdfFactory Pro(PDF虚拟打印软件) 中文版分享
  8. 树莓派kali linux渗透测试版,在树莓派上安装Kali Linux基于Android设备的Kali Linux渗透测试教程大学霸...
  9. 海思(六)如何在ubuntu20.04上搭建caffe环境
  10. 一分钟让你知道Hadoop是什么
  11. hive:函数:日期比较函数:获取当前日期 + date_add + date_sub函数获取前几天或后几天的日期
  12. 什么是 知足者常乐?
  13. 构建面向异构算力的边缘计算云平台
  14. 关闭windows server 2016弹出交互式服务检测窗口
  15. 树莓派+STM32人脸识别门禁系统(中)----- 树莓派部分
  16. unity 陶瓷质感_一种基于Unity3D的虚拟陶瓷设计方法与流程
  17. layui 数字步进器_光音移动设计规范 — 表单类
  18. Ubuntu打造家用NAS二——服务器管理
  19. 查询数据(后台到前台传递数据,显示数据)
  20. 虚拟机VHD格式解析到NTFS文件系统解析

热门文章

  1. 视觉SLAM十四讲学习笔记——第七讲 视觉里程计(2)
  2. 【echarts双y轴:左右轴数据分开设置最大值(解决刻度线不对齐】
  3. Zookeeper——选举机制原理与Leader和Follower作用
  4. MindStudio训练营第一期
  5. Insert语句返回主键
  6. 葡萄美酒夜光杯 陶瓷膜过滤就是对
  7. 【自动控制原理】线性系统的根轨迹法
  8. 融合通信技术趋势和演进方向
  9. vmware 10 安装 PhoenixOS(凤凰系统)
  10. 严重: Servlet.service() for servlet jsp threw exception