计算机网络 学习笔记

复试过程中学习记录,部分内容有借鉴大佬,有版权问题请评论
阅读前沿:
各章节核心内容 为计网期末考试热门考点,可作为每章的重点总结;计算机网络章节知识点学习–>推荐搭配B站视频计算机网络微课堂 -湖科大
配套资料PDF已上传,自行下载【免费资源】配套资料PDF

计网 目录

各章节核心内容

image-20240307170647729

概述

局域网和广域网之间的差异不仅在于他们覆盖的范围不同,还在于它们所采用的协议和网络技术的不同。
局域网属于广播式网络,采用广播式通信技术
广域网属于点对点网络,采用分组存储转发路由选择机制

  • 各层的功能和传输单位

物理层:传输单位是比特,透明的传输比特流,定义数据终端设备和数据通信设备和物理与逻辑链接方法。
数据链路层:数传单位是帧,将网络层传来的IP数据报组装成帧。成帧、差错控制、流量控制、传输管理。数据链路层在分组上除了增加源物理地址和目的物理地址外,也增加控制信息
网络层:传输单位是数据报或分组,把网络层的协议单元从源端传到目的端,为分组交换网上的不同主机提供通信服务。路由选择、流量控制、拥塞控制、差错控制、网际互联;网络层的传输单位是数据报或分组,因为网络层是第三层,因此增加第三层的地址和控制信息。
传输层:传输单位是 用户数据报(UDP)或报文段(TCP)。负责主机中了两个进程之间的通信,为端到端连接提供可靠的传输服务。流量控制、差错控制、服务质量、数据传输管理;传输层将高层协议产生的数据进行分割,并增加相应的源目的和端口信息。
**会话层:**允许不同主机上的各个进程之间进行会话。
**表示层:**处理在两个通信系统中交换信息的表示方式。采用抽象的的标准方法定义数据结构,采用标准的编码形式。数据压缩、加密、解密
**应用层:**用户与网络的界面。为特定类型的网络应用提供访问OSI参考模型环境的手段。

ISO/OSI参考模型在网络层支持无链接和面向连接的通信,但在传输层仅支持面向连接的通信。
TCP/IP模型在网络层无连接的通信,在传输层支持无连接和面向连接的通信

OSI各层任务和功能、对应的协议

应用层:
所有能和用户交互产生流量的程序

典型应用层服务:
1.文件传输(FTP)
2.电子邮件(SMTP)
3.万维网(HTTP)

表示层:
用于处理在两个通信系统中交换信息的表示方式(语法和语义)

功能:
1.数据格式变换
2.数据加密解密
3.数据压缩和恢复

会话层:
向表示层实体/用户进程提供建立连接表在连接上有序地传输数据。这是会话,也是建立同步(SYN)

功能:
1.建立、管理、终止会话
2.使用校验点可使会话在通信失效时从校验点/同步点继续恢复通信,实现数据同步。

传输层:
负责主机中两个进程的通信,即端到端的通信,为端到端连接提供可靠的传输服务。传输单位是TCP报文段或UDP用户数据报

功能:
1.可靠传输、不可靠传输
2.差错控制
3.流量控制
4.复用分用
复用:多个应用层进程可同时使用下面传输层的服务 分用:传输层把收到的信息分别交付给上面应用层中相应的进程

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

功能:
1.路由选择
2.流量控制
3.差错控制
4.拥塞控制
1.路由选择与分组转发;
2.异构网络互联;
3.拥塞控制。若所有节点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞。解决方法:(1)开环控制,静态;(2)闭环控制,动态。

数据链路层:
主要任务是把网络层传下来的数据报组装成帧,传输单位是

功能:
1.组装成帧
2.差错控制【帧错+位错】
3.流量控制
4.访问(接入)控制【控制对信道的访问】

物理层:
在物理媒体上实现比特流的透明传输,传输单位是比特。
透明传输:指不管所传数据是什么样的比特组合,都应当能够在链路上传送。

功能:
1.定义接口特性
2.定义传输模式(单工、半双工、双工)
3.定义传输速率
4.比特同步
5.比特编码

OSI参考模型 TCP/IP参考模型
网络层 无连接+面向连接 无连接
传输层 面向连接 无连接+面向连接

OSI参考模型与TCP/IP参考模型相同点
1.都分层
2.基于独立的协议栈的概念
3.可以实现异构网络互联

OSI参考模型与TCP/IP参考模型不同点
1.OSI定义三点:服务、协议、接口

2.OSI先出现,参考模型先于协议发明,不偏向特定协议

3.TCP/IP设计之初就考虑到异构网互联问题,将IP作为重要层次

4.见上述表格


物理层

【物理层思维导图】https://img-blog.csdnimg.cn/ef33085b58554b0a85d19358f23c3beb.png

路由器: 隔绝广播域
集线器: 在物理层,既在广播域,又在冲突域
交换机: 在数据链路层,在一个广播域中,不在一个冲突域。

image-20240322172946542

物理层4个特性

1.机械特性:定义物理连接的特性,规定物理连接时所采用的规格、接口形状、引线数目、引脚数量和排列情况。
2.电气特性:规定传输二进制时,线路上信号的电压范围、抗阻匹配、传输速率和距离限制等。
3.功能特性:指明某条线上出现的某一电平表示何种意义,接口部件的信号线的用途。
4.规程特性(过程特性):定义各条物理线路的工作规程和时序关系。

码元等重要名词解释

码元:
是指用一个固定时长的信号波形(数字脉冲),代表不同离散数值的基本波形,是数字通信中数字信号的计量单位,这个时长内的信号称为k进制码元,而该时长称为码元宽度。

  • 当码元的离散状态有M个时(M>2),此时码元为M进制码元。1码元可以携带多个比特的信息量。

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

码元传输速率:
别名码元速率、波形速率、调制速率、符号速率等,他表示单位时间内数字通信系统所传输的码元个数(也可称为脉冲个数或信号变化的次数),单位是波特。1波特表述数字通信系统每秒传输1个码元。这里的码元可以是多进制的,也可以是二进制的,但码元速率与进制数无关1Baud=1码元/s一秒传输多少个码元
信息传输速率:
别名信息速率、比特率等,表示单位时间内数字通信系统传输的二进制码元个数(即比特数),单位是比特/秒。一秒传输多少个比特

关系:
若一个码元携带n bit的信息量,则M Baud的码元传输速率所对应的信息传输速率为M*n bit/s。

影响失真程度的因素:
1.码元传输速率
2.信号传输距离
3.噪声干扰
4.传输媒体质量

image-20240322181521285

image-20240322181204153
☆奈式准则:

在理想低通(无噪声,带宽受限)条件下,为了避免码间串扰,极限码元传输速率为2W Baud,W是信道带宽,单位是Hz。

image-20240322180236659

☆香农定理:

在带宽受限且有噪声的信道中,为了不产生误差,信息的数据传输速率有上限值。

噪声:
存在于所有电子设备和通信信道中,由于噪声随机产生,它的瞬间值有时会很大,因此噪声会使接收端对码元的判决产生错误。但是噪声的影响是相对的,若信号较强,那么噪声影响相对较小。因此,信噪比就很重要。

信噪比=信号的平均功率/噪声的平均功率,常记为S/N,并用分贝dB作为度量单位,即:
信噪比(dB)=10log10(S/N)

image-20240322180336698

三种交换方式

电路交换的优点是:传输时延小、通信实时性强,是用于交互式会话类通信; 缺点是:对突发性通信不适应,系统效率低,不具备存储转发的能力,不能平滑网络通信量,不具备差错控制的能力,无法纠正传输过程中发生的数据错误。

报文交换:采用存储转发,因为报文长度不确定,因此传输时延最高。报文交换会对收到的报文进行检错,因此可以保证无差错的传送。

分组交换:采用存储转发,报文长度固定,传输时延介于上述两者中间,又分为数据报方式和虚电路方式。
数据报方式是面向无连接的,提供的是一种不可靠的服务,不保证分组不被丢,不保证分组到达顺序以及到达时间,当某个结点出现故障时,可以选择其他道路继续通信。因此在出错率很高的传输系统中,选用数据报方式更合适。
虚电路是面向连接的,提供可靠的服务,能保证到的时间的顺序会在目的地和源地之间建立一种逻辑电路,使得从一个源主机发送的通往一个目的地的分组都经过该路,若电路上某个结点出现问题,则这条路就不通了,分组将都无法到达。

image-20240322223639214

  • 中继器和集线器的区别

中继器用来连接速率相同且数据链路层协议也相同的网段,功能是消除数字信号的失真和衰减,原理是信号的再生

集线器相当于多接口的中继器

  • 编码和调制

编码:把数据变化为数字信号的过程

调制:把数据变化为模拟信号的过程

通信的三种基本方式
  • 单向通信(单工通信)—— 只能有一个方向的通信而没有反方向的交互

  • 双向交替通信(半双工通信)—— 通信的双方都可以发送信息,但不能双方同时发送、接收

  • 双向同时通信(全双工通信)—— 通信的双方可以同时发送和接收信息

信道复用技术

频分复用、时分复用、波分复用、码分复用

  • 频分复用:给每个型号分配唯一一个载波频率并通过单一媒体来传输多个独立信号的方法

  • 时分复用:把多个信号服用到单个硬件传输信道,允许每个信号在很短的时间内使用信道,接着再让下一个信号使用

  • 波分复用:就是光的频分复用

  • 码分复用:使用一组包含相互正交的码字的码组携带多路信号,由于每个用户使用经过特殊挑选的不同码型,各用户之间不会造成干扰。


数据链路层

数据链路层概述

数据链路层使用的信道主要有下面的两种类型:

  • 点对点信道:使用一对一的点对点的通信方式

  • 广播信道:使用一对多的广播通信方式,广播通信信道上连接的主机很多,所以必须用专用的共享信道协议来协调这些主机的数据发送。

数据链路层的三个基本问题

数据链路层的三个基本问题:封装成帧、透明传输、差错检测

  1. 封装成帧就是在一段数据前后分别添加首部和尾部。接收端以便从收到的比特流中识别帧的开始与结束,帧定界是分组交换的必然要求;

    各种数据链路层协议都要对帧首尾部格式有明白的规定。每一种协议都限定了帧的数据部分长度上限—–最大传输单元MTU。

  2. 透明传输避免消息符号与帧定界符号相混淆;透明传输”是指可以让无论是哪种比特组合的数据,都可以在数据链路上进行有效传输。这就需要在所传数据中的比特组合恰巧与某一个控制信息完全一样时,能采取相应的技术措施,使接收方不会将这样的数据误认为是某种控制信息。

    解决透明传输的方法:

    发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是 1B)。

    字节填充或字符填充——接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。

    假设转义字符也出现数据其中。那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时。就删除其中前面的一个。

  3. 差错检测:防止差错的无效数据帧,浪费网络资源。采用循环冗余检验的检测技术(CRC),搭配自动重传请求(ARQ)重传出错的帧。 在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。为了保证数据传输的可靠性,在计算机网络数据传输时。必须採用各种差错检測措施。

数据链路层的可靠传输机制

  • 使用确认和超时重传两种机制来完成
  • 【补充】用了CRC检验后,数据链路层的传输成为“无比特差错”传输,但是对于帧丢失、帧重复及帧失序等“传输差错”就需要额外的机制来保证,所以说,采用了CRC检验后,数据链路层的传输还不是可靠的传输。

海明码

海明码 纠错 d位,需要的海明距为 2d+1
海明码 检错 d位,需要的海明距为 d+1

三种自动重传请求的区分
  • 停止-等待协议:发送窗口和接收窗口大小均为1的滑动窗口协议

  • 后退N帧协议:发送方无需再收到上一个帧的ACK便可发送下一帧,可以连续发送。当检测到失序时,要求发送方重发最后一个正确接收的信息帧之后的所有未被确认的帧。

  • 选择重传协议:为了提高传输效率,只重传出现差错或超时的数据帧

已经有了交换机,还需要CSMA/CD协议吗?

不需要,交换机就已经隔离了冲突域,因此不再需要使用冲突检测协议。CMSA/CD协议的功能可概括为“先听后发,边听边发,冲突停发,随即重发”。

网桥和交换机的区别

网桥可以互联不同的物理层、不同的MAC子层以及不同速率的以太网。

交换机相当于一个多端口的网桥

PPP协议的组成(面向字节)

PPP协议有三个组成部分:

  • 一个将IP数据报封装到串行链路的方法
  • 链路控制协议LCP
  • 网络控制协议NCP

透明传输问题

  • 当PPP用在同步传输链路时,协议规定采用硬件来完成比特填充

  • 当PPP用在异步传输时,使用一种特殊的字符填充法

字符填充

将信息字段中出现的每一个0x7E字节转变成为2字节序列(0x7D, 0x5E)
若信息字段中出现一个0x7D的字节,则将其转变成为2字节序列(0x7D, 0x5D)
若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变(0x03 -> 0x7D,0x23)

零比特填充
PPP协议用在SONET/SDH链路时,使用同步传输(一连串的比特连续传送)。这时PPP协议采用零比特填充方法来实现透明传输
在发送端,只要发现有5个连续的1,则立即填入一个0
接收端对帧中的比特流进行扫描,每当发现5个连续1时,就把这5个连续1后的一个0删除

☆PPP协议中的帧格式(口诀:321=8 且 信息不超过1500字节)

image-20240307162354958

注意:

  • PPP提供差错检测,但不提供纠错功能,只保证无差错接收(通过硬件进行CRC校验)
  • PPP是不可靠的传输协议,因此也不使用序号和确认机制
  • PPP仅支持点对点的链路通信,不支持多点线路
  • PPP支持全双工链路
  • PPP的两端可以运行不同的网络层协议。但仍可使用同一个PPP进行通信
  • PPP是面向字节的,当信息字段中出现与标志字段一致的比特组合时,PPP有两种不同的处理方法。若PPP在用在异步线路(默认),则采用字符填充法。若PPP用在SONET/SDH等同步线路,则采用硬件来完成比特填充
CSMA/CD重要特性
  • 只能进行半双工通信,不能进行全双工通信
  • 每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能
  • 这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率
CSMA/CD含义:载波监听多点接入 / 碰撞检测
  • 多点接入:表示许多计算机以多点接入的方式连接在一根总线上
  • 载波监听:指每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞
  • 碰撞检测:计算机边发送数据边检测信道上的信号电压大小,当一个站检测到信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明发生了碰撞。

image-20240323105926466

image-20240323110710879

image-20240308091551392

image-20240323110933096

帧间最小间隔
帧间最小间隔为9.6μs,相当于96bit的发送时间。一个站在检测到总线开始空闲后,还要等待9.6μs才能再次发送数据。这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。

最小帧长的计算

image-20240323111207303

☆CSMA/CD协议中的帧格式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

