计算机网络

计算机网络

文章目录

1.计算机网络概述

1.1 概述

1.1.1 计算机网络的概念

计算机网络:是一个将分散的、具有独立功能的计算机系统,通过通信设备线路连接起来,由功能完善的软件实现==资源共享信息传递==的系统。

在这里插入图片描述

计算机网络是互连的自治的计算机集合。

  • 互连---->互联互通 通信链路
  • 自治---->无主从关系

1.1.2 计算机网络的功能

  1. 数据通信(连通性)
  2. 资源共享 (硬件 、软件 、数据的共享)
  3. 分布式处理 多台计算机各自承担同一工作任务的不同部分 如:Hadoop平台
  4. 提高可靠性
  5. 负载均衡

1.1.3 计算机网络的组成

  • 组成部分:硬件、软件、协议

在这里插入图片描述

  • 工作方式
    • 边缘部分 用户直接使用
      • C/S方式
      • P2P方式
    • 核心部分 为边缘部分服务

在这里插入图片描述

  • 功能组成
    • 通讯子网:实现数据通信
    • 资源子网:实现资源共享/数据处理

在这里插入图片描述

1.1.4 计算机网络的分类

在这里插入图片描述

1.2 性能指标

1.2.1 速率

定义:连接在计算机网络上的主机在数字信道上传送数据位数的速率

单位:b/s , kb/s ,Mb/s , Gb/s, Tb/s

在这里插入图片描述

1.2.2 带宽

  • "带宽"原本指某个信号具有的频带宽度,即最高频率与最低频率之差,单位赫兹(HZ)。
  • 计算机网络中,带宽用来表示网络的通信线路传送数据的能力,通常是指单位时间内从网络中的某一点到另一点所能通过的最高数据率。单位是"比特每秒" , b/s , kb/s ,Mb/s , Gb/s。即网络设备所支持的最高速度

在这里插入图片描述

1.2.3 吞吐量

定义:表示在单位时间内通过**某个网络(或信道、接口)**数据量。单位b/s,kb/s,Mb/s等。

吞吐量受网络带宽或网络的额定速率的限制。

在这里插入图片描述

1.2.4 时延

定义:指数据(报文/分组/比特流)从网络(或链路)的一端传送到另一端所需的时间。也叫延迟迟延。单位s

  • 发送时延(传输时延):从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕所需的时间。发送时延=数据长度 / 信道带宽(发送速率)
  • 传播时延:是电磁波在信道上传播一定的距离所花费的时间,取决于电磁波传播速度和链路长度。传播时延=信道长度 / 电磁波在信道上的传播速率
  • 排队时延:等待输出/输入链路可用所需要等待的时间。
  • 处理时延: 检错,找出口

在这里插入图片描述

1.2.5 时延带宽积

时延带宽积又称为以比特为单位的链路长度。即:某段链路现在由多少比特

在这里插入图片描述

1.2.6 往返时延RTT

从发送方发送数据开始,到发送方收到接收方的确认(接收方收到的数据后立即发送确认),总共经历的时延。

  • RTT越大,在收到确认之前,可以发送的数据越多。
  • RTT包括:
    • 往返传播时延=传播时延*2
    • 末端处理时间

1.2.7 利用率

  • 利用率
    • 信道利用率
    • 网络利用率

在这里插入图片描述

1.3 分层结构

为什么要分层

在这里插入图片描述

发送文件前要完成的工作:

  1. 发起通信的计算机必须将数据通信的通路进行激活。
  2. 要告诉网络如何识别目标主机
  3. 发起通信的计算机要查明目标的主机是否开机,并且与网络连接正常。
  4. 发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作。
  5. 确保差错和意外可以解决。

1.3.1 认识分层结构

在这里插入图片描述

  • 实体:第n层中的活动元素称为n层实体。同一层的实体叫对等实体

  • 协议:为进行网络中的对等实体数据交换而建立的规则、标准或约定称为网络协议。【水平】

    • 语法:规定传输数据的格式
    • 语义:规定所要完成的功能
    • 同步:规定各种操作的顺序
  • 接口(访问服务点SAP): 上层使用下层服务的入口。

  • 服务: 下层为相邻上层提供的功能调用。【垂直】

在这里插入图片描述

SDU服务数据单元:为完成用户所要求的功能而应传送的数据。

PCI协议控制信息:控制协议操作的信息。

PDU协议数据单元:对等层次之间传送的数据单位。

概念总结:

  • 网络体系结构是从功能上描述计算机网络结构。
  • 计算机网络体系结构简称网络体系结构是分层结构
  • 每层遵循某个/些网络协议以完成本层功能。
  • 计算机网络体系结构是计算机网络的各层及其协议的集合。
  • 第n层在向n+1层提供服务时,此服务不仅包含第n层本身的功能,还包含由下层服务提供的功能。
  • 仅仅在相邻层间有接口,且所提供服务的具体实现细节对上一层完全屏蔽。
  • 体系结构是抽象的,而实现是指能运行的一些软件和硬件。

1.3.2 ISO/OSI参考模型

在这里插入图片描述

名称英文作用
应用层Application Layer直接为用户的应用进程(例如电子邮件、文件传输和终端仿真)提供服务。如HTTP、SMTP、FTP、DNS等
表示层Presentation Layer把数据转换为能与接收者的系统格式兼容并适合传输的格式,即让两个系统可以交换信息
会话层Session Layer负责在数据传输中设置和维护计算机网络中两台计算机之间的通信连接
传输层Transport Layer负责端到端通讯,可靠传输,不可靠传输 ,流量控制,复用分用
网络层Network Layer负责选择路由最佳路径,规划IP地址(ipv4和ipv6变化只会影响网络层),拥塞控制
数据链路层Data Link Layer帧的开始和结束,还有透明传输,差错校验(纠错由传输层解决)
物理层Physical Layer定义网络设备接口标准,电气标准(电压),如何在物理链路上传输的更快

ISO/OSI参考模型解释通信过程

网络层及以上,每一层都要对上一层发送的数据进行处理(加个头部)
数据链路层不仅需要加头部,还需要加尾部
物理层什么都不加,只管发送数据(比特流)

在这里插入图片描述

1.3.3 OSI参考模型与TCP/IP参考模型

在这里插入图片描述

OSI参考模型与TCP/IP参考模型相同点:

  • 都分层
  • 基于独立的协议栈的概念
  • 可以实现异构网络互联

OSI参考模型与TCP/IP参考模型不同点:

  • OSI定义三点:服务、协议、接口
  • OSI先出现,参考模型先于协议发明,不偏向特定协议
  • TCP/IP设计之初就考虑到异构网互联问题,将IP作为重要层次

在这里插入图片描述

  • 面向连接分为三个阶段,第一是建立连接,在此阶段,发出一个建立连接请求。只有在连接成功建立之后,才能开始数据传输,这是第二阶段。接着,当数据传输完毕,必须释放连接。
  • 面向无连接没有这么多阶段,它直接进行数据传输。

1.3.4 5层参考模型

在这里插入图片描述

5层参考模型的数据封装与解封装

在这里插入图片描述

2 物理层

物理层基本概念

  • 物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。
  • 物理层主要任务:确定与传输媒体接口有关的一些特性 ----> 定义标准
  • 机械特性:定义物理连接的特性,规定物理连接时所采用的规格、接口形状、引线数目、引脚数量和排列情况。
  • 电气特性:规定传输二进制位时,线路上信号的电压范围、阻抗匹配、传输速率和距离限制等。
  • 功能特性:指明某条线上出现的某一电平表示何种意义,接口部件的信号线的用途。
  • 规程特性:(过程特性)定义各条物理线路的工作规程和时序关系。

2.1 通信基础

2.1.1 典型的数据通信模型

在这里插入图片描述

2.1.2 数据通信相关术语

通信的目的是传送消息

  • 数据: 传送消息的实体,通常是有意义的符号序列。
  • 信号: 数据的电气/电磁的表现,是数据在传输过程的存在形式。
    • 数字信号:代表消息的参数取值是离散的。
    • 模拟信号:代表消息的参数取值是连续的。
  • 信源: 产生和发送数据的源头。
  • 信宿: 接收数据的终点。
  • 信道: 信号的传输媒介。一般用来表示向某一方向传送信息的介质,因此一条通信线路往往包含一条发送信道和一条接收信道。
    • 传输信号
      • 模拟信道(传送模拟信号)
      • 数字信道(传送数字信号)
    • 传送介质
      • 无线信道
      • 有线信道

2.1.3 三种通信方式

从通信双方信息的交互方式看,可以有三种基本方式:

名称英文定义需要信道条数
单工通信Simplex只能一个发一个收一条
半双工通信half-duplex都可以发或者收,但是同一时间只能进行一个两条
全双工通信duplex都可以同时收发数据两条

2.1.4 两种数据传输方式

传输方式特点
串行传输速度慢,省钱,适合远距离
并行传输速度快,耗钱,适合近距离

在这里插入图片描述

2.2 码元

  • 定义:码元是指用一个固定时长信号波形(数字脉冲),代表离散数值的基本波形,是数字通信中数字信号的计量单位,这个时长内的信号称为K进制码元,而该时长称为码元宽度。当码元的离散状态有M个时(M大于2),此时码元为M进制码元。

  • 1码元可以携带多个比特的信息量。例如,在使用二进制编码时,只有两种不同的码元,一种代表0状态,另一种代表1状态。

  • 码元就是在网线上传输的一个个信号段。码元的不同进制就是用来表示不同的数值的

在这里插入图片描述

2.3 速率、波特、带宽

