网络层计算机网络

1.因特网概述

1.1网络、互连网(互联网)和因特网

  • **网络(Network)由若干结点(Node)和连接这些结点的链路(Link)**组成。
  • 多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网(或互连网)因此,互联网是“网络的网络(Network of Networks) “。
  • **因特网(Internet)**是世界上最大的互连网络(用户数以亿计,互连的网络数以百万计)。

image-20230311155935438

image-20230311160050832

1.2互联网发展的阶段

image-20230311160320585

因特网服务提供者ISP(Internet Service Provider)

image-20230311160454574

基于ISP的三层结构的因特网

image-20230311160640477

1.3因特网的标准化

image-20230311160752562

1.4因特网的组成

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

image-20230311160947251

2.三种交换方式

  • 电路交换

    • 电话交换机接通电话线的方式称为电路交换;
    • 从通信资源的分配角度来看,交换(Switching)就是按照某种方式动态地分配传输线路的资源;
    • 电路交换的三个步骤:
      • 建立连接(分配通信资源)
      • 通话(一直占用通信资源)
      • 释放连接(归还通信资源)

image-20230311161426713

image-20230311161727193

  • 分组交换

    image-20230311161942045

对比

image-20230311162108673

image-20230311162252308

image-20230311162353930

image-20230311162457719

3.计算机网络的定义与分类

定义

  • 计算机网络的精确定义并未统一

  • 计算机网络的最简单的定义是:一些接的、自治的计算机的集合

    • 互连是指计算机之间可以通过有线或无线的方式进行数据通信;

    • 自治是指独立的计算机,它有自己的硬件和软件,可以单独运行使用;

    • 集合是指至少需要两台计算机

  • 计算机网络的较好的定义是:计算机网络主要是由一些通用的
    可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,开能支持广泛的和日益增长的应用。

    • 计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机等智能硬件。
    • 计算机网络并非专门用来传送数据,而是能够支持很多种的应用(包括今后可能出现的各种应用)。

分类

image-20230311163206204

4.计算机网络的性能指标

性能指标可以从不同的方面来度量计算机网络的性能。常用的计算机网络的性能指标有以下8个:

  • 速率
  • 带宽
  • 吞吐量
  • 时延
  • 时延带宽积
  • 往返时间
  • 利用率
  • 丢包率

速率

image-20230313143507438

image-20230313143740194

image-20230313143724239

带宽

image-20230313144447186

image-20230313144455524

image-20230313144652762

吞吐量

image-20230313144722455

时延

image-20230313144948787

时延带宽积

image-20230313145226683

往返时间

image-20230313145337287

利用率

image-20230313145457219

丢包率

image-20230313145556816

5.计算机网络体系结构

OSI体系结构/TCP/IP体系结构

image-20230313145823960

image-20230313150033636

image-20230313150126891

物理层

image-20230313150420576

数据链路层

image-20230313150731802

网络层

image-20230313150854429

运输层

image-20230313151002532

应用层

image-20230313151045634

image-20230313151255800

进程间的通信

image-20230314205308503

image-20230315195655214

image-20230315195725615

image-20230315200234871

实体

实体:任何可发送或接收信息的硬件软件进程
对等实体:收发双方相同层次中的实体

image-20230315200639817

协议

协议:控制两个对等实体进行逻辑通信的规则的集合。

image-20230315200720436

协议的三要素:语法 语义 同步

语法:定义所交换信息的格式

image-20230315201728338

语义:定义收发双方所要完成的操作

image-20230315201818999

同步:定义收发双方的时序关系

image-20230315201508475

服务

在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。
协议是“水平的”,服务是“垂直的”。
实体看得见相邻下层所提供的服务,但并不知道实现该服务的具体协议。也就是说,下面的协议对上面的实体是”透明”的。

image-20230315202038170

image-20230315202240980

协议数据单元PDU:对等层次之间传送的数据包称为该层的协议数据单元。

服务数据单元SDU:同一系统内,层与层之间交换的数据包称为服务数据单元。

多个SDU可以合成为一个PDU;一个SDU也可划分为几个PDU。

