【已完结】计算机网络谢书+王道+湖科大汇总

范文:https://blog.csdn.net/jennycisp/article/details/131864734

第一章 计算机网络体系结构

1.1 计算机网络概述

1.计算机网络的概念、组成与功能

计网的概念

  • 以能够相互共享资源的方式互联起来的自治计算机系统的集合
    • 目的:资源共享
    • 组成单元:分布在不同地理位置多台计算机
    • 网络中计算机必须遵循的统一规则:协议

网络的网络(internet)

  • 计算机网络由结点Node和链路Link组成
    • 结点包括 计算机、集线器、交换机、路由器
  • 网络之间通过路由器互联起来,构成了覆盖范围更大的网络:互联网(internet) 因此是“网络的网络”(Network of Networks)
  • 网络把计算机连接在一起,而互联网把网络通过路由器连接在一起,与网络相连的计算机叫主机

问题:

  • Internet 和 internet 的区别
  • internet(互联网)是通用名词 泛指多个计算机互联而成的网络,他们的通信协议是任意的
  • Internet(因特网)是一个专有名词 指全球最大的、开放的、由众多网络互联的特定计算机网络,采用TCP/IP作为通信规则。

image-20230602195338578

计网的组成

  • 组成部分上,由硬件、软件、协议三大部分组成
    • 协议:网络传输的规范 是对同等实体之间通信指定的有关通信规则约定的集合
  • 工作方式上,分为边缘部分和核心部分
    • 边缘部分由主机(端系统 end system)组成,是用户直接使用的,用于通信和资源共享
    • 核心部分由网络和router组成,为边缘部分提供连通性和交换
    • 注:计算机之间的通信是主机A 的某个进程和主机 B 的另一个进程通信
  • 功能组成上,分为通信子网和资源子网
    • 通信子网由传输介质、设备和对应协议构成
    • 资源子网由资源共享设备和软件的集合构成

image-20230725191013658

  • 客户-服务器方式 C/S
    • 客户是服务请求方,服务器是服务提供方
    • 客户主动发起通信,必须知道对方地址,不需要复杂操作系统
    • 服务器可同时处理多个请求,被动等待客户的请求,需要强大的操作系统支持
    • 客户服务器指的是进程(软件)
  • 对等连接方式 P2P
    • 两台主机通信时不区分谁是服务请求方,谁是服务提供方
    • 本质上看仍然时C-S方式,只是每一台主机既是客户又同时是服务器
    • 支持大量对等用户工作

计网的功能

两个重要的基本特点是连通性和共享

数据通信(连通性)

  • 最基本最重要的功能 实现计算机信息的传输
  • 将分布在不同地理位置的计算机互连起来
  • 进行统一调配、控制、管理

资源共享

  • 软件共享、数据共享、硬件共享

③ 分布式处理

  • 分配给空闲计算机处理某个复杂任务

④提升可靠性

  • 互为替代机

⑤负载均衡

  • 任务均衡分配

2.计算机网络的分类

  • 按覆盖范围
    • 广域网 WAN 50km-2000km
    • 城域网 MAN 5-50km
    • 局域网 LAN 50m-5km
      • 局域网用广播技术,广域网用交换技术
    • 个人区域网 PAN 10m
  • 按拓扑结构
    • 星 总线 环形(令牌) 网状(可靠性高但链路复杂成本高)
    • 前三种用于局域网,网状用于广域网
  • 按使用者
    • 公用网
    • 专用网
  • 按传输介质
    • 有线(双绞线、同轴电缆、光纤)
    • 无线(蓝牙 微波 无线电)
  • 按传输技术
    • 广播式
      • 所有联网计算机共享一个公共通信信道
      • 当一个计算机发送报文分组,其他计算机均会收听到分组
      • 局域网,无线卫星采用
    • 点对点
      • 每条物理链路连接一对计算机
      • 没有直接链路则通过中间节点接收、存储、转发 终点
      • 广域网基本采用点对点
  • 按交换技术
    • 电路交换
    • 报文交换
    • 分组交换

3.计算机网络的标准化工作及相关组织

  • 关注1983年ARPANET的前身

image-20230725192304790

注:

  • 互联网服务提供者ISP(Internet Service Provider)

  • 如今的互联网是由全世界大大小小ISP共同拥有的,这是网络的网络的原因

  • ISP分为:主干ISP、地区ISP、本地ISP

  • 互联网交换点IXP(internet eXchange Point)的作用是:允许两个网络直接相连并交换分组,而不需要第三个网络来转发分组,使得数据流量分布更合理,同时减少了分组转发的时延,降低分组转发费用

  • 典型的IXP由一个或多个交换机组成。

image-20230725193145714

组织

image-20230725191626473

*1.2 计算机网络体系结构与参考模型

1.计算机网络分层结构

image-20230426200453828

为什么要分层

image-20230426201740762

各层的作用是什么

image-20230426202023241

2.计算机网络协议、接口、服务等概念

image-20230426205229551

image-20230426205301203

image-20230426205345744

image-20230426205409579

image-20230426205427839

image-20230426205447198

3.ISO/OSI参考模型和TCP/IP模型

image-20230725214343145

相同点:
都采用分层的结构
都基于独立的协议栈概念
两者都可以解决异构网络的互联

不同点(重要):

  • 服务、协议、接口
    • OSI精准定义了服务、协议、接口,符合面向对象程序设计的思想
    • TCP/IP没有明确区分
  • 协议的匹配
    • OSI没有偏向特定的协议 通用性良好,但协议不知道放哪一层
    • TCP/IP先出现协议,不会出现协议不匹配模型的情况,但不适合其他非TCP/IP的协议栈
  • 异构网络互联
    • OSI只考虑了用一个标准公用数据网将不同网络互联,而只好了网络层划分出一个子层
    • TCP/IP考虑了异构网互联的问题,使用网际协议IP作为单独的重要层次
  • 面向连接和无连接
    • OSI支持无连接和面向连接的通信,但在传输层只有面向连接的通信
    • TCP/IP认为可靠性是端到端的问题,因此网际层只有无连接的通信模式,但传输层支持无连接和面向连接两种方式

习题课

image-20230426211616685

image-20230426212131195

image-20230426212252393

image-20230426212502422

image-20230426212653277

image-20230426212749906

image-20230426213207244

image-20230426213241906

image-20230426213541151

image-20230426214050750

image-20230426214624922

image-20230426215021784

image-20230426215443210

image-20230426220131522

image-20230426220458667

image-20230426221139958

image-20230426221619436

第二章 物理层

*2.1 通信基础

1.基本概念

数据、信号、码元

  • 数据是传送信息的实体

  • 信号是数据传输过程中的存在形式(电气 电磁)

    • 模拟、数字可以修饰以上两种概念标准是是否是连续变化的
  • 码元是用一个固定时长的波形表示一个k进制数字

    • 表示不同离散值的基本波形
    • 该时长也叫码元宽度,1码元可携带若干比特信息量
    • 二进制编码就有两种码元,0,1

信源、信道、新宿

  • 信源是产生和发送数据的源头 新宿是接收数据终点

  • 信道是信号的传输媒介

    • 信道按照信号形式
      • 传输模拟信号的是模拟信道
      • 传输数字信号的是数字信道
    • 按照传输介质
      • 有线信道,无线信道
    • 按照是否对数字信号调制(使用载波的调制叫带通调制,调制后的信号叫带通信号)
      • 基带传输和宽带传输
  • 通信双方三种通信方式

    • 单向通信,无线电 广播,一条信道
    • 双向交替通信(半双工),如果需要同时接收发送 要两条信道
    • 双向同时通信,也需要两条信道
  • 信道的极限容量:最高码元传输速率 信道的极限信息传输速率

速率、波特、带宽

码元传输速率,波特率,调制速率 波形速率 符号速率
单位码元的个数,Baud,码元速率与进制数无关
信息传输速率,比特率,信息速率。单位时间传输的二进制码元个数,bit/s

一个码元携带n比特信息量,则M Baud的码元传输速率对应的信息传输速率是nM bit/s
仅使用二进制时(码元携带1比特信息) 两者相等

带宽是频带宽度,单位Hz
在网络中是一点到另一点最高数据率,单位bit/s

image-20230429153116443

  • 同步传输中的外同步和内同步
  • 异步传输中的异步是字节之间的间隔不固定,同步是字节内每个比特同步

image-20230429153317476

2.奈奎斯特定理与香农定理

image-20230429161244205

image-20230429161300890

image-20230429161313013

计算练习

注:传输速率就是发送比特率,而传播速率才受信号传播速度影响、调制速率 符号速率 波特率是码元传输速率

  • 自由 3.0*10^8
  • 铜线 2.3*10^8
  • 光纤 2.0*10^8

image-20230429161057053

image-20230429161105868

image-20230429161120000

image-20230429161132812

image-20230429161143930

3.编码与调制

image-20230429161408207

image-20230429161437550

  • 数字数据 编码=>数字信号

image-20230429161505586

  • 数字数据 调制=>模拟信号

    • DSSS OFDM
  • 模拟数据 编码=>数字信号

    • PCM 采样、量化、编码
    • 带宽是最高频率和最低频率之差
    • 采样频率就必须大于等于带宽两倍
    • 采样定理又称奈奎斯特定理
    • 量化按照分级对应的数字值转化为离散数字量
    • 采样的频率×信号码元编码的位数=最大数据传输速率
      (当然在频率<=2W 的限制下)
    • 编码是将量化结果转为二进制编码
  • 模拟数据 调制=>模拟信号

    • 频分复用FDM

    image-20230429161541504

    image-20230429161607644

image-20230429161523841

4.电路交换、报文交换与分组交换

电路交换无纠错能力!

image-20230420191430734

分组交换要点如下:

  • 发送方:构造/发送分组
  • 路由器:缓存/转发分组
  • 接收方:接收/还原分组

优缺点分析

image-20230725212846309

image-20230725212854765

image-20230725212904455

image-20230725212911665

image-20230725201046695

image-20230725201049145

5.数据报与虚电路

是分组交换的两种方式

  • 思想:可靠通信,数据报靠主机,虚电路靠网络

  • 建立连接:数据报要,虚电路不用

  • 终点地址:数据报每个分组都有终点地址,虚电路仅在连接建立阶段使用

  • 分组转发:数据报可走不同路由,但属于同一条虚电路的分组均按照同一路由转发

  • 链路出现故障:数据报有冗余路径,但是虚电路会遭到破坏

  • 分组的顺序:数据报不按顺序,但虚电路按顺序交付

  • 端到端的流量处理和控制:数据报无,虚电路有

image-20230604182451186

2.2 传输介质

1.双绞线、同轴电缆、光纤与无线传输介质

双绞线

  • 绞合的作用是减少对相邻导线的电磁干扰

  • 为了进一步提高抗电磁干扰,外面还有一层呢

    • 这种是屏蔽双绞线(STP)
    • 非屏蔽双绞线(UTP)
    • 一般5km-50km
  • 同轴电缆

    • 主要用于有线电视
    • 有很好的抗干扰特性
  • 光纤

    • 三个波段中心是 850mm 1300mm 1550mm
    • 多模光纤的光源是发光二极管 只适合近距离
    • 单模光纤很细,不会有多次反射,光源是很好的半导体激光器,衰减小 可以50km
  • 光导纤维优势:

    • 传输损耗小 中继距离长
    • 抗电磁干扰能力强
    • 无串音干扰 保密性好
    • 体积小 重量轻
  • 无线传输介质

    • 无线电波 穿透能力强 WLAN
  • 微波 红外线 激光

    • 微波频率高 信道容量大但是沿直线传播,要中继站
    • 卫星通信利用同步卫星为中级发射信号 容量大 距离远 覆盖广 但是保密性差 时延长