速率也叫数据率,是数据的传输速率,表示单位时间内传输的数据量。可以用码元传输速率信息传输速率表示。

  • 码元传输速率:别名码元速率、波形速率、调制速率、符号速率等,它表示单位时间内数字通信系统所传输的码元个数(也可称为脉冲个数或信号变化的次数),单位是波特(Baud)。1波特表示数字通信系统每秒传输一个码元。这里的码元可以是多进制的,也可以是二进制的,但码元速率与进制数无关。
  • 信息传输速率:别名信息速率、比特率等,表示单位时间内数字通信系统传输的二进制码元个数(即比特数),单位是比特/秒(b/s)
  • 关系: 若一个码元携带n bit的信息量,则M Baud的码元传输速率所对应的信息传输速率为M × n bit/s
  • 带宽: 表示在单位时间内从网络中的某一点到另一点所能通过的 “最高数据率”,常用来表示网络的通信线路所能传输的数据的能力。d单位是b/s。

2.4 奈式准则(Nyquist)

2.4.1 失真

在这里插入图片描述

影响失真程度的因素:

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

2.4.2 码间串扰

在这里插入图片描述

  • 信道带宽是信道能通过的最高频率和最低频率之差。3300Hz - 300Hz = 3000Hz
  • 码间串扰:接收端收到的信号波形失去了码元之间的清晰界限的现象。

2.4.3 奈氏准则(奈奎斯特定理)

在这里插入图片描述

2.5 香农定理

在这里插入图片描述

2.6 编码与调制

2.6.1 基带信号与宽带信号

在这里插入图片描述

2.6.2 编码与调制

在这里插入图片描述

2.6.3 数字数据编码为数字信号

  • 非归零编码:高1低0,编码容易实现,但是没有检错功能,且无法判断一个码元的开始和结束,以至于收发双方难以保持同步
  • 曼彻斯特编码:将一个码元分成两个相等的间隔,前一个间隔为低电平后一个间隔为高电平表示码元1;码元0则正好相反。该编码的特点是在每一个码元的中间出现电平跳变,位中间的跳变即作时钟信号(可用于同步),又作数据信号,但它所占的频带宽度是原始的基带宽度的两倍。每一个码元都被调成两个电平,所以数据传输速率只有调制速率的1/2。
  • 差分曼彻斯特编码:同1异0,常用于局域网传输,其规则是:若码元是1,则前半个码元的电平与上一个码元的后半个码元的电平相同,若为0,则相反。该编码的特点是,在每个码元的中间,都有一次电平的跳转,可以实现自同步,且抗干扰性强与曼彻斯特编码。
  • 归零编码:信号电平在一个码元之内都要恢复到零。
  • 4B/5B编码:比特流中间插入额外的比特以打破一连串的0或1,就是用5个比特来编码4个比特的数据,之后再传给接收方,因此称为4B/5B。编码效率位80%。

在这里插入图片描述

  • 反向不归零编码:信号电平翻转表示0,信号电平不变表示1。

在这里插入图片描述

2.6.4 数字数据调制为模拟信号

数字数据调制技术在发送端将数字信号转化为模拟信号,而在接收端将模拟信号还原为数字信号,分别对应于调制解调器的调制和解调过程。

在这里插入图片描述

2.6.5 模拟信号编码为数字信号

计算机内部处理的是二进制数据,处理的都是数字音频,所以需要将模拟音频通过采样、量化转换成有限个数字表示的离散序列(即实现音频数字化)。

  • 抽样: 对模拟信号周期性扫描,把时间上连续的信号变成时间上离散的信号。为了使所得的离散信号能无失真地代表被抽样的模拟数据,要使用采样定理进行采样:f 采样频率 > 2f 信号最高频率
  • 量化: 把抽样取得的电平幅值按照一定的分级标度转化为对应的数字值,并取整数,这就把连续的电平幅值转化为离散的数字量。
  • 编码: 把量化的结果转化为与之对应的二进制编码。

在这里插入图片描述

2.6.6 模拟数据调制为模拟信号

为了实现传输的有效性,可能需要较高的频率。这种调制方式还可以使用频分复用技术,充分利用带宽资源。在电话和本地交换机所传输的信号是采用模拟信号传输模拟数据的方式;模拟的声音数据是加载到模拟的载波信号中传输的。

2.7 物理层传输介质

  • 传输介质也称传输媒体/传输媒介,它就是数据传输系统中在发送设备和接受设备之间的物理通路

  • 传输媒体并不是物理层。传输媒体在物理层的下面,因为物理层是体系结构的第一层,因此有时称传输媒体为0层。在传输媒体中传输的是信号,但传输媒体并不知道所传输的信号代表是什么意思。但物理层规定了电气特性,因此能够识别所传送的比特流。

在这里插入图片描述

2.7.1 导向性传输介质-双绞线

在这里插入图片描述

2.7.2 导向性传输介质-同轴电缆

在这里插入图片描述

2.7.3 导向性传输介质-光纤

  • 光纤通信就是利用光导纤维(简称光纤)传递光脉冲来进行通信。有光脉冲表示1,无光脉冲表示0。而可见光的频率大约是10^8MHz,因此光纤通信系统的带宽远远大于目前其它各种传输媒体的带宽。
  • 光纤在发送端有光源,可以采用发光二极管或半导体激光器,它们在电脉冲的作用下能产生出光脉冲;在接收端用光电二极管做成光检测器,在检测到光脉冲时可还原出电脉冲。
  • 在这里插入图片描述

根据入射角不同,光纤又分为单模光纤多模光纤

在这里插入图片描述

光纤的特点

  • 传输损耗小,中继距离长,对远距离传输特别经济。
  • 抗雷电和电磁干扰性能好。
  • 无串音干扰,保密性好,也不易被窃听或截取数据。
  • 体积小,重量轻。

2.7.4 非导向性传输介质

在这里插入图片描述

2.8 物理层设备

2.8.1 中继器

在这里插入图片描述

2.8.2 集线器(多口中继器)

在这里插入图片描述

3 数据链路层

数据链路层基本概念

在这里插入图片描述

3.1 链路层的功能

数据链路层功能概述

在这里插入图片描述

3.1.1 封装成帧

在这里插入图片描述

封装成帧就是加将网络数据报加头加尾,相当于将数据打包

3.1.2 透明传输

  • 透明传输是指不管所传输数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就看不见有什么妨碍数据传输的东西。

  • 当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。

透明传输就是为了防止特殊的数据无法正常传输的的情况的发生,比如说在封装成帧的过程中,可能出现数据中的某些标记符与开始/结束标记符恰巧重复的情况,如果不加以处理,那么会导致无法判定帧的开始于结束。

透明传输的实现方法:

1> 字符计数法

就是在帧的首部做计数,这个字符记录了当前帧有多少个字符。
缺点:如果在某一个帧内,标记位后面的某个字节的数据丢失,那么会影响后面的帧
比如3 1 1 和 4 2 2 2,如果前面的帧丢失变成 3 1,那么后面的4就会被补到前面变成 3 1 4导致错误

在这里插入图片描述

2> 字符填充法

就是加头加尾分别标记开始结束,和零比特填充法(见下)对比,开始和结束的对应的字符不一样
但有可能出现数据内某段比特流数据正好与标记字段重复,从而导致误判断的情况

在这里插入图片描述

解决方法: 添加转义字符。即对于那些与标记字符重复的数据流,在它们的前面添加一段转义字符,这样接收方在解析帧时,看到这些转义字符就不会认为那些特殊的数据当成帧的开始/结束了。

在这里插入图片描述

3> 零比特填充法

在这里插入图片描述

4> 违规编码法

因为曼彻斯特编码不使用高-高,低-低来表示,所以如果使用高-高,低-低来表示帧起始和终止就不会与数据冲突

在这里插入图片描述

3.1.3 差错控制

差错的产生

在这里插入图片描述

3.1.4 检错编码-奇偶校验码

在这里插入图片描述

  • 对于偶校验,选择一个值,使得所有比特中1出现偶数次。
  • 对于奇校验,选择一个值,使得所有比特中1出现奇数次。接收方通过检测1出现的次数判断是否出现差错。如果出现偶数个比特差错,则检验不出
  • 缺点:只能检测出1,3,5,7…等等奇位数错误,检测成功率位50%

3.1.5 CRC循环冗余码

发送方和接收方协商一个r+1比特的生成多项式(G),要起其最高比特位为1。发送方通过在d比特的数据后附加r比特,使得整个(d+r)比特的值能够被G整除。接收方用G去除(d+r)比特,如果余数非0,则出现差错

在这里插入图片描述

实际例子
注释:
1.阶数就是最高位是哪位,然后位数-1,如10011就是5-1=4,1011就是4-1=3
2.异或运算就是相同得0,不同得1,比如100和101做异或,结果就是001
3.出书和最后的余数添加到要发送的数据后面,称为帧检验序列FCS

在这里插入图片描述

接收方收到数据后进行检测

在这里插入图片描述

**注意:**在数据链路层仅仅使用循环冗余检验CRC差错检测技术,只能做到对帧的无差错接收,即凡是接收端数据链路层接受的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错。接收端丢弃的帧虽然曾接收到了,但是最终还是因为有差错被丢弃。凡是接收端数据链路层接受的帧均无差错。

  • 可靠传输:数据链路层发送端发送什么,接收端就接收什么。
  • 链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。

3.1.6 纠错编码(海明码)

海明码:发现双比特错,纠正单比特错。

1.确定校验码位数r

在这里插入图片描述

2.确定校验码和数据的位置

在这里插入图片描述

  1. 求出校验码的值

在这里插入图片描述

4,检查并纠错