[参考:https://blog.csdn.net/qq_44709990/article/details/110738788] 以太网MAC帧

高速以太网:
速率大于等于100Mb/s的以太网。
1.100BASE-T以太网
在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE802.3的CSMA/CD协议。支持全双工和半双工,可以在全双工方式下工作而无冲突。
2.吉比特以太网
在光纤或双绞线上传送1Gb/s信号。支持全双工和半双工,可以在全双工方式下工作而无冲突。
3.10吉比特
10吉比特以太网在光纤上传送10Gb/s信号。只支持全双工,无争用问题。

网卡-适配器的作用
网卡是连接计算机与外界局域网之间的接口,也叫通信适配器、网络适配器或网络接口卡NIC(Network Interface Card)。

  • 进行串行/并行转换

  • 对数据进行缓存

  • 在计算机的操作系统安装设备驱动程序

  • 实现以太网协议

​ 网卡上面装有处理器和存储器(包括RAM和ROM)。网卡和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的。而网卡和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行。因此,网卡的一个重要功能就是要进行串行/并行转换。由于网络上的数据率和计算机总线上的数据率并不相同,因此在网卡中必须装有对数据进行缓存的存储芯片。

MAC地址:
每个适配器有一个全球唯一的48位二进制地址,前24位代表厂家(由IEEE规定),后24位厂家自己指定。常用6个十六进制数表示,如02-60-8c-e4-b1-21。

  • MAC地址是以太网的MAC子层所使用的地址-----数据链路层
  • IP地址是TCP/IP体系结构网际层所使用的地址—网际层
  • ARP协议属于TCP/IP体系结构的网际层-----网际层 ——作用是已知设备分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址
MAC帧的格式[口诀:66 1500 24]

常用的以太网MAC帧格式有两种标准

  • DIX Ethernet V2标准

  • IEEE的802.3标准

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

类型字段: 用来标志上一层使用的是什么协议
数据字段:
正式名称是MAC客户数据字段
最小长度64字节-18字节的首部和尾部=数据字段的最小长度46字节
当数据字段的长度小于46字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的MAC帧长不小于64字节

FCS:帧检验序列:在帧的前面插入(硬件生成)的8字节中,第一个字段共7个字节,是前同步码,用来迅速实现MAC帧的比特同步。第二个字段1个字节是帧开始定界符,表示后面的信息就是MAC帧

在以太网中,如果一个结点要发送数据,那么它将以广播的方式进行发送,连在总线上的所有结点,包括它自己,都会收到发送的数据

无效的MAC帧:

  1. 数据字段的长度与长度字段的值不一致;
  2. 帧的长度不是整数个字节
  3. 用收到的帧检验序列FCS查出有差错
  4. 数据字段的长度不再46~1500字节之间
  5. 有效的MAC帧长度为64~1518字节之间

对检查出的无效MAC帧就简单地丢弃,以太网不负责重传丢弃的帧。

虚拟局域网WLAN

一个以太网是一个广播域。当一个以太网包含的计算机太多时,往往会导致:

  • 以太网中出现大量的广播帧,特别是经常使用的ARP和DHCP协议。
  • 对信息保密和安全不利。

通过虚拟局域网(Virtual LAN)可以把一个较大的局域网分割成一些较小的、逻辑上的VLAN,每个VLAN是一个较小的广播域。
802.3ac标准定义了支持VLAN的以太网帧格式的扩展。在以太网帧中插入一个4字节的标识符(在源地址字段和类型字段之间),称为VLAN标签,用来指明发送该帧的计算机属于哪个虚拟互联网。插入标签的帧称为802.1Q帧
由于帧的首部增加了4字节,因此以太网的最大帧长,从原来的1518字节变为1522字节。

(以太网MAC帧)1518 = 源地址6位+目的地址6位+类型2位+数据段1500位+校验码4位

image-20240307221004767

一般划分VLAN的方法:
①基于端口,将交换机的若干端口划分为一个逻辑组,这种方法最简单,最有效,如果主机离开了原来的端口,就可能进入到一个新的子网。
②基于MAC地址,按MAC地址将一些主机划分为一个逻辑子网,当主机的物理位置发生改变时,仍属于原来的子网。
③基于IP地址,根据网络层地址或协议划分VLAN,这样VLAN就可以跨越路由器进行扩展,将多个局域网的主机连接在一起。

局域网最主要的特点就是:网络为一个单位所拥有,且地理范围和站点数目均有限

局域网具有如下的优点

  • 具有广播功能,从一个站点可很方便的访问全网
  • 便于系统的扩展和逐渐的演变,各设备的位置可灵活调整和改变
  • 提高了系统的可靠性、可用性和生存性
广域网和局域网的区别

广域网中的一个重要问题是路由选择分组转发。路由选择协议负责搜索分组从某个结点到目的结点的最佳传输路由,以便构建路由表,然后从路由表中再构造出转发分组的转发表。分组是通过转发表进行转发的。
常见的两种广域网数据链路层协议是PPP协议和HDLC协议。

网络层

网络互联的概念、设备、层次、协议

image-20240323170411831

ARP协议:

ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。其作用是在以太网环境中,数据的传输所依懒的是MAC地址而非IP地址,而将已知IP地址转换为MAC地址的工作是由ARP协议来完成的。物理地址通常是指计算机的网卡地址,也称为MAC(Medai Access Control,媒体访问控制)地址,每块网卡都有唯一的地址。

RARP
RARP(Reverse Address Resolution Protocol,反向地址解析协议)用于动态完成物理地址(MAC地址)向IP地址的转换。

ICMP
ICMP(Internet Control Message Protocol,网际控制报文协议)是一个专门用于发送差错报文的协议,由于IP协议是一种尽力传送的通信协议,即传送的数据可能丢失、重复、延迟或乱序传递,所以需要一种尽量避免差错并能在发生差错时报告的机制,这就是ICMP的功能。

IGMP
IGMP(Internet Group Management Protocol,网际组管理协议)允许Internet中的计算机参加多播,是计算机用做向相邻多目路由器报告多组成员的协议。多目路由器是支持组播的路由器,它向本地网络发送IGMP查询,计算机通过发送IGMP报告来应答查询。多目路由器负责将组播包转发到网络中所有组播成员。

数据报和虚电路的区别

路由算法

RIP练习题

内部网关协议OSPF

使用了Dijkstra提出的最短路径算法SPF;最主要的特征就是使用链路状态协议,而不像RIP那样的距离向量协议

特点
OSPF直接用IP数据报传送
向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法,路由器向所有相邻的路由器发送信息,而每一个相邻的路由器又再将此信息发往其所有的相邻路由器(但不再发送给刚刚发来信息的那个路由器)

发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息(“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”,也称为“代价”)

当链路状态发生变化或每隔一段时间(如30分钟),路由器才用洪泛法发送链路状态信息

链路状态数据库:各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库,这个数据库实际上就是全网的拓扑图,在全网范围内是一致的。
OSPF的链路状态数据库能较快的更新,OSPF的更新过程收敛得快是其重要优点

IP地址划分

注解

0.0.0.0,任意地址,可以表示任意网络,常用于默认路由,或者表示主机接口的地址;

127.XX.X是保留地址,用做环回(Loopback) 地址,环回地址(典型的是127.0.0.1) 向自己发送流量。发送到该地址的数据不会离开设备到网络中,而是直接回送到本主机。该地址既可以作为目标地址,又可以作为源地址,是一个虚IP地址。

网络地址是指主机号全为0的IP地址,广播地址是指主机号全为1的IP地址。这两个地址在网络中是不分配给主机的,因此需要从最大主机数中减去2。

注意:

既可以作为源IP又可以是目的ID的是:127.0.0.1

只能是目的IP:255.255.255.255

只能是源ID:0.0.0.0

路由器对目的地址是私有IP地址的数据报一律不进行转发
不过私有的IP地址通过 网络地址转换NAT可以和外部网络进行通信的,就比如说,你在机房中也是可以用电脑来看电影的,这就说明和外部互连网进行了通信

CIDR **无分类编址**

路由器R0的路由表见下表:若进入路由器R0的分组的目的地址为132.19.237.5,那么该分组应该被转发到哪一个下一跳路由器()

img

img

从上图可以看出,第一个选项前缀匹配8位,第二个选项前缀匹配11位,第三个选项前缀只能匹配21位,第22位和目的地址二进制不同,所以根据最长前缀匹配,选择下一跳的地址为R2。0.0.0.0/0是默认路由,后面再说。

先确定在同一网络,再选择最长前缀

☆CIDR小结

img

image-20240324090042935

一般不使用的特殊IP地址

image-20240324085942594

ip数据报格式

IP数据报格式

ipv4中规定ip地址长度为32位,即有232-1个地址;而ipv6中ip地址的长度为128位

IP数据报各字段含义
版本:占4位。规定IP的版本号,4(IPv4)或6(IPv6)。

首部长度:占4位。首部固定部分长度为20字节,首部长度以4字节为单位,因此常见的值为5,即0101。能表示最大的十进制数是15,即1111,对应60个字节

服务类型/区分服务:占8位。用于对IP数据报进行分类和有区别的转发,在旧标准中该字段中的7位定义为服务类型(TOS),目前的标准中将其定义为区分服务(DS),一些路由器支持区分服务功能,但迄今为止两者都没有在Internet中得到广泛的部署。

总长度:占16位。总长度指IP报文的总字节数,包含IP数据首部和数据部分,IP数据报的最大长度为216-1=65535字节。由于IP数据报的数据部分长度也是可变的,所以需要对报文的总长度进行标识。
由于数据链路层在进行数据帧封装时,存在最大数据长度限制(最大传输单元MTU),如以太网帧的数据字段最大传输单元为1500字节。所以上层IP数据报作为帧的数据部分被封装时,总长度不能超过下层的MTU,因此对超出这个长度的IP数据报要进行分片,总长度字段标出的是分片后的IP报文的总长度。

标识ID:标识一个IP分组,占16位。标识字段与IP数据报分片功能相关,用于标识分片的分组属于哪个数据报,以便在接收节点将分片的IP分组正确地组装为原来的数据报。

标志:占3位。目前仅使用前两位MF和DF。标志位也与IP数据报分片功能有关。

MF:标志位的最低位,说明该标志所在的数据报分片后面是否还有分片。MF=1表示后面还有分片;MF=0表示该分组是数据报的最后一片或未分片
DF:标志位的中间位,说明该数据报是否允许分片。DF=1表示该数据报不可分片;DF=0表示该数据报允许分片。
片偏移:占13位。该字段也与分片功能有关,片偏移指出本分片数据的第一个字节在原数据报数据区中的偏移位置,即距离原数据报数据首部的距离(字节数)。偏移量以8个字节为单位,即每个分片的长度一定是8字节(64位)的整数倍。

生存时间:占8位。用于设置数据报在网络中的最大生存时间,理论上以秒为单位,最大生存时间为255秒。但在实际应用中常以跳数计数,分组每经过一个路由器节点为一跳。

协议:占8位。表示该数据报封装的数据部分所采用的上层协议类型(如TCP、UDP等),仅在到达目的主机时使用,用于指引网络层将报文中数据部分上交给哪个传输层协议处理。

首部校验和:占16位。IP协议只对首部进行校验,数据部分的差错校验在传输层进行。这样传输过程中各中间路由器只需要对报文首部的几十个字节计算校验和,而不必对上千个字节的整个数据报进行运算,可以提高中间节点处理数据报的效率。

源IP地址和目的IP地址:各占32位。分别表示IP数据报的发送主机和接收主机的IP地址。

选项:该字段用于在需要时对首部功能的扩展,主要包括安全、时间戳以及一些用于调试路由算法的功能。根据选项的不同,长度从l字节到40字节不等。由于选项字段使IP首部长度不定,使IP协议处理复杂化,因此,IPv6不再采用选项的做法。

☆ip数据报分片

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ICMP的 5种差错报告报文 2种询问报文

简单解释:

1、终点不可达:不知道如何转发(路由表里没有对应的IP)

2、源点抑制:路由器拥塞,导致丢弃报文

3、时间超过:TTL过期

4、参数问题:数据有问题(有误码)

5、改变路由:让主机下一次换一条更好的路~

ICMP-网际控制报文协议-格式

定长子网掩码

☆可变长子网掩码
二叉树解法

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

IP地址与MAC地址的区别

MAC地址(或物理地址):是数据链路层和物理层使用的地址;

IP地址:是网络层和以上各层使用的地址,是一种逻辑地址

  • MAC地址具有唯一性;IP地址不具有唯一性
  • MAC地址是Ethernet网卡上的地址,长度为48位;IP地址目前主流是32位长
  • IP地址放在IP数据报的首部,MAC地址放在MAC帧的首部
  • 从源主机到目的主机的通信中,IP数据报首部中的源IP地址和目的IP地址始终不变,而数据链路层的帧首部中的源地址和目的地址在随着网络的不同而不断变化。
地址解析协议ARP

作用:从网络层使用的IP地址,解析出在数据链路层使用的硬件地址
ARP高速缓存:存放所在局域网内各主机和路由器的IP地址到硬件地址的映射表

当主机A向本局域网上的主机B发送IP数据报时,现在其ARP高速缓存中查找B的IP地址

如有,就可查出其对应的硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址
如没有,ARP进程在本局域网上广播发送一个ARP请求报文。收到ARP相应分组后,将得到的IP地址到硬件地址的映射写入ARP高速缓存
ARP请求分组:包含发送方硬件地址/发送方IP地址/目标方硬件地址(未知时填1)/目标方IP地址
本地广播ARP请求:路由器不转发ARP请求
ARP响应分组:包含发送方硬件地址/发送方IP地址/目标方硬件地址/目标方IP地址
ARP分组封装在物理网络的帧中传输

ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题,当目的主机和源主机不在同一个局域网,则通过ARP找到本局域网上的某个路由器的硬件地址,剩下的工作由这个路由器完成
发送方是路由器,要把IP数据包转发到本网络上的另一个主机。这时用ARP找到目的主机的硬件地址
发送方是路由器,要把IP数据包转发到另一个网络上的一个主机。这时用ARP找到本网络上另一个路由器的硬件地址。剩下的工作由这个路由器完成。

IGMP协议:
让路由器知道本局域网中是否有主机(的进程)参加或退出了某个组播组。

组播路由选择协议:
目的是找出以源主机为根节点的组播转发树。
常使用的三种算法:
1.基于链路状态的路由选择;
2.基于距离向量的路由选择;
3.协议无关的组播(稀疏/密集)

IPV6
IPV6和IPV4的区别:

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

IPV6地址表示形式:

一般形式:冒号十六进制记法 4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170
压缩形式:4BF5:0000:0000:0000:BA5F:039A:000A:2176->4BF5:0:0:0:0:0:0:BA5F:039A:000A:2176
零压缩:一连串连续的0可以被一对冒号取代 FF05:0:0:0:0:0:0:B3->FF05::B3(双冒号表示法在一个地址中仅可出现一次)

IPv6基本地址类型:

1.单播:一对一通信,可做源地址+目的地址
2.多播:一对多通信,可做目的地址
3.任播:一对多中的一个通信,通常是离得最近的那一个,可做目的地址

IPv6和IPv4过渡的策略:

**1.双栈协议:**双栈协议技术就是指在一台设备上同时启动IPv4协议栈和IPv6协议栈。这样的话,这台设备既能和IPv4网络通道,又能和IPv6网络通道。如果这台设备是一个路由器,那么这台路由器的不同接口上,分别配置了IPv4地址和IPv6地址,并很可能分别连接了IPv4网络和IPv6网络。如果这台设备是一个计算机,那么它将同时拥有IPv4地址和IPv6地址,并同时具备处理这两个协议地址的功能。
**2.隧道技术:**通过使用互联网络的基础设施在网络之间传递数据方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将其他协议的数据帧或包重新封装然后通过隧道发送。

IP数据报的三种传输方式:
1.单播,单播用于发送数据报到单个目的地,且每发送一份单播报文都使用一个单播IP地址作为目的地址。是一种点对点传播方式。
2.广播,广播是指发送数据包到同一个广播或子网内的所有设备的一种数据传输方式,是一种点对多点传输方式。
3.组播(多播),当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能的节点后才开始复制和分发,是一种点对多点传输方式

【待整理】NAT和VPN 相关 作用以及区别

传输层

复用:就是可以重复使用的意思,即各个应用层协议都可以使用TCP协议;

分用:就是TCP根据端口号,将报文分给不同的应用进程。

TCP的连接:
每一条TCP连接有两个端点,TCP连接的端点叫做套接字或插口
端口号拼接到IP地址即构成了套接字
套接字socket=(IP地址:端口号)
每一条TCP连接唯一地被通信两端的两个端点所确定
TCP连接::={socket1,socket2}={(IP1:port1),(IP2:port2)}

常见端口号

image-20240324173446392

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

TCP通过序列号、检验和、确认应答信号、重发控制、连接管理、窗口控制、流量控制、拥塞控制实现可靠性

TCP和UDP的特征以及对比

image-20240324151558702

【补充说明】

传输控制协议TCP
TCP是面向连接的运输层协议
每一条TCP连接只能由两个端点,每一条TCP连接只能是点对点
TCP提供可靠交付的服务
TCP提供全双工通信
面向字节流
TCP中的“流”指的是流入或流出进程的字节序列
“面向字节流”的含义是:虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据看成仅仅是一连串无结构的字节流;
TCP不保证接收方应用程序收到的数据块和发送方应用程序所发出的数据块具有对应大小的关系,但接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样。

用户数据报协议UDP
UDP只在IP数据报服务之上增加了复用和分用的功能以及差错检测的功能

UDP是无连接的
UDP使用尽最大努力交付,即不保证可靠交付
UDP是面向报文的,对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界,一次交付一个完整的报文
UDP没有拥塞控制,因此网络拥塞不会导致主机的发送速率降低,适合实时应用
UDP支持一对一、一对多、多对一和多对多的交互通信

UDP的首部开销小,只有8字节,TCP首部则有20字节

☆UDP格式

UDP仅在 IP 的数据报服务之上增加了两个最基本的服务:复用和分用以及差错检测。

  • UDP 是无连接的,减少开销和发送数据之前的时延。
  • UDP 使用最大努力交付,即不保证可靠交付。
  • UDP 是面向报文的,适合一次性传输少量数据的网络应用。
  • UDP 无拥塞控制,适合很多实时应用。
  • UDP 首部开销小,UDP仅有 8B的开销,TCP 20B。

【TCP和UDP的区别】

TCP面向连接,UDP面向非连接即发送数据前不需要建立链接
TCP提供可靠的服务(数据传输),UDP无法保证
TCP面向字节流,UDP面向报文
TCP数据传输慢,UDP数据传输快
TCP提供全双工通信;

TCP协议的特点
TCP是**面向连接(虚连接)**的传输层协议。
每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。
TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。
TCP提供全双工通信。
发送缓存:准备发送的数据&已发送但尚未收到确认的数据

接收缓存:按序到达但尚未被接受应用程序读取的数据&不按序到达的数据

TCP 面向字节流,TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。
流:流入到进程或从进程流出的字节序列。

TCP 和 UDP 在发送报文时所采用的方式完全不同。UDP报文的长度由发送应用进程决定,而TCP报文的长度则根据接收方给出的窗口值和当前网络拥塞程度来决定。

☆TCP格式

image-20240310164658656

TCP连接传输三个阶段:

在这里插入图片描述
TCP连接的建立采用客户服务器方式,主动发起连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫服务器。

image-20240324172559900

☆三次握手 四次挥手

连接建立阶段(三次握手):
第一次握手:客户端的应用进程主动打开,并向服务端发出请求报文段。其首部中:SYN=1,seq=x。
第二次握手:服务器应用进程被动打开。若同意客户端的请求,则发回确认报文,其首部中:SYN=1,ACK=1,ack=x+1,seq=y。
第三次握手:客户端收到确认报文之后,通知上层应用进程连接已建立,并向服务器发出确认报文,其首部:ACK=1,ack=y+1。当服务器收到客户端的确认报文之后,也通知其上层应用进程连接已建立。
在这个过程中,通信双方的状态如下图,其中CLOSED:关闭状态、LISTEN:收听状态、SYN-SENT:同步已发送、SYN-RCVD:同步收到、ESTAB-LISHED:连接已建立

img

四次挥手

连接释放阶段:
第一次挥手:数据传输结束以后,客户端的应用进程发出连接释放报文段,并停止发送数据,其首部:FIN=1,seq=u。
第二次挥手:服务器端收到连接释放报文段之后,发出确认报文,其首部:ack=u+1,seq=v。此时本次连接就进入了半关闭状态,客户端不再向服务器发送数据。而服务器端仍会继续发送。
第三次挥手:若服务器已经没有要向客户端发送的数据,其应用进程就通知服务器释放TCP连接。这个阶段服务器所发出的最后一个报文的首部应为:FIN=1,ACK=1,seq=w,ack=u+1。
第四次挥手:客户端收到连接释放报文段之后,必须发出确认:ACK=1,seq=u+1,ack=w+1。 再经过2MSL(最长报文端寿命)后,本次TCP连接真正结束,通信双方完成了他们的告别。
在这个过程中,通信双方的状态如下图,其中:ESTAB-LISHED:连接建立状态、FIN-WAIT-1:终止等待1状态、FIN-WAIT-2:终止等待2状态、CLOSE-WAIT:关闭等待状态、LAST-ACK:最后确认状态、TIME-WAIT:时间等待状态、CLOSED:关闭状态

img

【补充说明】

TCP报文段的首部分为固定部分和选项部分,固定部分长20byte,而选项部分长度可变。(若整个首部长度不是4byte的整数倍的话,则需要用填充位来填充)在固定首部中,与本文密切相关的是以下几项:

seq(序号):TCP连接字节流中每一个字节都会有一个编号,而本字段的值指的是本报文段所发送数据部分第一个字节的序号
ack(确认号):表示期望收到的下一个报文段数据部分的第一个字节的编号,编号为ack-1及以前的字节已经收到。
SYN:当本字段为1时,表示这是一个连接请求或者连接接受报文
ACK:仅当本字段为1时,确认号才有效
FIN:用来释放一个连接。当本字段为1时,表示此报文段的发送端数据已发送完毕,要求释放运输连接。

三次握手

ROUND 1:
客户端发送连接请求报文段,无应用层数据。
SYN=1,seq=x(随机)

ROUND 2:
服务器端为该TCP连接分配缓存和变量,并向客户端返回确认报文段,允许连接,无应用层数据。
SYN=1,ACK=1,seq=y(随机),ack=x+1

ROUND 3:
客户端为该TCP连接分配缓存和变量,并向服务器端返回确认的确认,可以携带数据。
SYN=0,ACK=1,seq=x+1,ack=y+1

确认位ACK:ACK=1时确认号有效,在连接建立后所有传送的报文段都必须把ACK置为1。

同步位SYN:SYN=1时,表明是一个连接请求/连接接受报文。

序号 ack:在一个TCP连接中传送的字节流中的每一个字节都按顺序编号,本字段表示本报文段所发送数据的第一个字节的序号。

四次挥手

ROUND 1:

客户端发送连接释放报文段,停止发送数据,主动关闭TCP连接。FIN=1,seq=u 。seq等于前面已发送过的数据的最后一个字节的序号加1,FIN 报文段不携带数据,但同样消耗一个序号。

ROUND 2:
服务器端回送一个确认报文段,客户到服务器这个方向的连接就释放了,TCP连接处于半关闭状态。但服务器若发送数据,客户机仍要接收,即从服务器到客户机这个方向的连接并未关闭

ACK=1,seq=v,ack=u+1

ROUND 3:
服务器端发完数据,就发出连接释放报文段,主动关闭TCP连接

FIN=1,ACK=1,seq=w,ack=u+1

ROUND 4:
客户端回送一个确认报文段,再等到时间等待计时器设置的2MSL(最长报文段寿命)后,连接彻底关闭

ACK=1,seq=u+1,ack=w+1

原因

TCP协议为什么要三次握手?
TCP协议的连接建立需要进行三次握手,而不是两次握手。这是因为TCP协议需要确保双方都已准备好进行数据传输,避免数据丢失或者重复发送等问题
如果只进行两次握手,存在以下问题:
第一次握手: 客户端向服务器发送连接请求,服务器接收到请求并给予确认。
第二次握手: 服务器收到请求后,向客户端发送确认,连接建立完成。

但是这种情况下,如果确认报文在网络中延迟到达,客户端可能会在等待一段时间后重新发送连接请求,而这个连接请求最终可能会到达服务器端。此时,服务器认为这是一个新的连接请求,会向客户端发送确认报文,客户端也会回复确认报文,这样就建立了一个未经授权的连接。这种未经授权的连接可能会引起各种安全问题,因此TCP协议采用了三次握手的方式来避免这种问题的发生。

在三次握手的过程中,客户端向服务器发送第一次握手请求,服务器确认并回复第二次握手请求,客户端再次回复确认,从而建立一个双向确认的连接。通过这种方式,TCP协议可以确保连接的可靠性,避免数据丢失和重复发送等问题。

TCP协议为什么要四次挥手?
TCP 的建立连接过程需要三次握手,因为这样才能保证双方的数据传输能够正常进行,而四次挥手是为了保证双方都知道连接已经关闭。

四次挥手的具体步骤如下:

发送方发送一个 FIN 报文给接收方,请求关闭连接。
接收方收到 FIN 报文后,发送一个 ACK 报文作为确认,并进入CLOSE_WAIT 状态,表示接收到关闭请求,但还有数据需要处理。
接收方完成数据的处理后,发送一个 FIN报文给发送方,表示接收方也准备关闭连接了。
发送方收到 FIN 报文后,发送一个 ACK 报文作为确认,并进入 TIME_WAIT状态,等待 2MSL 的时间后,关闭连接。
第四次挥手中的 TIME_WAIT 状态是为了保证所有数据包都能够被双方正常收发,防止出现网络中的数据包延迟到达等问题,确保连接的可靠性。

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

可以理解为 三次握手进行时,第三步客户机一直不回应,使进程不断挂起。服务器端的资源是在完成第二次握手时分配的,而客户端的资源是在完成第三次握手时分配的,这使得服务器易受到 SYN 洪泛攻击。

TCP超时重传

image-20240324164735142

image-20240324164657431

TCP 可靠传输的机制
  1. 校验 :TCP首部的序号字段用来保证数据能有序提交给应用层,TCP 把数据视为一个无结构但有序的字节流,序号建立在传送的字节流之上,而不建立在报文段之上。(一个字节占一个序号;序号字段一个报文段第一个字节的序号)

  2. 序号 ----------TCP首部的确认号是期望收到对方的下一个报文段的数据的第一个字节的序号;TCP 默认使用累计确认,即TCP只确认数据流中至第一个丢失字节为止的字节(发送方缓存区会继续存储那些已发送但未收到确认的报文段,以便在需要时重传。)

  3. 确认

  4. 重传 ----------有两种事件会导致TCP对报文段进行重传:超时和冗余ACK。

    image-20240324164915193

TCP流量控制

image-20240324161332371

image-20240310194930300

TCP比UDP多提供三个功能,分别是:可靠传输,拥塞能控制和流量控制

窗口
在此之前,必须要明确TCP中三个窗口的概念。TCP连接的双方分别叫做接收方与发送方,接收方维护一个接收窗口,发送方维护一个发送窗口。可以简单的将窗口理解为内存单元。

1.接收窗口:这是接收方根据自己的缓存大小设置的值,并且要告诉发送方,反应接收方的接收能力。

2.拥塞窗口:这是发送方根据自己估算的网络拥塞程度而设置的窗口值,反应的是当前网络的容量。

3.发送窗口:发送窗口=min(拥塞窗口,接收窗口)。我们来理解一下这个公式。拥塞窗口是发送方自己算出来的,接收窗口是接收方告诉发送方的,发送窗口取这两者的最小值,也就是说发送的数据既不能超过网络的容量,也不能超过接收方的容量。

流量控制
流量控制要做的事情:根据自己的接收缓存,告示发送方自己的接收窗口大小,从而动态调整发送方的发送窗口(以字节为单位)大小

流量控制的方法:滑动窗口

1.接收方在确认报文段的窗口字段中将接收窗口rwnd告诉发送方

2.发送方的发送窗口取接收窗口rwnd和拥塞窗口cwnd的最小值

☆TCP 拥塞控制

出现拥塞的条件:
对资源需求的总和 > 可用资源

网络中有许多资源同时呈现供应不足 → 网络性能变坏 → 网络吞吐量将随输入负荷增大而下降

拥塞控制: 防止过多的数据注入到网络中。 全局性

TCP的拥塞控制含义解释
拥塞:某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分【需求大于供给】,网络的性能就要变坏。最坏结果:系统崩溃

TCP采用基于窗口的方法进行拥塞控制,这种方法属于闭环控制方法。

TCP发送方维持一个拥塞窗口CWND,大小取决于网络的拥塞程度,并且动态地变化,发送窗口大小不仅取决于接收方公告的接收窗口,还取决于网络的拥塞状况
真正的发送窗口值=Min(公告窗口值,拥塞窗口值)

接收窗口: 接收方根据接受缓存设置的值,并告知给发送方,反映接收方容量。

拥塞窗口发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络当前容量。

swnd 发送窗口=min(拥塞窗口,接收窗口)

拥塞的判断

  • 重传定时器超时
  • 收到三个相同(重复)的ACK

四种算法的定义

1.慢开始算法:连接刚刚建立时,cwnd指数增长,达到慢开始门限ssthresh时改用拥塞避免

2.拥塞避免算法:门限值之后,cwnd线性增长(加法增大),出现超时(网络拥塞时),调整cwnd=1,ssthresh=cwnd/2(乘法减小),改用慢开始算法

3.快重传算法:不是等到真正出现网络拥塞的时候才执行慢开始,而是接收方收到三次冗余ACK之后就改变为慢开始。

4.快恢复算法:cwnd变为新的门限值,继续执行拥塞避免 慢开始(Slow Start):

在 TCP 建立连接后,发送方会将发送窗口大小初始化为一个较小的值。
发送方起初以指数级别递增发送段的数量,即每次窗口大小翻倍,因此称为慢开始。
当达到一个门限阈值(通常由拥塞窗口大小决定)时,发送方会进入拥塞避免阶段。
拥塞避免(Congestion Avoidance):

在拥塞避免阶段,发送方每经过一个往返时间就将拥塞窗口(发送窗口大小)加1,使得发送段的数量逐渐增加
通过逐渐增加发送段的数量来控制发送速率,以避免网络拥塞。
超时重传(Timeout Retransmission):

如果发送方在一定时间内未收到接收方的确认 ACK,就会认为有段丢失或网络状况不佳,触发超时重传机制。
在超时重传时,将发送窗口大小设置为1,重新发送丢失的数据段。
快重传(Fast Retransmit):

当接收方接收到乱序的报文段,但后续的报文段已经到达时,会立即向发送方发送重复的 ACK 确认。
当发送方连续收到3个相同的确认 ACK 时,会立即重传下一个未收到确认的报文段,而无需等待超时。
快恢复(Fast Recovery):

当发送方收到快重传的确认 ACK 后,会将拥塞窗口大小设置为当前发送窗口大小的一半,并进行拥塞避免。
这样可以快速恢复发送方的发送速率,而不需要执行慢开始的过程。
流量控制(Flow Control):

TCP 使用滑动窗口机制来进行流量控制,确保发送方不会淹没接收方。
接收方通过发送窗口大小告知发送方自己的可接收能力,发送方会根据接收窗口大小来控制发送速率。

应用层

image-20240324173100070

image-20240324192956081

DHCP动态主机配置协议

因特网上的主机需要配置的项目:

IP地址
子网掩码
默认路由器的IP地址
域名服务器的IP地址
互联网广泛使用的动态主机配置协议DHCP提供了即插即用连网的机制
这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与

需要IP地址的主机在启动时就向DHCP服务器广播发送发现报文,这时该主机就成为DHCP客户
本地网络上所有主机都能收到此广播报文,但只有DHCP服务器才回答此广播报文
DHCP服务器现在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的IP地址池中取一个地址分配给该计算机。DHCP服务器的回答报文叫做提供报文。

域名解析系统

【DNS 协议是什么?完整查询过程?为什么选择使用 UDP 协议发起 DNS 查询?】https://zhuanlan.zhihu.com/p/395308366

image-20240324200154121

DNS 系统 采用 C/S 模型 ,使用UDP 协议,占用 53号端口

DNS可分为3部分:层次域名空间、域名服务器 和 解析器 ;

DNS服务的作用:将域名解析成为IP地址 (域名解析);

  • 递归查询 (靠别人):主机访问本地域名服务器,若缓存没有 IP,则本地域名服务器进一步向更高层域名服务器查询;
  • 迭代查询 (靠自己):主机分别向多个服务器发送查询请求。
文件传输协议 FTP 协议

FTP 文件传输,控制连接和数据连接

  • 2个进程:主进程和从属进程
  • 2个连接:控制连接和数据连接
  • 两个端口:21和20

控制连接始终保持
数据连接保持一会
是否使用TCP 20端口建立数据
连接与传输模式有关

主动方式使用TCP 20端口
被动方式由服务器和客户端自行协商 决定(端口>1024)

文件传输协议 FTP 采用 C/S 模型 ,使用 TCP 协议,占用 20、21号端口

在进行文件传输时,FTP 的客户端与服务器之间要建立 两个并行的TCP连接。

① 控制连接,占用端口 21号

控制连接,在整个会话期间一直保持,FTP 客户端通过控制连接给服务器端发送传送请求;

② 数据连接,占用端口 20号

数据连接,用于传输文件。

服务器端的控制进程收到传送请求,就会创建数据连接,在传输完毕之后关闭连接。

image-20240324203351267

image-20240311103055969
电子邮件

  • 简单邮件传送协议 SMTP

TCP连接 端口号25 C/S

SMTP的缺点:
1.SMTP不能传送可执行文件或者其他二进制对象。
2.SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字。
3.SMTP服务器会拒绝超过一定长度的邮件。

[过程]

① 连接建立

发信人先将发送的邮件送到邮件缓存,SMTP 客户端每隔一定时间对其扫描一次;
发现邮件,就同接收方SMTP服务器建立 TCP 连接;
连接建立后,接收方SMTP服务器发出 服务就绪 ,然后 SMTP客户端 向 SMTP服务器 发送 HELLO命令 + 发送方主机名 ;
若有能力接收,就发送 OK命令,否则回答服务不可用。
② 邮件发送

邮件发送从 Mail 命令开始;
SMTP服务器准备好了,就发送 RCPT 命令,并返回相应信息,然后开始传输数据;
③ 连接释放

邮件发送完毕之后,SMTP 客户发送 QUIT 命令,STMP 服务器返回信息,表示同意释放TCP连接。

  • 邮局协议POP3

TCP连接 端口号110 C/S

  • 网际报文存取协议 IMAP

image-20240324201524275

万维网 和 HTTP

image-20240324204318902

image-20240324204032830

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第一章:概述

1.1、计算机网络在信息时代的作用

  • 计算机网络已由一种通信基础设施发展成为一种重要的信息服务基础设施
  • 计算机网络已经像水,电,煤气这些基础设施一样,成为我们生活中不可或缺的一部分
我国互联网发展状况

中国互联网络信息中心CNNIC

请添加图片描述请添加图片描述
请添加图片描述


1.2、因特网概述

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

网络:网络(Network)由若干**结点(Node)和连接这些结点的链路(Link)**组成。

互连(联)网(internet):多个网络通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互连网(互联网)。因此,互联网又称为“网络的网络(Network of Networks)”。

因特网:因特网(Internet)是世界上最大的互连网络(用户数以亿计,互连的网络数以百万计)。

internet与Internet的区别

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

任意把几个计算机网络互连起来(不管采用什么协议),并能够相互通信,这样构成的是一个互连网(internet) ,而不是互联网(Internet)。

2、因特网发展的三个阶段

在这里插入图片描述

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

普通用户是如何接入到因特网的呢?

答:通过ISP接入因特网

ISP可以从因特网管理机构申请到成块的IP地址,同时拥有通信线路以及路由器等联网设备。任何机构和个人只需缴纳费用,就可从ISP的得到所需要的IP地址

因为因特网上的主机都必须有IP地址才能进行通信,这样就可以通过该ISP接入到因特网

中国的三大ISP:中国电信,中国联通和中国移动

在这里插入图片描述

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

一旦某个用户能够接入到因特网,那么他也可以成为一个ISP,所需要做的就是购买一些如调制解调器或路由器这样的设备,让其他用户可以和他相连。

在这里插入图片描述

3、因特网的标准化工作
  • 因特网的标准化工作对因特网的发展起到了非常重要的作用。

  • 因特网在指定其标准上的一个很大的特点是面向公众。

    • 因特网所有的RFC(Request For Comments)技术文档都可从因特网上免费下载;
    • 任何人都可以随时用电子邮件发表对某个文档的意见或建议。
  • 因特网协会ISOC是一个国际性组织,它负责对因特网进行全面管理,以及在世界范围内促进其发展和使用。

    • 因特网体系结构委员会IAB,负责管理因特网有关协议的开发;
    • 因特网工程部IETF,负责研究中短期工程问题,主要针对协议的开发和标准化;
    • 因特网研究部IRTF,从事理论方面的研究和开发一些需要长期考虑的问题。
  • 制订因特网的正式标准要经过一下4个阶段

    1、因特网草案(在这个阶段还不是RFC文档)

    2、建议标准(从这个阶段开始就成为RFC文档)

    3、草案标准

    4、因特网标准

在这里插入图片描述

4、因特网的组成
  • 边缘部分

    由所有连接在因特网上的主机组成(台式电脑,大型服务器,笔记本电脑,平板,智能手机等)。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享

  • 核心部分

    大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。

路由器是一种专用计算机,但我们不称它为主机,路由器是实现分组交换的关键构建
,其任务是转发收到的分组,这是网络核心最重要的部分。

处在互联网边缘的部分就是连接在互联网上的所有的主机。这些主机又称为端系统 (end system)

端系统在功能上可能有很大的差别:

  1. 小的端系统可以是一台普通个人电脑,具有上网功能的智能手机,甚至是一个很小的网络摄像头。

  2. 大的端系统则可以是一台非常昂贵的大型计算机。

  3. 端系统的拥有者可以是个人,也可以是单位(如学校、企业、政府机关等),当然也可以是某个ISP。

补充:

端系统之间通信的含义

“主机 A 和主机 B 进行通信”实际上是指:“运行在主机 A 上的某个程序和运行在主机 B 上的另一个程序进行通信”。即“主机 A 的某个进程和主机 B 上的另一个进程进行通信”。简称为“计算机之间通信”。

端系统之间的通信方式通常可划分为两大类:

客户-服务器方式:

  • 客户 (client) 和服务器 (server) 都是指通信中所涉及的两个应用进程。
  • 客户 - 服务器方式所描述的是进程之间服务和被服务的关系。
  • 客户是服务的请求方,服务器是服务的提供方。

服务请求方和服务提供方都要使用网络核心部分所提供的服务。

对等连接方式:

  • 对等连接 (peer-to-peer,简写为 P2P ) 是指两个主机在通信时并不区分哪一个是服务请求方还是服务提供方。
  • 只要两个主机都运行了对等连接软件 ( P2P 软件) ,它们就可以进行平等的、对等连接通信
  • 双方都可以下载对方已经存储在硬盘中的共享文档。

1.3 三种交换方式

网络核心部分是互联网中最复杂的部分。

网络中的核心部分要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一个主机都能够向其他主机通信(即传送或接收各种形式的数据)。

在网络核心部分起特殊作用的是路由器(router)。

路由器是实现分组交换 (packet switching) 的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。

1、电路交换(Circuit Switching)

传统两两相连的方式,当电话数量很多时,电话线也很多,就很不方便

所以要使得每一部电话能够很方便地和另一部电话进行通信,就应该使用一个中间设备将这些电话连接起来,这个中间设备就是电话交换机

  • 电话交换机接通电话线的方式称为电路交换;

  • 从通信资源的分配角度来看,交换(Switching)就是按照某种方式动态地分配传输线路的资源;

  • 电路交换的三个步骤:

    1、建立连接(分配通信资源)

    2、通话(一直占用通信资源)

    3、释放连接(归还通信资源)

当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。

这是因为计算机数据是突发式地出现在传输线路上的。

所以计算机通常采用的是分组交换,而不是线路交换

在这里插入图片描述

2、分组交换(Packet Switching)

通常我们把表示该消息的整块数据成为一个报文

在发送报文之前,先把较长的报文划分成一个个更小的等长数据段,在每一个数据段前面。加上一些由必要的控制信息组成的首部后,就构成一个分组,也可简称为“包”,相应地,首部也可称为“包头”。

首部包含了分组的目的地址

分组从源主机到目的主机,可走不同的路径。

发送方

  • 构造分组
  • 发送分组

路由器

  • 缓存分组
  • 转发分组
  • 简称为“分组转发”

在路由器中的输入和输出端口之间没有直接连线。

路由器处理分组的过程是:

  1. 把收到的分组先放入缓存(暂时存储);
  2. 查找转发表,找出到某个目的地址应从哪个端口转发;
  3. 把分组送到适当的端口转发出去。

接收方

  • 接收分组
  • 还原报文

在这里插入图片描述

3、报文交换(Message Switching)

报文交换中的交换结点也采用存储转发方式,但报文交换对报文的大小没有限制,这就要求交换结点需要较大的缓存空间。报文交换主要用于早期的电报通信网,现在较少使用,通常被较先进的分组交换方式所取代

三种交换方式的对比??

假设A,B,C,D是分组传输路径所要经过的4个结点交换机,纵坐标为时间

分析:

电路交换:

  • 通信之前首先要建立连接;连接建立好之后,就可以使用已建立好的连接进行数据传送;数据传送后,需释放连接,以归还之前建立连接所占用的通信线路资源。

  • 一旦建立连接,中间的各结点交换机就是直通形式的,比特流可以直达终点;

报文交换:

  • 可以随时发送报文,而不需要事先建立连接;整个报文先传送到相邻结点交换机,全部存储下来后进行查表转发,转发到下一个结点交换机。
  • 整个报文需要在各结点交换机上进行存储转发,由于不限制报文大小,因此需要各结点交换机都具有较大的缓存空间。

分组交换:

  • 可以随时发送分组,而不需要事先建立连接。构成原始报文的一个个分组,依次在各结点交换机上存储转发。各结点交换机在发送分组的同时,还缓存接收到的分组。
  • 构成原始报文的一个个分组,在各结点交换机上进行存储转发,相比报文交换,减少了转发时延,还可以避免过长的报文长时间占用链路,同时也有利于进行差错控制。

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


1.4 计算机网络的定义和分类

定义
  • 计算机网络的精确定义并未统一
  • 计算机网络的最简单的定义是:一些接的、自治的计算机的集合
    • 互连:是指计算机之间可以通过有线或无线的方式进行数据通信;
    • 自治:是指独立的计算机,他有自己的硬件和软件,可以单独运行使用;
    • 集合:是指至少需要两台计算机;
  • 计算机网络的较好的定义是:计算机网络主要是由一些通用的,可编程的硬件(一定包含有中央处理机CPU)互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用
    • 计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机等智能硬件。
    • 计算机网络并非专门用来传送数据,而是能够支持很多种的应用(包括今后可能出现的各种应用)。
分类

按交换技术分类:

  • 电路交换网络
  • 报文交换网络
  • 分组交换网络

按使用者分类:

  • 公用网
  • 专用网:如军队,铁路,电力等系统均有本系统的专用网。

按传输介质分类:

  • 有线网络
  • 无线网络

按覆盖范围分类:

  • 广域网WAN(Wide Area Network)

作用范围通常为几十到几千公里,因而有时也称为远程网(long haul network)。广域网是互联网的核心部分,其任务是通过长距离(例如,跨越不同的国家)运送主机所发送的数据。

  • 城域网MAN

作用范围一般是一个城市,可跨越几个街区甚至整个城市

  • 局域网LAN

一般用微型计算机或工作站通过高速通信线路相连(速率通常在 10 Mbit/s 以上),但地理上范围较小(1 km 左右)

  • 个域网PAN

就是在个人工作的地方把个人使用的电子设备用无线技术连接起来的网络。

按拓扑结构分类:

  • 总线型网络

在这里插入图片描述

  • 星型网络
    在这里插入图片描述

  • 环形网络

在这里插入图片描述

  • 网状型网络
    在这里插入图片描述

1.5 计算机网络的性能指标

速率(注意转换的数量级)

在这里插入图片描述

带宽

在这里插入图片描述

吞吐量

在这里插入图片描述

带宽1 Gb/s的以太网,代表其额定速率是1 Gb/s,这个数值也是该以太网的吞吐量的绝对上限值。因此,对于带宽1 Gb/s的以太网,可能实际吞吐量只有 700 Mb/s,甚至更低。

注意:吞吐量还可以用每秒传送的字节数或帧数表示

时延

时延时指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。

网络时延由几部分组成:

  • 发送时延

主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。

  • 传播时延

电磁波在信道中传播一定的距离需要花费的时间。

  • 处理时延

主机或路由器在收到分组时要花费一定时间进行处理

  • 排队时延

分组在进过网络传输时,要经过许多路由器。但分组在进入路由器后要先在输入队列中排队等待处理。

有时会把排队时延看成处理时延 一部分

总时延 = 发送时延 + 传播时延 + 处理时延 (处理时延 + 排队时延)

在这里插入图片描述

当处理时延忽略不计时,发送时延 和 传播时延谁占主导,要具体情况具体分析!!
在这里插入图片描述
在这里插入图片描述

时延带宽积

时延带宽积 = 传播时延 * 带宽

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

往返时间

互联网上的信息不仅仅单方向传输而是双向交互的。因此,我们有时很需要知道双向交互一次所需的时间:RTT(往返时间)

利用率

利用率有信道利用率网络利用率两种。
在这里插入图片描述

丢包率

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


1.6 计算机网络体系结构

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

如今用的最多的是TCP/IP体系结构,现今规模最大的、覆盖全球的、基于TCP/IP的互联网并未使用OSI标准。

TCP/IP体系结构相当于将OSI体系结构的物理层数据链路层合并为了网络接口层,并去掉了会话层表示层

TCP/IP在网络层使用的协议是IP协议,IP协议的意思是网际协议,因此TCP/IP体系结构的网络层称为网际层

在用户主机的操作系统中,通常都带有符合TCP/IP体系结构标准的TCP/IP协议族。

而用于网络互连的路由器中,也带有符合TCP/IP体系结构标准的TCP/IP协议族。

只不过路由器一般只包含网络接口层和网际层。

网络接口层:并没有规定具体内容,这样做的目的是可以互连全世界各种不同的网络接口,例如:有线的以太网接口,无线局域网的WIFI接口等。

网际层:它的核心协议是IP协议。

运输层:TCP和UDP是这层的两个重要协议。

应用层:这层包含了大量的应用层协议,如 HTTP , DNS 等。

**IP协议(网际层)可以将不同的网络接口(网络接口层)进行互连,并向其上的TCP协议和UDP协议(运输层)**提供网络互连服务

TCP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的相应协议提供可靠的传输服务。

UDP协议在享受IP协议提供的网络互连服务的基础上,可向应用层的相应协议提供不可靠的传输服务。

TCP/IP体系结构中最重要的是IP协议TCP协议,因此用TCP和IP来表示整个协议大家族。

教学时把TCP/IP体系结构的网络接口层分成了物理层数据链路层
在这里插入图片描述
在这里插入图片描述

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

物理层问题
在这里插入图片描述

这图说明

  • 第一,严格来说,传输媒体并不属于物理层
  • 计算机传输的信号,并不是图示的方波信号

这样举例只是让初学者容易理解

数据链路层问题

在这里插入图片描述
网络层问题

在这里插入图片描述

运输层问题
在这里插入图片描述

如何标识与网络通信相关的应用进程:一个分组到来,我们应该交给哪个进程处理呢?浏览器进程还是QQ进程

应用层问题

在这里插入图片描述

应用层该用什么方法(应用层协议)去解析数据

总结
在这里插入图片描述

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

例子:主机的浏览器如何与Web服务器进行通信

解析:

主机和Web服务器之间基于网络的通信,实际上是主机中的浏览器应用进程与Web服务器中的Web服务器应用进程之间基于网络的通信

体系结构的各层在整个过程中起到怎样的作用? !!

1、发送方发送

第一步:

  • 应用层按照HTTP协议的规定构建一个HTTP请求报文
  • 应用层将HTTP请求报文交付给运输层处理

第二步:

  • 运输层HTTP请求报文添加一个TCP首部,使之成为TCP报文段
  • TCP报文段的首部格式作用是区分应用进程以及实现可靠传输
  • 运输层将TCP报文段交付给网络层处理
    在这里插入图片描述

第三步:

  • 网络层TCP报文段添加一个IP首部,使之成为IP数据报
  • IP数据报的首部格式作用是使IP数据报可以在互联网传输,也就是被路由器转发
  • 网络层IP数据报交付给数据链路层处理
    在这里插入图片描述

第四步:

  • 数据链路层IP数据报添加一个首部和一个尾部,使之成为 (图示右边为首部,左边为尾部)
  • 首部的作用主要是为了让能够在一段链路上或一个网络上传输,能够被相应的目的主机接收
  • 尾部的作用是让目的主机检查所接收到的是否有误码
  • 数据链路层交付给物理层
    在这里插入图片描述

第五步:

  • 物理层先将看做是比特流,这里的网络N1假设是以太网,所以物理层还会给该比特流前面添加前导码
  • 前导码的作用是为了让目的主机做好接收帧的准备
  • 物理层将装有前导码比特流变换成相应的信号发送给传输媒体
    在这里插入图片描述

第六步:

  • 信号通过传输媒体到达路由器

在这里插入图片描述

2、路由器转发

在路由器中

  • 物理层信号变为比特流,然后去掉前导码后,将其交付给数据链路层
  • 数据链路层首部尾部去掉后,将其交付给网络层,这实际交付的是IP数据报
  • 网络层解析IP数据报首部,从中提取目的网络地址

在路由器中

  • 提取目的网络地址后查找自身路由表。确定转发端口, 以便进行转发
  • 网络层IP数据报交付给数据链路层
  • 数据链路层IP数据报添加一个首部和一个尾部,使之成为
  • 数据链路层将帧交付给物理层
  • 物理层先将看成比特流,这里的网络N2假设是以太网,所以物理层还会给该比特流前面添加前导码
  • 物理层将装有前导码比特流变换成相应的信号发送给传输媒体,信号通过传输媒体到达Web服务器

3、接收方接收

和发送方(主机)发送过程的封装正好是反着来

在Web 服务器上

  • 物理层信号变换为比特流,然后去掉前导码后成为,交付给数据链路层
  • 数据链路层首部尾部去掉后成为IP数据报,将其交付给网络层
  • 网络层IP数据报首部去掉后成为TCP报文段,将其交付给运输层
  • 运输层TCP报文段首部去掉后成为HTTP请求报文,将其交付给应用层
  • 应用层HTTP请求报文进行解析,然后给主机发回响应报文

发回响应报文的步骤和之前过程类似

4、计算机网络体系结构中的专用术语

以下介绍的专用术语来源于OSI的七层协议体系结构,但也适用于TCP/IP的四层体系结构和五层协议体系结构

实体

在这里插入图片描述

协议

在这里插入图片描述

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

协议三要素:

  • 语法:定义所交换信息的格式
  • 语义:定义收发双方所要完成的操作
  • 同步:定义收发双发的时序关系

在这里插入图片描述

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

OSI参考模型的功能和作用

OSI参考模型分为七层:自下而上分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

1、物理层
物理层的传输单位是比特,任务是透明的传输比特流,功能是在物理媒体上为数据端设备透明地传输原始比特流。
物理层的接口标准有很多,如EIA-232C、EIA/TIA RS-449以及CCITT的X.21等。

2、数据链路层
数据链路层的传输单位是帧,任务是将网络层传来的IP数据报组装成帧,功能是封装成帧、透明传输、差错控制、流量控制等。
数据链路层的协议有:SDLC、HDLC、PPP、STP和帧中继等等。

3、网络层
网络层的传输单位是数据报,任务是将网络层的协议数据单元从源端传到目的端,为分组交换网上的不同主机提供通信服务功能是对分组进行路由选择,并且实现流量控制、拥塞控制、差错控制和网际互连等。
网络层的协议有:IP、IPX、ICMP、ARP、OSPF、IGMP和RARP等等

4、传输层
传输层的传输单位是报文段(TCP)或者用户数据报(UDP),任务是负责主机中两个进程之间的通信,功能是为端到端提供可靠的传输服务,为端到端提供流量控制、差错控制、服务质量和数据传输管理等等。
传输层的协议有:TCP和UDP

5、会话层
会话层的任务是允许主机上的各个进程之间进行会话,会话层利用传输层提供的端到端的服务,向表示层提供它的增值服务。

6、表示层
表示层主要处理在两个通信系统中交换信息的表示方式。数据压缩、加密和解密也是表示层可提供的数据表示变换功能。

7、应用层
应用层是OSI参考模型的最高层,是用户和网络的界面。应用层为特定类型的网络应用提供访问OSI参考模型环境的手段。
应用层的协议有很多,如FTP、SMTP、HTTP等等。

1.物理层,将比特流送到物理介质上传送;

②数据链路层,在链路上无差错一帧一帧传送信息;

③网络层:分组传输和路由选择;

④运输层,从端到端经网络透明地传输报文;

⑤会话层,会话的管理和数据传输同步;

⑥表示层,数据格式的转换;

⑦应用层,与用户应用程序的接口

第二章:物理层

2.1、物理层的基本概念

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


2.2、物理层下面的传输媒体

传输媒体也称为传输介质或传输媒介,他就是数据传输系统中在发送器和接收器之间的物理通路。传输媒体课分为两大类,即导引型传输媒体非导引型传输媒体

传输媒体不属于计算机网络体系结构的任何一层。如果非要将它添加到体系结构中,那只能将其放置到物理层之下。

导引型传输媒体

在导引型传输媒体中,电磁波被导引沿着固体媒体传播。

同轴电缆

在这里插入图片描述

双绞线

在这里插入图片描述

光纤

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

多模光纤

  • 可以存在多条不同角度入射的光线在一条光纤中传输。这种光纤就称为多模光纤

单模光纤

  • 若光纤的直径减小到只有一个光的波长,则光纤就像一根波导那样,它可使光线一直向前传播,而不会产生多次反射。这样的光纤称为单模光纤
    在这里插入图片描述

电力线

在这里插入图片描述

非导引型传输媒体

非导引型传输媒体是指自由空间。

无线电波

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

在这里插入图片描述

红外线

在这里插入图片描述

可见光

LIFI

在这里插入图片描述


2.3、传输方式

串行传输和并行传输

串行传输

  • 数据是一个比特一个比特依次发送的,因此在发送端与接收端之间,只需要一条数据传输线路即可

并行传输

  • 一次发送n个比特,因此,在发送端和接收端之间需要有n条传输线路

  • 并行传输的优点是比串行传输的速度n倍,但成本高

数据在传输线路上的传输采用是串行传输,计算机内部的数据传输常用并行传输

在这里插入图片描述

同步传输和异步传输

同步传输

  • 数据块以稳定的比特流的形式传输。字节之间没有间隔
  • 接收端在每个比特信号的中间时刻进行检测,以判别接收到的是比特0还是比特1
  • 由于不同设备的时钟频率存在一定差异,不可能做到完全相同,在传输大量数据的过程中,所产生的判别时刻的累计误差,会导致接收端对比特信号的判别错位

所以要使收发双发时钟保持同步

异步传输

  • 以字节为独立的传输单位,字节之间的时间间隔不是固定
  • 接收端仅在每个字节的起始处对字节内的比特实现同步
  • 通常在每个字节前后分别加上起始位和结束位

在这里插入图片描述

单向通信(单工)、双向交替通信(半双工)和双向同时通信(全双工)

在许多情况下,我们要使用“信道(channel)”这一名词。信道和电路并不等同。信道一般都是用来表示向某一个方向传送信息的媒体。因此,一条通信电路往往包含一条发送信道和一条接收信道。

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

单向通信

又称为单工通信,即只能有一个方向的通信而没有反方向的交互。无线电广播或有线电以及电视广播就属于这种类型

双向交替通信

又称为半双工通信,即通信的双方可以发送信息,但不能双方同时发送(当然也就不能同时接收)。这种通信方式使一方发送另一方接收,过一段时间后可以再反过来

双向同时通信

又称为全双工通信,即通信的双发可以同时发送和接收信息。

单向通信只需要一条信道,而双向交替通信双向同时通信则需要两条信道(每个方向各一条)

双向同时通信的传输效率最高

在这里插入图片描述

2.4、编码与调制

常用术语

  • 数据 (data) —— 运送消息的实体。

  • 信号 (signal) —— 数据的电气的或电磁的表现。

  • 模拟信号 (analogous signal) —— 代表消息的参数的取值是连续的。

  • 数字信号 (digital signal) —— 代表消息的参数的取值是离散的。

  • 码元 (code) —— 在使用时间域(或简称为时域)的波形表示数字信号时,代表不同离散数值的基本波形。

  • 基带信号(即基本频带信号)—— 来自信源的信号。像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号。

  • 基带信号往往包含有较多的低频成分,甚至有直流成分,而许多信道并不能传输这种低频分量或直流分量。因此必须对基带信号进行调制 (modulation)。

在计算机网络中,常见的是将数字基带信号通过编码或调制的方法在相应信道进行传输
在这里插入图片描述

传输媒体与信道的关系

信道的几个基本概念

  • 信道 —— 一般用来表示向某一个方向传送信息的媒体。
  • 单向通信(单工通信)——只能有一个方向的通信而没有反方向的交互。
  • 双向交替通信(半双工通信)——通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。
  • 双向同时通信(全双工通信)——通信的双方可以同时发送和接收信息。

严格来说,传输媒体不能和信道划等号

对于单工传输,传输媒体只包含一个信道,要么是发送信道,要么是接收信道

对于半双工和全双工,传输媒体中要包含两个信道,一个发送信道,另一个是接收信道

如果使用信道复用技术,一条传输媒体还可以包含多个信道

常用编码

不归零编码

在这里插入图片描述

  • 正电平表示比特1/0

  • 负电平表示比特0/1

中间的虚线是零电平,所谓不归零编码,就是指在整个码元时间内,电平不会出现零电平

实际比特1和比特0的表示要看现实怎么规定

https://blog.csdn.net/Aileenvov/article/details/135044057

详解码元,传输速率的计算

【补充说明】一个码元就是一个脉冲信号,一个脉冲信号有可能携带1bit数据,也有可能携带2bit数据、4bit数据!你发送一个脉冲信号,如果就可以携带4bit数据,肯定发送速率更快啊!

那么怎么实现一个脉冲信号就能携带多个bit数据呢?就需要一定的技术了,比如设置模拟信号中信号的频率、相位、振幅啥的。举个例子:把振幅分成四种,低(00)、中(01)、高(10)、很高(11),这样我发一个脉冲信号,它的振幅是低,那就说明发送的是00(也就是2bit),它的振幅是中(01),发送的就是01(也就是2bit)……也就实现了一个脉冲信号,携带2bit的功能…(举个不恰当的例子让大家理解而已,明白啥意思就行)

再说一次,一个码元就是一个脉冲信号!波特率指的就是1秒能发送多少个码元,也就是1秒能发送多少个脉冲信号!

一个码元能携带1bit数据,那么比特率 = 波特率!

一个码元能携带2bit数据,那么比特率 = 2倍的波特率!

一个码元能携4bit数据,那么比特率 =4倍的波特率!

这需要发送方的发送与接收方的接收做到严格的同步

  • 需要额外一根传输线来传输时钟信号,使发送方和接收方同步,接收方按时钟信号的节拍来逐个接收码元
  • 但是对于计算机网络,宁愿利用这根传输线传输数据信号,而不是传输时钟信号

由于不归零编码存在同步问题,因此计算机网络中的数据传输不采用这类编码!

归零编码

在这里插入图片描述

归零编码虽然自同步,但编码效率低

曼彻斯特编码

在每个码元时间的中间时刻,信号都会发生跳变

  • 负跳变表示比特1/0
  • 正跳变表示比特0/1
  • 码元中间时刻的跳变即表示时钟,又表示数据

实际比特1和比特0的表示要看现实怎么规定

传统以太网使用的就是曼切斯特编码

在这里插入图片描述

差分曼彻斯特编码

在这里插入图片描述

在每个码元时间的中间时刻,信号都会发送跳变,但与曼彻斯特不同

  • 跳变仅表示时钟
  • 码元开始处电平是否变换表示数据
    • 变化表示比特1/0
    • 不变化表示比特0/1

实际比特1和比特0的表示要看现实怎么规定

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

总结

调制

数字信号转换为模拟信号,在模拟信道中传输,例如WiFi,采用补码键控CCK/直接序列扩频DSSS/正交频分复用OFDM等调制方式。

模拟信号转换为另一种模拟信号,在模拟信道中传输,例如,语音数据加载到模拟的载波信号中传输。频分复用FDM技术,充分利用带宽资源。

基本调制方法

在这里插入图片描述

  • 调幅AM:所调制的信号由两种不同振幅的基本波形构成。每个基本波形只能表示1比特信息量。
  • 调频FM:所调制的信号由两种不同频率的基本波形构成。每个基本波形只能表示1比特信息量。
  • 调相PM:所调制的信号由两种不同初相位的基本波形构成。每个基本波形只能表示1比特信息量。

但是使用基本调制方法,1个码元只能包含1个比特信息

混合调制

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

上图码元所对应的4个比特是错误的,码元不能随便对应4个比特

码元

在使用时间域的波形表示数字信号时,代表不同离散数值的基本波形。
在这里插入图片描述

2.5、信道的极限容量

  • 任何实际的信道都不是理想的,在传输信号时会产生各种失真以及带来多种干扰。
  • 码元传输的速率越高,或信号传输的距离越远,或传输媒体质量越差,在信道的输出端的波形的失真就越严重。
    在这里插入图片描述

失真的原因:

  • 码元传输的速率越高
  • 信号传输的距离越远
  • 噪声干扰越大
  • 传输媒体质量越差

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

奈氏准则和香农公式对比:

在这里插入图片描述

在这里插入图片描述


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

补充:信道复用技术

本节内容视频未讲到,是《计算机网络(第7版)谢希仁》物理层的内容

频分复用、时分复用和统计时分复用

复用 (multiplexing) 是通信技术中的基本概念。

它允许用户使用一个共享信道进行通信,降低成本,提高利用率。

频分复用 FDM (Frequency Division Multiplexing)

  • 将整个带宽分为多份,用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。
  • 频分复用的所有用户在同样的时间占用不同的带宽资源(请注意,这里的“带宽”是频率带宽而不是数据的发送速率)。

时分复用TDM (Time Division Multiplexing)

  • 时分复用则是将时间划分为一段段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙。

  • 每一个用户所占用的时隙是周期性地出现(其周期就是TDM帧的长度)的。

  • TDM 信号也称为等时 (isochronous) 信号。

  • 时分复用的所有用户在不同的时间占用同样的频带宽度。

  • 时分复用可能会造成线路资源的浪费

    • 使用时分复用系统传送计算机数据时,由于计算机数据的突发性质,用户对分配到的子信道的利用率一般是不高的。

统计时分复用 STDM (Statistic TDM)

波分复用

波分复用 WDM(Wavelength Division Multiplexing)

码分复用

码分复用 CDM (Code Division Multiplexing)

  • 常用的名词是码分多址 CDMA (Code Division Multiple Access)。
  • 各用户使用经过特殊挑选的不同码型,因此彼此不会造成干扰。
  • 这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。

第三章:数据链路层

习题练习 参考

https://blog.csdn.net/qq_45741986/article/details/123457013

3.1、数据链路层概述

概述

链路是从一个结点到相邻结点的一段物理线路,数据链路则是在链路的基础上增加了一些必要的硬件(如网络适配器)和软件(如协议的实现)
在这里插入图片描述

网络中的主机、路由器等都必须实现数据链路层

局域网中的主机、交换机等都必须实现数据链路层

从层次上来看数据的流动

在这里插入图片描述

仅从数据链路层观察帧的流动

主机H1 到主机H2 所经过的网络可以是多种不同类型的

注意:不同的链路层可能采用不同的数据链路层协议

数据链路层使用的信道

数据链路层属于计算机网路的低层。数据链路层使用的信道主要有以下两种类型:

  • 点对点信道
  • 广播信道

局域网属于数据链路层

局域网虽然是个网络。但我们并不把局域网放在网络层中讨论。这是因为在网络层要讨论的是多个网络互连的问题,是讨论分组怎么从一个网络,通过路由器,转发到另一个网络。

而在同一个局域网中,分组怎么从一台主机传送到另一台主机,但并不经过路由器转发。从整个互联网来看,局域网仍属于数据链路层的范围

三个重要问题

数据链路层传送的协议数据单元是

封装成帧

  • 封装成帧 (framing) 就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。
  • 首部和尾部的一个重要作用就是进行帧定界
    在这里插入图片描述

差错控制

在传输过程中可能会产生比特差错:1 可能会变成 0, 而 0 也可能变成 1。
在这里插入图片描述

可靠传输

接收方主机收到有误码的帧后,是不会接受该帧的,会将它丢弃

如果数据链路层向其上层提供的是不可靠服务,那么丢弃就丢弃了,不会再有更多措施

如果数据链路层向其上层提供的是可靠服务,那就还需要其他措施,来确保接收方主机还可以重新收到被丢弃的这个帧的正确副本

以上三个问题都是使用点对点信道的数据链路层来举例的

如果使用广播信道的数据链路层除了包含上面三个问题外,还有一些问题要解决

如图所示,主机A,B,C,D,E通过一根总线进行互连,主机A要给主机C发送数据,代表帧的信号会通过总线传输到总线上的其他各主机,那么主机B,D,E如何知道所收到的帧不是发送给她们的,主机C如何知道发送的帧是发送给自己的

可以用编址(地址)的来解决

将帧的目的地址添加在帧中一起传输

还有数据碰撞问题

随着技术的发展,交换技术的成熟,

在 有线(局域网)领域 使用点对点链路链路层交换机交换式局域网取代了共享式局域网

在无线局域网中仍然使用的是共享信道技术


3.2、封装成帧

介绍

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

  • 帧头和帧尾中包含有重要的控制信息
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

发送方的数据链路层将上层交付下来的协议数据单元封装成帧后,还要通过物理层,将构成帧的各比特,转换成电信号交给传输媒体,那么接收方的数据链路层如何从物理层交付的比特流中提取出一个个的帧?

答:需要帧头和帧尾来做帧定界
但比不是每一种数据链路层协议的帧都包含有帧定界标志,例如下面例子

前导码

  • 前同步码:作用是使接收方的时钟同步
  • 帧开始定界符:表明其后面紧跟着的就是MAC帧

另外以太网还规定了帧间间隔为96比特时间,因此,MAC帧不需要帧结束定界符
在这里插入图片描述

透明传输

透明

指某一个实际存在的事物看起来却好像不存在一样。

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

帧界定标志也就是个特定数据值,如果在上层交付的协议数据单元中, 恰好也包含这个特定数值,接收方就不能正确接收

所以数据链路层应该对上层交付的数据有限制,其内容不能包含帧定界符的值

解决透明传输问题

  • 解决方法:面向字节的物理链路使用字节填充 (byte stuffing) 或字符填充 (character stuffing),面向比特的物理链路使用比特填充的方法实现透明传输
  • 发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是1B)。
  • 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
  • 如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符 ESC。当接收端收到连续的两个转义字符时,就删除其中前面的一个。