image-20230315202440651

在osi参考模型中,自下而上第一个提供端到端服务的层次是传输层

image-20230316193535543

物理层

  • 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流。
  • 物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么。

image-20230316200734445

  • 导引型传输媒体

    • 双绞线
    • 同轴电缆
    • 光纤
  • 非导引型传输媒体

    • 微波通信(2~40GHz)

物理层协议的主要任务

  • 机械特性
    • 指明接口所用接线器的形状尺寸引脚数目排列固定锁定装置。
  • 电气特性
    • 指明在接口电缆的各条线上出现的电压的范围
  • 功能特性
    • 指明某条线上出现的某一电平的电压表示何种意义
  • 过程特性
    • 指明对于不同功能的各种可能事件的出现顺序

image-20230316200829335

image-20230316201427871

数据链路层

  • **链路(Link)**就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。
  • **数据链路(Data Link)**是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。
  • 数据链路层以为单位传输和处理数据。

数据链路层的三个重要问题

  • 封装成帧

    image-20230317141515839

  • 差错检测

image-20230317141616262

  • 可靠传输

尽管误码是不能完全避兔的,但若能实现发送方发送什么,接收方就能收到什么,就称为可靠传输。

封装成帧

封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。

  • 帧头和帧尾中包含有重要的控制信息。
  • 帧头和帧尾的作用之一就是帧定界

image-20230317143820122

透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。

  • 面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输。

  • 面向比特的物理链路使用比特填充的方法实现透明传输。

对于层传输过来的数据,会先扫描,如果里面包括帧定界,就加转义符

每5个1填充一个0(零比特填充法)

image-20230317144459821

差错检测

  • 实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1。这称为比特差错
  • 在一段时间内,传输错误的比特占所传输比特总数的比率称为**误码率BER(Bit Error Rate)**。
  • 使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。

image-20230317145042355

奇偶校验

  • 在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中“1”的个数
    为奇数((奇校验)或偶数(偶校验)。
    • 如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码;
    • 如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检);

image-20230317145249225

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

  • 收发双方约定好一个生成多项式G(x);
  • 发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输;
  • 接收方通过生成多项式来计算收到的数据是否产生了误码;

image-20230317145607518

异或操作,发送信息后面补充的位数为多项式的最高次幂

image-20230317145814715

  • 检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误
  • 要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用。
  • 循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层
  • 在计算机网络中通常采用我们后续课程中将要讨论的检错重传方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务。

可靠传输

  • 使用差错检测技术(例如循环冗余校验CRC),接收方的数据链路层就可检测出帧在传输过程中是否产生了误码(比特错误)。

  • 数据链路层向上层提供的服务类型

    • 不可靠传输服务:仅仅丢弃有误码的帧,其他什么也不做;
    • 可靠传输服务:想办法实现发送端发送什么,接收端就收到什么
  • 一般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。

  • 无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务。

比特差错只是传输差错中的一种。
从整个计算机网络体系结构来看,传输差错还包括分组丢失分组失序以及分组重复

分组丢失、分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层。
可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输。

image-20230317151227085

可靠传输实现机制

停止-等待协议SW
回退N帧协议GBN
选择重传协议SR

这三个协议并不局限于数据链路层,可以应用到各层协议上去

停止等待协议

image-20230318152153299

image-20230318152335652

避免确认丢失或者确认迟到可以给确认的信息中加上分组编号

image-20230318152543235

  • 接收端检测到数据分组有误码时,将其丢弃并等待发送方的超时重传。但对于误码率较高的点对点链路,为使发送方尽早重传,也可给发送方发送NAK分组.
  • 为了让接收方能够判断所收到的数据分组是否是重复的,需要给数据分组编号。由于停止-等待协议的停等特性,只需1个比特编号就够了,即编号0和1.
  • 为了让发送方能够判断所收到的ACK分组是否是重复的,需要给ACK分组编号,所用比特数量与数据分组编号所用比特数量一样。数据链路层一般不会出现ACK分组迟到的情况,因此在数据链路层实现停止-等待协议可以不用给ACK分组编号。
  • 超时计时器设置的重传时间应仔细选择。一般可将重传时间选为略大于“从发送方到接收方的平均往返时间”。
    • 在数据链路层点对点的往返时间比较确定,重传时间比较好设定。
    • 然而在运输层,由于端到端往返时间非常不确定,设置合适的重传时间有时并不容易。