在这里插入图片描述

3.2 数据链路层的流量控制和可靠传输

数据链路层的流量控制

  • 较高的发送速度较低的接受能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。

  • 数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。

  • 数据链路层流量控制手段:接收方收不下就不回复确认。

  • 传输层流量控制手段:接收端给发送端一个窗口公告。

流量控制方法

在这里插入图片描述

  • 可靠传输:发送端发啥,接收端收啥。
  • 流量控制:控制发送速率,使接收方有足够的缓冲空间接收每一帧。

滑动窗口解决:

  • 流量控制:收不下就不给确认,想发也发不了。
  • 可靠传输:发送方自动重传。

3.2.1 停止-等待协议

为什么要有停止-等待协议

  • 除了比特出差错,底层信道还会出现丢包问题。(**丢包:**物理线路故障、设备故障、病毒攻击、路由信息错误等原因,会导致数据包的丢失)为了实现流量控制。

研究停止-等待协议的前提

  • 虽然现在常用全双工通信方式,但为了讨论方便,就考虑一方发送数据(发送方),一方接收数据(接收方)。
  • 因为是在讨论可靠传输原理,所以并不考虑数据是在哪一个层次上传发送的。
  • 停止-等待就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。

停止-等待协议有几种应用情况

  • 无差错情况
  • 有差错情况

无差错情况

在这里插入图片描述

有差错情况

停止等待协议的有差错情况:
使用一个超时计时器,每发一帧就开始计时,设置时间略长于一个RTT(往返时延)。

1.数据帧丢失或检测到帧出错

在这里插入图片描述

注意:

  • 发完一个帧后,必须保留它的副本
  • 数据帧和确认帧必须编号

2.ACK丢失

在这里插入图片描述

3.ACK迟到

在这里插入图片描述

停止等待协议的特点

  • 简单
  • 信道利用率低。大部分时间数据都在路上,发送方很长时间闲置,资源浪费

在这里插入图片描述

信道利用率:

在这里插入图片描述

3.2.2 选择重传协议(Selective Repeat)

选择重传协议中的滑动窗口

在这里插入图片描述

SR发送方必须响应的三件事

在这里插入图片描述

SR接收方要做的事

在这里插入图片描述

运行中的SR

在这里插入图片描述

3.2.3 后退N帧协议(GBN)

后退N帧协议中的滑动窗口

在这里插入图片描述

GBN发送方必须响应的三件事

在这里插入图片描述

GBN接收方要做的事

在这里插入图片描述

运行中的GBN

在这里插入图片描述

GBN协议性能分析

  • 因连续发送数据帧而提高了信道利用率
  • 在重传时必须把原来已经正确传送的数据帧重传,是传送效率低

3.3 信道划分介质访问控制

传输数据使用的两种链路

  • 点对点链路:两个相邻节点通过一个链路相连,没有第三者。应用:PPP协议,常用于广域网
  • 广播式链路:所有主机共享通信介质。应用:早期的总线以太网、无线局域网,常用于局域网。典型拓扑结构:总线型、星型。

介质访问控制

在这里插入图片描述

  • 信道划分介质访问控制(MAC Multiple Access Control)协议:
    • 基于多路复用技术划分资源。
    • 网络负载重:共享信道效率高,且公平
    • 网络负载轻:共享信道效率低
  • 随机访问MAC协议:
    • 用户根据意愿随机发送信息,发送信息时可独占信道带宽。
    • 网络负载重:产生冲突开销
    • 网络负载轻:共享信道效率高,单个结点可利用信道全部带宽
  • 轮询访问MAC协议/轮流协议/轮转访问MAC协议:
    • 既要不产生冲突,又要发送时占全部带宽

3.3.1 信道划分介质访问控制

在这里插入图片描述

a> 频分多路复用FDM
  • 用户在分配到一定的频带后,在通信过程中自始至终都在占用这个频带。频分复用的所有用户在同样的时间占用不同的带宽(频率带宽)资源。

  • 充分利用传输介质带宽,系统效率较高;由于技术比较成熟,实现也比较容易。

在这里插入图片描述

b> 时分多路复用TDM
  • 将时间划分为一段段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙,所有用户轮流占用信道。
  • 频分复用——“并行”
  • 时分复用——“并发”

在这里插入图片描述

  • TDM帧是在物理层传送的比特流所划分的帧,标志一个周期。

改进的时分复用—统计时分复用STDM:

  • 每一个STDM帧中的时隙小于连接器上的用户数。各用户有了数据就随时发往集中器的输入缓存,然后集中器按顺序依次扫描输入缓存,把缓存发出。STDM帧不是固定分配时隙,而是按需动态分配时隙

在这里插入图片描述

c> 波分多路复用WDM
  • 波分多路复用就是光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。

在这里插入图片描述

d> 码分多路复用CDM

码分多址(CDMA 是码分复用的一种方式。

  • 1个比特分为多码片/芯片(chip),每一个站点被指定一个唯一的m位的芯片序列。
  • 发送1时站点发送芯片序列,发送0时发送芯片序列反码(通常把0写成-1)。
  • 如何不打架:多个站点同时发送数据的时候,要求各个站点芯片序列相互正交。
  • 如何合并:各路数据在信道中被线性相加。
  • 如何分离:合并的数据和源站规格化内积。

3.3.2 随机访问介质访问控制

  • **动态分配信道:**动态媒体接入控制/多点接入。特点:信道并非在用户通信时固定分配给用户。
  • **随机访问介质访问控制:**所有用户可随机发送信息。发送信息时占全部带宽。不协调——>冲突
a> ALOHA协议—不听就说

纯ALOHA协议

纯ALOHA协议思想:不监听信道,不按时间槽发送,随机重发。想法就发

  • 冲突如何检测?

如果发生冲突,接收方在就会检测出差错,然后不予确认,发送方在一定时间内收不到就判断发生冲突。

  • 冲突如何解决?

超时后等一随机时间再重传。

在这里插入图片描述

时隙ALOHA协议

  • 时隙ALOHA协议的思想: 把时间分成若干个相同的时间片,所有用户再时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。

  • 控制想发就发的随意性

在这里插入图片描述

关于ALOHA要知道的事

  1. 纯ALOHA比时隙ALOHA吞吐量更低,效率更低。
  2. 纯ALOHA想发就发,时隙ALOHA只有在时间片段开始才能发。
b> CSMA协议—先听再说

载波监听多路访问协议CSMA(carrier sense multiple access)

  • CS: 载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其它计算机在发送数据。

    • 当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表示产生碰撞,即发生了冲突。
  • MA: 多点接入,表示许多计算机以多点接入的方式连接在一根总线上。

协议思想:发送帧之前,监听信道。

在这里插入图片描述

1-坚持CSMA

在这里插入图片描述

非坚持CSMA

在这里插入图片描述

p-坚持CSMA

在这里插入图片描述

三种CSMA对比总结

1-坚持CSMA非坚持CSMAp-坚持CSMA
信道空闲马上发马上发p概率马上发 ,1-p概率等到下一个时隙再发送
信道忙继续坚持监听放弃监听,等一个随机时间再监听放弃监听,等待一个随机时间监听
c> CSMA/CD协议—先听再说,边听边说

载波监听多点接入/碰撞检测CSMA/CD(carrier sense multiple access with collision detection)

  • CS: 载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其它计算机在发送数据。

  • MA: 多点接入,表示许多计算机以多点接入的方式连接在一根总线上。总线型网络

  • CD: 碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其它站是否也在发送数据。 半双工网络

先听后发为什么还会冲突?

  • 因为电磁波在总线上总是以有限的速率传播的。

传播时延对载波监听的影响?

在这里插入图片描述

如何确定碰撞后的重传时机?

在这里插入图片描述

最小帧长问题

  • 帧的传输时延至少要两倍于信号在总线中的传播时延。

在这里插入图片描述

d> CSMA/CA协议

载波监听多点接入/碰撞避免CSMA/CA(carrier sense multiple access with conllision avoidance)

在这里插入图片描述

CSMA/CA协议工作原理

  • 发送数据前。先检测信道是否空闲。

  • 空闲则发出RTS(request to end),RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;信道忙则等待。

  • 接收端收到RTS后,将响应CTS(clear to send)。

  • 发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其它站点自己要传多久的数据)。

  • 接收端收到数据帧后,将用CRC来检验数据是否正确,正确则响应ACK帧。

  • 发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)。

    1.预约信道 2.ACK帧 3.RTS/CTS帧(可选)

CSMA/CD与CSMA/CA的比较

在这里插入图片描述

3.3.3 轮询协议

主结点轮流"邀请"从属结点发送数据

在这里插入图片描述

问题:

  • 轮询开销
  • 等待延迟
  • 单点故障

3.3.4 令牌传递协议

  • 令牌:一个特殊格式的MAC控制帧,不含任何信息。控制信道的使用,确保同一时刻只有一个结点独占信道。
  • 每个结点都可以在一定的时间内(令牌持有时间)获得发送数据的权力,并不是无限制地持有令牌。

在这里插入图片描述

问题:

  • 1.令牌开销 2.等待延迟 3.单点故障

应用于令牌环网(物理星型拓扑,逻辑环形拓扑)

采用令牌传送方式的网络常用于负载较重、通信量较大的网络。

3.4 局域网基本概念和体系结构

局域网(Local Area Network) :简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道

  • 特点1:覆盖的地理范围小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内。

  • 特点2:使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高(10Mb/s~10Gb/s)。

  • 特点3:通信延迟时间短,误码率低,可靠性较高。

  • 特点4:各站为平等关系,共享传输信道。

  • 特点5:多采用分布式控制和广播式通信,能进行广播和组播。