2.物理层接口的特性

  • 机械特性

    • 形状 尺寸 引脚数目
  • 电气特性

    • 电压范围
  • 功能特性

    • 各电压表示的意义
  • 过程特性(规程特性)

    • 不同功能的各种可能事件出现的顺序

标准 ELA RS-232-C ADSL SONET/SDH

2.3 物理层设备

1.中继器

  • 将信号整型放大再转发出去 以消除信号经过长段电缆产生的失真和衰减
  • 两个端口,输入端口和输出端口发出
  • 网络部分是网段,不是子网
  • 不能连接两个不同速率的局域网
  • 端口仅作用于电气部分
  • 通过中继器无限延长网络上不可能的,因为网络标准规定了信号的延迟范围,所以中继器只能在规定范围内进行有效工作,否则会引起网络的故障
  • 5-4-3规则 5段通信介质,4个中继器串联,只有3段可以挂计算机

2.集线器

  • 就是一个多端口的中继器
  • 逻辑上是一个总线型网络
  • 只能在半双工下工作
  • 不能分割冲突域
  • 一个10Mb/s带宽的集线器连了8个PC,每个带宽是1.25Mb/s,因为一个周期只能传一组信息

第三章 数据链路层

image-20230728205100316

3.1 数据链路层的功能

数据链路层三大基本问题

  • 帧定界、帧同步(组帧)

    • 例如,HDLC-- F(01111110)标识帧的开始和结束
  • 透明传输

    • 透明传输的意思是采取措施解决数据中恰好出现与帧定界符相同的比特组合的问题,使得每一个比特传输的数据能够按照原样没有差错的通过数据链路层
  • 差错控制

    • 差错表现为:帧的丢失、重复、失序问题
    • 通过自动重传请求ARQ来重传出错的帧和海明码解决帧的丢失问题
    • 定时器超时重发(解决丢失)
    • 帧编号机制(解决重复)
    • 用循环冗余校验CRC发现位错(失序问题)
  • 链路管理(CSMA/CD协议)

    • 数据链路层连接的建立、维持和释放过程,主要面向连接
    • 多个站点共享统一物理信道的情况如何要求通信站点间分配和管理信道也是数据链路层
  • 流量控制(滑动窗口)

    • 发送方发送能力大于接收方的情况下,需要限制发送方发送速率 接收的帧被后面发来的帧所淹没,造成帧丢失而出错。
    • 即限制发送方的数据流量
    • 需要一个反馈机制 让发送方知道接收方能否接收到自己的下一帧
    • OSI 数据链路层具有流量控制
    • 而TCP/IP中 流量控制在传输层,所以谢希仁把他放到了传输层展开讲解
  • 为网络层提供服务

    • 无确认的无连接服务,信道已知可靠但实时性要求高,以太网

    • 有确认的无连接服务,适用于误码率较高,无线通信

    • 有确认的面向连接服务, 可靠性和实时性要求高的场合

    • ps:面向连接一定有确认

3.2 组帧

字符记数法

  • 帧头部用一个记数字段来表明 帧内的字符数(本身占用一个记数)
  • 缺陷:如果记数字段错误,那么就失去了帧边界划分的依据,收发双方将失去同步

字符填充的首尾定界符法

  • 使用控制字符SOH表示开始 EOT表示结束
  • 数据部分重复的使用ESC转义
  • ESC如果出现了,前面再加一个ESC

零比特填充的首尾标记法(常用)

  • 允许帧内任意个数的比特,使用01111110 标志开始和结束
  • 遇到5个连续的1 就在后面插入一个0
  • 接收方做一个逆操作,即收到5个连续的1 删去后面的0
  • 易于用硬件实现,性能优于字符填充法

违规编码法(常用)

  • 物理层比特编码常用,比如曼码,只有高低,低高,没有用到高高 低低电平

    这两个就可以作为帧的开始和终止的标记,IEEE802就采用了这种标准。

3.3 差错控制

1.检错编码(后续自动重传请求ARQ)

奇偶校验码

n-1 信息元 + 1 校验元

奇校验码:包含校验元 1的个数是奇数
偶校验码:包含校验元 1的个数是偶数

接收方的根据1的奇偶情况发生改变从而检验出错误。

循环冗余码CRC

多项式G(x)的生成:110110 -- x5+x4+x^2+x
位数= 最高阶+1

给定m帧的报文 生成一个r bit的帧检验序列FCS
FCS位数是最高阶数r

操作:

  1. 加0 帧的最低位 + G(x)阶数个 0
  2. 模2除
  3. 得到r位FCS冗余码(前面的0不可省略)
  4. 最后发出的数据共m+r位

注:CRC有纠错功能但数据链路层没用到所以放在检错编码这里

2.纠错编码(后续前向纠错FEC)

海明码

n位数据 k个校验位
要求 n+k<=2^k-1
能检测出1位错误 纠正1个错误
如果要检测两个错误,k还要再加1

确定校验位的分布
从右往左 0,2,4位
然后分组,第一个是最后一位有1,第二个是倒数第二个有1,以此类推

后面进行异或,得出校验位
全0则无错,有1 是出错位数

*3.4 流量控制与可靠传输机制

1.流量控制、可靠传输与滑动窗口机制

发送窗口 接收窗口:
SW 1 1
GBN >1 1
SR >1 >1

发送窗口只有收到确认帧才会往前滑动
接收窗口为1时 可保证帧有序接收
窗口的大小是固定的,区别于传输层的窗口

可靠传输:
确认 和 超时重传两个机制

发送窗口如果超过了范围,会造成新旧分组无法辨析的问题

计算题一些词的理解 备忘录

(数据)帧长是指发送一次的帧
数据大小是指所有数据加起来的帧长度

发送窗口尺寸是指我在收到对方确认前我能发送多少数量的帧

总时间的计算是收到第一个帧的确认的时间
发送时间是所有发送出来的时间

收到确认前发送最多比特数 = 总时间 / 单次发送时间

帧序号的比特数最少是要我计算在收到对方的确认前,我能发送多少数量的帧
例如GBK 2^n-1 <= 发送的帧数量

最大平均数据传输速率=min(带宽,GBN限制下的速率)

2.停止-等待协议

  • 关注两种情况:

    • 确认丢失引入超时定时器
    • 确认迟到引入ACK编号(出现的少)
  • 关注一个利用率的问题

    • 通过这个图可以易得RTT对于SW协议的信道利用率关系是非常大的。

image-20230728210121538

3.后退N帧协议(GBN)

  • 使用到一种累计确认的方式,即只对最后一个接收到的数据分组发送确认分组,当然也可以对确认报文进行捎带确认

  • 接收方接收到未按序到达的数据是丢弃且对最近接收的分组进行确认

  • 发送方长度 0~7时 不超过2^3-1=7的理解,如果一次性发8个,即0~7报文

    考虑一种情况:接收方已经收到前8个报文 准备接收0号报文 但是我对7号报文的确认丢失了

    发送方重传,这就是新旧无法辨析的由来。

image-20230728210138456

4.选择重传协议(SR)

  • 不采取累计确认了,需要对每个传输成功的分组逐一确认

  • 发送方范围的理解,为什么不能超过一个分组长度的一半,主要原因是确认报文如果丢失了,而接收方已经划过去了,发送方超时发送0号报文,此时就会出现新旧数据无法辨析的问题

  • 需要满足 发送窗口+接收窗口<=2^n

  • 理解:同样考虑一种情况就是比如同样是n=3,07,规定的发送窗口应是24,如果窗口是5的话,发送0~4,那么接收方全部收到以后的窗口就会移到 5 6 7 0 1,如果确认报文丢失,导致发送方重传,新旧无法辨析由此而来。

image-20230728210203697

image-20230920201906433

image-20230920201836275

*3.5 介质访问控制

1.信道划分

就是逻辑上划分成两个结点通信互不干扰的通道
广播信道转变为点对点信道

时分多路复用

统计时分复用(异步时分多路复用)STDM
按需动态分配时隙,当终端有数据要传送才会用到时间片 这可以增加线路的利用率

频分多路复用、波分多路复用、码分多路复用

image-20230728210320559

2.随机访问

ALOHA

  • 纯ALOHA协议

每个站都可以自由地发送数据 不需要任何检测
如果一段时间无确认,就发生了冲突,等待一段时间重发!

image-20230728220249661
  • 时隙ALOHA

为了避免随意性,将时间划分成等长的时隙Slot
帧到达以后,在缓存中等待一个小于时隙T0长度的时间,然后发送。
但是如果两个及以上的帧到达了,下一个时隙必然有碰撞。
碰撞后重传的策略也是等待一个随机时间再传。

image-20230728220415859

CSMA协议

ALOHA本质上还是随心所欲的发送数据
所以引入一个发送前监听信道,检测到空闲才发送的操作
这就是载波监听多路访问CSMA

  • 1-坚持CSMA

监听:

  • 空闲,立刻发(100%发送)
  • 忙,等,直至监听到空闲
  • 冲突 随机等待一段时间 再重新开始监听

考虑延迟:当A发送B,数据还没到B时,B检测空闲 立刻发送,碰撞!
考虑同时:B 和C 都在监听,A发送完,B和C立即发送数据,碰撞!

  • 非坚持CSMA(忙时等待随机)

监听:

  • 空闲,立刻发(100%发送)
  • 忙,放弃监听,等待随机时间后再监听(区别1坚持)
  • 冲突 随机等待一段时间 再重新开始监听

减少了B C等到空闲,抢着发的情况,但是是以增加延迟为代价的。

  • P-坚持CSMA(空闲时以概率p发送 概率1-p推迟到下一个时隙)

监听:

  • 空闲,立刻发
    (以概率p发送 以概率1-p推迟到下一个时隙)
    区别于1-坚持CSMA

  • 忙,等,直至监听到空闲
    (时隙信道就是在下一个时隙再听)

  • 冲突 随机等待一段时间 再重新开始监听

理解:

  • 空闲时 1-坚持和非坚持立刻发,p坚持 p发送 1-p推迟下一个时隙
  • 忙时 1-坚持和p坚持持续监听,非坚持型放弃监听,等待随机事件后重新监听

概率发送也同样减少了多个结点在检测到空闲同时发的概率
同时坚持监听还有一个目的是:试图克服由于随机等待造成的时延问题,这是以上两种的折中方案。

image-20230728220524275

CSMA/CD协议

先听后发,边听边发,冲突停发,随机重发

CSMA载波监听多路访问:
发送前监听是为了获得发送权。
碰撞检测CD就是边发送边监听,如果有碰撞,立刻停止!等待一个随机时间后重发。

以太网规定争用期为51.2us,即对于10Mb/s的以太网,可以发送512bit,即64B,这也是以太网规定最短帧长的由来

如果小于64B 那么一概认为是由于冲突而异常中止的无效帧

二进制退避算法
首先确定一个基本退避时间2t
定义参数k
k≤10 -- k=min{重传次数,10}
k≥10-- k=10
k=16 丢弃并报告上级

而后在【0,1,2,...,2^k-1】选一个数r作为r倍的基本退避时间 2rt