帧的数据部分长度


3.3、差错检测

介绍

在这里插入图片描述

奇偶校验

在这里插入图片描述

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

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

例题
在这里插入图片描述

总结

循环冗余校验 CRC 是一种检错方法,而帧校验序列 FCS 是添加在数据后面的冗余码

在这里插入图片描述

3.4、可靠传输

基本概念

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

  • 分组丢失

路由器输入队列快满了,主动丢弃收到的分组

  • 分组失序

数据并未按照发送顺序依次到达接收端

  • 分组重复

由于某些原因,有些分组在网络中滞留了,没有及时到达接收端,这可能会造成发送端对该分组的重发,重发的分组到达接收端,但一段时间后,滞留在网络的分组也到达了接收端,这就造成分组重复的传输差错

三种可靠协议
  • 停止-等待协议SW
  • 回退N帧协议GBN
  • 选择重传协议SR

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

停止-等待协议
停止-等待协议可能遇到的四个问题

在这里插入图片描述

注意,图中最下面那个数据分组与之前序号为0的那个数据分组不是同一个数据分组。为避免分组重复这种传输错误,必须给每个分组带上序号。对于停止-等待协议,由于每发送一个数据分组就停止等待,只要保证每发送一个新的数据分组,其发送序号与上次发送的数据分组的序号不同就可以了,因此用一个比特来编号就够了。