决定局域网的主要要素为:网络拓扑传输介质介质访问控制方法。

3.4.1 局域网拓扑结构

在这里插入图片描述

3.4.2 局域网传输介质

  • 有线局域网 常用介质:双绞线、同轴电缆、光纤
  • 无线局域网 常用介质:电磁波

3.4.3 局域网介质访问控制方法

  1. CSMA/CD 常用于总线型局域网,也用于树形网络。
  2. 令牌总线 常用于总线型局域网,也用于树型网络。它是把总线型或树型网络的各个工作站按一定顺序接口地址大小排列形成一个逻辑环。只有令牌持有者才能控制总线,才有发送信息的权力。
  3. 令牌环 用于环形局域网,如令牌环网

3.4.4 局域网的分类

  1. 以太网:以太网是应用最为广泛的局域网,包括标准以太网(10Mbps)、快速以太网(100Mbps)、千兆以太网(1000Mbps)和10G以太网,它们都符合IEEE802.3系列标准规范。逻辑拓扑总线型,物理拓扑是星型或拓展型。使用CSMA/CD。
  2. 令牌环网:物理上采用了星型拓扑结构,逻辑上是环形拓扑结构。已经过时
  3. FDDI网(Fiber Distributed Data Interface): 物理上采用了双环拓扑结构,逻辑上是环形拓扑结构。
  4. ATM网(Asynchronous Transfer Mode): 较新型的单元交换技术,使用53字节固定长度的单元进行交换。
  5. 无限局域网(Wireless Local Area Network ;WLAN): 采用IEEE 802.11标准。

3.4.5 MAC子层和LLC子层

IEEE 802标准所描述的局域网参考模型只对应OSI参考模型的数据链路层与物理层,他将数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层。

在这里插入图片描述

3.5 以太网

3.5.1 以太网概述

以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Inter和DEXC公司联合开发的 基带总线局域网规范 ,是当今现有局域网采用的最通用的通信协议标准。以太网使用CSMA/CD(载波监听多路访问及冲突检测)技术。

以太网在局域网各种技术中占 统治性 地位:

  1. 造价低廉(以太网网卡不到100块);
  2. 是应用最广泛的局域网技术;
  3. 比令牌环网、ATM网便宜,简单;
  4. 满足网络速率要求:10Mb/s ~10Gb/s

以太网两个标准

  • DIX Ethernet V2:第一个局域网产品(以太网)规约
  • IEEE 802.3: IEEE 802委员会802.3工作组制定的第一个IEEE的以太网标准。(帧格式有一丢丢改动)

以太网提供无连接、不可靠的服务

  • 无连接:发送方和接收方之间无"握手过程"。
  • 不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。
  • 以太网只实现无差错接收,不实现可靠传输

3.5.2 10BASE-T以太网

在这里插入图片描述

3.5.3适配器与MAC地址

在这里插入图片描述

以太网MAC帧

最常用的MAC帧是以太网V2的格式。

在这里插入图片描述

与IEEE 802.3的区别:1.第三个字段是长度/类型 2.当长度/类型字段值小于0x0600时,数据字段必须装入LLC子层。

3.5.4 高速以太网

在这里插入图片描述

3.6 无线局域网

IEEE 802.11是 无线局域网 通用的标准,它是由IEEE所定义的无线网络通信的标准。

802.11的MAC帧头格式

在这里插入图片描述

功能To DSFrom DSAddress1(接收端)Address2Address3Address4
IBSS00DASABSSID未使用
To AP(基础结构型)10BSSIDSADA未使用
From AP(基础结构型)01DABSSIDSA未使用
WDS(无线分布式系统)11RATADASA

3.6.1 无线局域网分类

a> 有固定基础设施无线局域网

在这里插入图片描述

b> 无固定基础设施无线局域网的自组织网络

在这里插入图片描述

3.7 广域网

  • 广域网(WAN,Wide Area Network),通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。
  • 广域网的通信子网主要使用 分组交换 技术。广域网的通信子网可以利用公用的分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的 局域网或计算机系统 互连起来,达到资源共享的目的。如因特网(Internet)是世界范围内最大的广域网。

在这里插入图片描述

3.7.1 PPP协议

PPP协议的特点

  • 点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议。

PPP协议应满足的要求

  • 简单 对于链路层的帧,无需纠错,无需序号,无需流量控制。
  • 封装成帧 帧定界符
  • 透明传输 与帧定界符一样比特组合的数据应该如何处理:异步线路用字节填充,同步线路用比特填充
  • 多种网络层协议 封装的IP数据报可以采用多种协议
  • 多种类型链路 串行/并行,同步/异步,电/光…
  • 差错检测 错就丢弃
  • 检测连接状态 链路是否正常工作
  • 最大传送单元 数据部分最大长度MTU
  • 网络层地址协商 知道通信双方的网络地址
  • 数据压缩协商

PPP协议无需满足的要求

  • 纠错
  • 流量控制
  • 序号
  • 不支持多点线路

PPP协议的三个组成部分

  1. 一个将IP数据报封装到串行链路(同步串行/异步串行)的方法
  2. 链路控制协议LCP :建立并维护数据链路连接
  3. 网络控制协议NCP:PPP可支持多种网络层协议,每个不同的网络协议都要一个相应的NCP来配置,为网络层协议建立和配置逻辑连接

PPP 协议的状态图

在这里插入图片描述

PPP协议的帧格式

在这里插入图片描述

3.7.2 HDLC协议

  • 高级数据链路控制(High-Level Data Link Control或简称HDLC),是一个在同步网上传输数据,面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(SynchronousData Link Control)协议扩展开发而成的。

  • 数据报文可透明传输,用于实现透明传输的"0比特插入法"易于硬件实现

HDLC的站

  • 主站的主要功能是发送命令(包括数据信息)帧、接收响应帧,并负责对整个链路的控制系统的初启、流程的控制、差错控制或恢复等。
  • 从站的主要功能是接收由主站发来的命令帧,向主站发送响应帧,并且配合主站与差错恢复等链路控制。
  • 复合站的主要功能是既能发送,又能接收命令帧和响应帧,并且负责整个链路的控制。

三种数据操作方式

  1. 正常响应方式
  2. 异步平衡方式
  3. 异步响应方式

HDLC的帧格式

在这里插入图片描述

3.7.3 PPP协议&HDLC协议

在这里插入图片描述

3.8 链路层的设备

3.8.1 网桥(Bridge)

使用网桥时,由于网桥会根据mac地址进行过滤,所以不会形成冲突域

在这里插入图片描述

透明网桥

透明网桥:通过自学习来构建转发表。每一个通过网桥的数据包都会被记录下网桥收到数据时数据对应的地址网桥自己的接口,通过许许多多的数据包的构造的缓存,网桥就可以知道哪个数据包在哪个接口,以后如果要穿数据包就知道要往哪个接口发送数据包了

在这里插入图片描述

源路由网桥

源路由网桥: 在发送帧帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部中。

方法:源站以广播方式向欲通信的目的站发送一个 发现帧

在发送时,直接将最佳路径放到帧首部。那么网桥如何获得最佳路径?通过广播方式想目标地址发送广播,此时可能会经过不同路由产生不同的路径,目标地址收到后再将每一条路径都发一个响应帧给网桥,网桥经过对比就知道哪个接口最快了

3.8.2 交换机

网桥接口越来越多,网桥就变成了交换机
交换机的任务是接收入链路层帧并将它们转发到出链路
交换机自身对节点透明:某节点向另一节点寻址一个帧,顺利地将该帧发送进LAN,而不知道这个帧经过了某个交换机的接收与转发

  • 交换机转发与过滤
    过滤:交换机决定一个帧是应该转发还是应该丢弃
    转发:决定一个帧应该被导向哪个接口

  • 自学习(即插即用)
    交换机表是自动、动态、自治地建立的,没有来自网络管理员或配置协议的任何干预。换句话说,交换机是自学习的
    交换机表初始为空
    源地址为DD-DD-DD-DD-DD-DD的帧从接口x到达时,如果不存在则新建一项;存在则更新当前时间
    如果一段时间后,在x接口没有来自DD-DD-DD-DD-DD-DD的帧,则将该表项删除

直通式交换机

  • 查完目的地址(6B)就立刻转发。
  • 延迟小,可靠性低,无法支持具有不同速率的端口交换

存储转发式交换机

  • 将帧放入高速缓存,并检查是否正确,正确则转发,错误则丢弃
  • 延迟大,可靠性高,可以支持具有不同速率的端口的交换

3.8.3 冲突域和广播域

在这里插入图片描述

4. 网络层

4.1 网络层概述

网络层的由来

在数据链路层中,我们提到了MAC地址这个唯一的身份编址。理论上,单单依靠MAC地址,上海的网卡就可以找到洛杉矶的网卡了,技术上是可以实现的。但是,这样做有一个重大的缺点。以太网采用广播方式发送数据包,所有成员人手一”包”,不仅效率低,而且局限在发送者所在的子网络。也就是说,如果两台计算机不在同一个子网络,广播是传不过去的。这种设计是合理的,否则互联网上每一台计算机都会收到所有包,那会引起灾难。

因此,必须找到一种方法,能够区分哪些MAC地址属于同一个子网络,哪些不是。如果是同一个子网络,就采用广播方式发送,否则就采用”路由”方式发送。
这就导致了”网络层”的诞生。它的作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络。这套地址就叫做”网络地址”,简称”网址”。于是,”网络层”出现以后,每台计算机有了两种地址,一种是MAC地址,另一种是网络地址。两种地址之间没有任何联系,MAC地址是绑定在网卡上的,网络地址则是管理员分配的,它们只是随机组合在一起。