停止等待协议信道利用率

image-20230318153218322

  • 当往返时延RTT远大于数据帧发送时延Tp时(例如使用卫星链路),信道利用率非常低。
  • 若出现重传,则对于传送有用的数据信息来说,信道利用率还要降低。
  • 为了克服停止-等待协议信道利用率很低的缺点,就产生了另外两种协议,即后退N帧协议GBN和选择重传协议SR。

回退N帧协议GBN

image-20230318154743629

image-20230318155254147

image-20230318155507318

  • 回退N帧协议的接收窗口尺寸WR只能等于1,因此接收方只能按序接收正确到达的数据分组

  • 一个数据分组的误码就会导致其后续多个数据分组不能被接收方按序接收而丢弃(尽管它们无乱序和误码)。这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大浪费。

  • 为了进一步提高性能,可设法只重传出现误码的数据分组。因此,接收窗口的尺寸WR不应再等于1(而应大于1),以便接收方先收下失序到达但无误码并且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后再一并送交上层。这就是选择重传协议

    注意:
    选择重传协议为了使发送方仅重传出现差错的分组接收方不能再采用累积确认,而需要对每个正确接收到的数据分组进行逐一确认!

选择重传协议SR

image-20230319143522574

image-20230319143727556

点对点协议PPP

  • 点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议

image-20230319144103599

  • PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:

    • 对各种协议数据报的封装方法(封装成帧)

    • 链路控制协议LCP
      用于建立、配置以及测试数据链路的连接

    • 一套网络控制协议NCPs
      其中的每一个协议支持不同的网络层协议

image-20230319144556341

封装成帧