注意事项
在这里插入图片描述

停止-等待协议的信道利用率

假设收发双方之间是一条直通的信道

  • TD:是发送方发送数据分组所耗费的发送时延
  • RTT:是收发双方之间的往返时间
  • TA:是接收方发送确认分组所耗费的发送时延

TA一般都远小于TD,可以忽略,当RTT远大于TD时,信道利用率会非常低
在这里插入图片描述

像停止-等待协议这样通过确认和重传机制实现的可靠传输协议,常称为自动请求重传协议ARQ(Automatic Repeat reQuest),意思是重传的请求是自动进行,因为不需要接收方显式地请求,发送方重传某个发送的分组

在这里插入图片描述

回退N帧协议GBN
为什么用回退N帧协议

在相同的时间内,使用停止-等待协议的发送方只能发送一个数据分组,而采用流水线传输的发送方,可以发送多个数据分组

回退N帧协议在流水线传输的基础上,利用发送窗口来限制发送方可连续发送数据分组的个数

无差错情况流程

发送方将序号落在发送窗口内的0~4号数据分组,依次连续发送出去

在这里插入图片描述

他们经过互联网传输正确到达接收方,就是没有乱序和误码,接收方按序接收它们,每接收一个,接收窗口就向前滑动一个位置,并给发送方发送针对所接收分组的确认分组,在通过互联网的传输正确到达了发送方

