计算机网络(湖南科技大学)

计算机网络基础

一、因特网背景

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

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

注意:internet与Internet的区别
internet(互联网或互连网)是一个通用名词,它泛指由多个计算机网络互连而成的网络。在这些网络之间的通信协议可以是任意的
Internet(因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用TCP/IP协议族作为通信的规则,其前身是美国的ARPANET。

1.2 因特网发展的三个阶段

在这里插入图片描述

1.3 因特网服务提供者ISP

  • 接入因特网流程:实际上,是通过ISP接入因特网的。ISP可以从因特网管理机构申请到成块的IP地址,同时拥有通信线路以及路由器等联网设备。所以任何机构和个人只要向ISP交纳规定的费用,就可以从ISP得到所需要的IP地址(因为因特网上的主机都必须有IP地址才能进行通信),这样就可以通过该ISP接入到因特网。
  • 我国ISP:主要是中国电信、中国联通、中国移动三大电信运营商。
    在这里插入图片描述

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

在这里插入图片描述
注意:对于最外面的用户A、B,其之间若要通信,可能需要经过多个ISP;此外,对于A、B中任一个用户能够接入因特网,那么他也可以成为一个ISP(只需购买些调制解调器或路由器这样的设备)。

1.5 因特网的标准化工作

在这里插入图片描述

1.6 因特网的组成

  • 边缘部分:由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
  • 核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
    注意:边缘部分可以是台式机、笔记本电脑、大型服务器、手机、物联网设备等。核心部分主要是路由器。
    在这里插入图片描述

二、计算机网络基础

2.1 三种交换方式

2.1.1 电路交换(Circuit Switching)

在这里插入图片描述
注意:因为效率低,一般只用于电话通信,而不适用于电脑,手机等其他物联网设备。

2.1.2 分组交换(Packet Switching)

流程:在发送端,通常我们把表示该消息的整块数据成为一个报文,在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段,然后再每一个数据段前面加上一些由必要的控制信息组成的首部后,就构成了一个分组,也可简称为包,其加入的首部也可称为包头。而分组交换机收到一个分组后,先将分组暂时存储下来,在检查其首部,按照首部中的目的地址进行查表转发,找到合适的转发接口,通过该接口将分组转发给下一个分组交换机。于是发送端将构造出的各个分组依次发送出去,各分组经过途中各分组交换机的存储转发,最终到达目的主机。目的主机把收到的上述分组,并且去掉它们的首部,将各数据段组合还原出原始报文,上述只考虑了数据包经过的路径可以不同、数据包到达目的主机的顺序可能不同两种情况。但是还存在许多问题,像分组丢失、误码、重复等问题。

网络中各部分功能:发送端(构造分组、发送分组)、路由器(缓存分组、转发分组)、接受端(接受分组、还原报文)。

注意:在因特网中,最重要的分组交换机就是路由器。它负责将各种网络互联起来,并对接受到的分组进行转发,也就是进行分组交换。
在这里插入图片描述

2.1.3 报文交换(Message Switching)

报文交换中的交换节点也采用存储转发方式,但报文交换对报文的大小没有限制,所以血药交换节点有较大的缓存空间。
注意:报文交换主要应用于早期的电报通讯网,而现在较少使用,通常被较为先进的分组交换方式所取代。

2.1.4 三种交换方式的对比

在这里插入图片描述
在这里插入图片描述

2.2 计算机网络的定义

在这里插入图片描述

2.3 计算机网络的分类

2.3.1 按交换技术分类

电路交换网络、报文交换网络、分组交换网络。

2.3.2 按使用者分类

  • 公用网(也可称公众网,是指电信公司出资建造的大型网络,即所有愿意按电信公司的规定交纳费用的任都可以使用这种网络。)、
  • 专用网(是指某个部门为本单位的特殊业务工作的所需要而建造的网络。这种网络不向本单位以外的人提供服务。例如:军队、铁路、电力等系统均有本系统的专用网)。

2.3.3 按传输介质分类

  • 有线网络(双绞线网络、光纤网络等)
  • 无线网络(WiFi、4G)。

2.3.4 按网络的覆盖范围分类

  • 广域网WAN(覆盖范围通常为几十公里到几千公里,从而可以覆盖一个国家、地区、甚至横跨几个洲,为因特网的核心部分)
  • 城域网MAN
  • 局域网LAN
  • 个域网PAN(主要指在个人工作的地方把属于个人使用的电子设备,例如,笔记本电脑、打印机、鼠标、键盘、耳机等,用无线技术连接起来的网络。)。

2.3.5 按拓扑结构分类

  • 总线型网络(使用单根线把计算机连接起来)
    在这里插入图片描述
    总线型网络优点:建网容易、增减节点方便、节省线路。
    总线型网络缺点:重负载时通信效率不高,总线任意一处出现故障,则全网瘫痪。

  • 星型网络(将每个计算机都以单独的线路与中央设备相连,中央设备早期时计算机,后来是集线器,现在一般是交换机或路由器)
    在这里插入图片描述
    星型网络优点:便于网络的集中控制和管理,因为端用户通信需经过中央设备。
    星型网络缺点:成本高、中央设备对故障敏感。

  • 环形网络(是将所有计算机的网络接口连接成一个环。环可以是单环,也可以是双环,环中信号是单向传输的)
    环形网络:典型的是令牌环局域网
    在这里插入图片描述

  • 网状型网络(一般情况下,每个节点至少有两条路径与其他节点相连,多用在广域网中)。
    在这里插入图片描述
    网状型网络优点:可靠性高
    网状型网络缺点:控制复杂、线路成本高

2.5 计算机网络的性能指标

  • 性能指标可以从不同的方面来度量计算机网络的性能。
  • 常用的计算机网络的性能指标有8个:速率、带宽、吞吐量、时延、时延带宽积、往返时间、利用率、丢包率。

2.5.1 速率

  • 比特
    在这里插入图片描述

  • 实例:对于U盘、硬盘、内存条,厂家标注容量与实际电脑系统上显示有差异,厂家对于单位k=1000,而电脑的单位K=1024。
    注意:大写K与小写k的区别,以及缩写中大写B与小写b的区别。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 速率
    在这里插入图片描述

2.5.2 带宽

在这里插入图片描述

2.5.3 吞吐量

在这里插入图片描述

2.5.4 时延

  • 发送时延:源主机将分组发往传输线路所花费的时间。
    在这里插入图片描述
    注意:主机的发送速率由网卡的发送速率、信道带宽、交换机的接口速率共同决定。 在这里插入图片描述

  • 传播时延:分组的信号在链路上传输所花费的时间。
    在这里插入图片描述

  • 处理时延:路由器收到分组后,对其进行存储转发所花费的时间。
    一般不方便计算。所以总的时延中也一般忽略。

2.5.5 时延带宽积

在这里插入图片描述

2.5.6 往返时间

在这里插入图片描述

2.5.7 利用率

在这里插入图片描述

2.5.8 丢包率

在这里插入图片描述

2.6 计算机网络的体系结构

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

  • OSI体系结构(法律上的国际标准)

在这里插入图片描述

  • TCP/IP体系结构(事实上的国际标准)

在这里插入图片描述

  • 原理体系结构(方便学习)

在这里插入图片描述

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

  • 计算机网络是个非常复杂的系统。早在最初的ARPANET设计时就提出了分层的设计理念。
  • “分层"可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
  • 下面,我们按照由简单到复杂的顺序,来看看实现计算机网络要面临哪些主要的问题,以及如何将这些问题划分到相应的层次,层层处理。

(1) 最简单的情况(两台计算机直接通过网线连接起来)

两台计算机通信需要准备:通选择采用怎样的传输媒体(介质)、信号的编码方式、物理接口。完成上述准备就可以使得两台计算机可以数据通信。而把上述的内容划分到物理层。
在这里插入图片描述
注意:严格意义上说,传输媒体(介质)并不属于物理层。

(2)实际用的情况——只有一个网络(总线型网络为例)
在这里插入图片描述

情况:通过上面最简单的情况实现了两台计算机之间的物理层,如果主机A向主机C发送数据,但是,主机A的数据信号会通过总线传播到总线上的每一个主机。

会产生这样问题:主机C如何知道该数据是发送给自己的,自已是否要接收?以及其他主机如何知道该数据并不是发送给自己的。

解决方法:使用MAC地址。

但又出现许多问题:如何从信号的比特流中区分出地址和数据(引出协议)、如何协调个主机争用总线(引出其他协议)

但实际上一般不使用总线型网络结构,而使用星型网络结构。

上述问题都被划分到数据链路层。
在这里插入图片描述
(3)实际用的情况——有多个网络

现网络是由多个网络组成,若要在不同网络中的主机进行通信,则同样会引出许多问题:如何标识那个网络以及对应网络中的各个主机(网络和主机共同编织的问题,例如IP地址,即IP协议,就很好地解决了上述问题)、数据包在转发的过程中可以走不同的路径(引出路由器如何转发分组,如何进行路由选择)等。

把上述问题划分到网络层
在这里插入图片描述
(3)实际用的情况——有多个网络的前提下,电脑上有多个进程(应用程序)

在有多个网络的前提下,前三层相关的协议保证了主机与主机的通信,但是每台主机上有运行这多个应用程序,则同样会引出不少问题:那么应该如何知道那个应用程序接收数据,那个应用程序不接收数据、如果出现传输错误时,应如何处理。把上述问题划到运输层。
在这里插入图片描述
(4)实际用的情况——有多个网络的前提下并且电脑上有多个应用程序,数据也送给了相应的应用,但应用程序也需要特定协议的解码、响应方式等
在这里插入图片描述

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

在这里插入图片描述

2.6.4 计算机网络体系结构分层的专业术语

在这里插入图片描述

三、物理层

3.1 物理层协议的主要任务

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

3.1.1 机械特性

指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置。

3.1.2 电气特性

指明在接口电缆的各条线上出现的电压的范围。

3.1.3 功能特性

指明某条线上出现的某一电平的电压表示何种意义。

3.1.4 过程特性

指明对于不同功能的各种可能事件的出现顺序。

3.2 传输媒体(严格来说,不属于任何一层)

3.2.1 导引型传输媒体

  • 同轴电缆
    在这里插入图片描述
  • 双绞线
    在这里插入图片描述
  • 光纤
    在这里插入图片描述
  • 电力线
    在这里插入图片描述

3.2.2 非导引传输媒体

在这里插入图片描述

  • 无线电波
    在这里插入图片描述
  • 微波
    在这里插入图片描述
  • 红外
    在这里插入图片描述
  • 可见光
    例如:LIFI,尚处于实验室阶段。

3.3 传输方式

3.3.1 串行传输

在这里插入图片描述

3.3.2 并行传输

在这里插入图片描述

3.3.3 同步传输

在这里插入图片描述

3.3.4 异步传输

在这里插入图片描述

3.3.5 单向通讯(单工)

在这里插入图片描述

3.3.6 双向交替通讯(半双工)

在这里插入图片描述

3.3.7 双向同时通讯(全双工)

在这里插入图片描述

3.4 编码与调制

在这里插入图片描述

3.4.1 常用编码

  • 不归零编码
    缺点:存在同步问题
    在这里插入图片描述
    同步问题:
    在这里插入图片描述

  • 归零编码
    优点:自同步;缺点:编码效率低
    在这里插入图片描述

  • 曼彻斯特编码
    在这里插入图片描述

  • 差分曼彻斯特编码
    比曼彻斯特编码变化少,更适合较高的传输速率。
    在这里插入图片描述

3.4.2 基本调制方法

在这里插入图片描述

3.4.3 混合调制

例如:正交振幅调制(QAM)
在这里插入图片描述
在这里插入图片描述

3.5 信道的极限容量

3.5.1 面临问题

在这里插入图片描述

3.5.2 失真因素

  • 码元传输速率
  • 信号传输距离
  • 噪声干扰
  • 传输媒体质量

3.5.3 奈氏准则

在这里插入图片描述

3.5.4 香农准则

在这里插入图片描述

3.5.5 总结

在这里插入图片描述

四、数据链路层

4.1 数据链路层概述

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

4.2 数据链路层的重要问题

4.2.1 点对点式数据链路层(路由器的转发)

  • 封装成帧(为上层来的数据报添加帧头帧尾)
    在这里插入图片描述
  • 差错检测(节点到节点的传输,需要用检错码和检错算法检查数据是否有误码)
    在这里插入图片描述
  • 可靠传输(尽管接收方本次有误码,上一节点不会不管的,再次发送,直到没有误码)
    在这里插入图片描述

4.2.2 广播式数据链层(共享式局域网)

局域网中,该总线型的广播信道现在已淘汰,更多使用交换式局域网
在这里插入图片描述

4.2.3 交换式局域网

在这里插入图片描述

4.2.4 无线局域网

在这里插入图片描述

4.2.5 总结

在这里插入图片描述

4.3 封装成帧

4.3.1 目标

  • 封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。
  • 帧头和帧尾中包含有重要的控制信息。
  • 帧头和帧尾的作用之一就是帧定界。
    在这里插入图片描述

4.3.2 存在问题(接收方提取帧)

在这里插入图片描述

4.3.3 解决方法

  • 帧头和帧尾的作用之一就是帧定界,占一个字节。
    假设帧定界为01111110
    在这里插入图片描述

4.3.4 其它方法

并不是所有的数据链路层协议都有帧定界,例如以太网V2的MAC帧,其没有帧定界。但是发送方给到物理层后,其物理层会在MAC帧前添加8个字节的前导码。
在这里插入图片描述
此外,以太网V2的MAC帧协议还规定了帧间间隔时间,96比特时间
在这里插入图片描述

4.3.5 透明传输

定义:
透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
产生问题:
若数据部分恰好包含帧界定符,则会使接收端数据出现错误。
在这里插入图片描述
解决方法:
在添加帧头帧尾前,先检查数据部分是否有帧界定符,若有帧界定符,则在其前面插入一个转义字符。
在这里插入图片描述
其他协议的方法总结:

  • 面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输。
    上述方法插入转义字符,就是字节填充法
  • 面向比特的物理链路使用比特填充的方法实现透明传输。
    假设帧定界符为01111110,则在添加帧头帧尾前,在每连续5个1后面添加一个0

4.3.6 帧的数据部分规定

  • 为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些。
  • 考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU(Maximum Transfer Unit)
    在这里插入图片描述

4.4 差错检验

4.4.1 问题

  • 实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1。这称为比特差错。
  • 此外,在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)。
    在这里插入图片描述