平均时间随着重传次数增大而增大,有利于系统的稳定。

加强型的碰撞检测是多了一步发送人为32或48比特干扰信号
帧间最小间隔是9.6us 即还需等待96比特的时间

image-20230728220902840

image-20230728210640808

image-20230728210704013

CSMA/CA协议

CA是碰撞避免
802.11规定 所有的站发送完后必须等待一个帧间间隔IFS
IFS有三种:
SIFS 最短(RTS和CTS中)
PIFS 中等
DIFS 最长(刚开始+忙转为空闲)

从忙态转化成空闲态时,不仅要等待一个时间间隔,还要进入一个争用窗口
当且仅当信道空闲且这个帧是第一帧才不进行退避算法

第i次退避的时候
在【0,1,2,3...,2^(2+i)-1】中选择一个乘以基本退避时间。时隙编号255(第六次)就不增加了

  • 退避时间在其他信道发送时,是会冻结的,后续就不需要再等待一个退避算法了

image-20230728210707517

image-20230728210714431

  • 信道预约(处理隐蔽站问题)

虚拟载波监听:站点只需监听RTS CTS中的任意一个,就能知道信道被占用的时间,而不需要真正知道信道上的信号,从而减少隐蔽站带来的碰撞问题

CTS两个目的
给源站发出发送许可
指示其他站在预约期内不要发送

image-20230728210821547

两者比较

  • 冲突的处理方式不同。CSMA/CD 可以检测冲突,但无法避免,CSMA/CA发送数据的同时不能检测信道上有无冲突,本结点无冲突不代表接收结点没有冲突,所以只能尽量避免

  • 传输介质不同。CSMA/CD用于总线型以太网,CSMA/CA用于无线局域网802.11/a/b/g/n等

  • 检测方式不同,CSMA/CD通过电缆的电压检测,而CSMA/CA是通过能量检测、载波检测、能量载波三种检测信道空闲的方式

  • 基本思路不同。CSMA/CA基本思想是发送数据时广播告知其他结点让其他结点不要发送数据。而CSMA/CD协议是发送前监听,边发送边监听,一旦出现碰撞立马停止发送

  • 退避算法不同,CSMA/CD 首先确定一个基本退避时间2t 定义参数k k≤10 -- k=min{重传次数,10} k≥10-- k=10
    k=16 丢弃并报告上级,而CSMA/CA 在【0,1,2,3...,2^(2+i)-1】中选择一个乘以基本退避时间。时隙编号255(第六次)就不增加了

3.轮询访问

令牌传递协议

令牌沿着环形在各计算机依次传递
令牌是一个特殊的MAC控制帧 不包含信息
一个站点要发送数据 必须等待令牌 因此不会产生碰撞 所有的计算机访问权是公平的
有检验机制,出错会重传
传输完数据后重新生成令牌
拓扑不一定是环但逻辑上必须是环

适合负载高的信道

也是将广播信道在逻辑上变成了一个点对点的信道。

3.6 局域网

1.局域网的基本概念与体系结构

局域网的特点是一个单位所有 地理有限
所有站点共享较高的总带宽
较低时延和误码率
平等关系而非主从关系
能广播 组播

拓扑结构 星 环 总线 星总线结合

MAC方法有 CSMA/CD 令牌总线 和令牌环
前两种用于总线 后用于环

三种拓扑:
以太网 逻辑总线 物理星形
令牌环 802.5
FDDI 802.8 光纤分布数字接口 逻辑是环 物理是双环结构

OSI将数据链路划分为逻辑链路控制子层LLC和介质访问控制子层MAC
组帧 比特差错 透明传输这些都类别于MAC
LLC于传输媒体无关,向网络层提供4种不同连接服务类型(有/无确认,有/无连接)

2.以太网与IEEE802.3

以太网 传输介质和网卡

记住这些,题目默认你已知

image-20230730221753292

星形网中心是集线器,但逻辑上还是总线,同属于一个冲突域

网卡与局域网在串行方式工作,而网卡与计算机在I/O总线并行方式进行,网卡有一个重要功能就是串并转换,且不仅仅有物理连接和电信号的匹配,还可以对帧的拆分 封装 MAC 编码解码 数据缓存等/

网桥 交换机 都有MAC地址 ,而网卡控制主机对介质的访问,也工作在物理层,因为它只关注比特。

image-20230728210922297

MAC帧

前同步码 8字节 前7字节1010101010...
后1字节10101011

之所以不要帧结束符 因为各帧之间必须有间隙
但是请注意,数据链路层需要尾部。

数据部分的46的计算方式是:首部尾部总长度是18
总最小帧长度是64B,64-18=46

FCS不校验前导码,其他都校验 采用32位CRC

而IEE802.3 的标准用长度代替了类型,因为长度最多1500,超过了1500可用于类型标识符

高速以太网

100BASE-T以太网 100Mb/s
支持全双工,半双工,半双工下用CSMA/CD
帧间间隔从9.6us到0.96us
使用802.3格式

吉比特以太网
千兆以太网 1Gb/s 全双工版半双工都工作,其他同上

10吉比特以太网 唯一不同点,
只有工作在全双工模式下,格式同上。

3.IEEE802.11

无线局域网组成

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

协议包括802.11 a/b/g/n
802.11采用星形拓扑,中心是接入点AP,MAC层使用CSMA/CA协议
最小构件是基本服务集BSS 包括一个接入点和若干移动站
AP分配32位的服务集标识符SSID和信道
基本服务集可以孤立也可以连接到分配系统然后连接到另一个基本服务集合构成拓展的服务集ESS
ESS可通过Portal门户设备提供接入

  • 无固定基础设施移动自组织网络

地位平等,都具有路由器功能

802.11 MAC 帧

3种类型的帧
数据帧、控制帧、管理帧

首部30字节
数据部分2312字节
FCS尾部4字节

四个地址字段 讨论前三个
(原则是前两个对应 接收 发送 第三个补充)
如果是去往AP的
那么就是 AP地址 源地址 目的地址
如果是来自AP的
那么就是 目的地址 AP地址 源地址

image-20230730222553708

VLAN

标记4字节:
前两个字节置为0x8100表示802.1Q帧
后两个字节控制信息(其中12位VID)

两个VLAN虽然跨越了两个交换机但都是一个广播域

交换机有拆标签装标签的过程
收到的帧是标准以太网帧 而不是802.1Q帧

image-20230730222917407

4.令牌环网的基本原理

同轮询,不存在冲突 ,想要发送必须要有令牌

3.7 广域网

1.广域网的基本概念

  • 广域网由结点交换机(不是路由器)转发分组
    • 结点交换机是一个网络转发分组
    • 路由器是多个网络转发分组
  • 结点之间都是点对点连接,通常一个节点交换机与多个结点交换机相连
  • 局域网协议在数据链路层,广域网协议在网络层(帧中的控制信息决定的)
  • 广域网的重要问题是路由选择和分组转发
  • 广域网常见的协议是PPP协议和HDLC协议

image-20230731203635452

image-20230731203541429

2.PPP协议

  • 点对点协议(Poinit-to-Point)是串行线路面向字节的协议

    • 支持拨号连接(动态分配IP)
  • 三个组成:LCP NCP 封装方法

    • LCP (链路控制协议) 建立、测试、管理链路
    • NCP (网络控制协议)为网络层协议建立和配置逻辑连接
    • IP封装在串行链路的方法(封装成帧)。IP数据报是PPP帧中一部分,受最大传送单元MTU限制
  • 帧格式

    • 标志字段F(7E) 做字节填充,转义字节是7D
    • PPP面向字节,帧长度是整数个字节
    • 协议段 0是IP IPX等网络层协议,1是协商其他协议 如LCP、NCP
    • 信息部分大于等于0 小于等于1500字节
      • 之所以没有最短帧46是因为PPP是点对点的 不是总线形,不需要CSMA/CD协议
    • FCS是帧检验,向上是提供不可靠传输服务的,有错误就丢弃

    image-20230731205254204

  • 透明传输

    • 面向字节的字节填充法

    image-20230731205326690

    • 面向比特的比特填充法

    image-20230731205426578

  • PPP状态图

    • 两种认证:PAP CHAP
      • PAP传输时用明文 两次握手 被叫方请求,主叫方相应
      • CHAP传输时用hash值 三次握手 主叫方请求,被叫方回复

    image-20230731204327415

  • 特点汇总

    • PPP提供差错检测但不提供纠错功能,只保证无差错接收(通过硬件进行 CRC校验)。
      它是不可靠的传输协议,因此也不使用序号和确认机制。
    • 仅支持点对点的链路通信,不支持多点线路。
    • PPP只支持全双工链路,没有半双工,没有CSMA/CD协议
    • PPP的两端可以运行不同的网络层协议,但仍然可使用同一个PPP进行通信。

3.HDLC协议

  • 高级数据链路控制HDLC是面向比特的数据链路层协议

  • 基于0比特插入法实现透明传输 采用CRC检验

  • 有3类帧:信息帧(I) 监督帧(S) 无编号帧(U)

  • 标志字段F:01111110(连续5个1就要插入0的由来)

    image-20230731211215610

  • HDLC和PPP对比

    image-20230731211301744

3.8 数据链路层设备

1.网桥的概念及其基本原理

  • 网桥工作在链路层MAC子层
  • 可隔离冲突域,但没有过滤通信量功能
  • 网桥必须有路径选择功能
  • 网络A和网络B 通过网桥连接,网桥接收A的数据帧,检查帧中地址
  • 网桥可以互联不同MAC子层 不同速率的子网
    • 如果是B就转发给B
    • 如果是A就丢弃,因为源站和目的站在一个网段不需要借助网桥转发

2.局域网交换机及其工作原理。

局域网交换机工作在数据链路层,实质上是多端口的网桥

  • 通常工作在全双工模式
  • 交换机可以方便地使用VLAN 既隔离冲突域 又隔离广播域
    • ps:隔离冲突域的意思是形成了多个冲突域
    • 没有隔离广播域的意思是组成了 一个广播域
  • 10Mb/s 以太网 N个用户 总容量为N*10M/s这是相比于传统只有10Mb/s的最大优点

image-20230504191340303

  • 两种交换模式:直通式交换机(速度快但不智能)、存储转发式交换机(支持速率转换 可靠性好)
  • 即插即用设备,通过自学习算法逐步建立连接
  • 帧交换表中:目的MAC地址与对应接口号
  • 自学习过程(三种情况 盲目转发 明确转发 明确丢弃)

image-20230731215421076

注:每条记录有有效时间,会老化,原因

  • 交换机接口改接主机
  • 主机更换网卡

四、网络层

4.1 网络层的功能

1.异构网络互连

  • 网络层主要任务是使异构的网络实现互连
  • 网络互连是两个以上的计算机网络,用中间设备(中继系统)连接起来 构成更大的网络系统
    • 物理层中继系统:转发器、集线器
    • 链路层中继系统:网桥、交换机
    • 网络层中继系统:路由器
    • 网络层以上中继系统:网关
  • 虚拟互连网络(逻辑互连网络)的意思是:互连起来的异构性是客观存在的,但可以通过IP协议把这些异构的网络看起来好像是统一的网络,也就是IP网络
    • 好处:IP上的主机通信就好像是同一个网络一样,看不到具体的异构细节(编址方案,路由选择协议等)

image-20230801194815249