image-20230319144918394

  • 标志(Flag)字段:PPP帧的定界符,取值为Ox7E

  • 地址(Address)字段:取值为OxFF,预留(目前没有什么作用

  • **控制(Control)**字段:取值为Ox03,预留(目前没有什么作用)

  • **协议(Protocol)**字段:指明帧的数据部分送交哪个协议处理

    • 取值0x0021表示:帧的数据部分为IP数据报
    • 取值OxC021表示:帧的数据部分为LCP分组
    • 取值0x8021表示:帧的数据部分为NCP分组
  • **帧检验序列(Frame Check Sequence)**字段:CRC计算出的校验位

透明传输

image-20230319145201159

透明传输——面向字节的异步链路采用插入转义字符的字节填充法

image-20230319145315975

透明传输
-面向比特的同步链路采用插入比特0的比特填充法

image-20230319145421362

差错检测

image-20230319145642121

工作状态

image-20230319145825809

媒体接入控制

  • 共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即**媒体接入控制MAC(Medium Access Control)**。

image-20230319150242352

image-20230319150426091

随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术。

静态划分信道

信道复用

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

image-20230319151027536

频分复用FDM

image-20230319151125388

时分复用TDM

image-20230319151231566

波分复用WDM

image-20230319151306845

码分复用CDM

共享式以太网

以太网(Ethernet)以曾经被假想的电磁波传播介质——以太(Ether)来命名。

image-20230321191857459

以太网目前已经从传统的共享式以太网发展到交换式以太网

网络适配器和MAC地址

网络适配器

要将计算机连接到以太网,需要使用相应的网络适配器(Adapter),网络适配器一般简称为“网卡”。

image-20230321192058619

image-20230321192116685

在计算机内部,网卡与CPU之间的通信,一般是通过计算机主板上的I/O总线以并行传输方式进行。

网卡与外部以太网(局域网)之间的通信,一般是通过传输媒体(同轴电缆、双绞线电缆、光纤)以串行方式进行的。

image-20230321192202469

​ 网卡除要实现物理层和数据链路层功能,其另外一个重要功能就是要进行并行传输和串行传输的转换。由于网络的传输速率和计算机内部总线上的传输速率并不相同,因此在网卡的核心芯片中都会包含用于缓存数据的存储器。

​ 在确保网卡硬件正确的情况下,为了使网卡正常工作,还必须要在计算机的操作系统中为网卡安装相应的设备驱动程序。驱动程序负责驱动网卡发送和接收帧。

MAC地址

image-20230321192357939

​ 当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址

​ 在每个主机发送的帧的首部中,都携带有发送主机(源主机)和接收主机(目的主机)的数据链路层地址。由于这类地址是用于媒体接入控制(Medium Access Control,MAC)的,因此被称为MAC地址

​ MAC地址一般被固化在网卡的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址。MAC地址有时也被称为物理地址。属于数据链路层的范畴

image-20230321192803070

​ 计算机中通常会包括两块网卡:接入有线局域网的以太网卡,接入无限局域网的Wi-Fi网卡。每块网卡都有一个全球唯一的MAC地址

MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识。

image-20230321193055311

image-20230321193458657

单播MAC地址

image-20230321193650292

广播MAC地址

image-20230321193729581

多播MAC地址

image-20230321193751847

网卡从网络上每收到一个帧,就检查帧首部中的目的MAC地址,按以下情况处理:

  • 如果目的MAC地址是广播地址(FF-FF-FF-FF-FF-FF),则接受该帧。
  • 如果目的MAC地址与网卡上固化的全球单播MAC地址相同,则接受该帧。
  • 如果目的MAC地址是网卡支持的多播地址,则接受该帧。
  • 除上述(1)、(2)和(3)情况外,丢弃该帧。

网卡还可被设置为一种特殊的工作方式:混杂方式(Promiscuous Mode)。工作在混杂方式的网卡,只要收到共享媒体上传来的帧就会收下,而不管帧的目的MAC地址是什么。

  • 对于网络维护和管理人员,这种方式可以监视和分析局域网上的流量,以便找出提高网络性能的具体措施。

  • 嗅探器(Sniffer)就是一种工作在混杂方式的网卡,再配合相应的工具软件(WireShark),就可以作为一种非常有用的网络工具来学习和分析网络。

  • 混杂方式就像一把“双刃剑”,黑客常利用这种方式非法获取网络用户的口令。

用户应尽量确保自己拥有的全球单播MAC地址不被泄露。 为了避免用户设备连接Wi-Fi热点时MAC地址泄露的安全问题,目前大多数移动设备都已经采用了随机MAC地址技术

CSMA/CD协议

CSMA/CD协议的基本原理

共享总线以太网具有天然的广播特性,即使总线上某个站点给另一个站点发送单播帧,表示帧的信号也会沿着总线传播到总线上的其他各站点。

image-20230321200504451

为了解决各站点争用总线的问题,共享总线以太网使用了一种专用协议CSMA/CD,它是载波监听多址接入/碰撞检测(Carrier Sense Multiple Access Collision Detection)的英文缩写词。

image-20230321200731494

image-20230321200841766

载波监听检测到总线空闲,但总线并不一定空闲

使用CSMA/CD协议的共享总线以太网上的各站点,只是尽量避免碰撞并在出现碰撞时做出退避后重发的处理,但不能完全避免碰撞

在使用CSMA/CD协议时,由于正在发送帧的站点必须“边发送帧边检测碰撞”,因此站点不可能同时进行发送和接收,也就是不可能进行全双工通信,而只能进行半双工通信(双向交替通信)

共享式以太网的争用期

使用CSMA/CD协议的共享总线以太网上的任意站点在发送帧的过程中都可能会遭遇碰撞。

image-20230322191109775

共享式以太网的最小帧长和最大帧长

image-20230322191207678

共享以太网的退避算法

image-20230324221209217

共享以太网的信道利用率

image-20230324221318116

物理层扩展以太网

共享总线以太网中两站点之间的距离不能太远,否则它们之间所传输的信号就会衰减到使CSMA/CD协议无法正常工作。

image-20230324221530250

image-20230324221543446

image-20230324221559313

image-20230324221620274

在数据链路层扩展以太网

image-20230324221702694

网桥(bridge)工作在数据链路层(包含其下的物理层),因此网桥具备属于数据链路层范畴的相关能力。

  • 网桥可以识别帧的结构

  • 网桥可以根据帧首部中的目的MAC地址和网桥自身的帧转发表来转发或丢弃所收到的帧。

image-20230324222324293

网桥收到帧后进行登记(即自学习),登记的内容为帧的源MAC地址进入网桥的接口号

image-20230324222441751

透明网桥的生成树协议STP

避免环路

交换式以太网

仅使用交换机(而不使用集线器)的以太网就是交换式以太网。

共享式以太网:

image-20230324222641048

交换式以太网:

image-20230324222717802

交换机的每个接口可以连接计算机,也可以连接集线器或另一个交换机。

当交换机的接口与计算机或交换机连接时,可以工作在全双工方式,并能在自身内部同时连通多对接口,使每一对相互通信的计算机都能像独占传输媒体那样,无碰撞地传输数据,这样就不需要使用CSMA/CD协议了。

当交换机的接口连接的是集线器时,该接口就只能使用CSMA/CD协议并只能工作在半双工方式。

共享式以太网和交换式以太网对比

image-20230324223031838

image-20230324223055951

image-20230324223338700

以太网的MAC帧格式

image-20230324224113673

image-20230324224133305

虚拟局域网

虚拟局域网产生给的背景

将多个站点通过一个或多个以太网交换机连接起来就构建出了交换式以太网。交换式以太网中的所有站点都属于同一个广播域。随着交换式以太网规模的扩大,广播域也相应扩大。(广播风暴

image-20230403170224898

TCP/IP协议栈中的很多协议都会使用广播:

  • 地址解析协议ARP
  • 路由信息协议RIPv1
  • 动态主机配置协议DHCP

分隔广播域的办法:

  • 路由器隔离广播域(成本较高)

image-20230403170511758

  • 虚拟局域网技术

虚拟局域网VLAN

虚拟局域网(Virtual Local Area Network,VLAN)是一种将局域网内的站点划分成与物理位置无关的逻辑组的技术,一个逻辑组就是一个VLAN,VLAN中的各站点具有某些共同的应用需求。

image-20230403175348935

属于同一VLAN的站点之间可以直接进行通信,而不同VLAN中的站点之间不能直接通信。

连接在同一交换机上的多个站点可以属于不同的VLAN,而属于同一VLAN的多个站点可以连接在不同的交换机上。

虚拟局域网VLAN的实现机制

常见的就是基于以太网交换机的接口来实现VLAN。

对以太网交换机的要求:

❶ 能够处理带有VLAN标记的帧,也就是IEEE 802.1Q帧。

❷ 交换机的各接口可以支持不同的接口类型,不同接口类型的接口对帧的处理方式有所不同。

IEEE 802.1Q帧也称为Dot One Q帧,它对以太网V2的MAC帧格式进行了扩展:在源地址字段和类型字段之间插入了4字节的VLAN标签(tag)字段。

image-20230403185836985

image-20230403185911784

VID是802.1Q帧所属VLAN的编号,设备利用VID来识别帧所属的VLAN。
广播帧只在同一VLAN内转发,这样就将广播域限制在了一个VLAN内

image-20230403190241526

image-20230403190508664

无限局域网

无线局域网(Wireless Local Area Network,WLAN)

802.11无线局域网是目前应用最广泛的无线局域网之一,人们更多地将其简称为Wi-Fi(Wireless Fidelity,无线保真度)。

802.11无线局域网可分为以下两类:有固定基础设施和无固定基础设施

02.11无线局域网采用了另一种称为CSMA/CA的协议,也就是载波监听多址接入/碰撞避免(Carrier Sense Multiple Access/Collision Avoidance,CSMA/CA)。

网络层


http://example.com/2023/03/11/06.扩展/05.计算机网络/01.计算机网络/
作者
Deng ErPu
发布于
2023年3月11日
许可协议