网络层的主要功能

网络层的主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输的单位是 数据报

  • 功能一:路由选择与分组转发——>就算让数据在路由之间走最佳的路径
  • 功能二:异构网络互联——>就是让不同设备(手机、电脑、平板等)都能正常连接
  • 功能三:拥塞控制——>若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞。解决拥塞:1.开环控制 (静) 2.闭环控制(动)

4.2 数据交换方式

为什么要进行数据交换?因为每个节点之间都拉网线太麻烦了也不实际,所以通过大量交换设备互联进行数据交换

在这里插入图片描述

4.2.1 电路交换

常见的例子:打电话

  • 链路支持多路复用(可参考数据链路层的TDM等)
  • 特点是独占资源,因为两者建立了连接

在这里插入图片描述

  • 优点:1.通信时延小、2.有序传输、3.没有冲突、4.实时性强

  • 缺点:1.建立连接时间长、2.线路独占,使用效率低、3.灵活性性差、4.无差错控制能力

4.2.2 报文交换

报文发送的过程

  1. 源先根据报文加上ip地址,物理地址等,通过物理层物理层&spm=1001.2101.3001.7020)发送
  2. 交换机收到报文之后,先进行存储,等待链路空闲之后进行转发,但是转发的路径不是固定的,是比较随机的
  3. 最后通过许多交换机最终到达目的地

在这里插入图片描述

  • 优点:1.无需建立连接、2.存储转发,动态分配线路、3.线路可靠性较高、4.线路利用率较高、5.多目标服务

  • 缺点:1.有存储转发时延、2.报文大小不定,需要网络节点由较大缓存空间

4.2.3 分组交换

分组:把大的数据块分割成小的数据块

在这里插入图片描述

  • 优点:1.无需建立连接、2.存储转发,动态分配线路、3.线路可靠性较高、4.线路利用率较高、5.相对于报文交换,存储管理更容易

  • 缺点:1.有存储转发时延、2.需要传输额外的信息量、3.乱序到目的主机时,要对分组排序重组

4.2.4 分组交换&报文交换计算

  • 报文交换:一共三段,每段都需要10000bit/1000bps=10s,三段就是3x10=30s
  • 分组交换:可以分为两段,一个是第一个数据开始发到最后一个数据从源发出,一段是最后一个数据到达目的地。第一段总时间是10000bit/1000bps=10s,第二段总时间是(10/1000)*2=0.02s,所以总时间是10.02s。
  • 理解一下,这里就是报文交换的时候,由于报文没有分割,所以即使先到的数据也不能先发走,只能等到最后一段报文全部到了之后才能一起走,相对于分组交换明显拖慢了前面数据的速度,所以导致报文交换明显慢于分组交换
    可以看到分组交换明显快于报文交换,所以我们通常使用分组交换

在这里插入图片描述

4.2.5 三种数据交换方式比较总结

  • 报文交换分组交换都采用存储转发
  • 传送数据量大,且传送时间远大于呼叫时,选择 电路交换。电路交换传输时延最小
  • 从信道利用率看,报文交换分组交换优于电路交换,其中分组交换时延更小

在这里插入图片描述

4.2.6 分组传输的两种传输方式-数据报与虚电路

  • 数据报方式为网络层提供无连接服务
    • 无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。
  • 虚电路方式为网路层提供连接服务
    • 连接服务:首先为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后拆除连接。

几种传输单元名词辨析

  • 应用层——>报文
  • 传输层——>报文段:对报文进行分割
  • 网络层——>IP数据报,分组 :对报文段封装网络层的IP地址,如果数据报比较大进行分组
  • 数据链路层——>帧:在分组的基础上加头加尾(FCS帧检验序列)
  • 物理层——>比特流
a> 数据报

在这里插入图片描述

b> 虚电路
  • 虚电路将数据报和电路交换方式结合,以发挥两者优点
  • 虚电路:一条源主机到目的主机类似于电路的路径(逻辑连接),路径上所有的结点都要维持这条虚电路的建立,都要维持一张虚电路表,每一项记录了一个打开的虚电路的信息。

通信过程:

在这里插入图片描述

数据报&虚电路对比

在这里插入图片描述

4.3 路由算法以及路由协议

路由算法就是让路由知道收到报文之后下一步怎么走

在这里插入图片描述

路由算法的分类

在这里插入图片描述

分层次的路由选择协议

在这里插入图片描述

4.3.1 RIP协议

通过交换信息构建路由表

在这里插入图片描述

RIP协议和谁交换?多久交换一次?交换什么?

在这里插入图片描述

RIP协议报文格式

在这里插入图片描述

RIP协议特点

  • 就是来回更新路由表,错误信息被覆盖,导致直至达到距离上限强制错误时才可以得知出错
  • RIP协议好消息传得快,坏消息传的慢

在这里插入图片描述

距离向量算法

注释:
为什么改地址?因为图中是从x得到的信息
为什么距离固定+1?因为路由器只从相邻路由器之间获取RIP报文,举例只会是1
为什么下一跳是x就要替换?因为网络环境不断变化,可能这次某个节点挂掉,所以保持最新的
为什么下一跳不是x时有更新和不处理两种手段?因为这样可以提高效率,比原来快就换,比原来慢就保留原来的,也可以理解

在这里插入图片描述

距离向量算法练习1:

在这里插入图片描述

距离向量算法练习2:

在这里插入图片描述

4.3.2 OSPF协议

  • 开放最短路径优先OSPF协议:"开放"标明OSPF协议不是受某一家厂商控制,而是公开发表的:"最短路径优先"是因为使用了Dijkstra提出的最短路径算法SPF
  • OSPF最主要的特征就是使用分布式的链路状态协议
  • OSPF的特点:

在这里插入图片描述

链路状态路由算法

在这里插入图片描述

OSPF的区域

在这里插入图片描述

OSPF的分组

在这里插入图片描述

OSPF的特点

  1. 每隔30min,要刷新一次数据库中的链路状态。
  2. 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当 互联网规模很大时,OSPF协议要比距离向量协议RIP好得多。
  3. OSPF不存在坏消息传的慢的问题,它的收敛速度很快

4.3.3 BGP协议

在这里插入图片描述

BGP协议交换信息的过程

BGP所交换的网络可达性的信息就是要 到达某个网络所要经过的一系列AS。当BGP发言人相互交换了网络可达信息后,各BGP发言人就根据所采用的策略从收到的路由信息中找出各AS的较好路由。

在这里插入图片描述

在这里插入图片描述

BGP协议报文格式

BGP是应用层协议

在这里插入图片描述

BGP协议特点

  • BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到大该目的网络所要经过的各个自治系统序列。
  • 在BGP刚刚运行时,BGP的邻站时交换整个的BGP路由表。但以后只需要在 发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。

BGP-4的四种报文

  1. **OPEN(打开)报文:**用来与相邻的另一个BGP发言人建立关系,并认证发送方。
  2. **UPDATE(更新)报文:**通告新路径或撤销原路径。
  3. **KEEPALIVE(保活)报文:**在无UPDATE时,周期性证实邻站的连通信;也作为OPEN的确认。
  4. **NOTIFICATION(通知)报文:**报告先前报文的差错;也被用于关闭连接。

4.3.4 三种路由协议比较

  • RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文来交换路由信息。
  • OSPF是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如UDP或TCP),而是直接采用IP。
  • BGP是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠的传输,所以采用TCP

在这里插入图片描述

4.4 IP数据报

4.4.1 IP数据报格式

在这里插入图片描述

名称注释大小
版本 Versionipv4或者ipv64位
首部长度 IHL此处数值再乘以4才是真正大小,同时因为IP数据报固定长度为20字节,所以此处最小值为5,即二进制的01014位
区分服务 DSCP + ECN希望获得哪种服务,用的比较少8位
总长度 Total Length首部+数据的长度,最大为2^16-1=6553516位
标识 Identification用来表示是哪一个数据报的分片,不同的分片标识各不相同8位
标志 Flags用来表示是否分片和分片是否结束3位,但实际有用的只有后两位
片偏移 Fragment Offset用来标记分片之后,该分片在原来的数据报的位置,以8字节为单位13位
生存时间 Time To Live即TTL,没经过一个路由器TTL-1,0时自动放弃,根据系统不同默认的TTL不同8位
协议 Protocol用来标记协议名的字段值,如TCP,UDP,ICMP等等8位
首部检验和 Header Checksum检验首部的字段是否出错,出错就丢弃此数据报
源地址 Source IP Address发送方ip地址32位
目的地址 Destination IP Address接收方ip地址32位
可选字段 Options用来排错等安全检测未知,可在0-40位之间
填充将数据报对齐成4字节的整数倍,数值全部为0未知,根据可选字段来定

4.4.2 IP数据报分片

在这里插入图片描述

IP数据报分片例题

  • 计算偏移量时记住是以0开始的就行,以每一篇最开始的除以8得到的数值就是偏移量

在这里插入图片描述

4.5 IPv4地址

  • IP地址:全球唯一的32位/4字节标识符,标识路由器主机的接口。
  • IP地址::={<网络号>,<主机号>}

分类的IP地址

在这里插入图片描述

特殊的IP地址

在这里插入图片描述

在这里插入图片描述

私有IP地址

在这里插入图片描述

路由器对目的地址私有IP地址的数据报一律不进行转发。

4.5.1 网络地址转换NAT

网络地址转换NAT(Network Address Translation):在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址

在这里插入图片描述