4.4.2 解决方法思路

使用差错检测码(FCS字段)来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。
在这里插入图片描述

4.4.3 具体方法之奇偶校验

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

在这里插入图片描述
总结:此方法漏检率较高,一般不采用这种方法。

4.4.3 具体方法之循环冗余校验CRC(Cyclic Redundancy Check)

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

发送方的处理:
在这里插入图片描述

接收方的处理:

在这里插入图片描述
多项式要求及举例:
在这里插入图片描述

举例一:
在这里插入图片描述
(1)构造被除数(在待发送信息后面添加生成多项式最高次数个0)
此处生成多项式中,最高次数为3,则添加3个0,即待发送信息由101001→101001000
(2)构造除数(生成多项式各项系数构成的比特串)
此处生成多项式中,其各项系数构成的比特串为1101
(3)做除法
在这里插入图片描述
(4)检查余数(余数的位数应与生成多项式最高次数相同,如果位数不够,则在余数前补0来凑足位数。)
在这里插入图片描述
(5)合并(将余数加到待发送数据的后面)后发送
在这里插入图片描述
举例二:
在这里插入图片描述
(1)构造被除数(接收到的信息就是被除数)
(2)构造除数(生成多项式各项系数构成的比特串)
(3)做除法
(4)检查余数(余数为0,可认为传输过程无误码;余数不为0,可认为传输过程产生误码)
在这里插入图片描述
总结:

  • 检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。
  • 要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用。
  • 循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层。

4.5 可靠传输

4.5.1 前提

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

4.5.2 问题

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

  • 不可靠传输服务:仅仅丢弃有误码的帧,其他什么也不做;
  • 可靠传输服务:想办法实现发送端发送什么,接收端就收到什么。

注意:

  • 有线链路,一般情况下,其误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。
  • 无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务。

4.5.3 传输差错种类

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

注意:

  • 分组丢失、分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层。所以说可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输。
  • 可靠传输的实现比较复杂,开销也比较大,是否使用可靠传输取决于应用需求。

例:
(1)802.11无线局域网要求数据链路层实现可靠传输;
(2)以太网不要求数据链路层实现可靠传输;
(3)IP向其上层提供无连接、不可靠传输服务
(4)TCP向其上层提供面向连接的可靠传输服务
(5)UDP向其上层提供无连接、不可靠传输服务

4.5.4 可靠传输实现方法——停止-等待协议SW