2.路由与转发

  • 路由器的两大功能:一是路由选择、二是分组转发

    • 前者是交换路由信息更新路由表,后者是处理数据流 选择合适的端口
  • 软件定义网络SDN采用集中式和分布式控制平面使两个平面相互分离

    • 路由器之间不再交换路由信息,通过Openflow协议通过远程控制器将转发表下发给路由器
    • SDN使得网络具有编程性 提供的编程接口是北向接口
    • SDN和转发设备建立双向会话的接口是南向接口(对照图 上北下南背)
    • 优点是集中式控制、灵活可编程、降低成本
    • 缺点是安全风险,以及网络规模瓶颈问题

image-20230801195108625

3.拥塞控制

  • 拥塞:过量的分组引起网络性能下降

image-20230801195750948

  • 判断拥塞:看网络吞吐量和网络负载的关系
    • (随着网络负载↑,吞吐量↓,吞吐量比正常吞吐量小时,就出现了拥塞。吞吐量为0,死锁状态)
  • 拥塞控制是全局性的过程
  • 拥塞控制的方法:开环控制和闭环控制
    • 开环是静态的,事先周到考虑拥塞因素,而不考虑当前网络状态
    • 闭环是动态的,不事先考虑拥塞因素,采用监视系统监视,监测哪里发送拥塞,基于反馈环路

4.2 路由算法

1.静态路由与动态路由

  • 静态路由(自适应路由算法)是手工配置的路由信息,不能及时响应网络状态的变化,小型网络
  • 动态路由(自适应路由算法)是在时间间隔内不断更新适应不断变化的网络
  • 静态优点是简便和开销小,对于拓扑变化不大的小网络运行效果好
  • 动态优点是改善网络性能并有助于流量控制,但算法复杂,增加网络负担
    • 动态路由协议两类:距离-向量路由算法和链路状态路由算法

2.距离-向量路由算法

  • 所有结点定期将整个路由表传送给与之相邻的结点
    • 路由表包含:每条路径的目的地(另一结点),路径代价(距离)
  • 更新路由表的情况
    • 被通告加入新的路由,而该路由在本结点不存在,新加此路由。
    • 发来的路由信息中有一条到达某个目的地路由,而该路由和当前使用路由相比有较短距离,替换此路由。
  • 实质:迭代计算到达目标最短代价通路,更新报文大小与结点个数成正比
  • RIP协议以跳数作为距离度量,直连路由跳数是1,16跳不可达
  • 可能存在路由回路问题(好消息传得快 坏消息传得慢,慢收敛是根本原因)

3.链路状态路由算法

  • 要求每个结点具有完全的网络拓扑信息
    • 第一,主动测试所有邻接结点状态
    • 第二,定期将链路状态传播所有结点
  • 使用Dijkstra算法计算路由,单源获得最短路径
  • 三个特征
    • 路由器通过所有端口向相邻路由器发送信息(洪泛法),然后相邻路由器除发给他的之外再向外洪泛
    • 发送的信息是路由器响铃所有路由器链路状态
    • 只有链路状态发生变化,路由器才向所有路由器发送信息
  • 优点:易于查找故障,与路由结点无关,有规模可伸展性

4.层次路由

  • 来由:路由表的规模扩大,缓冲区消耗变多,查找耗费更大,需要按照层次方法进行

  • 实现方式:划分自治系统AS

    • 域内路由选择:内部网关协议IGP,RIP OSPF
      • OSPF再将自治系统划分为若干区域,每个路由器知道本区域到目的地细节 而不用知道其他区域
    • 域间路由选择:外部网关协议EGP,BGP

*4.3 IPv4

image-20230920202205566