注:连接内网和外网,就是找个代理的用它的ip地址与外面收发数据
NAT需要构建NAT转换表,既要存广域网(WAN,外网)也要存局域网(LAN,内网)的ip地址和端口号

4.5.2 子网划分与子网掩码

为什么需要子网划分

  • ip不够用,所以需要额外整个子网扩展ip

在这里插入图片描述

注释:

  • 为什么子网好能全0或者全1:因为CIDR编址(可见下一段)
  • 为什么主机号不能全0或者全1:因为全0代表本网络,全1代表广播分组

在这里插入图片描述

在这里插入图片描述

子网掩码

  • 子网掩码:主机号所对应的位数全都为0,其它位数无论是网络号还是子网号都为1.
  • 子网掩码ip地址逐位相与,就得到子网网络地址。

在这里插入图片描述

子网掩码习题:

在这里插入图片描述

某主机的IP地址为180.80.77.55,子网掩码为255.255.252.0。若该主机向其所在子网发送广播分组,则目的地址为?

解析:目的地址为180.80.79.255。首先广播地址分组的主机号为全1,由子网掩码255.255.252.0可知,子网掩码的网络号为16位,子网号为6位。

在这里插入图片描述

4.5.3 无分类编制CIDR

在这里插入图片描述

构成超网

  • 将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合。
  • 方法:将网络前缀缩短。

在这里插入图片描述

最长前缀匹配

在这里插入图片描述

注:最长前缀匹配就是在计算后符合同一子网的时候,选前缀越长的

4.5.4 ARP协议

在这里插入图片描述

4.5.5 DHCP协议

在这里插入图片描述

4.5.6 ICMP协议

ICMP协议概述

ICMP,IGMP处于网络层和传输层之间,就是为了更好地转发ip数据报和提高交互成功的几率

在这里插入图片描述

五种ICMP差错报告报文

在这里插入图片描述

ICMP差错报告报文数据字段

在这里插入图片描述

不应发送ICMP差错报文的情况

  1. ICMP差错报告报文不再发送ICMP差错报告报文
  2. 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。
  3. 对具有组播地址的数据报都不发送ICMP差错报告报文。
  4. 对具有 特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。

ICMP询问报文

  1. 回送请求和回答报文:主机或路由器向特定目的主机发送的询问,收到此报文的主机必须给源主机或路由器发送回送回答报文。测试目的站是否可达以及了解相关状态
  2. 时间戳请求和回答报文:请某个主机或路由器回答当前的日期和时间。用来进行时钟同步和测量时间
  3. 掩码地址请求和回答报文:不再使用
  4. 路由器询问和通告报文:不再使用

ICMP的应用

  1. ping命令:测试两个主机之间连通性,使用了ICMP回送请求和回答报文
  2. traceroute命令:跟踪一个分组从原点到终点的路径,使用了ICMP时间超过差错报告报文

4.6 IPv6地址

为什么有IPv6?

  • 就是IPV4地址用完了,从根本上增加ip地址数目,之前讲的NAT和CIDR也只是在IPV4的基础上扩展了IPV4地址数目,治标不治本。

4.6.1 IPv6地址表示形式

在这里插入图片描述

4.6.2 IPv6数据报格式

名称作用位数
版本 Version知名协议版本,此处因为是ipv6所以总是64位
优先级 Traffic Class又来区分数据报的类型和优先级8位
流标签 Flow Label和ipv4标识某个数据报分片不同,这是对于一整个数据报流的标记19位
有效载荷长度 Payload Length指的是扩展首部+数据部分的大小,和ipv4的总长度和首部长度都不同,ipv6的首部长度是固定的40字节16位
下一个首部 Next Header基本首部的下一个首部指的是有效载荷里标记的的扩展首部,有效载荷里的扩展首部再指向有效载荷里标记的的扩展首部,直至最后指向数据8位
跳数限制 Hop Limit基本相当于ipv4当中的TTL,每到一个路由器-1.减到0时丢弃7位
源地址 Source Address发送方ipv6地址128位
目标地址 Destination Address接收方ipv6地址128位

在这里插入图片描述

4.6.3 IPv6和IPv4的区别

  • IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间。
  • IPv6将IPv4的校验和字段彻底删除,以减少每跳的处理时间。
  • IPv6将IPv5的可选字段移出首部,变成了 扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率。
  • IPv6支持即插即用(即自动配置),不需要DHCP协议。
  • IPv6首部必须是8B的整数倍,IPv4首部是4B的整数倍。
  • IPv6只能在主机处分片,IPv4可以在路由器和主机处分片。
  • ICMPv6:附加报文类型"分组过大"。
  • IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用。
  • IPv6取消了协议字段,改成下一个首部字段。
  • IPv6取消了总长度字段,改用有效载荷长度字段。
  • IPv6取消了服务类型字段。

4.6.4 IPv6基本地址类型

名称作用要求
单播一对一通信可做源地址,目的地址
多播一对多通信,以前的广播地址当做覆盖所有主机的多播可做目的地址
任播一对多当中的一个通信,看似一对多,实则一对一可做目的地址

4.6.5 IPv6向IPv4过渡的策略

如果是ipv6的数据报到了ipv4,就用ipv4重新封装,把ipv6数据报前面加上ipv4伪装成ipv4数据报继续传输,直至到了ipv6路由再解开ipv4伪装

在这里插入图片描述

4.7 IP组播

什么是组播

单播只能一对一,广播必须一对全部,组播就可以是一对全部中的一部分

在这里插入图片描述

单播

  • 在发送者和每一接收者之间需要单独的数据信道

在这里插入图片描述

多播

  • 组播提高了数据传送效率。减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络(如果有组播路由器的支持)。

在这里插入图片描述

4.7.1 IP组播地址

在这里插入图片描述

硬件组播

就像全F的mac地址代表广播一样,00-10-5E打头的MAC地址就代表组播
7为什么最大是00-10-5E-7F-FF-FF?因为只有最后23位决定

在这里插入图片描述

4.7.2 IGMP协议与组播路由选择协议

IGMP协议

注释:IGMP只能知道有没有组播组成员,对有几个组播组成员,成员在哪个地方都不知道

在这里插入图片描述

IGMP工作的两个阶段

  1. 某主机要加入组播组时,该主机向组播组的组播地址发送一个IGMP报文,声明自己要称为该组的成员。本地组播路由器收到IGMP报文后,要利用组播路由选择协议把这组成员关系发送给因特网上的其它组播路由器。
  2. 本地组播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是组播组的成员。只要有一个主机对某个组相应,那么组播路由器就认为这个组是活跃的;如果经过几次探询后没有一个主机响应,组播路由器就认为本网络上的没有此组播组的主机,因此就不再把这组的成员关系发送给其它的组播路由器。

4.7.3 组播路由选择协议

在这里插入图片描述

组播路由选择协议常使用的三种算法

  • 基于链路状态的路由选择
  • 基于距离-向量的路由选择
  • 协议无关的组播(稀疏/密集)

4.8 移动IP

移动IP不等于动态IP(DHCP获得的)
移动IP的可以让用户不因为地理原因等等,即使不在内网也可以访问内网的东西

移动IP相关术语

  • 移动IP技术是移动结点(计算机/服务器等)以 固定的网络IP地址,实现跨越不同网段的 漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。
  • 移动结点: 具有永久IP地址的移动设备。
  • 归属代理(本地代理): 一个移动结点拥有的就"居所"称为 归属网络,在归属网络中代表移动结点执行移动管理功能的实体叫做归属代理。
  • 外部代理(外地代理):外部网络中帮助移动结点完成移动管理功能的实体称为外部代理。
  • 永久地址(归属地址/主地址): 移动站点在归属网络中的原始地址。
  • 转交地址(辅地址): 移动站点在外部网络使用的临时地址。

移动IP通信过程

在这里插入图片描述

在这里插入图片描述

4.9 网络层设备

路由器的构造

路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组

在这里插入图片描述

路由器的输入端口

在这里插入图片描述

输入端口中的查找和转发功能在路由器的交换功能中是最重要的。

路由器的输出端口

在这里插入图片描述

若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面进入队列的分组由于没有存储空间而只能被丢弃。

路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。

三层设备的区别

  • 路由器: 可以互联两个不同网络层协议的网段。
  • 网桥: 可以互联两个物理层和链路层不同的网段。
  • 集线器: 不能互联两个物理层不同的网段。
能否隔离冲突域能否隔离广播域
物理层设备(傻瓜)(中继器、集线器)××
链路层设备(路人)(网桥、交换机)×
网络层设备(大佬)(路由器)

路由表与路由转发

在这里插入图片描述

5. 传输层

传输层概述

在这里插入图片描述

传输层的两个协议

在这里插入图片描述

传输层的寻址与端口

在这里插入图片描述

应用程序FTPTELNETSMTPDNSTFFPHTTPSNMP
熟知端口号212325536980161
  • 在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络的一个主机和它上面的一个进程。
  • 套接字Socket=(主机IP地址,端口号)

5.1 UDP协议

UDP概述

  • 因为UDP一次发送一个完整报文不会分片,所以需要应用层传输过来的数据不要太大,否则网络层分片任务就很重,但是也不能太小,不然效率较低。
  • UDP适合一些实时应用,因为实时应用延迟要求高,需要立即响应。

在这里插入图片描述

UDP首部格式

在这里插入图片描述

分用时,找不到对应的目的端口号,就丢弃报文,并给发送方发送ICMP"端口不可达"差错报告报文。

UDP校验

这里的伪首部只是用来计算检验和的,计算完了就丢弃,可以见下UDP的校验方式

在这里插入图片描述