实现思路:发送方每发送一个数据,都会等待接收方确认收到上述数据的确认帧ACK。若接收方收到的数据有误码,则会发给发送方NAK,从而要求重传该数据,这也意味着发送方发送的数据,发完一个数据后,需要保留到发送方缓存中,而不能马上删除。
在这里插入图片描述
在上述方法的实现过程中会出现下面情况:

问题一:发送方发送的数据,在传输过程中丢失
在这里插入图片描述
问题一现象:
接收方收不到数据分组,就不会发送ACK或NAK。如果不采取其他措施,发送方就会一直处于等待接收方ACK或NAK的状态。

问题一解决方法:

  • 为解决该问题,可以在发送方发送完一个数据分组时,启动一个超时计时器。若到了超时计时器所设置的重传时间而发送方仍收不到接收方的任何ACK或NAK,则重传原来的数据分组,这就叫做超时重传。
  • 一般可将重传时间选为略大于“从发送方到接收方的平均往返时间"

问题二:接收方发给接收方的ACK丢失
在这里插入图片描述

问题二现象:
若接收方发给接收方的ACK丢失,发送方则在一个重传时间后,再次发送上次的数据,从而导致接收方分组重复。

问题二解决方法:
为避免分组重复这种传输错误,必须给每个分组带上序号,对于停止-等待协议,由于每发送一个数据分组就停止等待,只要保证每发送一个新的数据分组,其发送序号与上次发送的数据分组的序号不同就可以了,因此用一个比特来编号就够了

问题三:接收方发送的确认分组ACK超时到达发送方端
在这里插入图片描述

问题三现象:
因为发送方已发送数据DATA0后,在一个重传时间内没收到接收方的确认分组ACK,则发送方会再次发送DATA0。恰好再第二个重传时间内,接收方收到延迟到的ACK,那么发送方会直接再次发送下一个数据DATA1,而此时接受方会收到重传的DATA0数据与DATA1数据,而把重传的DATA0数据认做为重复分组,并再次发送DATA0的确认分组。于是接收方接收到的ACK如何区分是DATA0的确认分组ACK还是DATA1的确认分组ACK。

问题三解决方法:
对接收方接收到数据后发送的确认分组ACK同样进行编号。
在这里插入图片描述

停止-等待协议的信道利用率:
因为T_A远小于T_D,所以可以忽略。而当RTT远大于T_D时,信道利用率会非常低。
在这里插入图片描述

信道利用率例题:

在这里插入图片描述

注意:

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

总结:

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

4.5.5 可靠传输实现方法——回退N帧协议GBN

问题:
上述停止-等待协议中的信道利用率很低若出现超时重传,则信道利用率更低。则有必要提高信道利用率。

解决方法思路:
采用流水线传输可提高信道利用率。

在这里插入图片描述

解决方法:
在流水线传输的基础上,利用发送窗口来限制发送方可连续发送数据分组的个数。接收方的选择窗口只能为1。这里发送方选择窗口大小为5,则发送方一次发送5个数据。接收方每确认收到一个数据后,就把编号的确认帧存下来,等到5个数据都无误码后,将五个确认帧一起发送给发送方。等到接收方接收到五个确认帧后,将本次的数据从缓存中删除,准备发下5个数据。

注意:当发送窗口为1时,就是停止等待协议了。

在这里插入图片描述

优化方法:加入累计确认
接收方不一定要对收到的数据分组逐个发送确认,而是可以在收到几个数据分组后(由具体实现决定),对按序到达的最后一个数据分组发送确认。ACKn表示序号为n及以前的所有数据分组都已正确接收。
注意:不一定是发送端窗口的大小。

加入累计确认的优点:

  • 在数据没有误码的情况下,即使确认分组丢失,发送方也可能不必重传。
  • 减小接收方的开销。
  • 减少对网络资源的占用。

加入累计确认的缺点:
不能向发送方及时反映出接收方已经正确接收的数据分组信息,即ACK。

传输过程中出现误码:

发送方收到重复的确认,就知道之前所发送的数据分组出现了差错,于是可以不等超时计时器超时就立刻重传。
至于收到几个重复确认就立刻重传,由具体实现決定。

缺点:
假设要发送编号为6,7,0,1,5的数据,且5号数据传输过程中误码,尽管序号为6,7,0,1的数据分组正确到达接收方。但由于5号数据分组误码不被接受,它们也“受到牵连”而不被接受,发送方还要重传这些数据分组,这就是所谓的Go-back-N(回退N)。所以,当通信线路质量不好时,回退N顿协议的信道利用率并不比停止-等待协议高。

4.5.6 可靠传输实现方法——选择重传协议SR

问题:
回退N帧协议的接收窗口尺寸W_R只能等于1,因此接收方只能按序接收正确到达的数据分组。而一个数据分组的误码就会导致其后续多个数据分组不能被接收方按序接收而丢弃(尽管它们无乱序和误码)。这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大浪费。

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

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

发送窗口与接收窗口的大小限制:
在这里插入图片描述

4.5.7 注意:

这三种可靠传输实现机制的基本原理并不仅限于数据链路层,可以应用到计算机网络体系结构的各层协议中。

4.6 点对点协议(PPP)

4.6.1 概念

点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议。
在这里插入图片描述

在这里插入图片描述

4.6.2 内容

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

  • 对各种协议数据报的封装方法(封装成帧)
  • 链路控制协议LCP(用于建立、配置以及测试数据链路的连接)
  • 一套网络控制协议NCPs(其中的每一个协议支持不同的网络层协议)

4.6.3 PPP协议的帧格式

在这里插入图片描述

4.6.4 PPP协议的透明传输

如果帧的数据部分出现帧的定界符,如何正确提取数据。
在这里插入图片描述

4.6.5 PPP协议的透明传输之面向字节的异步链路采用插入转义字符的字节填充法

在这里插入图片描述

4.6.6 PPP协议的透明传输之面向比特的同步链路采用插入比特0的比特填充法

在这里插入图片描述

4.6.7 PPP协议的差错检测

FCS检错码使用循环冗余码CRC来计算。
在这里插入图片描述

FCS计算范围:
在这里插入图片描述

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

4.6.7 PPP协议的工作状态

在这里插入图片描述

4.7 媒体接入控制MAC(Media Access Control)

4.7.1 概念

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

4.7.2 分类

在这里插入图片描述

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

4.7.3 媒体接入控制之静态划分信道

信道复用:

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

在这里插入图片描述

分类:

  • 频分复用FDM
    在这里插入图片描述

  • 时分复用TDM
    在这里插入图片描述

  • 波分复用WDM
    在这里插入图片描述

  • 码分复用CDM
    码分复用CDM是另一种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词是码分多址CDMA(Code Division Multiple Access)。
    注意:这部分内容过多,参考其他。

4.7.4 媒体接入控制之媒体接入控制-动态接入控制-随机接入(总线局域网使用协议CSMA/CD)

问题:
在这里插入图片描述

解决方法:
载波监听多址接入/碰撞检测CSMA/CD(Carrier Sense Multiple Access/Collision Detection)
在这里插入图片描述

争用期(碰撞窗口):

  • 主机最多经过2tau(即δ→0)的时长就可检测到本次发送是否遭受了碰撞
  • 因此,以太网的端到端往返传播时延2tau称为争用期或碰撞窗口。
  • 所以经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
  • 每一个主机在自己发送帧之后的一小段时间内,存在着遭遇碰撞的可能性。这一小段时间是不确定的。它取决于另一个发送顿的主机到本主机的距离,但不会超过总线的端到端往返传播时延,即一个争用期时间。
  • 显然,在以太网中发送帧的主机越多,端到端往返传播时延越大,发生碰撞的概率就越大。因此,共享式以太网不能连接太多的主机,使用的总线也不能太长。

在这里插入图片描述

最小帧长:

  • 以太网规定最小帧长为64字节,即512比特(512比特时间即为争用期);
  • 口如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不小于64字节。
  • 以太网的最小帧长确保了主机可在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞;
  • 如果在争用期(共发送64字节)没有检测到碰撞,那么后续发送的数据就一定不会发生碰撞;
  • 如果在争用期内检测到碰撞,就立即中止发送,这时已经发送出去的数据一定小于64字节,因此凡长度小于64字节的帧都是由于碰撞而异常中止的无效帧。
    在这里插入图片描述
    在这里插入图片描述

最大帧长:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

截断二进制指数退避算法:

在这里插入图片描述

信道利用率:

在这里插入图片描述

帧发送流程:

在这里插入图片描述

帧接收流程:

在这里插入图片描述

4.7.5 媒体接入控制之媒体接入控制-动态接入控制-随机接入(无线局域网使用协议CSMA/CA)