发送方每接收一个、发送窗口就向前滑动一个位置,这样就有新的序号落入发送窗口,发送方可以将收到确认的数据分组从缓存中删除了,而接收方可以择机将已接收的数据分组交付上层处理

累计确认

在这里插入图片描述

累计确认

优点:

  • 即使确认分组丢失,发送方也可能不必重传
  • 减小接收方的开销
  • 减小对网络资源的占用

缺点:

  • 不能向发送方及时反映出接收方已经正确接收的数据分组信息
有差错情况

例如

在传输数据分组时,5号数据分组出现误码,接收方通过数据分组中的检错码发现了错误

请添加图片描述

于是丢弃该分组,而后续到达的这剩下四个分组与接收窗口的序号不匹配
在这里插入图片描述

接收同样也不能接收它们,讲它们丢弃,并对之前按序接收的最后一个数据分组进行确认,发送ACK4,每丢弃一个数据分组,就发送一个ACK4

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


如果收到这4个重复的确认并不会触发发送立刻重传,一段时间后。超时计时器超时,也会将发送窗口内以发送过的这些数据分组全部重传。
在这里插入图片描述

若WT超过取值范围,例如WT=8,会出现什么情况?
在这里插入图片描述在这里插入图片描述

习题

总结

  • 回退N帧协议在流水线传输的基础上利用发送窗口来限制发送方连续发送数据分组的数量,是一种连续ARQ协议
  • 在协议的工作过程中发送窗口和接收窗口不断向前滑动,因此这类协议又称为滑动窗口协议
  • 由于回退N帧协议的特性,当通信线路质量不好时,其信道利用率并不比停止-等待协议高
选择重传协议SR

在这里插入图片描述

具体流程请看视频

习题
在这里插入图片描述

总结

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


3.5、点对点协议PPP

  • 点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议
  • PPP协议是因特网工程任务组IEIF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议已成为因特网的正式标准[RFC1661,RFC1662]
  • 数据链路层使用的一种协议,它的特点是:简单;只检测差错,而不是纠正差错;不使用序号,也不进行流量控制;可同时支持多种网络层协议

在这里插入图片描述

  • PPPoE 是为宽带上网的主机使用的链路层协议
    在这里插入图片描述
帧格式

必须规定特殊的字符作为帧定界符
在这里插入图片描述

透明传输

必须保证数据传输的透明性

实现透明传输的方法

  • 面向字节的异步链路:字节填充法(插入“转义字符”)

在这里插入图片描述

  • 面向比特的同步链路:比特填充法(插入“比特0”)
    在这里插入图片描述
差错检测

能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。
在这里插入图片描述

工作状态
  • 当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
  • PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。
  • 这些分组及其响应选择一些 PPP 参数,并进行网络层配置,NCP 给新接入的 PC 机
  • 分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。
  • 通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。

在这里插入图片描述

可见,PPP 协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。


3.6、媒体接入控制(介质访问控制)——广播信道

媒体接入控制(介质访问控制)使用一对多的广播通信方式

Medium Access Control翻译成媒体接入控制,有些翻译成介质访问控制

局域网的数据链路层

  • 局域网最主要的特点是:
    • 网络为一个单位所拥有;
    • 地理范围和站点数目均有限。
  • 局域网具有如下主要优点
    • 具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
    • 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。
    • 提高了系统的可靠性、可用性和残存性。

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

数据链路层的两个子层

为了使数据链路层能更好地适应多种局域网标准,IEEE 802 委员会就将局域网的数据链路层拆成两个子层

  1. 逻辑链路控制 LLC (Logical Link Control)子层;
  2. 媒体接入控制 MAC (Medium Access Control)子层。

与接入到传输媒体有关的内容都放在 MAC子层,而 LLC 子层则与传输媒体无关。
不管采用何种协议的局域网,对 LLC 子层来说都是透明的。
在这里插入图片描述

基本概念

为什么要媒体接入控制(介质访问控制)?

共享信道带来的问题

若多个设备在共享信道上同时发送数据,则会造成彼此干扰,导致发送失败。

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

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

静态划分信道

信道复用
在这里插入图片描述

频分复用FDM (Frequency Division Multiplexing)

  • 将整个带宽分为多份,用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。

  • 频分复用的所有用户在同样的时间占用不同的带宽资源(请注意,这里的“带宽”是频率带宽而不是数据的发送速率)。
    在这里插入图片描述

时分复用TDM (Time Division Multiplexing)

  • 时分复用则是将时间划分为一段段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙。
  • 每一个用户所占用的时隙是周期性地出现(其周期就是TDM帧的长度)的。
  • TDM 信号也称为等时 (isochronous) 信号。
  • 时分复用的所有用户在不同的时间占用同样的频带宽度。
    在这里插入图片描述

波分复用 WDM(Wavelength Division Multiplexing)
在这里插入图片描述

波分复用就是光的频分复用,使用一根光纤来同时传输多个光载波信号

光信号传输一段距离后悔衰减,所以要用 掺铒光纤放大器 放大光信号

码分复用 CDM (Code Division Multiplexing)


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

在这里插入图片描述

动态接入控制

受控接入

受控接入在局域网中使用得较少,本书不再讨论

随机接入

重点

随机接入(CSMA/CD协议)

总线局域网使用协议:CSMA/CD

计算题考点:CSMA/CD

https://blog.csdn.net/qq_46331050/article/details/120406217


一、解读CS MA / CD

CSMA/CD口诀:先听后发;边听边发;冲突停止;随机重发

CS——“载波监听”

检测信道。不管在发送前还是发送后,每个站都必须不停地检测信道,检查是否有其他的计算机在发送数据。

MA——“多点接入”

总线型网络,即计算机以多点接入地方式连接在一根总线上。
在这里插入图片描述

CD——“碰撞(冲突)检测”

半双工网络“边发送边监听”,即适配器边发送数据边检测信道上地信号电压地变化情况,以便于判断自己在发送数据时其他站是否也在发送数据。当几个站同时在总线上发送数据时,总线上的信号电压变化幅度将会增大(互相叠加),当适配器检测到地信号电压变化幅度超过一定地门限值时,就认为总线上至少有两个站同时发送数据,即产生了冲突或碰撞。

基本概念

最初以太网是将许多计算机都连接到一根总线上。易于实现广播通信。当初认为这样的连接方法既简单又可靠,因为总线上没有有源器件。

以太网(Ethernet)是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了**以太网(Ethernet)**的技术标准

以太网采用无连接的工作方式,对发送的数据帧不进行编号,也不要求对方发回确认。目的站收到有差错帧就把它丢弃,其他什么也不做
在这里插入图片描述
在这里插入图片描述

多址接入MA

表示许多主机以多点接入的方式连接在一根总线上。
在这里插入图片描述

载波监听CS

是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
在这里插入图片描述

总线上并没有什么“载波”。因此, “载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号。

碰撞检测CD
  • “碰撞检测”就是计算机边发送数据边检测信道上的信号电压大小。
  • 当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。
  • 当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。
  • 所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称为“冲突检测”。
  • 在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。
  • 每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。

在这里插入图片描述

为什么要进行碰撞检测? 因为信号传播时延对载波监听产生了影响

在这里插入图片描述

A 需要单程传播时延的 2 倍的时间,才能检测到与 B 的发送产生了冲突

CSMA/CD 协议工作流程

在这里插入图片描述

CSMA/CD 协议工作——争用期(碰撞窗口)

在这里插入图片描述

CSMA/CD 协议工作——最小帧长

在这里插入图片描述

CSMA/CD 协议工作——最大帧长

在这里插入图片描述

CSMA/CD 协议工作——截断二进制指数退避算法

在这里插入图片描述

CSMA/CD 协议工作——信道利用率

在这里插入图片描述

CSMA/CD 协议工作——帧接收流程

在这里插入图片描述

CSMA/CD 协议的重要特性
  • 使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)。
  • 每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。
  • 这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。

CSMA/CD协议曾经用于各种总线结构以太网和双绞线以太网的早起版本中。

现在的以太网基于交换机和全双工连接,不会有碰撞,因此没有必要使用CSMA/CS协议

随机接入(CSMA/CA协议)

无线局域网使用的协议:CSMA/CA

为什么无线局域网要使用CSMA/CA协议

在这里插入图片描述

帧间间隔IFS(InterFrame Space)

在这里插入图片描述

CSMA/CA协议的工作原理

在这里插入图片描述

源站为什么在检测到信道空闲后还要再等待一段时间DIFS?

  • 考虑到可能有其他的站有高优先级的帧要发送。若有,就要让高优先级帧先发送

目的站为什么正确接收数据帧后还要等待一段时间SIFS才能发送ACK帧?

  • SIFS是最短的帧间间隔,用来分隔开属于一次对话的各帧,在这段时间内,一个站点应当能够从发送方式切换到接收方式

在这里插入图片描述

信道由忙转为空闲且经过DIFS时间后,还要退避一段随机时间才能使用信道?

防止多个站点同时发送数据而产生碰撞

使用退避算法的时机

在这里插入图片描述

CSMA/CA协议的退避算法 ??

在这里插入图片描述

退避算法的示例

在这里插入图片描述

CSMA/CA协议的信道预约和虚拟载波监听

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

虚拟载波监听机制能减少隐蔽站带来的碰撞问题的示例

在这里插入图片描述


3.7、MAC地址、IP地址以及ARP协议

在这里插入图片描述

MAC地址
  • 使用点对点信道的数据链路层不需要使用地址
  • 使用广播信道的数据链路层必须使用地址来区分各主机

在这里插入图片描述

广播信道的数据链路层必须使用地址(MAC)

MAC地址又称为硬件地址或物理地址。请注意:不要被 “物理” 二字误导认为物理地址属于物理层范畴,物理地址属于数据链路层范畴

在这里插入图片描述

IEEE 802局域网的MAC地址格式

在这里插入图片描述

组织唯一标识符OUI

  • 生产网络设备的厂商,需要向IEEE的注册管理机构申请一个或多个OUI

网络接口标识符

  • 由获得OUI的厂商自行随意分配

EUI-48

  • 48是这个MAC地址的位数

在这里插入图片描述

对于使用EUI-48空间的应用程序,IEEE的目标寿命为100年(直到2080年),但是鼓励采用EUI-64作为替代

关于无效的 MAC 帧

  • 数据字段的长度与长度字段的值不一致;
  • 帧的长度不是整数个字节;
  • 用收到的帧检验序列 FCS 查出有差错;
  • 数据字段的长度不在 46 ~ 1500 字节之间。
  • 有效的 MAC 帧长度为 64 ~ 1518 字节之间。

对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧。

IEEE 802局域网的MAC地址发送顺序

在这里插入图片描述

单播MAC地址举例

在这里插入图片描述

主机B给主机C发送单播帧,主机B首先要构建该单播帧在帧首部中的目的地址字段填入主机C的MAC地址,源地址字段填入自己的MAC地址,再加上帧首部的其他字段、数据载荷以及帧尾部,就构成了该单播帧

在这里插入图片描述

主机B将该单播帧发送出去,主机A和C都会收到该单播帧

主机A的网卡发现该单播帧的目的MAC地址与自己的MAC地址不匹配,丢弃该帧

主机C的网卡发现该单播帧的目的MAC地址与自己的MAC地址匹配,接受该帧

并将该帧交给其上层处理

广播MAC地址举例

在这里插入图片描述

假设主机B要发送一个广播帧,主机B首先要构建该广播帧在帧首部中的目的地址字段填入广播地址,也就是十六进制的全F,源地址字段填入自己的MAC地址,再加上帧首部中的其他字段、数据载荷以及帧尾部,就构成了该广播帧
在这里插入图片描述

主机B讲该广播帧发送出去,主机A和C都会收到该广播帧发现该帧首部中的目的地址字段的内容是广播地址,就知道该帧是广播帧,主机A和主机C都接受该帧,并将该帧交给上层处理

多播MAC地址举例

在这里插入图片描述

假设主机A要发送多播帧给该多播地址。将该多播地址的左起第一个字节写成8个比特,第一个字节的最低比特位是1,这就表明该地址是多播地址

快速判断地址是不是多播地址,就是上图所示箭头所指的第十六进制数不能整除2(1,3,5,7,9,B,D,F),则该地址是多播地址

假设主机B,C和D支持多播,各用户给自己的主机配置多播组列表如下所示
在这里插入图片描述

主机B属于两个多播组,主机C也属于两个多播组,而主机D不属于任何多播组

在这里插入图片描述

主机A首先要构建该多播帧在帧首部中的目的地址字段填入该多播地址,源地址点填入自己的MAC地址,再加上帧首部中的其他字段、数据载荷以及帧尾部,就构成了该多播帧

在这里插入图片描述

主机A将该多播帧发送出去,主机B、C、D都会收到该多播帧

主机B和C发现该多播帧的目的MAC地址在自己的多播组列表中,主机B和C都会接受该帧

主机D发现该多播帧的目的MAC地址不在自己得多播组列表中,则丢弃该多播帧

给主机配置多播组列表进行私有应用时,不得使用公有的标准多播地址

IP地址

IP地址属于网络层的范畴,不属于数据链路层的范畴

下面内容讲的是IP地址的使用,详细的IP地址内容在网络层中介绍

基本概念

在这里插入图片描述

从网络体系结构看IP地址与MAC地址

在这里插入图片描述

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

图上各主机和路由器各接口的IP地址和MAC地址用简单的标识符来表示
在这里插入图片描述
在这里插入图片描述

如何从IP地址找出其对应的MAC地址?

ARP协议

ARP协议

如何从IP地址找出其对应的MAC地址?

ARP(地址解析协议)

流程

在这里插入图片描述

ARP高速缓存表

在这里插入图片描述

当主机B要给主机C发送数据包时,会首先在自己的ARP高速缓存表中查找主机C的IP地址所对应的MAC地址,但未找到,因此,主机B需要发送ARP请求报文,来获取主机C的MAC地址

ARP请求报文有具体的格式,上图的只是简单描述

ARP请求报文被封装在MAC帧中发送,目的地址为广播地址

主机B发送封装有ARP请求报文的广播帧,总线上的其他主机都能收到该广播帧

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-weRfWnXt-1639323409513)(计算机网络第三章(数据链路层).assets/image-20201015114811501.png)]

收到ARP请求报文的主机A和主机C会把ARP请求报文交给上层的ARP进程

主机A发现所询问的IP地址不是自己的IP地址,因此不用理会

主机C的发现所询问的IP地址是自己的IP地址,需要进行相应

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

动态与静态的区别
在这里插入图片描述

ARP协议只能在一段链路或一个网络上使用,而不能跨网络使用
在这里插入图片描述

ARP协议的使用是逐段链路进行的

总结

在这里插入图片描述

ARP表中的IP地址与MAC地址的对应关系记录,是会定期自动删除的因为IP地址与MAC地址的对应关系不是永久性的


3.8、集线器与交换机的区别

集线器-在物理层扩展以太网
概念

在这里插入图片描述

  • 传统以太网最初是使用粗同轴电缆,后来演进到使用比较便宜的细同轴电缆,最后发展为使用更便宜和更灵活的双绞线。
  • 采用双绞线的以太网采用星形拓扑,在星形的中心则增加了一种可靠性非常高的设备,叫做集线器 (hub)。
  • 集线器是也可以看做多口中继器,每个端口都可以成为一个中继器,中继器是对减弱的信号进行放大和发送的设备
  • 集线器的以太网在逻辑上仍是个总线网,需要使用CSMA/CD协议来协调各主机争用总线,只能工作在半双工模式,收发帧不能同时进行
集线器HUB在物理层扩展以太网

使用集线器扩展:将多个以太网段连成更大的、多级星形结构的以太网

在这里插入图片描述

  • 优点
    1. 使原来属于不同碰撞域的以太网上的计算机能够进行跨碰撞域的通信。
    2. 扩大了以太网覆盖的地理范围。
  • 缺点
    1. 碰撞域增大了,但总的吞吐量并未提高。
    2. 如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。

碰撞域

  • 碰撞域(collision domain)又称为冲突域,是指网络中一个站点发出的帧会与其他站点发出的帧产生碰撞或冲突的那部分网络。
  • 碰撞域越大,发生碰撞的概率越高。
以太网交换机-在数据链路层扩展以太网
概念
  • 扩展以太网更常用的方法是在数据链路层进行。
  • 早期使用网桥,现在使用以太网交换机
    在这里插入图片描述

网桥

  • 网桥工作在数据链路层。
  • 它根据 MAC 帧的目的地址对收到的帧进行转发和过滤。
  • 当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的MAC 地址,然后再确定将该帧转发到哪一个接口,或把它丢弃。