UDP校验方式:

  • 在发送端的时候:
    • 就是将每一行(4字节)拆成两部分,左右平均2字节大小,将这两字节数据写成二进制,那么2字节一共就需要2*8=16位。此时检验和没有计算,默认填充0,同时如果数据字段不整齐,则用0补齐,这样就可以写出几十行二进制数,如图中方所示
    • 计算着几十行二进制数按二进制反码运算求和,二进制反码运算可以参考
      二进制反码求和运算
      得到的最后简介再反码,之后将反码之后的放入原来的检验和字段
  • 在接收端的时候:
    • 与发送端的时候不同的是,此时检验和字段不是0了
    • 按照发送端的步骤再将所有数据写成二进制进行二进制反码运算求和
    • 如果最后得到结果全1就是没问题,否则丢弃

在这里插入图片描述

5.2 TCP协议

TCP协议的特点

TCP必须要建立连接之后才可以进行数据交换,所以TCP是面向连接的

在这里插入图片描述

TCP传输数据是随机切割数据的

在这里插入图片描述

TCP报文段首部格式

在这里插入图片描述

  • 6个控制位:
    • 紧急位URG: URG=1时,标明此报文段中有紧急数据,是高优先级的数据,应尽快传送,不用在缓存里排队,配合紧急指针字段使用。
    • 确认位ACK: ACK=1时确认号有效,在连接建立后所有传送的报文段都必须把ACK置为1。
    • 推送位PSH: PSH=1时,接收方尽快交付接收应用进程,不再等到缓存填满再向上交付。
    • 复位RST: RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立传输链接。
    • 同步位SYN: SYN=1时,表明是一个连接请求/连接接收报文。
    • 终止位FIN: FIN=1时,表明此报文段发送方数据已发送完,要求释放连接。
  • 窗口: 指的是发送本报文段的一方的接收窗口,即现在允许对方发送的数据量。
  • 检验和: 检验首部+数据,检验时要加上12B伪首部,第四个字段为6.
  • 紧急指针: URG=1时才有意义,指出本报文段中紧急数据的字节数。
  • 选项: 最大报文段长度MSS,窗口扩大、时间戳、选择确认…

注:窗口就是接收方告诉发送方,还有多少地方(缓存)可以放数据。紧急指针就是告诉TCP从哪里到哪里是紧急数据

5.2.1 TCP连接管理

**TCP连接传输三个阶段:**连接建立——>数据传送——>连接释放

TCP连接的建立采用 客户服务器方式,主动发起连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫服务器。

TCP的连接建立

在这里插入图片描述

注释:

  • 第一段的意思是
    SYN同步序号=1:(A)要建立连接了!
    seq序号=x(随机):因为还没有数据,所以写什么都无所谓

  • 第二段的意思是
    SYN同步序号=1:我(B)同意你(A)建立连接!
    ACK确认序号=1:连接建立了,之后的ACK必须都置为1
    seq序号=y(随机):因为还没有数据,所以写什么都无所谓
    ack确认号=x+1:之前发送方(A)说发送的是第x位数据(虽然发送方是瞎说的),所以我(B)要的是x+1位数据

  • 第三段的意思是
    SYN=0:SYN只有在建立连接时才为1,其他时候均设为0
    ACK=1:连接建立了,之后的ACK必须都置为1
    seq=x+1:我(A)发送的报文段的第一个字节就是x+1
    ack=y+1:之前接收方(B)说发送的是第y位数据(虽然接收方是瞎说的),所以我(A)要的是y+1位数据

注意一下,TCP是双向的,所以不存在绝对不变的发送方接收方,这里的两台主机都同时是发送方和接收方

名词解释:

名称作用
SYN同步序号,用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN=1和ACK=1
FIN用于释放连接,为1时表示发送方没有发送了
ACK为1表示确认号有效,为0表示报文不含确认信息,忽略确认号字段,上面的确认号是否有效就是通过该标识控制的
ack是期望收到对方下一个报文段的第一个数据字节的序号
seqTCP连接中传送的字节流中的每个字节都按顺序编号

TCP三次握手特定导致的SYN洪泛攻击

SYN洪泛攻击发生在OSI第四层,这种方式利用TCP协议的特性,就是三次握手。攻击者发送TCP SYN,SYN是TCP三次握手中的第一个数据包,而当服务器返回ACK后,该攻击者就不对其进行再确认,那这个TCP连接就处于挂起状态,也就是所谓的半连接状态,服务器收不到再确认的话,还会重复发送ACK给攻击者。这样更加会浪费服务器资源。攻击者就对服务器发送非常大量的这种TCP连接,由于每一个都没法完成三次握手,所以在服务器上,这些TCP连接就会因为挂起状态而消耗CPU和内存,最后服务器可能死机,就无法为正常用户提供服务了。

TCP的连接释放

在这里插入图片描述

注释:

  • 第一段的意思是
    FIN=1:(A)要释放连接了!
    seq=u:发了好多数据,这里只是用u指代一下,这里u是有确定值的

  • 第二段的意思是
    ACK=1:连接建立了,之后的ACK必须都置为1
    seq=v:发了好多数据,这里只是用v指代一下,这里v是有确定值的
    ack=u+1:之前发送方(A)说发送的是第u位数据,所以我(B)要的是u+1位数据(尽管此时A已经决定释放连接了)

  • 第三段的意思是
    FIN=1:(B)要释放连接了!
    ACK=1:连接建立了,之后的ACK必须都置为1
    seq=w:发了好多数据,这里只是用w指代一下,这里w是有确定值的
    ack=u+1:之前发送方(A)说发送的是第u位数据,所以我(B)要的是u+1位数据(因为A直接不发数据了,所以第二段第三段的ack都是u+1)

  • 第四段的意思是
    ACK=1:连接建立了,之后的ACK必须都置为1
    seq=u+1:之前发的数据时第u位数据,B也要第u+1位数据,所以我发第u+1位数据
    ack=w+1:之前发送方(B)说发送的是第w位数据,所以我(A)要的是w+1位数据

为什么需要等待计时2MSL?
因为这样可以保证B可以收到A的终止报文段进而进入关闭状态
比如说如果A的第四段报文丢失,那么等待一个MSL之后B就会重传第三段报文,花费小于1MSL之后A就会再收到第三段报文,之后就可以再次向B发送第四段报文提示B关闭连接

5.2.2 TCP可靠传输

TCP是提供可靠传输,UDP是不可靠传输的可以通过应用层解决不可靠传输。

在这里插入图片描述

序号

就是TCP根据下方数据链路层的MTU(最大传输单元)来随即将数据切割成好几端并且进行编号

在这里插入图片描述

确认

发送方每一次发送数据之后都需要接收方进行确认。
TCP使用的是累计确认机制,就是从第一个丢失的字节开始请求丢失的报文段。如图中456丢失,78到达,但仍然请求发送的数据序号是4

在这里插入图片描述

重传

为什么要使用自适应算法?网络环境太复杂,路径又长又短,RTT设置短了照顾不了距离远的,RTT设置长了又导致网络利用率降低,所以使用RTTs

在这里插入图片描述

5.2.3 TCP流量控制

  • 流量控制:让发送方慢点,要让接收方来得及接收。
  • TCP利用滑动窗口机制实现流量控制。
  • 在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,即接收窗口rwnd(接收方设置确认报文段的窗口字段来将rwnd通知给发送方),发送方的 发送窗口取接收窗口rwnd和拥塞窗口cwnd的最小值。

计时器

在本例子中,使用的累计确认机制(一次回复收到ack=201)和三次流量控制机制。
但是有一个情况就是,如果最后B不允许A再发送数据了,B在处理完数据之后想要恢复窗口大小时发送的有rwnd大小的数据报丢了怎么办?此时A有B的指令在前,发送窗口为0无法发送数据,B也在等待A回复,造成了类似死锁的现象
解决方法:使用计时器
在这里插入图片描述

5.2.4 TCP拥塞控制

在这里插入图片描述

拥塞控制四种算法

这里虽然是四种算法,但是通常是两两结合进行使用

在这里插入图片描述

a> 慢开始和拥塞避免

这里开始时以指数形式增长,ssthresh的意思是慢开始门限,代表从这个地方注入的报文段就比较多了,需要开始慢速增加了。
之后一段都是线性增长,每次增加1,直至达到网络拥塞状态
瞬间将cwnd设置为1,同时调整原来的ssthresh的值到之前达到网络拥塞状态的1/2,(这里是24降到12)
重复以上步骤,但是注意此时ssthresh变了之后线性增长的转折点也变了
在这里插入图片描述

b> 快重传和快恢复

这里和上面的慢开始和拥塞避免的一开始步骤差不多,都是先指数增长再转变为线性增长
不同的点是快重传和快恢复算法是在收到连续的ack确认之后执行,这里的ack就是冗余ack,冗余ack的特点是如果多次对某一段请求的数据没有被收到,达到一定数目之后就会立即执行重传。但是此时只是降到现在cwnd的一半,再重新线性增长。而不是像慢开始和拥塞避免的从头开始。

在这里插入图片描述

5.3 传输层常见题目

TCP/UDP区别以及使用场景

  • TCP面向连接(如打电话要先拨号建立连接)
  • UDP是无连接的,即发送数据之前不需要建立连接。
  • TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达
  • UDP尽最大努力交付,即不保证可靠交付。
  • TCP通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。
  • UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。
  • 每一条TCP连接只能是点到点的;
  • UDP支持一对一、一对多、多对一和多对多的交互通信。
  • TCP对系统资源要求较多
  • UDP对系统资源要求较少。

TCP两次握手可以吗