内容:载波监听多址接入/碰撞避免CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)

  • 802.11无线局域网使用CSMA/CA协议,在CSMA的基础上增加了一个碰撞避免CA功能,而不再实现碰撞检测功能。
  • 由于不可能避免所有的碰撞,并且无线信道误码率较高,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/CD协议已经成功地应用于使用广播信道的有线局域网,那么同样使用广播信道的无线局域网能不能也使用CSMA/CD协议呢?
  • 在无线局域网中,仍然可以使用载波监听多址接入CSMA,即在发送帧之前先对传输媒体进行载波监听。若发现有其他站在发送帧,就推迟发送以免发生碰撞。
  • 在无线局域网中,不能使用碰撞检测CD,原因如下:
    (1)口由于无线信道的传输条件特殊,其信号强度的动态范围非常大,无线网卡上接收到的信号强度往往会远远小于发送信号的强度(可能相差百万倍)。如果要在无线网卡上实现碰撞检测CD,对硬件的要求非常高。
    (2)即使能够在硬件上实现无线局域网的碰撞检测功能,但由于无线电波传播的特殊性(存在隐蔽站问题),进行碰撞检测的意义也不大。

隐蔽站问题:
在这里插入图片描述

帧间间隔:
在这里插入图片描述

CDMA/CA工作流程:

(1) 只有一个源站时

  • 加入DIFS时间,是因为考虑到可能有其他的站有高优先级的帧要发送。若有,就要让高优先级帧先发送。
  • 加入SIFS时间,是因为SIFS是最短的帧间间隔,用来分隔开属于一次对话的各帧。在这段时间内,一个站点应当能够从发送方式切换到接收方式。

在这里插入图片描述
(2) 有两个或多个源站时
加入退避一段随机时间,是因为为了防止多个站点同时发送数据而产生碰撞。
在这里插入图片描述
注意:

  • 当站点检测到信道是空闲的,并且所发送的数据帧不是成功发送完上一个数据帧之后立即连续发送的数据帧,则不使用退避算法。
  • 以下情况必须使用退避算法:

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

CDMA/CA的退避算法:在这里插入图片描述
在这里插入图片描述

CSMA/CA协议的信道预约和虚拟载波监听
在这里插入图片描述

在这里插入图片描述

4.8 MAC地址、IP地址、ARP协议

4.8.1 MAC地址

说明:
MAC地址是以太网的MAC子层所使用的地址;属于数据链路层。

问题:
广域网上的点对点信道的数据链路层不需要使用地址。但局域网上的数据链路层必须使用地址来区分各主机。
在这里插入图片描述
解决方法:

  • 当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址;
    在这里插入图片描述

  • 在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC(Media Access Control),因此这类地址被称为MAC地址;

  • MAC地址一般被固化在网卡(网络适配器)的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址;
    在这里插入图片描述

  • MAC地址有时也被称为物理地址。请注意:这并不意味着MAC地址属于网络体系结构中的物理层!

  • 一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识。

IEEE 802局域网的MAC地址格式:
扩展的唯一标识符EUI,EUI-48
在这里插入图片描述
在这里插入图片描述

随机MAC地址:
美国国家安全局有一套系统,通过监视电子设备的MAC地址,来跟踪城市中每个人的行动,因此各大厂商的产品对扫描网络时采用随机MAC地址技术,来避免上述问题。

单播MAC地址举例:
在这里插入图片描述

广播MAC地址举例:(注意:广播帧的MAC地址为全1)
在这里插入图片描述