交换机

  • 1990 年问世的交换式集线器 (switching hub) 可明显地提高以太网的性能。
  • 交换式集线器常称为以太网交换机 (switch) 或第二层交换机 (L2 switch),强调这种交换机工作在数据链路层。
  • 以太网交换机实质上就是一个多接口的网桥
集线器HUB与交换机SWITCH区别

在这里插入图片描述

使用集线器互连而成的共享总线式以太网上的某个主机,要给另一个主机发送单播帧,该单播帧会通过共享总线传输到总线上的其他各个主机

使用交换机互连而成的交换式以太网上的某个主机,要给另一个主机发送单播帧,该单播帧进入交换机后,交换机会将该单播帧转发给目的主机,而不是网络中的其他各个主机

这个例子的前提条件是忽略ARP过程,并假设交换机的帧交换表已经学习或配置好了

在这里插入图片描述

以太网交换机的交换方式

  • 存储转发方式
    • 把整个数据帧先缓存后再进行处理。
  • 直通 (cut-through) 方式
    • 接收数据帧的同时就立即按数据帧的目的 MAC 地址决定该帧的转发接口,因而提高了帧的转发速度。
    • 缺点是它不检查差错就直接将帧转发出去,因此有可能也将一些无效帧转发给其他的站。

这个例子的前提条件是忽略ARP过程,并假设交换机的帧交换表已经学习或配置好了

对比集线器和交换机

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

多台主机同时给另一台主机发送单播帧

集线器以太网:会产生碰撞,遭遇碰撞的帧会传播到总线上的各主机

交换机以太网:会将它们缓存起来,然后逐个转发给目的主机,不会产生碰撞

这个例子的前提条件是忽略ARP过程,并假设交换机的帧交换表已经学习或配置好了

集线器扩展以太网和交换机扩展以太网区别

单播
在这里插入图片描述

广播
在这里插入图片描述

多个单播

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

广播域(broadcast domain):指这样一部分网络,其中任何一台设备发出的广播通信都能被该部分网络中的所有其他设备所接收。

总结

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

工作在数据链路层的以太网交换机,其性能远远超过工作在物理层的集线器,而且价格并不贵,这就使得集线器逐渐被市场淘汰


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

概念

在这里插入图片描述

自学习和转发帧的例子

以下例子假设各主机知道网络中其他各主机的MAC地址(无需进行ARP)

A -> B

在这里插入图片描述

  1. A 先向 B 发送一帧。该帧从接口 1 进入到交换机
  2. 交换机收到帧后,先查找(图中左边)交换表。没有查到应从哪个接口转发这个帧给 B
  3. 交换机把这个帧的源地址 A 和接口 1 写入(图中左边)交换表中
  4. 交换机向除接口 1 以外的所有的接口广播这个帧
  5. 接口 4到接口 2,先查找(图中右边)交换表。没有查到应从哪个接口转发这个帧给 B
  6. 交换机把这个帧的源地址 A 和接口 1 写入(图中右边)交换表中
  7. 除B主机之外与该帧的目的地址不相符,将丢弃该帧
  8. 主机B发现是给自己的帧,接受该帧

B -> A
在这里插入图片描述

  1. B 向 A 发送一帧。该帧从接口 3 进入到交换机
  2. 交换机收到帧后,先查找(图中左边)交换表。发现(图中左边)交换表中的 MAC 地址有 A,表明要发送给A的帧应从接口1转发出去。于是就把这个帧传送到接口 1 转发给 A。
  3. 主机 A 发现目的地址是它,就接受该帧
  4. 交换机把这个帧的源地址 B 和接口 3 写入(图中左边)交换表中

E -> A

在这里插入图片描述

  1. E 向 A发送一帧
  2. 交换机收到帧后,先查找(图中右边)交换表。发现(图中右边)交换表中的 MAC 地址有 A,表明要发送给A的帧应从接口2转发出去。于是就把这个帧传送到接口 2 转发给 接口 4。
  3. 交换机把这个帧的源地址 E 和接口 3 写入(图中右边)交换表中
  4. 接口 4 到 左边的交换机,先查找(图中左边)交换表。发现(图中左边)交换表中的 MAC 地址有 A,表明要发送给A的帧应从接口1转发出去。于是就把这个帧传送到接口 1 转发给 A。
  5. 交换机把这个帧的源地址 E 和接口 4 写入(图中左边)交换表中
  6. 主机 A 发现目的地址是它,就接受该帧

G -> A

在这里插入图片描述

主机 A、主机 G、交换机 1的接口 1就共享同一条总线(相当于总线式网络,可以想象成用集线器连接了)

  1. 主机 G 发送给 主机 A 一个帧
  2. 主机 A 和 交换机接口 1都能接收到
  3. 主机 A 的网卡收到后,根据帧的目的MAC地址A,就知道是发送给自己的帧,就接受该帧
  4. 交换机 1收到该帧后,首先进行登记工作
  5. 然后交换机 1对该帧进行转发,该帧的MAC地址是A,在(图中左边)交换表查找MAC 地址有 A
  6. MAC 地址为 A的接口号是1,但是该帧正是从接口 1 进入交换机的,交换机不会再从该接口 1 将帧转发出去,因为这是没有必要,于是丢弃该帧

随着网络中各主机都发送了帧后,网络中的各交换机就可以学习到各主机的MAC地址,以及它们与自己各接口的对应关系
在这里插入图片描述

考虑到可能有时要在交换机的接口更换主机,或者主机要更换其网络适配器,这就需要更改交换表中的项目。为此,在交换表中每个项目都设有一定的有效时间过期的项目就自动被删除

以太网交换机的这种自学习方法使得以太网交换机能够即插即用,不必人工进行配置,因此非常方便。

总结

交换机自学习和转发帧的步骤归纳
在这里插入图片描述

在这里插入图片描述


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

如何提高以太网的可靠性

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

在这里插入图片描述

生成树协议STP

在这里插入图片描述

  • IEEE 802.1D 标准制定了一个生成树协议 STP (Spanning Tree Protocol)。
  • 要点是:不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构,从而消除了兜圈子现象。

在这里插入图片描述

高速以太网

速率达到或超过100Mb/s的以太网称为高速以太网
  (1)100BASE-T以太网
  100BASE-T以太网是在双绞线上传送100Mb/s 基带信号的星形拓扑结构以太网,它使用CSMA/CD协议。这种以太网既支持全双工方式,又支持半双工方式, 可在全双工方式下工作而无冲突发生。因此,在全双工方式下不使用CSMA/CD协议
  MAC帧格式仍然是802.3标准规定的。保持最短帧长不变,但将一个网段的最大电缆长度减小到100m。帧间间隔时间从原来的9.6μs变为0.96μs。
  (2)吉比特以太网
  吉比特以太网又称千兆以太网,允许在1Gb/s下用全双工和半双工两种方式工作。使用802.3协议规定的帧格式。在半双工方式下使用CSMA/CD协议(全双工方式不需要使用CSMA/CD协议)。与10BASE-T和100BASE-T技术向后兼容
  (3)10吉比特以太网
  10吉比特以太网与10Mb/s、100Mb/s和1Gb/s以太网的帧格式完全相同。10吉比特以太网还保留了802.3标准规定的以太网最小和最大帧长,便于升级。10吉比特以太网不再使用铜线而只使用光纤作为传输媒体。10吉比特以太网只工作在全双工方式,因此没有争用问题,也不使用CSMA/CD协议。


3.11、虚拟局域网VLAN

为什么要虚拟局域网VLAN

广播风暴

在这里插入图片描述

分割广播域的方法
在这里插入图片描述

为了分割广播域,所以虚拟局域网VLAN技术应运而生

概念

在这里插入图片描述

  • 利用以太网交换机可以很方便地实现虚拟局域网 VLAN (Virtual LAN)。
  • IEEE 802.1Q 对虚拟局域网 VLAN 的定义
    虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的计算机是属于哪一个 VLAN。
  • 同一个VLAN内部可以广播通信,不同VLAN不可以广播通信
  • 虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。
  • 由于虚拟局域网是用户和网络资源的逻辑组合,因此可按照需要将有关设备和资源非常方便地重新组合,使用户从不同的服务器或数据库中存取所需的资源。
虚拟局域网VLAN的实现机制

虚拟局域网VLAN技术是在交换机上实现的,需要交换机能够实现以下功能

  • 能够处理带有VLAN标记的帧——IEEE 802.1 Q帧
  • 交换机的各端口可以支持不同的端口类型,不同端口类型的端口对帧的处理方式有所不同
    在这里插入图片描述在这里插入图片描述

Access端口

交换机与用户计算机之间的互连
在这里插入图片描述

同一个VLAN内部可以广播通信,不同VLAN不可以广播通信

Truck端口

交换机之间或交换机与路由器之间的互连

在这里插入图片描述

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

华为交换机私有的Hybrid端口类型

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

总结

在这里插入图片描述

虚拟局域网优点

虚拟局域网(VLAN)技术具有以下主要优点:

  1. 改善了性能
  2. 简化了管理
  3. 降低了成本
  4. 改善了安全性

第四章:网络层

4.1、网络层概述

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

在这里插入图片描述

这些异构型网络N1~N7如果只是需要各自内部通信,他们只要实现各自的物理层和数据链路层即可

但是如果要将这些异构型网络互连起来,形成一个更大的互联网,就需要实现网络层设备路由器

有时为了简单起见,可以不用画出这些网络,图中N1~N7,而将他们看做是一条链路即可

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

    • 网络层向运输层提供怎样的服务(“可靠传输”还是“不可靠传输”)

    在数据链路层那课讲过的可靠传输,详情可以看那边的笔记:网络层对以下的分组丢失分组失序分组重复的传输错误采取措施,使得接收方能正确接受发送方发送的数据,就是可靠传输,反之,如果什么措施也不采取,则是不可靠传输

    • 网络层寻址问题
      在这里插入图片描述

    • 路由选择问题

    [外链图片转存中…(img-QtyXlfox-1639323409550)]

    路由器收到数据后,是依据什么来决定将数据包从自己的哪个接口转发出去?

    依据数据包的目的地址和路由器中的路由表

    [外链图片转存中…(img-r0tBLgUH-1639323409550)]

    但在实际当中,路由器是怎样知道这些路由记录?

    • 由用户或网络管理员进行人工配置,这种方法只适用于规模较小且网络拓扑不改变的小型互联网
    • 另一种是实现各种路由选择协议,由路由器执行路由选择协议中所规定的路由选择算法,而自动得出路由表中的路有记录,这种方法更适合规模较大且网络拓扑经常改变的大型互联网

[外链图片转存中…(img-VkqIJMqx-1639323409551)]

补充 网络层(网际层)除了 IP协议外,还有之前介绍过的地址解析协议ARP,还有网际控制报文协议ICMP网际组管理协议IGMP

总结

[外链图片转存中…(img-vKXFL5Vk-1639323409552)]


4.2、网络层提供的两种服务

  • 在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)曾引起了长期的争论。
  • 争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统
面向连接的虚电路服务

一种观点:让网络负责可靠交付

  • 这种观点认为,应借助于电信网的成功经验,让网络负责可靠交付,计算机网络应模仿电信网络,使用面向连接的通信方式。
  • 通信之前先建立虚电路 (Virtual Circuit),以保证双方通信所需的一切网络资源。
  • 如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点,不丢失、不重复。

在这里插入图片描述

发送方 发送给 接收方 的所有分组都沿着同一条虚电路传送

  • 虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。
  • 请注意,电路交换的电话通信是先建立了一条真正的连接。
  • 因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样
无连接的数据报服务

另一种观点:网络提供数据报服务

  • 互联网的先驱者提出了一种崭新的网络设计思路。
  • 网络层向上只提供简单灵活的、无连接的尽最大努力交付数据报服务
  • 网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。
  • 网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。

在这里插入图片描述

发送方 发送给 接收方 的分组可能沿着不同路径传送

尽最大努力交付

  • 如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责可靠交付(包括差错处理、流量控制等)
  • 采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。
  • 互连网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。

虚电路和数据报服务的对比


4.3、IPv4

概述

在这里插入图片描述

分类编制的IPv4地址
简介

在这里插入图片描述

  • 每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)。
  • 主机号在它前面的网络号所指明的网络范围内必须是唯一的。
  • 由此可见,一个 IP 地址在整个互联网范围内是唯一的

A类地址
在这里插入图片描述

B类地址

在这里插入图片描述

C类地址

在这里插入图片描述

练习

在这里插入图片描述

总结

IP 地址的指派范围

在这里插入图片描述

一般不使用的特殊的 IP 地址

在这里插入图片描述

IP 地址的一些重要特点

(1) IP 地址是一种分等级的地址结构。分两个等级的好处是:

  • 第一,IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。
  • 第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。

(2) 实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口

  • 当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多归属主机 (multihomed host)。
  • 由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址

(3) 用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id。

(4) 所有分配到网络号 net-id 的网络,无论是范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。

划分子网的IPv4地址
为什么要划分子网

在 ARPANET 的早期,IP 地址的设计确实不够合理:

  • IP 地址空间的利用率有时很低。
  • 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。
  • 两级的 IP 地址不够灵活。

在这里插入图片描述

如果想要将原来的网络划分成三个独立的网路

在这里插入图片描述

所以是否可以从主机号部分借用一部分作为子网号

在这里插入图片描述

但是如果未在图中标记子网号部分,那么我们和计算机又如何知道分类地址中主机号有多少比特被用作子网号了呢?

所以就有了划分子网的工具:子网掩码

  • 从 1985 年起在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址
  • 这种做法叫做划分子网 (subnetting) 。
  • 划分子网已成为互联网的正式标准协议。
如何划分子网

基本思路

  • 划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。

  • 从主机号借用若干个位作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。
    在这里插入图片描述

  • 凡是从其他网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器。

  • 然后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。

  • 最后就将 IP 数据报直接交付目的主机。

划分为三个子网后对外仍是一个网络

在这里插入图片描述

  • 优点
    1. 减少了 IP 地址的浪费
    2. 使网络的组织更加灵活
    3. 更便于维护和管理
  • 划分子网纯属一个单位内部的事情,对外部网络透明,对外仍然表现为没有划分子网的一个网络。
子网掩码

在这里插入图片描述

(IP 地址) AND (子网掩码) = 网络地址 重要,下面很多相关知识都会用到

举例

例子1

在这里插入图片描述

例子2
在这里插入图片描述

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

总结

在这里插入图片描述

  • 子网掩码是一个网络或一个子网的重要属性。
  • 路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。
  • 路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。
  • 若一个路由器连接在两个子网上,就拥有两个网络地址和两个子网掩码。
无分类编址的IPv4地址
为什么使用无分类编址

无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。
在这里插入图片描述

CIDR 最主要的特点

  • CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。
  • IP 地址从三级编址(使用子网掩码)又回到了两级编址
如何使用无分类编址

在这里插入图片描述

举例

在这里插入图片描述

路由聚合(构造超网)

在这里插入图片描述

总结

在这里插入图片描述

IPv4地址的应用规划

给定一个IPv4地址快,如何将其划分成几个更小的地址块,并将这些地址块分配给互联网中不同网络,进而可以给各网络中的主机和路由器接口分配IPv4地址

定长的子网掩码FLSM(Fixed Length Subnet Mask)

在这里插入图片描述

划分子网的IPv4就是定长的子网掩码

举例

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

在这里插入图片描述

通过上面步骤分析,就可以从子网18中任选5个分配给左图中的N1N5

采用定长的子网掩码划分,只能划分出2^n个子网,其中n是从主机号部分借用的用来作为子网号的比特数量,每个子网所分配的IP地址数量相同

但是也因为每个子网所分配的IP地址数量相同,不够灵活,容易造成IP地址的浪费

变长的子网掩码VLSM(Variable Length Subnet Mask)

在这里插入图片描述

无分类编址的IPv4就是变长的子网掩码

举例

在这里插入图片描述

在这里插入图片描述


4.4、IP数据报的发送和转发过程

在这里插入图片描述

举例

在这里插入图片描述

在这里插入图片描述

源主机如何知道目的主机是否与自己在同一个网络中,是直接交付,还是间接交付?

在这里插入图片描述

可以通过目的地址IP源地址的子网掩码进行逻辑与运算得到目的网络地址

  • 如果目的网络地址源网络地址 相同,就是在同一个网络中,属于直接交付
  • 如果目的网络地址源网络地址 不相同,就不在同一个网络中,属于间接交付,传输给主机所在网络的默认网关(路由器——下图会讲解),由默认网关帮忙转发

主机C如何知道路由器R的存在?

在这里插入图片描述

用户为了让本网络中的主机能和其他网络中的主机进行通信,就必须给其指定本网络的一个路由器的接口,由该路由器帮忙进行转发,所指定的路由器,也被称为默认网关

例如。路由器的接口0的IP地址192.168.0.128做为左边网络的默认网关
在这里插入图片描述

主机A会将该IP数据报传输给自己的默认网关,也就是图中所示的路由器接口0

路由器收到IP数据报后如何转发?

  • 检查IP数据报首部是否出错:
    • 若出错,则直接丢弃该IP数据报并通告源主机
    • 若没有出错,则进行转发
  • 根据IP数据报的目的地址在路由表中查找匹配的条目:
    • 若找到匹配的条目,则转发给条目中指示的吓一跳
    • 若找不到,则丢弃该数据报并通告源主机

假设IP数据报首部没有出错,路由器取出IP数据报首部各地址字段的值

在这里插入图片描述

接下来路由器对该IP数据报进行查表转发

在这里插入图片描述

逐条检查路由条目,将目的地址与路由条目中的地址掩码进行逻辑与运算得到目的网络地址,然后与路由条目中的目的网络进行比较,如果相同,则这条路由条目就是匹配的路由条目,按照它的下一条指示,图中所示的也就是接口1转发该IP数据报

在这里插入图片描述

路由器是隔离广播域的
在这里插入图片描述


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

概念

在这里插入图片描述

多种情况举例

静态路由配置

举例
在这里插入图片描述

默认路由

举例

默认路由可以被所有网络匹配,但路由匹配有优先级,默认路由是优先级最低的

在这里插入图片描述

特定主机路由

举例

有时候,我们可以给路由器添加针对某个主机的特定主机路由条目

一般用于网络管理人员对网络的管理和测试
在这里插入图片描述

多条路由可选,匹配路由最具体的

静态路由配置错误导致路由环路

举例
在这里插入图片描述

假设将R2的路由表中第三条目录配置错了下一跳

这导致R2和R3之间产生了路由环路

在这里插入图片描述

聚合了不存在的网络而导致路由环路

举例

正常情况
在这里插入图片描述

在这里插入图片描述

错误情况

在这里插入图片描述

解决方法

在这里插入图片描述

在这里插入图片描述

黑洞路由的下一跳为null0,这是路由器内部的虚拟接口,IP数据报进入它后就被丢弃

网络故障而导致路由环路

举例
在这里插入图片描述

在这里插入图片描述

解决方法

添加故障的网络为黑洞路由

在这里插入图片描述

在这里插入图片描述

假设。一段时间后故障网络恢复了

R1又自动地得出了其接口0的直连网络的路由条目

针对该网络的黑洞网络会自动失效
在这里插入图片描述

如果又故障

则生效该网络的黑洞网络
在这里插入图片描述

总结

在这里插入图片描述


4.6、路由选择协议

概述

在这里插入图片描述

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

在这里插入图片描述

因特网采用分层次的路由选择协议

  • 自治系统 AS:在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。

在这里插入图片描述

自治系统之间的路由选择简称为域间路由选择,自治系统内部的路由选择简称为域内路由选择

在这里插入图片描述

域间路由选择使用外部网关协议EGP这个类别的路由选择协议

域内路由选择使用内部网关协议IGP这个类别的路由选择协议

网关协议的名称可称为路由协议

常见的路由选择协议

在这里插入图片描述

路由器的基本结构

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

在这里插入图片描述

路由器结构可划分为两大部分:

1、分组转发部分

由三部分构成

  • 交换结构

  • 一组输入端口:

    信号从某个输入端口进入路由器

在这里插入图片描述

物理层将信号转换成比特流,送交数据链路层处理

在这里插入图片描述

数据链路层识别从比特流中识别出帧,去掉帧头和帧尾后,送交网络层处理

在这里插入图片描述

 如果送交网络层的分组是普通待转发的数据分组

在这里插入图片描述

  则根据分组首部中的目的地址进行查表转发

在这里插入图片描述