第三次握手主要为了防止已失效的连接请求报文段突然又传输到了服务端,导致产生问题。
比如客户端A发出连接请求,可能因为网络阻塞原因,A没有收到确认报文,于是A再重传一次连接请求。
连接成功,等待数据传输完毕后,就释放了连接。
然后A发出的第一个连接请求等到连接释放以后的某个时间才到达服务端B,此时B误认为A又发出一次新的连接请求,于是就向A发出确认报文段。
如果不采用三次握手,只要B发出确认,就建立新的连接了,此时A不会响应B的确认且不发送数据,则B一直等待A发送数据,浪费资源。

第四次挥手为什么要等待2MSL

1.保证A发送的最后一个ACK报文段能够到达B。
这个ACK报文段有可能丢失,B收不到这个确认报文,就会超时重传连接释放报文段,然后A可以在2MSL时间内收到这个重传的连接释放报文段,接着A重传一次确认,重新启动2MSL计时器,最后A和B都进入到CLOSED状态,若A在TIME-WAIT状态不等待一段时间,而是发送完ACK报文段后立即释放连接,则无法收到B重传的连接释放报文段,所以不会再发送一次确认报文段,B就无法正常进入到CLOSED状态。

2.防止已失效的连接请求报文段出现在本连接中。
A在发送完最后一个ACK报文段后,再经过2MSL,就可以使这个连接所产生的所有报文段都从网络中消失,使下一个新的连接中不会出现旧的连接请求报文段。

如果1、2、3次握手分别丢包,会发生什么

第一次客户端发的 SYN 丢了:
客户端迟迟接不到响应,超时重传。

第二次服务端发的 SYN 和 ACK 丢了
客户端迟迟接不到响应,超时重传

第三次客户端发的 ACK 丢了?
因为第三次发完 ACK 之后,随时接下来会继续往服务端发数据,我看过一篇博客里写的是发数据时会带上 ACK,所以客户端响应的 ACK 包丢了,服务器也能够通过之后的包来建立连接。

第三次故意不发送 ACK 呢?
洪水攻击,服务器在等待第三次握手时是处于半连接状态,也是需要耗费资源的,如果有攻击者故意不发送第三次 ACK,让大量连接处于半连接状态,那么会把服务器资源耗尽,洪水攻击的目的就达到了。

6. 应用层

6.1 应用层概述

因为不同的网络应用之间需要有一个确定的通信规则

在这里插入图片描述

6.1.1 客户/服务器(C/S)模型

在这里插入图片描述

6.1.2 P2P模型

在这里插入图片描述

6.2 域名解析系统DNS

域名

域名就是www.xxx.com,当然这是最简单的一种
.com之后还可以有东西,称之为根
域名从左向右,级别逐渐增高

在这里插入图片描述

域名服务器

DNS服务器有很多台,根据层次结构分为三层,根域名服务器,顶级域名服务器,权限域名服务器
本地域名服务器不算层次结构,特点是里主机比较近,当主机和另一台比较近的主机通信时,就不用走哪些更高级的服务器了
根域名服务器并不是一个域名只有一台,而是一个域名对应多台域名服务器,全世界一共有13个这样的域名,分别是a.rootservers.net,b.rootservers.net,c.rootservers.net,~m.rootservers.net
在权限域名服务器中,虽然看似abc.com比y.abc.com少了一位,但是他们的地位仍是对等的,对应的两台权限域名服务器

在这里插入图片描述

域名解析过程

在这里插入图片描述

递归查询:

主机先是想本地域名服务器发送请求,如果查不到的话,
本地域名服务器向根域名服务器发送请求(找别人),如果还是查不到的话,
根域名域名服务器向顶级域名服务器发送请求(找别人),如果还是查不到的话,
顶级域名服务器向权限域名服务器发送请求(找别人)
可以看到每一次向下一个查询的服务器都变了,不是主机一个个去问,而是服务器自己一个个问下去

迭代查询:

主机先是想本地域名服务器发送请求,如果查不到的话,
本地域名服务器就让主机去向根域名服务器发送请求(主机去找,本地域名给目标根域名服务器的IP地址),如果还是查不到的话,
根域名域名服务器让主机去向对应的顶级域名服务器发送请求(主机去找,根域名给目标顶级域名服务器的IP地址),如果还是查不到的话,
顶级域名服务器让主机去向权限域名服务器发送请求(主机去找,顶级域名给目标权限域名服务器的IP地址)
可以看到这里是主机一个个挨个问的地址

高级缓存:

为了减少多次查询同一个域名的资源浪费,本地域名服务器会存储最近使用的ip地址解析,下次再访问同一个域名就不需要这么多查询步骤了。同时这个高速缓存主机本身也有存储
同时本地域名服务器还可以对顶级域名服务器,权限域名服务器的地址进行缓存,下一次即使是不知道的ip地址,查询也可以更快
高速缓存为了保持正确性,需要定时更新

6.3 文件传输协议(FTP)

文件传送协议FTP(File Transfer Protocol)

在这里插入图片描述

FTP服务器和用户端

在这里插入图片描述

FTP工作原理

为什么有匿名登陆:对于一些公共服务器来说,增加验证阶段就是增加资源开销,减少验证阶段就可以节省资源来更好地服务
主进程和从属进程的区别:主进程是打开端口,让外部发送的数据可以进来,并且将这些数据逐个分配各从属进程。从属进程则是单独为这些数据服务

在这里插入图片描述

先注释一下这里的主进程被忽略掉了,只是没标在上面,不是没有啊
这里客户端和服务器端先建立TCP连接,端口是21,称为控制连接
然后看情况是主动建立连接还是被动建立连接
主动建立连接是指服务器端主动发送请求和客户端进行连接,此时端口号固定是20
被动连接是指客户端发送请求和服务器端建立数据传送连接,此时端口号是不确定,有两者协商得到
数据传输完成之后,数据连接断开,控制连接继续保持,直至两边发送断开请求
在这里插入图片描述

FTP传输模式

  • 文本模式:ASCII模式,以文本序列传输数据。
  • 二进制模式:Binary模式,以二进制序列传输数据。

6.4 电子邮件

电子邮件的信息格式

在这里插入图片描述

组成结构

用户代理的四个功能解释:
撰写就是给用户编辑信件的环境
显示就是可以看到自己写的和自己收的信件内容
处理就是对信件进行操作,包括删除,打印,转发等等
通信就是可以将邮件发送到邮件服务器当中,同时可以从邮件服务器当中读取邮件

邮件服务器的功能注释
邮件服务器端的发送和接受是指从自己的用户代理处接收邮件,之后向对面的邮件服务器发送邮件
邮件服务器的报告邮件发送结果就是投递是否成功这种情况
邮件服务器既可以作为客户端又可以作为服务器端,使用的是C/S方式

协议的功能注释
发邮件用的是SMTP
收邮件的是POP3或者IMAP
在这里插入图片描述

简单邮件传送协议SMTP

这里STMP客户和服务器不是固定死的,可以也可以成为服务器,服务器也可以成为用户,由发送方和接收方决定,发送方就是客户,接收方就是服务器

在这里插入图片描述

在这里插入图片描述

改进SMTP缺点的MIME协议

MIME改善SMTP发送数据的缺点,是SMTP的功能性扩展
MIME协议已经逐渐开始应用到浏览器当中,通过对不同文件类型用不同的标识符标识,来让浏览器读取通过MIME的相关文件

在这里插入图片描述

邮局协议POP3

在这里插入图片描述

网际报文存取协议IMAP

在这里插入图片描述

基于万维网的电子邮件

在这里插入图片描述

6.5 万维网

6.5.1 万维网概述

URL用来标识整个互联网当中的某一个资源(文字,视屏,音频等)的位置

HTTP用来将这些资源传送给用户

HTML帮助设计者来设计页面,让不同设计者设计的页面都可以在界面上显示

在这里插入图片描述

6.5.2 超文本传输协议HTTP

这张图里讲了HTTP的具体过程

服务器通过TCP 80端口来监听HTTP请求

注意HTTP可以不一次性下载完页面的所有资源,可以只下载文本部分,其他音频视频等待用户下一步请求之后再传输

在这里插入图片描述

注:浏览器可以只下载文本部分

HTTP协议的特点

在这里插入图片描述

HTTP的连接方式-持久连接和非持久连接

非持久连接在TCP三次握手的第三次握手时发生,将HTTP请求作为第三次握手的数据部分发给服务器,服务器收到请求之后将HTTP相应报文传输给客户。耗时就是RTT*2+文档传输时间。
缺点就是这样如果再想传输,那么就需要重新建立TCP连接从头开始

持久连接和非持久连接类似,都是在第三次握手时发生,将HTTP请求作为第三次握手的数据部分发给服务器,服务器收到请求之后将HTTP相应报文传输给客户。但是持久连接再需要请资源的时候就不需要建立新的TCP连接了
在这里插入图片描述

持久连接的两种方式——非流水线和流水线

非流水线就是发一个,确认一个,才能再发下一个
流水线就是一个个连着发,然后多个确认
和之前说过的停止等待协议,后退N帧协议和选择重传协议很像,忘了的话可以去复习一下

HTTP的报文结构

开始行用于区别请求报文和响应报文。可以明显的看到两者第一行的东西都不一样

请求报文的方法是指命令,就是对所请求的对象进行什么操作,如获取/删除等等
URL就是之间说的资源标识符
版本是指使用的是什么版本的HTTP协议

CRLF相当于我们程序里面的;,标识一行的结束。同时,在整个首部行结束时,为了区别首部行和实体主体还会有一行单独的CRLF
在这里插入图片描述

这里举了请求报文的例子,和一些常用的状态码

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值