1.IPv4分组

  • 版本:协议版本,目前是4

  • 首部长度:4位,最大10进制数是15,以4字节为单位最大值是15*4=60B,常用的是20B 不包含可选字段

  • 总长度:16位,是首部+数据的长度,单位是字节,最大是65535B,而MTU规定1500B,总长度不能超过MTU

  • 标识:16位,计数器,产生1个数据报加1 赋值给标识字段,超过MTU时必须分片,每个数据报片复制一次标识号,以此来重装原来的数据报

    • 注意不是“序号”,IP是无连接服务
  • 标志:3位,最低位是MF(More Fragment),MF=1还有分片,中间一位是DF(Don't Fragment) DF=0时才允许分片

  • 片偏移:13位,以8个字节为偏移单位,除最后一个分片,其他长度的数据长度一定是8B的整数倍

  • 生存时间TTL:8位,表示通过路由器数的最大值,确保分组不会循环

    • 路由器先把TTL减1,如果TTL为0,分组丢弃
    • 如果TTL为1,就表示该报文只能在本局域网内传输
  • 协议:8位,表示数据应上交给哪个协议处理,6表示TCP,17表示UDP

  • 首部校验和:16位,只检验首部部分

  • 源地址和目的地址占用4B

    格外关注首部长度基本单位4B,总长度基本单位1B,片偏移基本单位8B

image-20230801211435135

IP地址分片问题

  • 4000B的IP数据报(首部20B 数据部分3980B)转发到MTU为1500B链路上
  • 前两个都是1480B,都是8的倍数

image-20230801212909982

2.IPv4地址与NAT

  • IP地址:: =
  • IP地址在整个因特网范围内是唯一的

image-20230801214925842

有特殊用途的IP地址

  • 主机号全0,本网络本身,如202.98.174.0
  • 主机号全1,广播地址,如128.98.255.255
  • 127.x.x.x是环回自检(Loopback Test)地址,任意主机本身,目的地址为环回地址的IP永远不会在任何网络上
  • 32位全0,0.0.0.0是本网络的本主机(区别于网络本身)
  • 32位全1,255.255.255.255是整个TCP/IP的广播地址,又叫受限广播地址

image-20230801215302451

A类地址减2的原因是

  • 字段全为0的IP地址是保留地址,表示“本网络”
  • 网络号为127的IP地址是环回地址

IP地址重要特点

  • 任何一个IP都由网络号和主机号构成,IP是一个分等级的地址结构,好处是
    • IP地址管理机构分配IP只分配网络号,而主机号自行分配,方便管理
    • 路由器仅根据目的主机的网络号转发分组,减少路由表存储空间
  • IP地址标志一台主机的接口,而当主机连到两个网络时,该主机必须有两个对应的IP地址
    • 网络号必须与所在网络号相同,且IP主机号不同
    • 这是路由器至少具备两个IP地址的原因
  • 转发器或桥接器(网桥等)连接的若干LAN仍是一个网络,因为LAN中所有主机网络号必须相同,主机号必须不同
  • IP地址中,所有分配到网络号的网络是平等的
  • 同一个局域网的IP地址网络号必须易于,路由器总是有两个及以上的IP地址,每个端口对应不同网络号的IP

NAT

  • 网络地址转换NAT 将专用网络地址转化为公有地址,从而隐藏内部IP地址 降低了内部网络受攻击的风险
  • 此外还划分出了部分私有IP地址只适用于LAN,不用于WAN连接

image-20230801220023548

  • 路由器对私有地址一律不转发,私有IP地址也叫可重用地址
  • NAT路由器至少有一个有效的全球IP地址,NAT路由器使用NAT转发表进行本地IP全球IP的转化,映射关系如下
    • {本地IP地址:端口}到{全球IP地址:端口}的映射
image-20230801220136633

NAT工作原理

  1. 用户主机10.0.0.1:3345向128.119.40.186:80发送请求
  2. NAT路由器收到分组后为IP分组生成新端口号5001,IP分组源地址更改为全球地址138.76.29.7:5001
  3. Web服务器不知道IP分组是NAT路由器改装后的,他响应的目的地址是138.76.29.7:5001
  4. 响应分组到达NAT转换表后将目的IP地址更改为10.0.0.1:3345

注:

  • NAT路由器转发IP数据报一定会更改源IP地址和目的IP地址,一般的路由器不会
  • NAT路由器转发IP数据报会查看和转化传输层端口号,而一般路由器不会,因为他们只工作在网络层
  • 源地址表项中没有对应的IP+源端口 不转发 会丢弃

/

3.子网划分、路由聚集、子网掩码与CIDR

子网划分

  • 为什么:两级IP利用率低,且不灵活,引申出三级IP地址{<网络号>,<子网号>,<主机号>}
    • 从主机号接了若干比特作为子网号
  • IP数据报根据目的网络号和子网号找到目的子网,最后直接交付给目标主机
    • 从IP地址本身和数据报无法判断是否子网划分
    • 现在全0和全1子网号可使用,但需要路由器支持
    • 无论IPv4还是CIDR,子网号全0和全1的地址都不能被指派

子网掩码

  • 表达对原网络主机号的借位
  • 通过IP地址和子网掩码逐位相“与”得到子网的网络地址
  • 路由器交换路由信息时,除了目的网络和下一跳,必须告诉对方子网掩码
    • 主机必须设置子网掩码
    • 所有主机和路由器相应端口 必须设置相同子网掩码
    • 路由表中包含的内容是:目的网络、子网掩码、下一跳

无分类编址CIDR

  • 由来:消除了传统的ABC类划分,是实现超网构造的IP地址划分方法

    • 用网络前缀的概念替代了子网络的概念,而网络前缀可以任意选取,这是与传统分类IP最大的区别
    • IP:: =
  • 使用斜线记法(CIDR记法),数字对应网络号部分,等价于子网掩码连续1

  • CIDR不使用子网

    • CIDR没有指明若干位作为子网字段
    • 但是CIDR可以在本组织内划分子网, 如/20,继续划分8个子网,变成/23
  • 路由聚合:网络前缀相同的连续IP地址聚合组成了”CIDR地址块“

    • 减少路由器信息交换,提高网络性能
    • 地址块数量一定是2n,可指派数量是2n-2
    • 优点是网络前缀长度的灵活性
image-20230802195128019
  • 最长前缀匹配(最佳匹配):路由表有网络前缀和下一跳
    • 前缀越长,地址块越小,网络越具体,这是路由器优先查询的(排序放前面 线索二叉树层次查找)

image-20230920201757112

转发分组

  • 分组转发基于目的主机所在网络,因为网络数远远少于主机数,压缩转发表大小
  • 路由包含的两条信息是:目的网络、下一跳
  • 相比之前的,CIDR少了子网掩码,而路由器匹配是通过最长前缀匹配来取代子网掩码的
    • 前缀最长的放第一行
  • 转发总过程
    • 从IP分组中提取目的主机IP地址D
    • 若找到特定主机路由,就转发下一跳分组,否则下一步
    • 子网掩码与目的地址与运算,与本行前缀匹配,查找结束,否则下一行,继续检查
    • 如果有默认路由,就传送给默认路由,没有默认路由,出错
  • 转发表没有提供完整的路径,而是指出下一步应当到哪一个路由器
    • 路由器不是直接根据下一跳IP地址直接传送的,是转化成MAC地址(ARP),将MAC地址放入MAC帧首部,根据MAC帧找下一跳路由器的
      • 注:MAC地址源地址和目的地址会变化,区别于网桥在转发时是不变的

4.ARP协议、DHCP协议与ICMP协议

IP地址与硬件地址

  • IP地址在IP数据报首部,MAC地址在MAC帧首部
  • 因为路由器隔离广播域,IP无法通过广播MAC地址寻址,所以网络层仅使用IP地址寻址
    • 经过多次转发到达目标网络后,改为数据链路层的MAC地址以广播方式寻址
  • IP层只能看到IP数据报,IP数据报虽然有源IP地址,但路由器仅根据目的IP地址转发
  • 链路层,只能看见MAC帧,路由器转发时通过封装 再封装,其MAC源地址和目的地址不断改变
    • 所以MAC地址无法跨网络通信
  • 路由器互联多个网络,不仅有多个IP地址,也有多个硬件地址

地址解析协议ARP

  • ARP工作原理(A向B发送IP数据报时)
    • 先看ARP高速缓存中有无B的IP地址
      • 有,就把MAC地址写入MAC帧,通过MAC帧发往,否则下一步
    • 使用目的MAC地址为FFFF-FF-FF-FF-FF 帧广播ARP请求分组
    • 主机B向A发出ARP响应分组(单播)包含主机B的IP和MAC映射
    • A收到响应分组,写入ARP缓存,按硬件地址发送MAC帧
  • ARP看到了IP地址,工作在网络层,而NAT路由器看到了端口,工作在传输层
  • ARP只能解决同一个局域网IP和MAC地址映射问题,如果不在一个局域网,要发送给路由器转发至下一个网络
    • 内部主机到内部主机 H1-H2,ARP找目的主机H2硬件地址
    • 内部主机到另一网络主机 H1-H3,ARP找与网1连接的路由器R1
    • 路由器到与R1连接的网络上的主机 R1-H3,ARP找目的主机H3硬件地址
    • 路由器到不与R1连接的网络上主机 R1-H4,ARP找与网2连接的路由器R2硬件地址

image-20230802202958417

  • ARP解析自动进行,用户不知道过程

**DHCP动态主机配置协议 **

  • DHCP 工作原理

    • DHCP客户机发送”DHCP Discover“广播报文,源地址0.0.0.0 目的地址255.255.255.255
    • DHCP服务器收到“DHCP Discover”广播报文,发送"DHCP Offer"广播报文,源地址0.0.0.0 目的255.255.255.255
    • DHCP客户机收到“DHCP Offer”报文,如果接受IP地址,广播“DHCP Request”报文 0.0.0.0 255.255.255.255
    • DHCP服务器广播“DHCP ACK”报文,IP地址分配给DHCP客户机
      • 源地址DHCP服务器地址 目的255.255.255.255
  • DHCP可存在多个DHCP服务器。挑选最先到达的

  • DHCP的IP地址是临时的,临时使用的时间是租用期

  • 为什么DHCP要广播

    • DHCP建立初期,客户端不知道IP地址,而执行中期,客户端也未被分配IP地址导致必须采用广播
  • 为什么DHCP是UDP

    • 因为TCP需要建立连接,此时我们IP地址都不知道,更不可能通过套接字建立连接了
  • 为什么DHCP是应用层协议

    • 因为DHCP是通过客户/服务器工作的,DHCP客户端是向DHCP服务器请求服务,其他层次没这个协议

ICMP 网际控制报文协议

  • 目的:为了提高数据报交付成功机会

  • 两种报文:ICMP差错报告报文和ICMP询问报文

  • 差错报文

    • 终点不可达
    • 源点抑制,因拥塞而丢弃数据报时,告诉原点放慢发送速率
    • 时间超过,生存时间(TTL)为0时除了丢弃报文还要向源点发送时间超过报文
    • 参数问题,报文首部错误
    • 重定向(改变路由)
  • 不发送差错报文的报文

    • ICMP差错报告报文本身
    • 第一个分片以后的报文
    • 组播地址的报文
    • 特殊地址的报文
  • 询问报文:回送请求和回答报文、时间戳请求和回答报文、地址掩码请求和回答报文、路由器询问和通告报文

  • ICMP应用

    • 分组网间探测PING 测试两台主机连通性
      • ping使用发送请求和回答报文
      • PING工作在应用层,直接使用网络层的ICMP而不使用传输层的TCP和UDP
    • Traceroute(windows 中是Tracert) 跟踪分组经过的路由
      • Traceroute使用ICMP时间超过报文
      • 工作在网络层

4.4 IPv6

1.IPv6的主要特点

  • 解决IP地址资源耗尽的办法:①无类别编址CIDR ②网络地址转换NAT ③IPv6扩展(从根本上解决)
  • 主要特点
    • 更大地址空间。由32位增大到了128位(增大了4倍,4B到16B)
    • 扩展的地址层次结构
    • 灵活的首部形式
    • 改进的选项
    • 允许协议继续扩充
    • 支持即插即用(自动配置)
    • 支持预分配
    • IPv6只允许源站点进行分片,是端到端的,路由器不能分片,太大会丢弃并发送相应ICMP报文
      • 一般意义上来说,IPv6不允许分片
    • IPv6首部长度必须是8B整数倍(IPv4是4B的整数倍)
    • 增大了安全性。特征:身份验证和保密功能

IPv6的优势

  • 16字节的长度地址
  • 简化了IP分组头,由IPv4 12 个域缩减到8个 域
  • 更好地支持选项

  • IPv6的长度是固定的,也就没有总长度,支持QOS,减少了头部字段数目,但是没有提供校验和字段

2.IPv6地址

  • 目的地址有单播 多播 任播

    • 任播是IPv6增加的一种类型,目的站是一组计算机,但交付时只交付其中一台,一般是最近的一台
  • 十六进制冒号表示法

    • 每4位用十六进制表示,共128/16=8组
    • 缩写
      • 开头0可省略,但是必须至少有一个数字
      • 多组0,可用双冒号缩写,但是只能用一次
  • 分级概念

    • 第一级(顶级)是全球知道的拓扑
    • 第二级(场点级)是单个场点
    • 第三级是单个网络接口
    • 多级体系可以更快查找路由
  • IPv4向IPv6过渡

    • 只能采用逐步演进的办法,并且必须向后兼容,即IPv6必须能够接受和转发IPv4分组,还能为其选择路由

    • 过渡具体两种策略:双协议栈和隧道技术

      • 双协议栈是一台设备同时有IPv4和IPv6协议栈,如果是路由器,分别连接IPv4和IPv6网络,如果是主机,则分别配置IPv4地址和IPv6地址,以此达到两者相互通信
      • 隧道技术是IPv6进入IPv4网络时,IPv6数据报封装在IPv4数据部分,好像是在IPv4的隧道中传输

4.5 路由协议

1.自治系统

  • 自治系统(Autonomous System AS):单一技术管理下的一组路由器,使用AS内部的路由选择协议和共同的度量确定分组在该AS内的路由,同时使用一种AS之间的路由选择协议来确定分组在AS之间的路由

2.域内路由与域间路由

  • 内部网关协议IGP 自治系统内部使用的路由选择协议,如RIP OSPF
  • 外部网关协议EGP 源站和目的站在不同的AS之中,当数据报传到边界时,需要使用一种协议将路由选择信息传送到另一个自治系统 如BGP-4
  • 每个自治系统自己决定本自治系统内部运行哪个内部路由选择协议,边界路由器还要选择外部网关协议

image-20230803222846968

3.RIP路由协议

  • 路由信息协议是一种分布式的基于距离向量的路由选择协议,最大优点是简单

RIP规定

  • RIP维护从自身到目的网络的距离记录,距离用跳数衡量,每经过一个路由器,跳数就加1
  • RIP一条路径最多经过15个路由器(15跳),16跳不可达
    • 最高跳数的目的是防止数据报不断循环在环路上,减少网络拥塞的可能性
  • RIP默认两个路由器之间每30秒广播一次RIP更新信息
  • RIP不支持子网掩码的RIP广播,子网掩码必须相同
    • 但是RIP2中支持变长掩码和CIDR

RIP的特点

  • 仅和相邻路由器交换路由信息
  • 交换的路由信息是自己全部的路由表
  • 每隔固定时间交换路由信息,如30秒

收敛的意思是:经过多次路由器广播交换,每个路由器知道了到所有网络的最短跳数

距离向量算法

  • <目的网络N,距离d,下一跳路由器地址X>
  • 步骤
    • 1.收到来自X的RIP报文,修改:下一跳的地址改为X,距离字段 +1
    • 2.对修改后的报文做如下操作
      • 如果原来路由表没有此目的网络N,直接添加
      • 如果有目的网络
        • 如果下一跳的地址就是X,就把收到的项目替换
        • 如果下一跳的地址不是X,收到的距离信息d如果小于路由表的距离,就替换
          • 关注坏消息传得慢的含义!路由表里的不一定是正确的(2016统考)
    • 3.如果超过超时时间180秒 还没有收到相邻路由器的更新路由表,认为是该路由器不可达,设置为16跳
    • 4.返回
  • 优势是实现简单,开销小,好消息传的快,缺点如下:
    • RIP限制网络规模,跳数最多只有15跳
    • 路由器之间交换的是完整的路由表,网络规模大,开销大
    • 网络出现故障时,出现慢收敛现象,坏消息传得慢
  • RIP是应用层协议,因为使用UDP传送数据(端口520),选择的是一条跳数最少的路径不一定是时间最短的

4.OSPF路由协议

OSPF特点

  • OSPF与RIP的比较
    • 发送:OSPF向本自治系统所有路由器发送信息,采用洪泛法,而RIP只向相邻路由器发送信息
    • 内容:发送的信息是本路由器相邻所有路由器的链路状态(度量 代价) 而RIP只发送整个路由表
    • 更新:OSPF只在链路状态发生变化才更新链路,更新收敛快,而RIP定期更新
    • 协议本身:OSPF是网络层协议,直接采用IP数据报传送(作为数据部分)
      • 而RIP是应用层协议,在传输层使用是UDP520端口
  • 对不同的服务类型TOS可设置不同代价
  • 多条相同的代价路径,可以分配通信量以此来达到多路间的负载平衡
  • OSPF分组具有鉴别功能,仅在可信赖的路由器之间交换信息
  • 支持子网划分和CIDR
  • 链路状态有32位的序号,序号越大表示状态越新

工作过程

  • 自治系统内,OSPF继续划分了区域,所有路由器通过洪泛法在本区域内交换链路状态数据库,减少了通信量
  • 使得路由器只知道本区域的完整网络拓扑,后根据Dijkstra计算到各目的网络最优路径
  • 此后,每当链路发生变化时,路由器重新计算最优路径,构造新路由表

注:OSPF的区域有层次之分,主干区域负责联通其他各下层区域

OSPF的分组

  • 问候分组,发现和维持邻站的可达性和连接(每隔10s 交换一次问候分组)
    • 注意是Hello报文维持连接
  • 数据库描述分组
  • 链路状态请求分组,请求链路状态项目的详细信息
  • 链路状态更新分组,洪泛法更新链路状态
  • 链路状态确认分组

注:每隔30分钟,OSPF回刷新数据库的链路状态,由于路由器链路状态只设计相邻路由器联通状态,与整个规模无直接关系,因此OSPF比RIP优秀,没有”坏消息传得慢“的问题。

image-20230804195631418

5.BGP路由协议

边界网关协议是不同自治系统之间交换路由信息的协议

  • 边界网关只力求找到到达目的网络比较好的路由
    • 而不是找最佳路由,因为
      • 因特网的规模很大,路由选择很难
      • 自治系统之间寻找最佳路由不现实
      • 自治系统间的路由还要考虑有关策略
    • 所以可达性的信息不包含最短距离
  • BGP是应用层协议,基于TCP

工作过程

  • 每个AS选择一个路由器为”BGP发言人“(可以不是1个)
  • 发言人之间通过建立TCP连接交换路由信息
  • 所有发言人交换完网络可达性信息后,可找出到达各自治系统较好路由
    • 注:可达性信息是要到达某个网络,应当经过哪些AS,注意是路径,不是下一跳!
    • 所以这是路径向量协议不是距离向量协议,区分于RIP!!

image-20230804200206111

注:BGP发言人不仅要运行BGP,还要运行AS内的IGP

BGP特点

  • 结点数量是AS数量级,少
  • BGP发言人数量少,路由选择少
  • 支持CIDR,BGP路由表应包括目的网络前缀、下一跳、到达目的网络AS序列
  • BGP在刚运行时就交换整个BGP路由表,后续只要发生变化时更新有变化的部分

BGP报文

  • 打开Open报文 与BGP发言人确立联系
  • 更新Update报文 发送路由信息和要撤销的路由
  • 保活Keepalive报文 确认打开报文 周期性证实邻站关系
  • 通知Notification报文 差错

image-20230804200400889

4.6 IP组播

1.组播的概念

  • 组播目的是:让源计算机一次发送的单个分组抵达一个组地址标识的若干主机
  • 组播一定应用于UDP,面向无连接的
  • 一个主机可以有多个组
  • 主机使用IGMP 因特网组管理协议来加入组播
  • 注:主机组播只发送一份数据,分岔时将分组复制转发。组播需要路由器的支持,命名为组播路由器
    • 注:像图中描述的一样组播采用了组播路由树,来避免路由环路问题

image-20230804205434197

2.IP组播地址

  • 使用D类地址作为目的地址,前4位1110,范围224.0.0.0~239.255.255.255

  • 首部地址协议字段值位2,表明使用IGMP

    • 组播是”尽最大努力交付“,提供的是不可靠交付
    • 组播只能用于目的地址,不能用于源地址
    • 不产生ICMP差错报文
    • 不是所有的组播地址都能作为组播地址
  • IP组播分为本地硬件组播,另一种是因特网范围内组播

    • 最后阶段,组播数据报通过硬件组播交付给组间所有成员
  • 以太网组播地址范围01-00-5E-00-00-00 到 01-00-5E-7F-7F-7F

    • 23位用于组播,D类IP地址有28位可分配,但前5位不能用作硬件地址
    • 如 224.128.64.32(E0-80-40-20)和224.0.64.32(E0.00.40.20)转化后的硬件组播地址都是01-00-5E-00-40-20

image-20230804205806431

  • 注:因为组播IP和以太网硬件地址映射不是唯一的,组播数据报的主机还应使用IP软件进行过滤而不是丢弃!

IGMP算法

  • IGMP是把组播数据报用最小代价传送给所有组成员
  • IGMP不是对所有组成员管理的协议,他不知道组内的成员数,也不知道他们分布在哪个网络上
  • IGMP的作用是让组播路由器知道本局域网是否有主机加入还是离开了组,所以其工作两个阶段
    • 主机加入组播组,向组播组组播地址发送IGMP报文,组播路由器收到后,将组关系转发给其他组播路由器
    • 本地组播路由器会周期性探寻局域网主机,如果组播组中有一台主机响应,那么就认为这个组活跃,如果经过几次探寻后每一个主机响应,就不再将该组关系转发给其他组播路由器
  • 组播路由选择是以源主机为根节点的组播转发树
    • 每个分组在链路上只传1次,不会受到重复的IGMP
    • 不同的组播组有不同转发树,同一个组播组不同源结点的组播转发树也不同
  • 三种路由算法:基于链路状态、基于距离-向量、建立任何路由器之上,成为协议无关的组播PIM

4.7 移动IP

1.移动IP的概念

  • 移动IP是以固定的IP地址实现跨越不同网段的漫游功能,保证网络权限在漫游过程中不发生改变

    • 目标:将信息自动传送到移动站

    • 移动站:从一个网络改变到另一个网络的连接点主机

  • 移动IP三个功能实体:移动结点、本地代理(归属代理)和外地代理

    • 移动结点:具有永久IP地址的移动站
    • 本地代理:连接归属网络的路由器
    • 外地代理:连接被访网络的路由器
  • 注:从家到办公室 DHCP重新获取IP地址上网不是移动IP

    • 移动IP例子:漫游时一直保持TCP连接不中断,要求IP地址在移动过程中不变

2.移动IP通信过程

  • 外地代理的两个作用:①为移动站创建临时地址(转交地址) ②将移动站的转交地址告诉归属代理

  • 注册:

    • 移动站在归属网络时,按传统TCP/IP通信
    • 移动站在外地网络,外地代理登记,获得临时转交地址发送给归属代理登记
    • 归属代理建立通向转交地址隧道,封装截获到的数据发给外地代理
    • 外地代理恢复IP分组,发给移动站
  • 发送

    • 移动站要发送数据包时,仍使用自己永久地址作为源地址无须归属代理转发,而是直接通过外部代理
  • 移动

    • 新外地代理登记,将新的转交地址告诉归属代理,注意,移动站收到的的数据报都是归属代理转发的
  • 注销

    • 移动站回到归属网络,注销转交地址

    注意:转交地址仅供移动站、归属代理和外地代理使用,外地代理如果要向被访网络移动站发送数据报,直接使用的移动站的MAC地址即可

image-20230913214842122

4.8 网络层设备

1.路由器的组成和功能

  • 冲突域是介质争用现象,集线器、中继器同属一个冲突域,也就是说不能划分冲突域
    • 而2,3层设备网桥、交换机、路由器可以划分冲突域
  • 广播域是接收广播信息的集合,广播域是二级概念,第1,2层设备是同属一个广播域,而路由器划分广播域
  • 局域网LAN特指路由器分割的网络,也就是广播域
    • 逻辑网络是广播域的意思

路由器的组成

  • 路由器三部分组成 交换结构 一组输入端口和一组输出端口
    • 输入是从物理层比特流提取数据链路层帧,再从其提取网络层数据报
    • 交换是关键部件,是对分组的处理,由三种交换办法
      • 通过存储器交换
      • 通过总线交换
      • 通过互联网络交换
    • 分组转发是找一个输出端口转发出去
      • 直接交付:同一个网络下,直接交付
      • 间接交付:跨网络通信必须用路由器根据转发表转发
  • 主要功能是分组转发和路由计算
  • 存储转发类设备实现某个层次功能,那么就可以互联该层次不同协议的网段
    • 网桥实现了物理和数据链路层,那么就可用互联其不同协议网段
    • 但是中继器实现物理层,不能互联两个物理层不同网段,因为不是存储转发设备!
  • 路由器和网桥区别:网桥与高层协议无关,而路由器是面向协议的,比如OSI TCP/IP IPX来进行路径选择、分段、帧格式转换、生存时间、流量控制等

image-20230804221119614

2.路由表与路由转发

  • 路由表4个项目

image-20230804221853692

  • 转发表通过路由表得出,有直接对应关系,但是格式不同

    • 转发表使查找最优化,而路由表对网络拓扑变化最优化
    • 转发表只有目的地址和下一跳,且可以用默认路由来作为低优先级代替下一跳
    • 既可以用软件也可以用硬件实现

    image-20230804222027094

  • 转发和路由选择区别:转发是路由器根据转发表把收到的IP数据报转发到合适的端口,仅涉及一个路由器,而路由选择涉及很多路由器,路由表是许多路由器协同工作,按照路由算法得到关于网络拓扑的变化情况,构造出整个路由表的

  • 注意:路由选择不区分转发表和路由表,但是路由表不等于转发表,****实际转发是靠直接查找转发表

五、传输层

5.1 传输层提供的服务

1.传输层的功能

  • 提供应用进程之间的逻辑通信(端到端通信)

    • 区别于网络层提供的主机之间的逻辑通信
    • 逻辑通信:传输层之间的通信好像沿水平方向传送数据,但事实上这两个传输层并没有水平方向物理连接
    • 即使网络层协议不可靠,传输层同样能为应用程序提供可靠服务
  • 复用和分用

    • 复用是发送方将不同应用进程使用同一个传输协议发送

    • 分用是接收方剥去报文首部后将数据正确交付到目的进程

      • 区别于网络层的复用和分用:

        复用是发送方不同协议封装成IP发送,分用是接收方在网络层剥去首部后正确地交付到协议

image-20230805200706578

  • 传输层对报文进行差错检测(首部+数据部分)
    • 区别于网络层只检查IP数据报首部
  • 同时提供两种传输协议,面向连接的TCP和无连接的UDP
    • 区别于网络层要么提供面向连接的虚电路服务,要么提供无连接的数据报服务,只能选择一个

2.传输层寻址与端口

端口的作用

  • 服务访问点SAP(区别于 网络层的IP 数据链路层的MAC 他们标识的是主机 而端口标识的是进程
    • 让应用进程将数据通过端口向下交付给传输层
    • 让传输层知道应当将报文段中的数据向上通过端口交付给应用层响应进程
    • 标识主机的应用进程

注:传输层使用的是软件端口

  • 软件端口是抽象的协议端口
  • 硬件端口是硬件设备交互端口

端口号

  • 端口号长度16bit,标识65536个端口号

  • 端口号只具有本地意义,只能标识本计算机中应用层的进程

  • 端口号分类

    • 服务器端端口号
      • 熟知端口号 0~1023,指派给TCP/IP重要应用程序
      • 登记端口号 1024~49151,供没有熟知端口号的程序用

    image-20230805201953765

    • 客户端端口号 49152~65535,仅在客户端程序运行时才动态选择,也叫短暂端口号(临时端口

套接字

  • 端口号拼接IP地址构成套接字Socket,网络中采用发送方和接收方套接字识别端点

    • 套接字,实质上就是一个通信端点,唯一标识网路中一台主机和其一个进程

      image-20230805202234183

    • 主机A通信和主机B通信的报文段包含目的端口号和源端口号

      • 完全的返回地址是IP地址+源端口号,而源端口号是返回地址的一部分

3.无连接服务与面向连接服务

无连接服务和面向连接服务

  • 面向连接服务:双方通信前,必须先建立连接,通信过程中,连接情况被实时监控管理,结束后,释放连接
    • 可以保证可靠和顺序交付
  • 无连接服务:两个实体之间通信不需要建立连接,需要通信时直接将信息尽力而为地发送到目的网络中
  • TCP提供面向连接服务,不提供广播和组播服务,增加了许多开销,适合可靠性高场合 FTP HTTP TELNET
  • UDP提供无连接服务,主要是:多路复用和错误检查,IP知道分组投递给哪个主机,而UDP不知道投递给哪个具体应用,且也不需要建立连接,也无须给出确认,速度快实时性好,适用于TFTP DNS SNMP RTP

注:

  • TCP和虚电路区别
    • 传输通道不同。虚电路的交换节点必须保存虚电路状态信息,TCP报文段是抽象的网络层逻辑信道,对网络层不可见
    • 能否提供无连接服务。采用虚电路就不能提供无连接服务,而TCP不影响网络层无连接服务
  • UDP和数据报区别
    • 传输通道不同。IP是经过路由的存储转发,而UDP是传输层端到端的逻辑信道,在网络层封装在IP数据内,对网络层不可见

5.2 UDP协议

1.UDP数据报

  • UDP仅在IP服务上增加了两个服务:复用分用和差错检测

  • UDP适用于很多场合,优点是

    • 无须建立连接,不会引入建立连接时延
    • 无连接状态,不跟踪序号 确认号参数等
    • 首部开销小 TCP有20B首部开销,而UDP仅有8B开销
    • 应用层更好控制发送的数据和发送时间 因为UDP没有拥塞控制,不会影响主机发送效率
    • UDP支持一对一、 一对多、 多对一、 多对多
  • 常用于通信量较小服务 DNS SNMP 等,以及多媒体业务(IP电话 视频会议 流媒体)

  • UDP不保证可靠交付,所有维护可靠性的工作由应用层完成

  • UDP面向报文,一次仅发送一个报文,既不合并也不拆分

    • 接收方一次也是交付一次完整的报文。报文不可分割,报文是UDP最小单位
    • 因此 应用程序必须选择合适大小报文,太长,导致IP层分片,太短,IP数据率低

首部格式

  • 首部8B,4个字段,每个字段2B
  • 源端口,需要对方回信选用,不需要全0
  • 目的端口,终点交付,必须使用
  • 长度,包括首部和数据,最小为8
  • 检验和,有错丢弃,全0表示不计算检验和

image-20230805214119789

注:传输层从IP层收到UDP数据报时 根据目的端口上交相关应用进程,不正确时丢弃并发送端口不可达ICMP

image-20230805214251405

2.UDP校验

  • UDP前添加12B伪首部,仅用作临时计算校验和,既不向下传送也不向上递交

image-20230805214434379

  • 与计算IP校验和相似,但是请注意,UDP检验的是首部与数据部分而不是仅首部
  • 将UDP看作一个个16位的字串,数据部分不是偶数字节末尾补0
  • 计算16位字所有的二进制反码求和,如果全1说明无差错
    • 此例中,数据报长度是15B,需要添加1个全0字节

image-20230805214511687

注:

  • UDP数据报不是偶数个字节,要填入全0字节,但是清注意,这和伪首部一样是不发送的
  • UDP检验和如果检验出是错的,既可以丢弃,也可以交付并附上错误报告
  • 通过伪首部,不仅可以检查源 目的端口号,也可以检验IP数据报的源IP地址和目的IP地址
  • UDP检错效果不强,但优势在于简单且处理速度快。

* 5.3 TCP协议

1.TCP段

TCP协议

  • TCP是面向连接的协议,TCP连接是一条逻辑连接
  • TCP只能有两个端点,每条TCP是点到点的(一对一)
  • TCP提供可靠交付服务,保证数据的无差错、不丢失、不重复和失序
  • TCP是全双工通信,TCP两端都有发送缓存和接收缓存
    • 发送缓存:①准备发送的数据 ②发送了但未确认数据
    • 接收缓存:①按需到达但未被应用读取数据 ②未按序到达数据
  • TCP面向字节流
  • UDP发送的报文长度是由应用进程决定,而TCP是根据 min

TCP报文段

  • TCP传送的数据单元是报文段
  • TCP报文段除了传输数据还可以:建立连接、释放连接、应答
  • 首部20B固定,增加的选项是4B的整数倍

image-20230807221022711

  • 源端口和目的端口,各占2B,传输层的复用和分用通过端口实现
  • 序号,占4B,范围是0~2^32-1,TCP面向字节流,按顺序编号,序号的值是发送的第一个字节序号
  • 确认号,占4B,是期望收到发来的序号,表明前N-1个数据有序到达了
  • 数据偏移(首部长度),占4位,表示的是数据起始处到TCP报文段起始处有多元,以4B为单位,由于最大值是15,所以TCP首部的最大值是60B
  • 保留 6位,今后使用,目前置0
    • 紧急位 URG :URG=1 表明数据应尽快传送,与首部中紧急指针字段配合使用,第一字节到紧急指针的字节是紧急数据
    • 确认位 ACK:ACK=1 表明确认号字段有效,TCP规定,建立连接后所有报文段置1
    • 推送位 PSH:PSH=1字段应尽快交给应用进程而不是等缓存满了再上交
    • 复位位 RST:RST=1时 TCP连接出现差错,必须释放连接,然后重新建立连接
    • 同步位 SYN:SYN=1表示是连接请求或连接响应报文报文
      • SYN=1 ACK=0 是连接请求报文
      • SYN=1 ACK=1 是连接响应报文
    • 中止位 FIN:FIN=1表示是连接释放报文
  • 窗口 2B,范围0~2^16-1,是允许对方发送的数据量(字节数)
  • 校验和 2B ,校验的是首部和数据部分,和UDP一样 在前面加上12字节伪首部(协议字段17改成6 UDP长度改为TCP长度,其余一样)
  • 紧急指针 2B,仅在URG=1有意义,指出紧急数据有多少字节(紧急数据在数据部分的最前面)
  • 选项。如最大报文段长度MSS,指出数据字段最大长度(仅仅是数据字段)
  • 填充。使得首部长度为4B的整数倍

2.TCP连接管理

  • TCP连接解决三个问题:①确知对方存在 ②允许双方协商参数 ③能够对实体资源分配

  • TCP连接是有两个端点,端点不是主机,不是IP地址,不是应用进程,而是套接字

    • 每条TCP连接唯一地被通信的两个端点(套接字)确定
  • TCP的连接采用C/S模式,主动发起的是客户,被动等待的是服务器

三次握手

image-20230807223331227

  • 第一次握手,SYN不能携带数据,消耗一个序号,进入SYN-SENT(同步已发送)状态
  • 第二次握手,确认报文不能携带数据,消耗掉一个序号,进入SYN-RCVD(同步已收到)状态
  • 第三次握手,可以携带数据,若不携带数据则不消耗序号,此时进入ESTABLISHED(已建立连接)状态
  • 注:服务器的资源在第二次握手分配,客户端的资源在第三次握手分配,这就使得服务器易于收到SYN泛洪攻击,这也是为什么不能携带数据的原因

四次挥手

image-20230807223650183

  • 第一次,FIN=1 seq=u,u是最后一个发送字节的序号加一,FIN报文不携带数据,消耗一个序号,此时进入FIN-WAIT1(中止等待状态),理解为全双工关闭了一条数据通路
  • 第二次,发出确认,seq=v 没有FIN=1,是前面传送的序号加一,服务器进入CLOSE-WAIT(关闭等待状态),但服务器到客户机的连接没关上,服务器发送数据,客户机仍要接收
  • 第三次,仍是由服务器发出,当服务器没有数据,通知释放连接,发出FIN=1 释放报文字段,ack不变,seq=w(中途可能发送数据),进入LAST-ACK(最后确认)状态 收到确认报文,进入CLOSED状态
  • 第四次,客户机收到连接释放,发出确认,ACK=1 ack=w+1,seq=u+1,然后必须经过2MSL的等待,才进入CLOSED状态

image-20230807224241186

3.TCP可靠传输

  • 可靠传输:保证接收方进程从缓存区读出的字节流与发送方发送的字节流一致

  • 通过检验、序号、确认、重传机制达到

  • 检验与UDP同

  • 序号,序号是发送的第一个字节序号,从0开始编号,第二个报文序号3

image-20230807224444916

  • 确认,是期望收到第一个字节序号,采用累计确认
  • 重传:两种情况,超时和冗余ACK
    • 计时器到期重传,超时重传时间应当略大于加权平均往返时间
    • 冗余确认:TCP规定每当收到比期望收到的序号大时,就发送冗余ACK,连续三个重复ACK 快重传

4.TCP流量控制与拥塞控制

  • 流量控制:消除发送方因发送速率过快而在接收方溢出的可能性,是一种速度匹配服务
  • TCP基于滑动窗口进行流量控制,这里是通过接收方的接收窗口rwnd来动态控制
  • 发送的实际大小是 min
  • 传输层和链路层的区别
    • 传输层是端到端的流量控制 数据链路是相邻结点的流量控制
    • 数据链路层的窗口大小不能动态变化,传输层的窗口可以动态变化

image-20230807224811504

  • 快重传:收到3个重复冗余ACK 直接重传报文段,注意实际是收到了4个相同的ACK,第一个是好的后面3个是冗余的

  • 快恢复:收到三个冗余ACK,慢开始门限 变为 cwnd一半(防止拥塞),但是可能不是真的拥塞(因为未按序到达数据能到达对方,能收到重复确认)

    • 跳过了从1的满开始过程,直接从满开始门限拥塞避免的线性增长
  • 流量控制实际通过接收方决定,拥塞控制通过发送方所在的网络状况决定

    • 超时时使用满开始和拥塞避免
    • 冗余ACK使用 快重传和快恢复

image-20230807225048328

image-20230920201720739

六、应用层

6.1 网络应用模型

1.客户/服务器模型

  • Client/Server C/S模型 工作流程如下
    • 服务器处于接收请求状态
    • 客户机发出请求,等待接收结果
    • 服务器收到请求后 分析结果 结果发送给客户机
  • 客户机必须知道服务器程序地址,客户机不需要复杂的操作系统,而服务器可同时处理多个远程用户要求
  • 服务器不需要知道客户机地址,他是被动等待并接收各客户的要求
  • C/S最主要的特征是:客户是服务请求方,服务器是服务提供方,如Web、FTP、远程登录 电子邮件
    • 客户机是面向任务的,服务器是面向用户的,注意服务器也可以主动发送数据
  • C/S特点
    • 网络中各计算机地位不平等,服务器可通过权限限制来管理客户机,网络管理方便
    • 客户机之间不能直接通信,如两个浏览器
    • 可扩展性差

image-20230809220332672

2.P2P模型

  • P2P思想是网络的传输不在中心服务器上,每个结点都具有下载和上传功能,权力义务对等
    • P2P是逻辑网络
  • 任意一队计算机是对等方(peer) ,实际上仍是C/S模式,每个结点既是客户机又是服务器
  • P2P优点
    • 减轻服务器计算压力,消除对服务器依赖,增加系统效率和利用率(解决流媒体对服务器压力过大问题)
    • 多个客户机之间可直接共享文档(注意FTP是不擅长共享文档的)
    • 可扩展性好
    • 网络健壮性强
  • 缺点
    • 获取服务同时也要给其他结点服务,占据较多内存,影响速度

image-20230809220337430

6.2 DNS系统

  • DNS 运行在UDP协议(2018 无连接)之上,53号端口,分为三个部分:层次域名空间、域名服务器和解析器

1.层次域名空间

  • 采用层次树状结构命名

    • 每个主机 都有唯一的层次结构名称
  • 顶级域名在最后

    • 注意不区分大小写
    • 每个标号不超过63字符,完整域名不超过255字符
    • 级别最低的在最左边

image-20230810204834794

  • arpa是反向域名解析
  • 注意区分国家顶级域名中的.com 和通用顶级域名的.com
image-20230810204901448

注:多个域名可以对应一台主机IP(虚拟主机) 多个主机可以对应一个域名(负载均衡)

2.域名服务器

  • 域名系统采用C/S模型
    • 一个服务器所管辖的范围叫“区”
    • 每个区设置相应的权限域名服务器,保存主机域名到IP的映射
    • 域名服务器不只完成域名解析,当自己不能完成域名解析时,具有到其他域名服务器的信息
  • DNS采用了分布式设计,采用层次方式组织
    • 根域名服务器
      • 因特网一共13个根域名服务器,管理顶级域(.com)
      • 通常告诉本地域名服务器下一步找哪个顶级域名服务器
    • 顶级域名服务器
      • 负责管理二级域名(返回最后的结果或下一步)
    • 授权域名服务器(权限域名服务器)
      • 每个主机必须在授权域名服务器登记
      • 总能将主机转化成IP地址
    • 本地域名服务器
      • 本地连接的DNS地址就是本地域名服务器

image-20230810205515288

3.域名解析过程

  • 解析分为正向解析和反向解析
  • 查询分为递归查询和递归迭代相结合查询

image-20230810210107054

  • 主机到本地域名服务器是递归查询

    • 如果主机不知道域名的IP地址,那么以DNS客户身份向本地域名服务器发送查询请求报文
  • 本地域名服务器向跟域名服务器采用迭代查询

    • 根域名受到本地域名服务器请求报文时,告诉本地服务器下一步应当向那个顶级域名服务器查询
    • 以此类推,知道IP地址后,将结果返回主机

域名解析过程(2010 2016 查询次数 y.abc.com)

  • (递归查询-请求)客户机向本地域名服务器发送DNS请求报文
  • (迭代查询-请求)本地域名服务器受到请求后,先查询本地缓存,若没有,则以DNS客户身份向根域名服务器发送DNS请求报文
  • (迭代查询-返回)根域名服务器收到请求后,知道是属于.com域,将dns.com顶级域名服务器IP地址返回本地域名服务器
  • 本地域名服务器向顶级域名服务器dns.com。。。
  • 顶级域名服务器dns.com收到后,属于 abc.com 域名,将dns.abc.com....发送本地
  • 本地向dns.abc.com 发送。。。
  • dns.abc.com 受到后,返回本地
  • (递归-返回)本地将查询结果保存到本地,同时返回客户机

注:本地域名服务器有高速缓存存储结果,但是映射不是永久性的。

(2020)补充:客户机查询对应主机需要2个RTT,第三次握手携带了请求报文数据。

6.3 FTP

1.FTP协议的工作原理

  • FTP提供功能(允许指明文件的类型和格式)

    • 提供不同主机(硬件软件都可不同)之间文件传输能力

    • 用户权限管理 对远程FTP服务器文件管理

    • 匿名FTP 提供公用文件共享

  • FTP 使用C/S模式,采用TCP可靠传输,一个FTP可以为多个客户提供服务

  • 工作流程如下(有主进程和从属进程)

    • 打开熟知端口21(控制端口),等待客户连接请求
    • 启动从属进程处理客户进程发来的请求。主进程和从属进程并发执行,从属进程完成后就终止
    • 回到等待状态,继续接受其他客户进程请求
  • FTP在整个会话期间保留用户状态信息,必须追踪用户组远程目录树的位置

2.控制连接与数据连接

  • 控制连接 21号端口 数据连接 20号端口(带外传送)

image-20230810211719475

  • 控制连接
    • 服务器监听21号端口,等待客户连接
    • 控制连接用来传输控制信息,以7位ASCII码发送
    • 为了让传输文件时可以断开,控制连接在整个会话期间保持打开状态
  • 数据连接
    • 主动模式PORT
      • 首先客户端连接服务器21号端口,登录成功后,客户端随机开放一个端口,发送命令告知服务器,服务器收到PORT命令和端口号后,使用20号端口和客户端端口连接,发送数据。
    • 被动模式PASV
      • 登录成功后,客户端读取数据时,发送PASV命令道服务器,服务器本地随机开放一个端口,告知客户端,客户端连接到服务器开放的端口数据传输
    • 使用PORT还是PASV选择权都在客户端(默认使用PORT)
    • 主动是客户端连服务器端口,被动是服务器连客户机端口

img

img

6.4 TELNET

1.TELNET协议的工作原理

6.5 电子邮件

1.电子邮件系统的组成结构

  • 电子邮件是异步通信,不需要双方同时在场
  • 用户代理UA:是用户与电子邮件的接口,提供撰写、显示和邮件处理功能
  • 邮件服务器:发送和接收邮件,采用C/S模式工作,但是他必须能够同时充当服务器和客户机角色

image-20230810212720207

  • 发送协议和读取协议:SMTP 发送是用户代理向邮件服务器发送,“推”,POP3是读取邮件时,用户代理向邮件服务器请求,“拉”

image-20230810213014242

收发过程

  • 发信人调用UA撰写和编辑邮件,UA使用SMTP发送给邮件服务器
  • 发送端邮件服务器存入缓存队列等待发送
  • 发现有待发送邮件,向接收端邮件服务器的SMTP服务器建立TCP连接
  • 建立后,客户进程发送邮件,发送完毕后,关闭TCP连接
  • 接收端邮件服务器存入缓存,等待接收方接收
  • 接收人收信时,调用UA,使用POP3或IMAP将邮件服务器的内容取回

2.电子邮件格式与MIME

  • 邮件有信封和内容,内容有首部和主体
    • 信封系统自动填写
    • 内容中的首部
      • 必须关键字:To,给出唯一的主机域名 abc@cskaoyan.com
      • 可选关键字:Subject 主题
      • From是必须关键字,但通常是自动填入
    • 首部和主体之间用空行分割

image-20230810213246857

  • 多用途网络邮件扩充MINE的提出是基于SMTP只能传送ASCII的限制
  • 但是MINE并没有改变原有SMTP,而是增加了主体结构(5个首部字段) 并定义了非ASCII码的规则

image-20230810213606448

3.SMTP协议与POP3协议

  • SMTP采用C/S模式,TCP连接 25号端口

SMTP:

  • 连接建立
    • SMTP客户隔一段时间扫描缓存,如果有邮件,就使用25号端口与接收方SMTP建立TCP连接,建立后,接收方SMTP返回220 Service ready,然后SMTP客户发送HELO命令附上发送方主机名
    • SMTP不使用中间邮件服务器,不能连接就等待一段时间重连
  • 邮件传送
    • 先传MAIL命令,后面又发件人的地址 MAIL FROM:yuezi2048@gmail.com 如果SMTP准备好接收,返回250OK,后续客户端发送RCPT(收件人)命令,RECPT TO:yuezi1024@gmail.com ,每发送一个命令,都有对应的250 OK或者550 No such user here
    • RCPT作用:弄清接收方是否才准备好接收的准备,否则发送了很长邮件后才发现错误,避免浪费资源
    • 收到OK后,使用DATA命令,发送邮件内容,服务器回复 354 Start mail input ; end with . CRLF是回车换行
  • 连接释放
    • 发送完毕后,客户端发送QUIT命令,SMTP返回221 ,表示同意释放TCP连接,至此结束

注:相同邮件服务器传输使用HTTP,而不同邮件服务器传输才使用SMTP

POP3:(注意是用ASCII码明文传输的,不是密文)

  • 邮局协议是邮件读取协议,采用拉的方式,用户读取邮件时向邮件服务器请求,“拉出”邮件
  • POP采用C/S方式,传输层采用TCP,端口号110
  • 两种工作方式:下载并保留与下载并删除

因特网报文存取协议IMAP:

  • 为用户提供了创建文件夹等远程查询文件夹的联机命令,因此IMAP服务器维护会话用户状态信息
  • IMAP允许代理用户只获取报文一部分,如报文首部,适用于低带宽情况

6.6 WWW

1.WWW的概念与组成结构

  • 万维网是分布式、联机式的信息存储空间,使用统一资源定位符URL标识,通过超文本传输协议HTTP传送给使用者,是无数网络站点和网页的集合,包括电子邮件、Usenet
  • 万维网由核心三个标准组成
    • 统一资源定位符 URL 标识万维网的各种文档
    • 超文本传输协议HTTP 使用TCP可靠传输
    • 超文本标记语言HTML 使用约定的标记对页面信息 格式进行描述
  • URL一般形式是:<协议>://<主机>:<端口>/<路径>
    • 端口和路径可省略,不区分大小写
  • 万维网采用C/S模式工作,工作流程如下
    • Web使用浏览器与Web服务器连接,发出连接请求
    • Web服务器把URL转化为文件路径,返回信息给Web浏览器
    • 通信完成,关闭连接

2.HTTP协议

  • 从层次角度看,HTTP面向事务 规定了浏览器和服务器之间请求和响应的格式和规则
  • 操作过程
    • 服务器进程监听TCP端口80,收到连接请求后建立TCP连接
    • 浏览器通过URL发送HTTP请求
    • 服务器构建Web页信息,通过HTTP响应给浏览器
    • 浏览器使用HTML对信息解释,将Web页展现给用户
    • 连接释放

image-20230810220648036

HTTP由请求报文和响应报文,用户点击URL的事件发生顺序如下

  • 浏览器分析链接所指的URL(www.tsinghua.edu.cn/index.php)
  • 浏览器向DNS请求解析 www.tsinghua.edu.cn的IP地址
  • 浏览器与服务器建立TCP连接(默认端口号为80)
  • 浏览器发出HTTP请求 : GET /index.php
  • 服务器通过HTTP响应把文件index.php发送给浏览器
  • 释放TCP
  • 浏览器解释文件index.php,将Web页展示给用户

HTTP特点

  • HTTP本身无连接,通信双方交换报文前无须建立HTTP连接
  • HTTP无状态。同一个用户第二次访问和第一次访问是一样的
    • 使得服务器支持大量并发HTTP请求
    • 采用Cookie与数据库的方式跟踪用户的活动
      • 用户浏览使用Cookie的网站后,服务器为用户生成唯一识别码
      • 接着在给用户响应报文中添加 “Set-cookie:123456”
      • 用户收到响应后,在本地管理Cookie的文件中添加服务器的主机名和Cookie
      • 用户后续浏览网站时去除识别码,放入请求报文的首部行“Cookie:123456”
      • 服务器根据识别码从数据库查询到活动记录,执行个性化操作

HTTP非持久连接(HTTP/1.0)和持久连接(HTTP/1.1)

  • 非持久连接是在第三次握手报文段中捎带客户对文档的请求
    • 请求的时间是文档传输时间+2*RTT
    • 每次传输都要建立新的TCP连接,负担重
  • 持久连接有流水线和非流水线方式
    • 非流水线就是收到一个响应报文后发送下一个请求,但是发送后浪费了资源
    • HTTP/1.1默认采用流水线,用户可以持续发送请求,所有的引用对象共计经历了一个RTT的延迟,而不是像非流水线一样每个引用都要1个RTT延迟

image-20230810221616768

HTTP报文

  • HTTP面向文本,每个字段都是ASCII码 且长度不确定,分为请求报文和响应报文

image-20230810221912722

image-20230810221920226

实例

  • 1-6字节是目的MAC地址 00-0f-e2-3f-27-3f
  • 7-12字节是源MAC地址 00-27-13-57-73-8d
  • 13-14字节是 08 00 ,类型字段 标识使用IP数据报协议
  • 27-30字节是 源IP地址,db-df-d2-70,即219.223.210.112
  • 31-34字节是目的IP地址 71-69-4e-0a 即 113.105.78.10
  • 35-54字节(20B)就是TCP报文的首部
  • 第55字节开始才是TCP的数据部分,是应用层传下来的数据,GET是请求行的方法 /face/20.gif是请求行的URL,HTTP/1.1对应请求行的版本

image-20230810222015909

  • 右下角对应的ASCII码没有任何含义

应用层协议小结

image-20230810222445186

posted @ 2023-10-31 21:18  yuezi2048  阅读(53)  评论(0编辑  收藏  举报