若找不到匹配的转发条目,则丢弃该分组,否则,按照匹配条目中所指示的端口进行转发

  • 一组输出端口

    网络层更新数据分组首部中某些字段的值,例如将数据分组的生存时间减1,然后送交数据链路层进行封装
    在这里插入图片描述

    数据链路层将数据分组封装成帧,交给物理层处理

在这里插入图片描述

物理层将帧看成比特流将其变换成相应的电信号进行发送

路由器的各端口还会有输入缓冲区和输出缓冲区

  • 输入缓冲区用来暂存新进入路由器但还来不及处理的分组

  • 输出缓冲区用来暂存已经处理完毕但还来不及发送的分组

在这里插入图片描述

路由器的端口一般都具有输入和输出功能,这些实例分出了输入端口和输出端口是更好演示路由基本工作过程

2、路由选择部分

  • 路由选择部分的核心构件是路由选择处理机,它的任务是根据所使用的路由选择协议。周期性地与其他路由器 进行路由信息的交互,来更新路由表

    如果送交给输入端口的网络层的分组是路由器之间交换路由信息的路由报文,则把这种分组送交给路由选择处理机

在这里插入图片描述

路由选择处理机根据分组的内容来更新自己的路由表

在这里插入图片描述

路由选择处理机还会周期性地给其他路由器发送自己所知道的路由信息
在这里插入图片描述

路由信息协议RIP

在这里插入图片描述

在这里插入图片描述

RIP的基本工作过程

举例

在这里插入图片描述

RIP的路由条目的更新规则

举例1
在这里插入图片描述

路由器C的表到达各目的网络的下一条都记为问号,可以理解为路由器D并不需要关心路由器C的这些内容

假设路由器C的RIP更新报文发送周期到了,则路由器C将自己路由表中的相关路由信息封装到RIP更新报文中发送给路由器D

在这里插入图片描述

路由器C能到达这些网络,说明路由器C的相邻路由器也能到达,只是比路由器C的距离大1,于是根据距离的对比,路由器D更新自己的路由表

在这里插入图片描述

举例2

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

解决方法

在这里插入图片描述

但是,这些方法也不能完全解决“坏消息传播得慢”的问题,这是距离向量的本质决定

总结

在这里插入图片描述

RIP 协议的优缺点

优点:

  1. 实现简单,开销较小。

缺点:

  1. RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。

  2. 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。

  3. “坏消息传播得慢”,使更新过程的收敛时间过长。

开放最短路径优先OSPF

开放最短路径优先 OSPF (Open Shortest Path First)

注意:OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先
”。

概念

问候(Hello)分组

在这里插入图片描述

IP数据报首部中协议号字段的取值应为89,来表明IP数据报的数据载荷为OSPF分组

在这里插入图片描述
发送链路状态通告LSA

洪泛法有点类似于广播,就是从一个接口进来,从其他剩余所有接口出去

链路状态数据库同步

在这里插入图片描述

使用SPF算法计算出各自路由器到达其他路由器的最短路径

在这里插入图片描述

在这里插入图片描述

OSPF五种分组类型

OSPF的基本工作过程

在这里插入图片描述

OSPF在多点接入网络中路由器邻居关系建立

如果不采用其他机制,将会产生大量的多播分组

在这里插入图片描述

若DR出现问题,则由BDR顶替DR

为了使OSPF能够用于规模很大的网络,OSPF把一个自治系统再划分为若干个更小的范围,叫做区域(Area)

  • 在该自治系统内,所有路由器都使用OSPF协议,OSPF将该自治系统再划分成4个更小的区域

  • 每个区域都有一个32比特的区域标识符

  • 主干区域的区域标识符必须为0,主干区域用于连通其他区域

  • 其他区域的区域标识符不能为0且不相同

  • 每个区域一般不应包含路由器超过200个

  • 划分区域的好处就是,利用洪泛法交换链路状态信息局限于每一个区域而不是自治系统,这样减少整个网络上的通信量

在这里插入图片描述

总结

在这里插入图片描述

边界网关协议BGP

BGP(Border Gateway Protocol) 是不同自治系统的路由器之间交换路由信息的协议

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

在这里插入图片描述

在这里插入图片描述

总结
在这里插入图片描述

直接封装RIP、OSPF和BGP报文的协议

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yb6YoiPS-1641329527102)(计算机网络第4章(网络层).assets/image-20201019192800829.png)]


4.7、IPv4数据报的首部格式

各字段的作用
  • 一个 IP 数据报由首部数据两部分组成。
  • 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。
  • 在首部的固定部分的后面是一些可选字段,其长度是可变的。
    在这里插入图片描述

图中的每一行都由32个比特(也就是4个字节)构成,每个小格子称为字段或者域,每个字段或某些字段的组合用来表达IP协议的相关功能

在这里插入图片描述

IP数据报的首部长度一定是4字节的整数倍

因为首部中的可选字段的长度从1个字节到40个字节不等,那么,当20字节的固定部分加上1到40个字节长度不等的可变部分,会造成首部长度不是4字节整数倍时,就用取值为全0的填充字段填充相应个字节,以确保IP数据报的首部长度是4字节的整数倍
在这里插入图片描述

在这里插入图片描述

对IPv4数据报进行分片

在这里插入图片描述

现在假定分片2的IP数据报经过某个网络时还需要进行分片
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

在这里插入图片描述


4.8、网际控制报文协议ICMP

概念

架构IP网络时需要特别注意两点:

  • 确认网络是否正常工作
  • 遇到异常时进行问题诊断

而ICMP就是实现这些问题的协议

ICMP的主要功能包括:

  • 确认IP包是否成功送达目标地址
  • 通知在发送过程当中IP包被废弃的具体原因
  • 改善网络设置等

有了这些功能以后,就可以获得网络是否正常,设置是否有误以及设备有何异常等信息,从而便于进行网络上的问题诊断

在这里插入图片描述

ICMP 不是高层协议(看起来好像是高层协议,因为 ICMP 报文是装在 IP 数据报中,作为其中的数据部分),而是 IP 层的协议

ICMP 报文的格式

在这里插入图片描述

ICMP差错报告报文
终点不可达

在这里插入图片描述

源点抑制

在这里插入图片描述

时间超过

在这里插入图片描述

参数问题

在这里插入图片描述

改变路由(重定向)

在这里插入图片描述

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

在这里插入图片描述

ICMP应用举例
分组网间探测PING(Packet InterNet Groper)

在这里插入图片描述

跟踪路由(traceroute)

在这里插入图片描述

tracert命令的实现原理
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

在这里插入图片描述


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

虚拟专用网VPN(Virtual Private Network)
  • 由于 IP 地址的紧缺,一个机构能够申请到的IP地址数往往远小于本机构所拥有的主机数。
  • 考虑到互联网并不很安全,一个机构内也并不需要把所有的主机接入到外部的互联网。
  • 假定在一个机构内部的计算机通信也是采用 TCP/IP 协议,那么从原则上讲,对于这些仅在机构内部使用的计算机就可以由本机构自行分配其 IP 地址
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

上图是因特网数字分配机构IANA官网查看IPv4地址空间中特殊地址的分配方案

用粉红色标出来的地址就是无需申请的、可自由分配的专用地址,或称私有地址
在这里插入图片描述

私有地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信

私有地址只能用作本地地址而不能用作全球地址

因特网中所有路由器对目的地址是私有地址的IP数据报一律不进行转发

本地地址与全球地址

  • 本地地址——仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向互联网的管理机构申请。
  • 全球地址——全球唯一的 IP 地址,必须向互联网的管理机构申请。
  • 问题:在内部使用的本地地址就有可能和互联网中某个 IP 地址重合,这样就会出现地址的二义性问题。

所以部门A和部门B至少需要一个 路由器具有合法的全球IP地址,这样各自的专用网才能利用公用的因特网进行通信

在这里插入图片描述

部门A向部门B发送数据流程

在这里插入图片描述

两个专用网内的主机间发送的数据报是通过了公用的因特网,但在效果上就好像是在本机构的专用网上传送一样

数据报在因特网中可能要经过多个网络和路由器,但从逻辑上看,R1和R2之间好像是一条直通的点对点链路

在这里插入图片描述

因此也被称为IP隧道技术
在这里插入图片描述

网络地址转换NAT(Network Address Translation)

在这里插入图片描述

举例

在这里插入图片描述

使用私有地址的主机,如何才能与因特网上使用全球IP地址的主机进行通信?

这需要在专用网络连接到因特网的路由器上安装NAT软件
在这里插入图片描述

专有NAT软件的路由器叫做NAT路由器

它至少有一个有效的外部全球IP地址

这样,所有使用私有地址的主机在和外界通信时,都要在NAT路由器上将其私有地址转换为全球IP地址

假设,使用私有地址的主机要给因特网上使用全球IP地址的另一台主机发送IP数据报

在这里插入图片描述

因特网上的这台主机给源主机发回数据报
在这里插入图片描述

当专用网中的这两台使用私有地址的主机都要给因特网使用全球地址的另一台主机发送数据报时,在NAT路由器的NAT转换表中就会产生两条记录,分别记录两个私有地址与全球地址的对应关系

在这里插入图片描述

这种基本转换存在一个问题

在这里插入图片描述

解决方法
在这里插入图片描述

我们现在用的很多家用路由器都是这种NART路由器

内网主机与外网主机的通信,是否能由外网主机首先发起?

否定
在这里插入图片描述

在这里插入图片描述

总结

在这里插入图片描述

第五章:运输层

5.1、运输层概述

概念

进程之间的通信

在这里插入图片描述

  • 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层
  • 当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到三层(到网络层)的功能。
    在这里插入图片描述

进程之间通信流程

在这里插入图片描述

“逻辑通信”是指运输层之间的通信好像是沿水平方向传送数据,但事实上,这两条数据并没有一条水平方向的物理连接,要传送的数据是沿着图中上下多次的虚线方向传送的

进程Ap1与Ap4之间进行基于网络的通信,进程Ap2与Ap3之间进行基于网络的通信

在运输层使用不同的端口,来对应不同的应用进程

然后通过网络层及其下层来传输应用层报文

接收方的运输层通过不同的端口,将收到的应用层报文,交付给应用层中相应的应用进程

这里端口并不是指看得见、摸得着的物理端口,而是指用来区分不同应用进程的标识符
在这里插入图片描述

总结

在这里插入图片描述

在这里插入图片描述


5.2、运输层端口号、复用与分用的概念

为什么用端口号

在这里插入图片描述

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

在这里插入图片描述

多个进程(这里一个端口表示一个进程) 利用一个运输层协议(或者称为运输层接口)发送数据称为 复用

多个进程(这里一个端口表示一个进程) 利用一个运输层协议(或者称为运输层接口)接收时叫做 分用

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

在这里插入图片描述

运输层传输流程

举例
在这里插入图片描述

在浏览器输入域名,回车浏览

然后用户PC中的DNS客户端进程会发送一个DNS查询请求报文

DNS查询请求报文需要使用运输层的UDP协议

首部中的源端口字段的值,在短暂端口号49151~65535中挑选一个未被占用的,用来表示DNS客户端进程

首部中的目的端口字段的值:53,是DNS服务器端进程所使用的熟知端口号

在这里插入图片描述

之后,将UDP用户数据报封装在IP数据报中,通过以太网发送给DNS服务器

在这里插入图片描述

DNS服务器收到该IP数据报后,从中解封出UDP用户数据报

UDP首部中的目的端口号为53,这表明应将该UDP用户数据报的数据载荷部分,也就是DNS查询请求报文,交付给本服务器中的DNS服务器端进程

DNS服务器端进程解析DNS查询请求报文的内容,然后按其要求查找对应的IP地址

之后,会给用户PC发送DNS响应报文,DNS响应报文需要使用运输层的UDP协议封装成UDP用户数据报

其首部中的源端口字段的值设置为熟知端口号53,表明这是DNS服务器端进程所发送的UDP用户数据报,目的端口的值设置为49152,这是之前用户PC中发送DNS查询请求报文的DNS客户端进程所使用的短暂端口号

在这里插入图片描述

将UDP用户数据报封装在IP数据报中,通过以太网发送给用户PC

在这里插入图片描述

用户PC收到该数据报后,从中解封出UDP用户数据报

UDP首部中的目的端口号为49152,这表明应将该UDP用户数据报的数据载荷部分,也就是DNS响应报文,交付给用户PC中的DNS客户端进程

DNS客户端进程解析DNS响应报文的内容,就可知道自己之前所请求的Web服务器的域名对应的IP地址

现在用户PC中的HTTP客户端进程可以向Web服务器发送HTTP请求报文(和DNS发送和接收流程差不多)

在这里插入图片描述

在这里插入图片描述

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


5.3、UDP和TCP的对比

UDP 校验

在计算校验和时,要在 UDP 数据报之前增加 12B 的伪首部,伪首部并不是UDP 的真正首部。只是在计算校验和时,临时添加在 UDP数据报的前面,得到一个临时的 UDP数据报。校验和就是按照这个临时的 UDP数据报来计算的。伪首部既不向下传送又不向上递交,而只是为了计算校验和。

UDP 校验和的计算方法和 IP数据报首部校验和的计算方法相似。但不同的是,IP 数据报的校验和只检验P数据报的首部,但 UDP的校验和则检查首部和数据部分。

伪首部只有在计算检验和时才出现,不向下传送也不向上递交。

在发送端:

填上伪首部
全 0 填充检验和字段
全 0 填充数据部分(UDP数据报要看成许多 4B 的字串接起来)
伪首部 + 首部 + 数据部分采用二进制反码求和
把和求反码填入检验和字段
去掉伪首部,发送
在接收端:

填上伪首部
伪首部+首部+数据部分采用二进制反码求和
结果全为 1 则无差错,否则丢弃数据报/交给应用层附上出差错的警告。

概念
  • UDPTCP 是TCP/IP体系结构运输层中的两个重要协议
  • 当运输层采用面向连接的 TCP 协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的可靠信道
  • 当运输层采用无连接的 UDP 协议时,这种逻辑通信信道是一条不可靠信道

可靠信道与不可靠信道

在这里插入图片描述

  • 两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU (Transport Protocol Data Unit)。

  • TCP 传送的数据单位协议是 TCP 报文段(segment)。

  • UDP 传送的数据单位协议是 UDP 报文用户数据报

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-alaO1upt-1641329527127)(计算机网络第5章(运输层).assets/image-20201021193640130.png)]

UDP的通信是无连接的,不需要套接字(Socket)

TCP是面向连接的,TCP之间的通信必须要在两个套接字(Socket)之间建立连接

用户数据报协议UDP(User Datagram Protocol)

可以发送广播

在这里插入图片描述

可以向某个多播组发送多播

在这里插入图片描述

还可以发送单播

在这里插入图片描述

UDP 支持单播、多播以及广播

换句话说,UDP支持一对一,一对多,以及一对全的通信

运输过程

在这里插入图片描述

UDP对应用进程交下来的报文既不合并也不拆分,而是保留这些报文的边界

换句话说,UDP是面向应用报文的

UDP向上层提供无连接不可靠传输服务
在这里插入图片描述

UDP结构

在这里插入图片描述

传输控制协议TCP(Transmission Control Protocol)

使用TCP协议的通信双方,在进行数据传输之前,必须使用“三报文握手”建立TCP连接
在这里插入图片描述

TCP连接建立成功后,通信双方之间就好像有一条可靠的通信信道,通信双方使用这条基于TCP连接的可靠信道进行通信

在这里插入图片描述

很显然,TCP仅支持单播,也就是一对一的通信

运输过程
在这里插入图片描述

发送方

  • TCP会把应用进程交付下来的数据块看作是一连串无结构的字节流,TCP并不知道这些待传送的字节流的含义

  • 并将他们编号,并存储在自己发送缓存中

  • TCP会根据发送策略,提取一定量的字节构建TCP报文并发送

接收方

  • 一方面从所接受到的TCP报文段中,取出数据载荷部分并存储在接收缓存中;一方面将接收缓存中的一些字节交付给应用进程
  • TCP不保证接收方应用进程所收到的数据块与发送方发送的数据块,具有对应大小的关系(例如,发送方应用进程交给发送方的TCP共10个数据块,但接收方的TCP可能只用了4个数据块,就把收到的字节流交付给了上层的应用进程,但接收方收到的字节流必须和发送方应用进程发出的字节流完全一样)
  • 接收方的应用进程必须有能力识别收到的字节流,把它还原成有意义的应用层数据

TCP是面向字节流的,这正是TCP实现可靠传输、流量控制、以及拥塞控制的基础

本图只画了一个方向的数据流,在实际网络中,基于TCP连接的两端,可以同时进行TCP报文段的发送和接收

TCP向上层提供面向连接的可靠传输服务

在这里插入图片描述

TCP结构
在这里插入图片描述

总结

在这里插入图片描述


5.4、TCP的流量控制

概念

在这里插入图片描述

举例

具体流程的视频
在这里插入图片描述

上图主机A现在可将发送缓存中序号1~200的字节数据全部删除,因为已经收到了主机B对它们的累计确认

在这里插入图片描述

上图主机A现在可将发送缓存中序号201~500的字节数据全部删除,因为已经收到了主机B对它们的累计确认

在这里插入图片描述

在这里插入图片描述

上图主机A现在可将发送缓存中序号501~600的字节数据全部删除,因为已经收到了主机B对它们的累计确认

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

上图如果零窗口探测报文在发送过程中如果丢失,还是能打破死锁局面

因为零窗口探测报文段也有重传计时器,重传计时器超时后,零窗口探测报文段会被重传

总结

在这里插入图片描述


5.5、TCP的拥塞控制

概念

在这里插入图片描述

网络拥塞往往是由许多因素引起的。例如:

  1. 点缓存的容量太小;
  2. 链路的容量不足;
  3. 处理机处理的速率太慢;
  4. 拥塞本身会进一步加剧拥塞;

拥塞控制的一般原理

  • 拥塞控制的前提:网络能够承受现有的网络负荷。
  • 实践证明,拥塞控制是很难设计的,因为它是一个动态问题
  • 分组的丢失是网络发生拥塞的征兆而不是原因。
  • 在许多情况下,甚至正是拥塞控制本身成为引起网络性能恶化、甚至发生死锁的原因。

开环控制和闭环控制

在这里插入图片描述

监测网络的拥塞

主要指标有:

  1. 由于缺少缓存空间而被丢弃的分组的百分数;
  2. 平均队列长度;
  3. 超时重传的分组数;
  4. 平均分组时延;
  5. 分组时延的标准差,等等。

上述这些指标的上升都标志着拥塞的增长。

拥塞控制的算法

在这里插入图片描述

在这里插入图片描述

真正的发送窗口值 = Min (接收方窗口值,拥塞窗口值)

下图的实例横纵坐标的意思

传输轮次:

  • 发送方给接收方发送数据报文段后,接收方给发送方发发回相应的确认报文段
  • 一个传输轮次所经历的时间其实就是往返时间,往返时间并非是恒定的数值
  • 使用传输轮次是为了强调把拥塞窗口所允许发送的报文段都连续发送出去,并受到了对已发送的最后一个报文段的确认

拥塞窗口:

  • 它会随网络拥塞程度,以及所使用的拥塞控制算法动态变化
慢开始和拥塞避免

######## 慢开始(slow-start)

  • 目的:用来确定网络的负载能力或拥塞程度。
  • 算法的思路:由小到大逐渐增大拥塞窗口数值。
  • 两个变量:
    • 拥塞窗口(cwnd):初始拥塞窗口值:2 种设置方法。窗口值逐渐增大。
      • 1 至 2 个最大报文段 (旧标准)
      • 2 至 4 个最大报文段 (RFC 5681)
    • 慢开始门限(ssthresh):防止拥塞窗口增长过大引起网络拥塞。

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

图中swnd是发送窗口

每经过一个传输轮次,拥塞窗口就加倍

窗口大小按指数增加,2的n-1次方

######## 拥塞避免(congestion avoidance)

  • 思路:让拥塞窗口 cwnd 缓慢地增大,避免出现拥塞。
  • 每经过一个传输轮次,拥塞窗口 cwnd = cwnd + 1
  • 使拥塞窗口 cwnd 按线性规律缓慢增长。
  • 在拥塞避免阶段,具有 “加法增大” (Additive Increase) 的特点。
    在这里插入图片描述

如果在发送过程中出现部分报文段丢失,这必然会造成发送方对这些丢失报文段的超时重传

在这里插入图片描述

这个时候又回到了慢开始

在这里插入图片描述

在这里插入图片描述

######## 两个算法完整示意图

在这里插入图片描述