多播MAC地址举例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:给主机配置多播组列表进行私有应用时,不得使用公有的标准多播地址,意味着电脑上存在着许多多播地址,这些多播地址关联这电脑的其他方面的应用,所以自己在配置多播组地址时,不能与那些重复或删除,具体可在以下网址查询(http://standards.ieee.org/devel op/regauth/grpmac/public.html)

4.8.2 IP地址

说明:
IP地址是TCP/IP体系结构网际层所使用的地址;属于网络(网际)层。

功能:

  • IP地址是因特网(Internet)上的主机和路由器所使用的地址,用于标识两部分信息:
    (1)网络编号:标识因特网上数以百万计的网络
    (2)主机编号:标识同一网络上不同主机(或路由器各接口)
  • 很显然,之前介绍的MAC地址不具备区分不同网络的功能。
    (1)如果只是一个单独的网络,不接入因特网,可以只使用MAC地址(这不是一般用户的应用方式)。
    (2)如果主机所在的网络要接入因特网,则IP地址和MAC地址都需要使用。

数据包转发过程中IP地址与MAC地址的变化情况:

  • 数据包转发过程中源IP地址和目的IP地址保持不变;
  • 数据包转发过程中源MAC地址和目的MAC地址逐个链路(或逐个网络)改变,即两两设备之间变化。
    在这里插入图片描述
    产生新的问题:
    在数据包转发过程中,对于IP来说,因为目标和源IP始终不变;而对于MAC地址来说,MAC地址是一直变化的,源MAC地址,即本身的,已知道,但下一个设备的目标MAC地址如何知道?
    在这里插入图片描述
    解决方法:
    ARP协议(地址解析协议)

4.8.3 ARP协议

说明:
ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址;属于网络(网际)层。

目标:
利用IP地址得到MAC地址。

说明:

  • 每台主机上都有ARP高速缓存
    在这里插入图片描述
  • ARP数据类型的生命周期
    在这里插入图片描述

具体流程:
(1)局域网中(以总线型为例)
在这里插入图片描述
源主机在自己的ARP高速缓存表中查找目的主机的IP地址所对应的MAC地址,若找到了,则可以封装MAC帧进行发送;若找不到,则发送ARP请求(封装在广播MAC帧中)
在这里插入图片描述
目的主机收到ARP请求后,将源主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后给源主机发送ARP响应(封装在单播MAC帧中),ARP响应中包含有目的主机的IP地址和MAC地址;
在这里插入图片描述
源主机收到ARP响应后,将目的主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后就可以封装之前想发送的MAC帧并发送给目的主机;

注意:

  • ARP只能在一段链路(逐段链路使用)或一个网络上使用,而不能跨网络使用。
  • 除ARP请求和响应外,ARP还有其他类型的报文(例如用于检查IP地址冲突的“无故ARP、免费ARP(Gratuitous ARP)");
  • ARP没有安全验证机制,存在ARP欺骗(攻击)问题。

在这里插入图片描述

4.9 集线器与交换机的区别

4.9.1 早期的总线型以太网

机械连接点并不可靠。
在这里插入图片描述

4.9.2 使用双绞线和集线器HUB的星型以太网

比机械连接点与细同轴电缆更可靠。

  • 使用集线器的以太网在逻辑上仍是一个总线网,各站共享总线资源,使用的还是CSMA/CD协议
  • 集线器只工作在物理层,它的每个接口仅简单地转发比特,不进行碰撞检测(由各站的网卡检测)
  • 集线器一般都有少量的容错能力和网络管理功能。例如,若网络中某个网卡出了故障,不停地发送帧。此时,集线器可以检测到这个问题,在内部断开与出故障网卡的连线,使整个以太网仍然能正常工作。

在这里插入图片描述

4.9.3 使用集线器HUB在物理层扩展以太网

由三个独立的的HUB组成的三个网络,每个HUB集线器组成的网络构成了一个冲突域
在这里插入图片描述
若三个网络之间想相互通信,则可用一个主干HUB集线器如下连接,但会扩大整个网络的冲突域。换句话说,这样形成了一个更大的总线型以太网(逻辑上的总线型)。
在这里插入图片描述

4.9.4 以太网交换机

在这里插入图片描述

4.9.5 以太网交换机与集线器区别

(1)单个网络内一对一发送单播

  • 若由集线器HUB组成的局域网中,主机A向主机C通信,则主机A向集线器HUB发送单播帧,该单播帧会通过共享总线传输到总线上的其他各个主机。
    在这里插入图片描述

  • 但若由交换机组成的局域网中,主机A向主机C通信,则主机A向交换机发送单播帧,该单播帧会通过共享总线传输到给主机C,而没有传输给其他各个主机。
    在这里插入图片描述

(2)单个网络内多对一发送单播

  • 在集线器中同时两个主机和一个主机发送数据,会发送碰撞,从而碰撞会返回到各个主机。

在这里插入图片描述
在这里插入图片描述

  • 在交换机中同时两个主机和一个主机发送数据,两份数据会先缓存到交换机中,然后逐个发送给目标主机。
    在这里插入图片描述
    加粗样式

(3)扩展以太网

  • 集线器扩展网络时,扩大了广播域,并且扩大了冲突域;交换机扩展网络时,扩大了广播域,但隔离了冲突域。

在这里插入图片描述
注意:
1.上述问题忽略ARP过程;
2.上述问题假设交换机的帧交换表已“学习好了”。

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

  • 以太网交换机工作在数据链路层(也包括物理层)
  • 以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
  • 以太网交换机是一种即插即用设备,刚上电启动时其内部的顿交换表是空的。随着网络中各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表。
    在这里插入图片描述
    以太网交换机记录存在有效时间的原因:
  • 这是因为MAC地址与交换机接口的对应关系并不是永久性的。若任一主机发生变化或网卡坏掉,都会导致MAC地址的变化。这也解释了主机内存储的ARP缓存表也有有效期的原因,因为ARP缓存表中存的时IP地址与MAC地址的对应关系,如果MAC地址发生变化,则ARP缓存表中数据对应不上。

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

问题:如何提高以太网的可靠性?
当下面网络中A与B之间的链路发生故障,主机H1与主机H3或H2就无法通信。
在这里插入图片描述

解决方法:添加冗余链路可以提高以太网的可靠性
在这里插入图片描述
方法弊端:冗余链路也会带来负面效应,形成网络环路(当一个主机发送广播帧时,会发送广播风暴

广播风暴:

  • 大量消耗网络资源,使得网络无法正常转发其他数据帧;
  • 主机收到重复的广播帧
  • 大量消耗主机资源
  • 交换机的帧交换表震荡(漂移)

再次解决方法:
以太网交换机使用生成树协议STP(Spanning Tree Protocol),可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题。

  • 不论交换机之间采用怎样的物理连接,交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树型的(无逻辑环路);
  • 最终生成的树型逻辑拓扑要确保连通整个网络;
  • 当首次连接交换机或网络物理拓扑发生变化时(有可能是人为改变或故障),交换机都将进行生成树的重新计算。

4.11 虚拟局域网VLAN概述

4.11.1 问题

  • 以太网交换机工作在数据链路层(也包括物理层),而使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于同一个广播域。
  • 随着交换式以太网规模的扩大,广播域相应扩大。但是巨大的广播域会带来很多弊端。
    (1)广播风暴(广播风暴会浪费网络资源和各主机的CPU资源)
    (2)难以管理和维护
    (3)潜在的安全问题
    在这里插入图片描述
  • 网络中会频繁出现广播信息
    在这里插入图片描述

4.11.2 解决方法

分割广播域

(1)使用路由器可以隔离广播域
缺点:路由器成本高。
在这里插入图片描述
(2)虚拟局域网VLAN技术
虚拟局域网VLAN(Virtual Local Area Network)是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求。

使用虚拟局域网VLAN技术前:下面设备都是交换机,这样会组成一个广播域。
在这里插入图片描述

使用虚拟局域网VLAN技术后:同一VLAN内可以收到广播帧,不同VLAN之间不能收到广播帧。从而达到分割广播域。
在这里插入图片描述

4.11.3 虚拟局域网VLAN的实现机制

(1)IEEE802.1Q帧
在这里插入图片描述
(2)交换机的端口类型
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、网络层

5.1 网络层概述

5.1.1 主要任务

网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输。

5.1.2 存在问题

要实现网络层任务,需要解决以下主要问题:

  • 网络层向运输层提供怎样的服务(“可靠传输”还是“不可靠传输”)
  • 网络层寻址问题
  • 路由选择问题

5.1.3 TCP/IP协议栈

  • 因特网(Internet)是目前全世界用户数量最多的互联网,它使用TCP/IP协议栈。
  • 由于TCP/IP协议栈的网络层使用网际协议IP,它是整个协议栈的核心协议,因此在TCP/IP协议栈中网络层常称为网际层。
    在这里插入图片描述

5.2 网络层提供的两种服务

5.2.1 面向连接的虚电路服务(因特网不采用此)

  • 可靠通信由网络来保证必须建立网络层的连接
  • 虚电路VC(Virtual Circuit)通信双方沿着已建立的虚电路发送分组
  • 目的主机的地址仅在连接建立阶段使用,之后每个分组的首部只需携带一条虚电路的编号(构成虚电路的每一段链路都有一个虚电路编号)
  • 这种通信方式如果再使用可靠传输的网络协议,就可使所发送的分组最终正确到达接收方(无差错按序到达、不丢失、不重复)。
  • 通信结束后,需要释放之前所建立的虚电路。
  • 很多广域分组交换网都使用面向连接的虚电路服务。
    例如,曾经的X.25和逐渐过时的帧中继FR、异步传输模式ATM等。
    在这里插入图片描述

5.2.2 无连接的数据报服务(因特网采用此)

  • 可靠通信应当由用户主机来保证
  • 不需要建立网络层连接
  • 每个分组可走不同的路径
  • 每个分组的首部必须携带目的主机的完整地址
  • 这种通信方式所传送的分组可能误码、丢失、重复和失序。
  • 由于网络本身不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)
  • 因特网采用了这种设计思想,也就是将复杂的网络处理功能置于因特网的边缘(用户主机和其内部的运输层),而将相对简单的尽最大努力的分组交付功能置于因特网核心。
    在这里插入图片描述

5.2.3 两种服务对比

在这里插入图片描述

5.3 IPv4地址

5.3.1 背景

在这里插入图片描述

5.3.2 IPv4地址表示方法

在这里插入图片描述

5.3.3 分类编址的IPv4地址

在这里插入图片描述

  • A类地址
    在这里插入图片描述
  • B类地址
    在这里插入图片描述
  • C类地址
    在这里插入图片描述
  • D类地址

地址区分类别步骤:

在这里插入图片描述

特殊IP地址:

在这里插入图片描述

例题:

在这里插入图片描述

5.3.4 划分子网的IPv4地址

现象:一个公司最初规模较小,但大于254个,所以只能申请个B或A类网络号,考虑成本,就申请了B类网络号,然后就组成了一个网络。但随着公司发展,人数增多,并且增加了网络数,意味着又要申请网络号,这必然导致成本上升。
在这里插入图片描述

存在问题:为新增网络申请新的网络号会带来以下弊端

  • 需要等待时间和花费更多的费用
  • 会增加其他路由器中路由表记录的数量
  • 浪费原有网络中剩余的大量IP地址

解决方法:借用主机号中的一些位数,作为子网号来区分不同的子网。

在这里插入图片描述

引出新的问题:
如果未在图中标记子网号部分,那么我们和计算机又如何知道分类地址中主机号有多少比特被用作子网号。

解决方法:引入子网掩码
在这里插入图片描述

例题:
在这里插入图片描述

默认的子网掩码:
在这里插入图片描述

5.3.4 无分类编址的IPv4地址

面临问题:
在这里插入图片描述

CIDR表记法:
在这里插入图片描述

例如:
在这里插入图片描述

路由聚合(构造超网):
面临问题:若R1向R2发送自己的路由信息,R2的路由转发表将会增加5条记录,这会使得这些数据对R2路由表的占用,但是否能减少这些占用?
在这里插入图片描述
在这里插入图片描述
解决方法:在R2路由表中找共同前缀,形成聚合地址块。
在这里插入图片描述
总结:
在这里插入图片描述

5.3.5 IPv4地址的应用规划

在这里插入图片描述
(1)定长的子网掩码FLAM(使用传统的分类编址的子网掩码)
例题:
在这里插入图片描述
分析:
在这里插入图片描述
子网划分:
在这里插入图片描述
在这里插入图片描述
缺点:像网络5,只需要4个IP地址,但是只能分配32个IP地址,这样会造成IP地址的浪费。

(2)变长的子网掩码VLSM(使用CIDR无分类编址)

  • 分析同上,只不过现在依次分析各个网络需要主机号的最低位数。

在这里插入图片描述

  • 对申请到的网络地址218.75.230.0/24的主机号进行展开,把上述5个网络所需IP地址数量从大到小,依次分配到地址218.75.230.0——218.75.230.255中(N2网络所需IP最多,N5网络所需IP最少,所以先分配N2网络,最后分配N5网络)。

在这里插入图片描述

分配结果:
在这里插入图片描述

5.4 IP数据报的发送和转发过程

5.4.1 主要内容

在这里插入图片描述

5.4.2 举例说明

(1)定义了两个网络,并且分配了相应的IP地址及子网掩码(注意:同一网络中两台主机之间通信属于直接交付,不同网络中两台主机之间通信属于间接交付)
在这里插入图片描述

(2)若主机C向主机F通信,那么源主机C如何知道目的主机F是否与自己在同一个网络中?首先,主机C用自己IP地址与子网掩码相与,可得到该网络地址,因为向主机F通信,必然是已知了主机F的IP地址。然后,主机C用自己的子网掩码与目的主机F的IP地址相与,然后和自己的网络地址相比较是否相等。若相等,则同一网络,若不等,则不同网络。显然,本例中两者不同。所以主机C需要将IP数据报交付给路由器,由路由器将数据IP数据包转发给主机F,但是问题来了,主机C如何知道应该把IP数据报交给那个路由器进行转发(实际上,为了能让不同网络的用户进行通信,就必须给其指定本网络中的一个路由器,从而由该路由器转发,所指定的路由器接口,即默认网关),所以就通过默认网关将IP数据报进行转发。
在这里插入图片描述

(3)路由器收到IP数据报后如何转发?路由器首先检查IP数据报首部是否出错:若出错,则直接丢弃该IP数据报并通告源主机;若没有出错,则进行转发。然后,根据IP数据报的目的地址在路由表中查找匹配的条目;若找到匹配的条目,则转发给条目中指示的下一跳;若找不到,则丢弃该IP数据报并通告源主机。通过以上检查没问题后,路由器取出IP数据报首部各地址字段的值,从而把源地址与目的地址提取出来,然后查路由表。(注意:路由器能隔离广播域,所以不会转发主机C发到主机F所属的网络的广播IP数据报)

总结:
在这里插入图片描述

5.5 静态路由配置及其可能产生的路由环路问题

5.5.1 静态路由配置

定义:
静态路由配置是指用户或网络管理员使用路由器的相关命令给路由器人工配置路由表。

缺点:

  • 这种人工配置方式简单、开销小。但不能及时适应网络状态(流量、拓扑等)的变化。
  • 一般只在小规模网络中采用。
  • 使用静态路由配置可能出现以下导致产生路由环路的错误
    (1)配置错误
    (2)聚合了不存在的网络
    (3)网络故障

需补基础知识:

  • 手动配置过程

情况一:
若路由器R1向网络192.168.2.0/24发送数据报,路由器应如何转发?因为R1的端口1连接着10.0.0.0/30网络,而路由器R2的端口0也链接着10.0.0.0/30网络,则下一跳转发给路由器R2的端口0。但是R1的路由表上并没有记录,所以可以使用手动配置,自己添加一条“目的网络:192.168.0/24,下一跳:10.0.0.2”
在这里插入图片描述
手动添加路由表条目后:
在这里插入图片描述
情况二:
同上,若路由器R2向网络192.168.1.0/24发送数据报,但是R2的路由表中没有下一跳相关信息。于是需要自己手动配置R2路由器表条目“目的网络:192.168.1.0/24,下一跳:10.0.0.1”
在这里插入图片描述
手动添加路由表条目后:
在这里插入图片描述

  • 默认路由
    情况描述:若路由器R1向包含众多网络的因特网中的某个主机(已知目的IP,但不知道所属网络地址)发送数据报,有图上可看出,路由器R1下一跳应转发给路由器R2端口的地址10.0.0.2,但是路由器R1的路由表上没有该条目,所以得手动添加,但是问题来了,因特网上有很多的网络地址,那么就得都添加到路由器R1中了,显然这样存在问题,所以就出现了默认路由(用0.0.0.0代替目标地址),需要人工手动配置。这样通过默认路由就可以在不知道因特网目的网络地址的情况下,访问因特网的主机。同时也可以删除R1路由表中条目“目的网络:192.168.1.0/24,下一跳:10.0.0.2”
    在这里插入图片描述
    在这里插入图片描述
  • 特定主机路由
    问题:首先要知道的是,路由器中的路由表条目中的目的网络一般指网络地址,不是目标IP(也可以这样理解,路由器的转发属于网络层,所以只需要网络地址,而不需要具体的目标IP地址,只要知道目的网络地址,那么目标IP肯定是在目的网络地址下的局域网中,那么就由数据链路层的MAC地址,就可以找到目标主机) 。
    若路由器中的路由表条目中的目的网络是一个准确的目的IP,则就是特定主机路由。 一般用来网络调试
    在这里插入图片描述
    举例解释导致路由环路的三种原因:
    (1)配置错误
    情况如下:各个路由器的路由表中有部分是自动的出的直连网络,有部分是手动配置的静态路由。若路由器R2向192.168.1.0/24网络发送数据报,由图上可看出,R2的下一跳应该是R1的端口1,然后R2路由表上也有这条数据(“目的网络:192.168.1.0/24 下一跳:10.0.0.1”),则能正常发送。但若手动配置时,不小心配置错了,配置成了(“目的网络:192.168.1.0/24 下一跳:10.0.0.2”),即错误地指向了R3的端口0。那么R2将数据报发送给R3,但R3又发送给R2,从而导致路由环路形成。
    在这里插入图片描述
    解决方法:
  • 为了防止IP数据报在路由环路中永久兜圈,在IP数据报首部设有生存时间TTL字段。
  • IP数据报进入路由器后,TTL字段的值减1。若TTL的值不等于0,则被路由器转发,否则被丢弃。

(2)聚合了不存在的网络
问题:若R2要转发给网络192.168.2.0/24,而且R2路由表上也有正确的下一跳记录,所以能正确转发。注意:R2中的聚合路由实际上包含了四个网络。但若我通过R2转发一个不存在的网络地址,即192.168.3.0/24或192.168.0.0/24,那么R2因为有聚合网络的存在,所以能将数据发送给R1的端口1,但是R1的路由表中存在着一个默认路由,加上R1的路由表中没有192.168.3.0/24或192.168.0.0/24目的网络地址的信息,那么就根据默认路由,通过端口1发送给R2的端口0,这样就形成另一个闭环。
在这里插入图片描述
在这里插入图片描述
解决方法:
在R2的路由表中,对聚合网络中不存在的网络地址设置为黑洞路由。其下一跳为null0,IP数据包进入后就有去无回了,而不会转发该数据报。
在这里插入图片描述

(3)网络故障
情况:若R1的端口0连接网络192.168.1.0/24的线路故障而不可达,那么R1的路由表中将会自动删除条目“目的网络:192.168.1.0/24 下一跳:接口0”数据。此时若R2要转发数据报给网络192.168.1.0/24,R2的路由表中有相关记录,能顺利转发给R1,而R1中的路由表却没有目的网络192.168.1.0/24的记录,那么就走默认路由,又将数据转发给了R2,从而形成了一个闭环。
在这里插入图片描述
在这里插入图片描述
解决方法:
若R1的端口0连接网络192.168.1.0/24的线路故障而不可达,那么R1的路由表中将由自动删除条目改为设置成黑洞路由。这样的话,R1就不会将数据报再发送给R2了。
在这里插入图片描述

5.6 路由先择协议概述

5.6.1 内容

  • 静态路由选择
  • 动态路由选择

在这里插入图片描述

5.6.2 因特网所采用的路由选择协议的主要特点

  • 自适应:动态路由选择,能较好地适应网络状态的变化
  • 分布式:路由器之间交换路由信息
  • 分层次:将整个因特网划分为许多较小的自治系统AS(Autonomous System)

因特网采用分层次的路由选择协议:
可将网络分成各个自治系统AS,自制系统内的路由选择协议为域内路由选择(使用内部网关协议IGP,这不是指具体的协议,只是划分部分),而自治系统间的路由选择协议为域间路由选择(使用外部网关协议EGP)。注意:网关之前没有路由器,可以看成网关=路由器,所以上述称呼中外部网关协议EGP,现在可称为外部路由协议ERP
在这里插入图片描述

5.6.3 各个部分使用的具体协议

内部网关协议IGP中使用RIP或OSPF协议,外部网关协议EGP中使用BGP协议,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.6.4 路由器的基本结构

路由器是一种具有多个输入端口和输出端口的专用计算机,其任务是转发分组。整个路由器结构可划分为两大部分:一个是路由选择部分,另一个是分组转发部分。
在这里插入图片描述
在这里插入图片描述

5.7 路由信息协议RIP的基本工作原理

5.7.1 RIP介绍

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.7.2 RIP的基本工作过程

(1)
在这里插入图片描述
(2)
在这里插入图片描述
(3)
在这里插入图片描述

5.7.3 RIP的路由条目的更新规则

(1)初始条件
在这里插入图片描述
(2)假设路由器C的RIP更新报文发送周期到了,则路由器C将自己路由表中的相关路由信息,封装到RIP更新报文中发送给路由器D,换句话说,路由器C将自己的路由表发送给了路由器D。
在这里插入图片描述
(3)路由器D收到RIP更新报文后,对路由器C的路由表进行改造,先把路由器C的路由表的目的网络的下一跳改为路由器C,而且距离都增加1。其原理为,路由器C作为路由器D的邻居路由器,路由器C能到的,则路由器D也能到,即可以通路由器C进行转发。所以距离加1,而且下一跳为路由器C
在这里插入图片描述
(4)路由器D根据改造好的C的路由表,来更新自己的路由表。
规则一:
在这里插入图片描述
规则二:
在这里插入图片描述
规则三:
在这里插入图片描述
规则四:
在这里插入图片描述
规则五:
在这里插入图片描述

5.7.4 RIP存在“坏消息传播得慢”的问题

(1)N1网络突然出现故障,则R1的路由表更新为N1 16 直连,也就是不可达,等待RIP更新周期到后,发送该信息给R2路由器。
在这里插入图片描述
(2)而R2的路由表信息是之前R1没故障的时通过RIP协议候获得的。
在这里插入图片描述
(3)若R2的RIP周期先到时间,那么R2将这个之前的信息(现在已错误),再发送给R1
在这里插入图片描述
(4)而R1先收到R2的信息后,会把自己正确的信息(距离加1,下一跳可达),修改成R2错误的信息,然后等待自己RIP协议周期到后,再发送给R2
在这里插入图片描述
(5)依次反复进行,从而形成了环,直到R1的距离先达到16,即不可达,再发送给R2时,R2才更新为R1不可达。
在这里插入图片描述
注意:

  • 路由环路问题通常长达数分钟。
  • “坏消息传播得慢”又称为路由环路或距离无穷计数问题,这是距离向量算法的一个固有问题。

解决方法:
可以采取多种措施减少出现该问题的概率或减小该问题带来的危害,但无法消除。

  • 限制最大路径距离为15(16表示不可达)
  • 当路由表发生变化时就立即发送更新报文(即“触发更新”),而不仅是周期性发送
  • 让路由器记录收到某特定路由信息的接口,而不让同一路由信息再通过此接口向反方向传送(即“水平分割”)

5.8 开放最短路径优先OSPF的基本工作原理

5.8.1 内容

在这里插入图片描述

代价计算举例:
在这里插入图片描述

5.8.2 OSPF的基本工作原理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5.9 边界网关协议BGP的基本工作原理

5.9.1 存在问题一

没有统一的的度量,无法找到最佳路由的路径
在这里插入图片描述

5.9.1 存在问题二

存在约束条件,即国内之间的自治系统不想经过国外的自治系统或某一自治系统不能通过以及需要付费。
在这里插入图片描述

5.9.3 要求

(1)
在这里插入图片描述
(2)
在这里插入图片描述

BGP适用于多级结构的因特网:
在这里插入图片描述

BGP-4有四种报文:

三种网络层协议的所封装到的地方:
在这里插入图片描述

5.10 IPv4数据报的首部格式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5.11 网际控制报文协议ICMP

在这里插入图片描述
(1)差错报告报文

  • 终点不可达
    在这里插入图片描述

  • 源点抑制
    在这里插入图片描述

  • 时间超时
    在这里插入图片描述
    在这里插入图片描述

  • 参数问题
    在这里插入图片描述

  • 改变路由(重定向)
    在这里插入图片描述

注意:
在这里插入图片描述

(2)询问报文
在这里插入图片描述
应用举例:
在这里插入图片描述
在这里插入图片描述
注意:跟踪路由的实现原理是,利用差错报告报文中的时间超时,主机通过设置不同的TTL值,可得到距离主机TTL个的路由器信息。

5.12 虚拟专用网VPN与网络地址转换NAT

(1)虚拟专用网VPN
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
(2)网络地址转换NAT
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
注意:
在这里插入图片描述
在这里插入图片描述

六、传(运)输层

6.1 传输层概述

在这里插入图片描述
在这里插入图片描述

6.2 传输层端口号、复用与分用的概念

  • 端口号相关概念

在这里插入图片描述

  • 发送放的复用和接收方的分用

在这里插入图片描述

  • TCP/IP体系的应用层常用协议所使用的运输层熟知端口号

在这里插入图片描述

6.3 UDP和TCP的对比

  • UDP和TCP是TCP/IP体系结构运输层中的两个重要协议

在这里插入图片描述
对比一:
在这里插入图片描述
对比二:
在这里插入图片描述
对比三:

在这里插入图片描述
对比四:
在这里插入图片描述
对比五:
在这里插入图片描述
注意:就是因为TCP首部部分相对UDP长,所以能实现的功能多,像流量控制,拥塞控制。

6.3 TCP的流量控制

在这里插入图片描述

6.4 TCP的拥塞控制

  • 拥塞:
    在这里插入图片描述
  • TCP拥塞控制的四种算法
    假设条件:
    在这里插入图片描述
    在这里插入图片描述
    (1)慢开始(slow-start)
    在这里插入图片描述

(2)拥塞避免(congestion avoidance)
在这里插入图片描述

在这里插入图片描述

(3)快重传(fast retransmit)

问题:
在这里插入图片描述
快重传具体实现:
在这里插入图片描述

(4)快恢复(fast recoery)
在这里插入图片描述

四种算法总结:
在这里插入图片描述

6.5 TCP超时重传时间的选择

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

6.6 TCP可靠传输的实现

窗口变化情况:
在这里插入图片描述
程序实现思路:
在这里插入图片描述
总结:
在这里插入图片描述

6.7 TCP的运输连接管理

在这里插入图片描述

6.7.1 TCP的连接建立

需解决的任务:
在这里插入图片描述
具体过程:
在这里插入图片描述

建立连接的三次握手不能简化为两次握手原因:
主要为了防止已失效的连接请求报文段突然又传送到了TCP服务器,因而导致错误。(具体解释:可能客户不小心发了多个TCP连接请求,只有一个先到达了TCP服务器端,其他的请求还再线路中,这时,这个请求被TCP服务器收到后,TCP服务器就会给TCP客户端发送TCP连接请求的确认。若是两次握手的话,上述就已经建立状态了,所以就开始数据的传输了,等到传输完数据,最后释放连接,则一次TCP通信结束。但是现在线路上还留有TCP客户端的请求,而TCP客户只想进行一次TCP通信,也已经完成了,其它的请求只不过是误发的,但此时也到了TCP服务器端,那么TCP服务器端就会给TCP客户端发送确认,此时服务器端就开始监听TCP客户端,但是TCP客户端早已关闭,这样只能使得TCP服务端浪费资源。)
在这里插入图片描述
注意:
在这里插入图片描述

6.7.2 TCP的释放TCP连接

具体过程:
在这里插入图片描述

四次握手后TCP客户端还要时间等待的必要原因:
若第四次握手,即TCP客户端向TCP服务器端发送确认,再线路中该数据报文丢失,这会使得TCP服务器经超时重传时间后再次发送给TCP客户端数据报(第三次握手时的数据 ),但是TCP客户端已经关闭了,自然不会理会TCP服务器端发送的这个数据报,那么TCP服务器端将一直等待关闭,而导致资源的浪费。
在这里插入图片描述

保活计时器:
若TCP客户端与TCP服务器端已建立好连接,再发送数据期间TCP客户端突然出现故障,若不采取措施,则TCP服务器将一直处于等待数据状态。
在这里插入图片描述

6.7.3 TCP报文段的首部格式

在这里插入图片描述
具体各个部分描述:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
数据偏移举例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、应用层

7.1 应用层概述

在这里插入图片描述

  • 分类
    在这里插入图片描述

7.2 客户/服务器方式(C/S方式)和对等方式(P2P方式)

在这里插入图片描述

  • 客户/服务器方式(C/S方式)

  • 在这里插入图片描述
    在这里插入图片描述

  • 对等方式(P2P方式)
    在这里插入图片描述
    在这里插入图片描述

7.3 动态主机配置协议DHCP

问题:
若使得下面红圈的网络中的主机能正常上网,则需要配置每台主机的IP、子网掩码、DNS、默认网关,假如这个网络中有很多的主机,那手工配置这些信息会很麻烦。(可以想一想校园网中认证工作(有线网络更加合适)首先得访问一个网址,将自己的信息输入,信息匹配成功后才能上网)
在这里插入图片描述
解决方法:增加一台DHCP服务器
在这里插入图片描述
DHCP的工作过程:
(1)主机以广播方式发送DHCP DISCOVER数据报
在这里插入图片描述
(2)DHCP 服务器对DHCP客户机做出响应,再次之前DHCP服务器会先用ARP确保所选IP地址未被网络中其他主机占用
在这里插入图片描述
(3)DHCP客户机以广播方式告知已经有DHCP服务器给自己服务
在这里插入图片描述
(4)DHC服务器对客户机做出确认
在这里插入图片描述
(5)再经过0.5倍的租用期后,再次向原先的DHCP服务器请求申请更新延长租用期
在这里插入图片描述
(6)DHCP服务器能收到该请求,并且同意该申请;DHCP服务器能收到该请求,但不同意该申请,则主机立即被停用;DHCP服务器不能收到该请求, 再等到0.875倍租用期时,再次发送请求。若租用期时间到,则主机同样立即被停用
在这里插入图片描述
(7)DHCP可随时发送DHCP RELEASE数据报,使得客户机立即停用
在这里插入图片描述

  • DHCP中继代理
    现象:若另外一个网络中的主机也想使用该网络中的DHCP服务器,来动态分配IP等信息,是否能成功?显然不能,因为另一个网络中的主机会以广播方式发送DHCP RECOVER数据报,而路由器会对广播报不予处理。
    在这里插入图片描述
    方法:给该路由器配置DHCP服务器的IP地址,并使之成为DHCP中继代理。
    在这里插入图片描述

7.4 域名系统DNS

作用:将域名解析成IP地址
在这里插入图片描述
问题:因特网是否可以只使用一台DNS服务器?
在这里插入图片描述
域名:
在这里插入图片描述
在这里插入图片描述

因特网的域名空间:
在这里插入图片描述
在这里插入图片描述
域名解析的过程:
(1)递归查询
在这里插入图片描述
(2)迭代查询
在这里插入图片描述

改进:
在这里插入图片描述
在这里插入图片描述

7.5 文件传输协议FTP

7.5.1 内容

在这里插入图片描述

7.5.2 FTP的应用

FTP采用的是客户/服务器方式,因特网上的FTP客户计算机可将各种类型的文件上传到FTP服务器计算机。FPT客户计算机也可以从FTP服务计算机下载文件。

(1)FTP客户机与FTP服务器在同一局域网中,在FTP服务器计算机上创建FTP服务器,这可以使用第三方的FTP软件或Window自带的FTP软件。

在这里插入图片描述
(2)FTP服务器计算机创建好FTP服务后,FTP客户端就可以使用浏览器软件或文件资源管理器的地址栏数据ftp://ip地址、或者使用CMD命令ftp ip,就可以进行访问FTP服务器了。若使用CMD命令,就需要使用特定的命令来实现上传或下载(put、get命令),但若使用图形化界面拖拉拽方式下载或上传文件,则需使用专门的FTP客户端软件,从而实现FTP的登陆、上传、下载。
在这里插入图片描述
在这里插入图片描述

总结:
在这里插入图片描述

7.5.3 FTP的基本工作原理

(1)若FTP客户端访问FTP服务器,首先FTP随机选择个临时端口号作为源端口,而把FTP服务器端使用的21端口号作为目的端口。然后FTP客户端向FTP服务器发起TCP连接 ,形成的这个连接用于传送FTP相关控制命令,也就是客户端与服务器端的命令通道。
在这里插入图片描述
(2)主动模式:有数据要传输时,FTP客户通过命令通道告知FTP服务器来与自己的另一个临时端口号建立TCP连接,建立数据通道。FTP客户端再选择个临时端口号与FTP的端口号20建立数据通道。这种方式称为主动模式(建立数据通道时,FTP服务器主动连接FTP客户)
在这里插入图片描述

被动模式:有数据要传输时,FTP客户通过命令通道告知FTP服务器开启某个临时端口被动等待TCP连接,建立数据通道。

在这里插入图片描述
注意:

  • 控制连接在整个会话期间一直保持打开,用于传送FTP相关控制命令。
  • 数据连接用于文件传输,在每次文件传输时才建立,传输结束就关闭。

7.6 电子邮件

7.6.1 内容及原理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.6.2 简单邮件传送协议SMTP(Simple Mail Transfer Protocol)的基本工作原理

在这里插入图片描述
注意:

  • 为了简单起见,此处省略了认证过程;
  • 应答代码后面一般都跟有简单的描述信息;
  • 不同的SMTP服务器给出的相同应答代码的描述信息可能不同

缺点及优化:
在这里插入图片描述
在这里插入图片描述

7.6.3 常用的邮件读取协议、

在这里插入图片描述

7.6.4 基于万维网的电子邮件

在这里插入图片描述

7.7 万维网WWW

7.7.1 万维网定义

在这里插入图片描述

7.7.2 浏览器


在这里插入图片描述

7.7.3 万维网的应用

  • 统一资源定位符URL

在这里插入图片描述

  • 万维网的文档
    在这里插入图片描述
    在这里插入图片描述

7.7.4 超文本传输协议HTTP(HyperText Transfer Protocol)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.7.5 超文本传输协议HTTP报文格式

  • 请求报文格式

在这里插入图片描述
请求行中的方法:
在这里插入图片描述

  • 响应报文格式
    在这里插入图片描述
    在这里插入图片描述

7.7.6 Cookie原理及应用

定义:
在这里插入图片描述
工作原理:
(1)用户主机向万维网服务器发送HTTP请求
在这里插入图片描述
(2)服务器进程就会为其产生一个唯一的Cookie识别码,并以此为索引在服务器的后端数据库中创建一个项目,用来记录该用户访间该网站的各种信息。
在这里插入图片描述
(3)接着就会给用户浏览器进程发回HTTP响应报文。其响应报文中有个字段Set-Cookie,其值为Cookie识别码,
在这里插入图片描述
(4)当用户浏览器收到响应报文后,就在一个特定的Cookie文件中添加一行,记录该服务器的域名和Cookie识别码。
在这里插入图片描述
(5)当用户浏览器再次访问这个网站时,每发送一个HTTP请求报文,浏览器都会从Cookie文件中取出该网站的Cookie识别码。
在这里插入图片描述
(6)将取出的Cookie识别码放到HTTP请求报文的Cookie首部行中。
在这里插入图片描述
(7)服务器根据Cookie识别码就可以识别出该用户。
在这里插入图片描述
(8)返回该用户的个性化网页。
在这里插入图片描述

7.7.7 万维网缓存与代理服务器

在这里插入图片描述
缓存在主机访问服务器过程中的流程:
(1)当校园网中的某台主机要访问因特网上的原始服务器时,主机首先会向校园网中的代理服务器发送请求
在这里插入图片描述
(2)若代理服务器中存放有所请求的对象,则代理服务器会向该主机发回包含所请求对象的响应。
在这里插入图片描述
(3)若代理服务器中没有存放所请求的对象,则代理服务器会向因特网上的原始服务器发送请求,
在这里插入图片描述
(4)原始服务器将包含有所请求对象的响应发回给代理服务器。
在这里插入图片描述
(5)代理服务器将该响应存入Web缓存,然后给主机发回该响应。
在这里插入图片描述
总结:
若Web缓存的命中率比较高,则大大减少了该链路上的通信量,因而减少了访问因特网的时延。

代理服务器与原始服务器对文件更新问题:
若原始服务器中的某个文档发生变化,但代理服务器存有的副本并没有变化,这样会发生主机请求所得到为代理服务器的副本,这个不正确的。

解决方法:

  • 原始服务器通常会为每个响应的对象设定一个修改时间字段和有效日期字段

在这里插入图片描述
(1)若校园网中的一个主机要向原始服务器请求,它首先向校园网中的代理服务器发送请求
在这里插入图片描述
(2)若代理服务器中的该文档未过期,则代理服务器将其封装在响应报文中发回给主机。
在这里插入图片描述
(3)若代理服务器中的该文档已过期,则代理服务器会向因特网上的原始服务器发送请求,在请求报文中包含有一个首部字段为If-modified-since的首部行,该字段的取值就是该文档的修改日期。
在这里插入图片描述

(4)原始服务器根据该文档的修改日期,就可判断出代理服务器中存储的该文档是否与自己存储的该文档一致。如果一致,则给代理服务器发送不包含实体主体的响应, 状态码为304,短语为Not Modified;
在这里插入图片描述
(5)代理服务器重新更新该文档的有效日期,然后将该文档封装在响应报文中发回给主机。
在这里插入图片描述
(6)如果不一致,则给代理服务器发送封装有该文档的响应报文,这样代理服务器就更新了该文档。
然后将更新后的该文档封装在响应报文中发回给主机。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值