快重传和快恢复

在这里插入图片描述

######## 快重传(fast retrasmit)

在这里插入图片描述

######## 快恢复(fast recovery)

在这里插入图片描述

######## 改进后的整体算法的示意图

在这里插入图片描述


5.6、TCP超时重传时间的选择

在这里插入图片描述

如果超时重传时间RTO的值设置得比RTT0的值小很多,这会引起报文段不必要的重传,使网络负荷增大
在这里插入图片描述

如果超时重传时间RTO的值设置得远大于RTT0的值,这会使重传时间推迟的太长,使网络的空闲时间增大,降低传输效率

在这里插入图片描述

在这里插入图片描述

RFC6298建议使用下式计算超时重传时间RTO

在这里插入图片描述

往返时间RTT的测量比较复杂

在这里插入图片描述

在这里插入图片描述

TCP超时重传的计算

举例
在这里插入图片描述

总结

在这里插入图片描述


5.7、TCP可靠传输的实现

本集具体讲解
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


5.8、TCP的运输连接管理

概念

在这里插入图片描述

TCP的连接建立
  • TCP 建立连接的过程叫做握手
  • 握手需要在客户和服务器之间交换三个 TCP 报文段。称之为三报文握手
  • 采用三报文握手主要是为了防止已失效的连接请求报文段突然又传送到了,因而产生错误。
TCP的连接建立要解决以下三个问题

在这里插入图片描述

TCP使用“三报文握手”建立连接
  • TCP 连接的建立采用客户服务器方式
  • 主动发起连接建立的应用进程叫做TCP客户 (client)。
  • 被动等待连接建立的应用进程叫做TCP服务器 (server)。

“握手”需要在TCP客户端和服务器之间交换三个TCP报文段

过程

在这里插入图片描述

最初两端的TCP进程都处于关闭状态

在这里插入图片描述

一开始,TCP服务器进程首先创建传输控制块,用来存储TCP连接中的一些重要信息。例如TCP连接表、指向发送和接收缓存的指针、指向重传队列的指针,当前的发送和接收序号等

之后,就准备接受TCP客户端进程的连接请求

此时,TCP服务器进程就进入监听状态,等待TCP客户端进程的连接请求

TCP服务器进程是被动等待来自TCP客户端进程的连接请求,因此成为被动打开连接

在这里插入图片描述

TCP客户进程也是首先创建传输控制块

由于TCP连接建立是由TCP客户端主动发起的,因此称为主动打开连接
在这里插入图片描述

然后,在打算建立TCP连接时,向TCP服务器进程发送TCP连接请求报文段,并进入同步已发送状态

TCP连接请求报文段首部中

  • 同步位SYN被设置为1,表明这是一个TCP连接请求报文段
  • 序号字段seq被设置了一个初始值x,作为TCP客户端进程所选择的初始序号

请注意:TCP规定SYN被设置为1的报文段不能携带数据,但要消耗掉一个序号

在这里插入图片描述

TCP服务器进程收到TCP连接请求报文段后,如果同意建立连接,则向TCP客户进程发送TCP连接请求确认报文段,并进入同步已接收状态

TCP连接请求确认报文段首部中

  • 同步位SYN和确认为ACK都设置为1,表明这是一个TCP连接请求确认报文段
  • 序号字段seq被设置了一个初始值y,作为TCP服务器进程所选择的初始序号,
  • 确认号字段ack的值被设置成了x+1,这是对TCP客户进程所选择的初始序号(seq)的确认

请注意:这个报文段也不能携带数据,因为它是SYN被设置为1的报文段,但同样要消耗掉一个序号
在这里插入图片描述

TCP客户进程收到TCP连接请求确认报文段后,还要向TCP服务器进程发送一个普通的TCP确认报文段,并进入连接已连接状态

普通的TCP确认报文段首部中

  • 确认位ACK被设置为1,表明这是一个普通的TCP确认报文段
  • 序号字段seq被设置为x+1,这是因为TCP客户进程发送的第一个TCP报文段的序号为x,所以TCP客户进程发送的第二个报文段的序号为x+1
  • 确认号字段ack被设置为y+1,这是对TCP服务器进程所选择的初始序号的确认

请注意:TCP规定普通的TCP确认报文段可以携带数据,但如果不携带数据,则不消耗序号
在这里插入图片描述

TCP服务器进程收到该确认报文段后也进入连接已建立状态

现在,TCP双方都进入了连接已建立状态,它们可以基于已建立好的TCP连接,进行可靠的数据传输

为什么TCP客户进程最后还要发送一个普通的TCP确认报文段?能否使用“两报文握手”建立连接?

下图实例是“两报文握手”
在这里插入图片描述

为了防止已经失效的连接请求报文段突然又传到服务端,因而产生错误”,这种情况是:一端(client)A发出去的第一个连接请求报文并没有> 丢失,而是因为某些未知的原因在某个网络节点上发生滞留,导致延迟到连接释放以后的某个时间才到达另一端(server)B。本来这是一个> 早已失效的报文段,但是B收到此失效的报文之后,会误认为是A再次发出的一个新的连接请求,于是B端就向A又发出确认报文,表示同> 意建立连接。如果不采用“三次握手”,那么只要B端发出确认报文就会认为新的连接已经建立了,但是A端并没有发出建立连接的请求,因> 此不会去向B端发送数据,B端没有收到数据就会一直等待,这样B端就会白白浪费掉很多资源。

所以并不多余,这是为了防止已失效的连接请求报文段突然又传送到了TCP服务器,因而导致错误

总结

在这里插入图片描述

TCP的连接释放
  • TCP 连接释放过程比较复杂。
  • 数据传输结束后,通信的双方都可释放连接。
  • TCP 连接释放过程是四报文握手
TCP通过“四报文挥手”来释放连接
  • TCP 连接的建立采用客户服务器方式
  • 主动发起连接建立的应用进程叫做TCP客户 (client)。
  • 被动等待连接建立的应用进程叫做TCP服务器 (server)。
  • 任何一方都可以在数据传送结束后发出连接释放的通知

过程
在这里插入图片描述

现在TCP客户进程和TCP服务器进程都处于连接已建立状态

TCP客户进程的应用进程通知其主动关闭TCP连接

TCP客户进程会发送TCP连接释放报文段,并进入终止等待1状态

TCP连接释放报文段首部中

  • 终止位FIN和确认为ACK的值都被设置为1,表明这是一个TCP连接释放报文段,同时也对之前收到的报文段进行确认
  • 序号seq字段的值设置为u,它等于TCP客户进程之前已传送过的数据的最后一个字节的序号加1
  • 确认号ack字段的值设置为v,它等于TCP客户进程之前已收到的、数据的最后一个字节的序号加1

请注意:TCP规定终止位FIN等于1的报文段即使不携带数据,也要消耗掉一个序号
在这里插入图片描述

TCP服务器进程收到TCP连接释放报文段后,会发送一个普通的TCP确认报文段并进入关闭等待状态

普通的TCP确认报文段首部中

  • 确认位ACK的值被设置为1,表明这是一个普通的TCP确认报文段
  • 序号seq字段的值设置为v,它等于TCP服务器进程之前已传送过的数据的最后一个字节的序号加1,这也与之前收到的TCP连接释放报文段中的确认号匹配
  • 确认号ack字段的值设置为u+1,这是对TCP连接释放报文段的确认

在这里插入图片描述

TCP服务器进程应该通知高层应用进程,TCP客户进程要断开与自己的TCP连接

此时,从TCP客户进程到TCP服务器进程这个方向的连接就释放了

这时的TCP连接属于半关闭状态,也就是TCP客户进程已经没有数据要发送了

但如果TCP服务器进程还有数据要发送,TCP客户进程仍要接收,也就是说从TCP服务器进程到TCP客户进程这个方向的连接并未关闭

在这里插入图片描述

TCP客户进程收到TCP确认报文段后就进入终止等待2状态,等待TCP服务器进程发出的TCP连接释放报文段

若使用TCP服务器进程的应用进程已经没有数据要发送了,应用进程就通知其TCP服务器进程释放连接

由于TCP连接释放是由TCP客户进程主动发起的,因此TCP服务器进程对TCP连接的释放称为被动关闭连接

在这里插入图片描述

TCP服务器进程发送TCP连接释放报文段并进入最后确认状态

该报文段首部中

  • 终止位FIN和确认位ACK的值都被设置为1,表明这是一个TCP连接释放报文段,同时也对之前收到的报文段进行确认
  • 序号seq字段的值为w,这是因为在半关闭状态下,TCP服务器进程可能又发送
  • 确认号ack字段的值为u+1,这是对之前收到的TCP连接释放报文段的重复确认

在这里插入图片描述

TCP客户进程收到TCP连接释放报文段后,必须针对该报文段发送普通的TCP确认报文段,之后进入时间等待状态

该报文段首部中

  • 确认为ACK的值被设置为1,表明这是一个普通的TCP确认报文段
  • 序号seq字段的值设置为u+1,这是因为TCP客户进程之前发送的TCP连接释放报文段虽然不携带数据,但要消耗掉一个序号
  • 确认号ack字段的值设置为w+1,这是对所收到的TCP连接释放报文段的确认

TCP服务器进程收到该报文段后就进入关闭状态,而TCP客户进程还要进过2MSL后才能进入关闭状态

TCP客户进程在发送完最后一个确认报文后,为什么不直接进入关闭状态?而是要进入时间等待状态?

在这里插入图片描述

因为时间等待状态以及处于该状态2MSL时长,可以确保TCP服务器进程可以收到最后一个TCP确认报文段而进入关闭状态

另外,TCP客户进程在发送完最后一个TCP确认报文段后,在经过2MSL时长,就可以使本次连接持续时间内所产生的所有报文段都从网络中消失,这样就可以使下一个新的TCP连接中,不会出现旧连接中的报文段

TCP保活计时器的作用

TCP双方已经建立了连接,后来,TCP客户进程所在的主机突然出现了故障

TCP服务器进程以后就不能再收到TCP客户进程发来的数据

因此,应当有措施使TCP服务器进程不要再白白等待下去
在这里插入图片描述


5.9、TCP报文段的首部格式

在这里插入图片描述

各字段的作用

源端口和目的端口
在这里插入图片描述

序号、确认号和确认标志位

在这里插入图片描述

数据偏移、保留、窗口和校验和
在这里插入图片描述

同步标志位、终止标志位、复位标志位、推送标志位、紧急标志位和紧急指针

在这里插入图片描述

选项和填充

在这里插入图片描述

应用层

6.1、应用层概述

在这里插入图片描述

在这里插入图片描述

我们在浏览器的地址中输入某个网站的域名后,就可以访问该网站的内容,这个就是万维网WWW应用,其相关的应用层协议为超文本传送协议HTTP

在这里插入图片描述

用户在浏览器地址栏中输入的是“见名知意”的域名,而TCP/IP的网际层使用IP地址来表示目的主机,从域名到IP地址的装转换,由属于应用层范畴的域名系统DNS,在后台帮用户完成

在这里插入图片描述

常见的应用

在这里插入图片描述

总结
在这里插入图片描述


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

概念

在这里插入图片描述

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

在这里插入图片描述

对等方式(P2P方式)

在这里插入图片描述

总结

在这里插入图片描述


6.3、动态主机配置协议DHCP

概念
  • 互联网广泛使用的动态主机配置协议 DHCP (Dynamic Host Configuration Protocol) 提供了即插即用连网 (plug-and-play networking) 的机制。
  • 这种机制允许一台计算机加入新的网络和获取 IP 地址,而不用手工配置。
DHCP的作用

在之前,如果要正常访问Web服务器,需要该主机手动配置网络的相关配置信息
在这里插入图片描述

如果主机数很多,就工作量大,容易出错

如果我们给网络中添加一台DHCP服务器

在这里插入图片描述

DHCP的工作过程

DHCP 使用客户 - 服务器方式

  • 需要 IP 地址的主机在启动时就向 DHCP 服务器广播发送发现报文
    (DHCP DISCOVER),这时该主机就成为 DHCP 客户。
  • 本地网络上所有主机都能收到此广播报文,但只有 DHCP 服务器才回答此广播报文。
  • DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的 IP 地址池 (address pool) 中取一个地址分配给该计算机。DHCP服务器的回答报文叫做提供报文(DHCP OFFER)。

DHCP 工作方式

  • DHCP 使用客户-服务器方式,采用请求/应答方式工作。
  • DHCP 基于 UDP 工作(DHCP报文在运输层会被封装成为UDP用户数据报),DHCP 服务器运行在 67 号端口, DHCP客户运行在 68 号端口。

DHCP交互过程

在这里插入图片描述

DHCP客户端将广播发送DHCP发现报文(DHCP DISCOVER)

  • 事务ID
  • DHCP客户端的MAC地址

封装该报文的IP数据报的源IP地址为0.0.0.0,这是因为主机目前还未分配到IP地址,因此使用该地址代替

目的IP地址为广播地址255.255.255.255,之所以广播发送,是因为主机现在并不知道网络中有哪几个DHCP服务器。它们的IP地址各是什么

DHCP服务器收到DHCP发现报文后,根据其中封装的DHCP客户端的MAC地址来查找自己的数据库,如果查到匹配信息,则使用这些配置信息来构建并发送DHCP提供报文,如果没有则采用默认配置信息来构建报文并发送

在这里插入图片描述

DHCP服务端将广播发送DHCP提供报文(DHCP OFFER)

  • 事务ID:DHCP客户端会与之前DHCP发现报文的事务ID做对比,来判断该DHCP提供报文是否是自己的
  • 配置信息:
    • IP地址:DHCP服务器从自己的IP地址池中挑选待租用给主机的IP地址(使用ARP来确保所选IP地址未被网络中其他主机占用)
    • 子网掩码
    • 地址租期
    • 默认网关
    • DNS服务器

源IP地址:发送DHCP提供报文的DHCP服务器的IP

目的地址:因为目的主机还没分配到IP,所以使用广播地址

在本例中,DHCP客户会收到两个DHCP服务器发来的DHCP提供报文,DHCP客户从中选择一个,一般选择先到的,并向所选择的DHCP服务器发送DHCP请求报文

在这里插入图片描述

DHCP客户端将广播发送DHCP请求报文(DHCP REQUEST)

  • 事务ID
  • DHCP客户端的MAC地址
  • 接收的租约中的IP地址
  • 提供此租约的DHCP服务器端的IP地址

源地址:0.0.0.0,因为此时DHCP客户才从多个DHCP服务器中挑选一个作为自己的DHCP服务器。它首先要征得该服务器的同意,之后才能正式使用向该DHCP服务器租用的IP地址

目的地址:广播地址,这样可以一次性向所有DHCP服务器发送DHCP请求报文,来告知它们是否请求它们作为自己的DHCP服务器

在本例中,假设DHCP客户端选择DHCP服务器1作为自己的DHCP服务器,DHCP服务器1接受该请求,于是DHCP服务器1给DHCP客户端发送DHCP确认报文

在这里插入图片描述

源地址:DHCP服务器1的IP地址

目的地址:广播地址

DHCP客户收到该报文后就可以使用租用的IP地址

在使用前还会进行ARP检测

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VBFQq0qq-1641329527178)(计算机网络第6章(应用层).assets/image-20201023215652859.png)]

剩下流程图示
在这里插入图片描述

DHCP中继代理

下图的网络拓扑中的各主机是否可以通过DHCP来自动获取到网络配置?

在这里插入图片描述

使用DHCP中继代理是因为我们不用给每一个网络上都设置一个DHCP服务器,这样会使DHCP服务器的数量太多

总结

在这里插入图片描述


6.4、域名系统DNS

概述

域名相比IP地址更容易记忆

在这里插入图片描述

因特网是否可以只使用一台DNS服务器?

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

在这里插入图片描述

名称相同的域名其等级未必相同
在这里插入图片描述

在这里插入图片描述

域名解析过程

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

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

总结

在这里插入图片描述


6.5、文件传送协议FTP

概念

在这里插入图片描述

文件传送协议FTP的应用

FTP采用C/S方式(客户/服务器方式)

FTP客户计算机可将各种类型的文件上传到FTP服务器计算机
在这里插入图片描述

FTP客户计算机也可以从FTP服务器计算机下载文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

FTP基本工作原理

FTP服务器监听熟知端口(端口号为 21),使客户进程能够连接上。

FTP客户随机选择一个临时端口号与其建立TCP连接,这条TCP连接用于FTP客户与服务器之间传送FTP的相关控制命令(这条连接是FTP客户与服务器之间的命令通道)

在这里插入图片描述

下图为建立数据通道的TCP连接

FTP服务器使用自己的熟知端口号20与其建立TCP连接,这条TCP连接用于FTP客户与服务器之间传送文件

在这里插入图片描述

上面例子是主动模式:建立数据通道时,FTP服务器主动连接FTP客户

下图实例为被动模式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

两种模式对比
在这里插入图片描述

注意两种模式都是

控制连接在整个会话期间保持打开状态

数据连接传输完毕后就关闭

总结

在这里插入图片描述


6.6、电子邮件

概念

在这里插入图片描述

邮件发送和接收过程

在这里插入图片描述

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

在这里插入图片描述

电子邮件的信息格式

在这里插入图片描述

邮件读取

在这里插入图片描述

基于万维网的电子邮件

在这里插入图片描述

总结

在这里插入图片描述


6.7、万维网WWW

概念

概述

  • 万维网 WWW (World Wide Web) 并非某种特殊的计算机网络。
  • 万维网是一个大规模的、联机式的信息储藏所
  • 万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。
  • 这种访问方式称为“链接”。

万维网的工作方式

  • 万维网以客户 - 服务器方式工作。
  • 浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器
  • 客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档
  • 在一个客户程序主窗口上显示出的万维网文档称为页面 (page)。

在这里插入图片描述

在这里插入图片描述

万维网应用举例

访问网页

在这里插入图片描述

怎样标志分布在整个互联网上的万维网文档?

在这里插入图片描述

万维网的文档

在这里插入图片描述

超文本传输协议HTTP(Hyper Transfer Protocol)
概念和传输过程
  • 在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。
  • HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CTF7bC0I-1641329527192)(计算机网络第6章(应用层).assets/image-20201024222457800.png)]

  • 每个万维网网点都有一个服务器进程,它不断地监听 TCP 的端口 80,以便发现是否有浏览器向它发出连接建立请求。
  • 一旦监听到连接建立请求并建立了 TCP 连接之后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应。
  • 最后,TCP 连接就被释放了。

在这里插入图片描述

HTTP报文格式

HTTP请求报文格式

在这里插入图片描述

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

使用Cookie在服务器上记录用户信息

在这里插入图片描述

万维网缓存与代理服务器

在这里插入图片描述

如果该请求有缓存

在这里插入图片描述

如果该请求没有缓存

在这里插入图片描述

若WEb缓存的命中率比较高

则会大大减小了该链路上的通信量,因而减少了访问因特网的时延

假设原始服务器的文档被更改,这样代理服务器的文档就不是最新的

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

若未过期

在这里插入图片描述

若过期并且代理服务器的文档和原始服务器的文档一致,原始服务器则给代理服务器发送不包含实体主体的响应

在这里插入图片描述

若过期并且代理服务器的文档和原始服务器的文档不一致,原始服务器则给代理服务器发送封装有该文档的响应报文

在这里插入图片描述

总结

在这里插入图片描述

相关推荐

  1. 学习笔记——计算机网络(Internet、网络边缘)

    2024-04-20 17:52:02       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-20 17:52:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-20 17:52:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-20 17:52:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-20 17:52:02       18 阅读

热门阅读

  1. elementUi el-date-picker时间控件精确到时分秒

    2024-04-20 17:52:02       12 阅读
  2. 微服务设计模式:构建现代分布式系统的蓝图

    2024-04-20 17:52:02       14 阅读
  3. 几款AI语音克隆使用分享(未完成)

    2024-04-20 17:52:02       15 阅读
  4. play with serverless services (by quqi99)

    2024-04-20 17:52:02       15 阅读
  5. 数据结构-图

    2024-04-20 17:52:02       12 阅读
  6. 基于单片机的船舶柴油机冷却水温控制研究

    2024-04-20 17:52:02       17 阅读
  7. 数据结构8:队列

    2024-04-20 17:52:02       15 阅读
  8. 【c/c++】编写头文件

    2024-04-20 17:52:02       13 阅读
  9. 【PyTorch Lightning】.ckpt 是什么?里面有什么?

    2024-04-20 17:52:02       14 阅读