文章目录
- 前言
- 1.计算机网络体系结构
- 1.1 计算机网络概述
- 1.2 计算机网络的功能
- 1.3 计算机网络的组成
- 1.4 计算机网络分类
- 按照分布范围分类
- 按照交换技术分类
- 按照使用者分类
- 按照传输技术分类
- 按传输介质分类
- 按照拓扑结构分类
- 1.5 计算机网络的性能指标
- 1.6 计算机网络体系结构
- 1.7 计算机网络体系结构通信过程(访问浏览器页面为例)
- 1.8 计算机网络体系机构中的专用术语
- 1.9 计算时延的理解(!!!)
- 2. 物理层
- 2.1 物理层的基本概念
- 2.2 传输媒体
- 导引型传输媒体
- 非导引型传输媒体
- 传输方式
- 2.3 编码与调制
- 术语
- 数字数据
- 数字数据编码为数字信号
- 数字数据调制为模拟信号(调制器)
- 模拟数据
- 拟数据编码为数字信号(PCM编码器)
- 拟数据调制为模拟信号(放大器调制器)
- 2.4 信道的极限容量
- 2.5 物理层设备
- 3. 数据链路层
- 3.1 基本功能(概述)
- 3.2 封装成帧
- 3.3 差错控制
- 3.3.1 差错的原因
- 3.3.2 检错编码
- 3.3.3 BCD海明码(建议查看视频)
- 3.4 流量控制与可靠传输机制
- 3.4.1 停止-等待协议 SW
- 3.4.2 回退N帧协议 GBN
- 3.4.3 选择重传协议 SR
- 3.5 媒体接入控制
- 3.5.1 静态划分信道
- 3.5.2 随机访问介质控制
- **CSMA协议(先听再说)**
- **CSMA/CA协议**
- 3.5.3 轮询访问介质访问控制
- 3.6 局域网
- 3.6.1 以太网与IEEE 802.3
- 3.6.2 虚拟局域网 VLAN(新考点)
- IEEE 802.1Q帧
- 交换机的端口类型
- 3.7 广域网
- 3.7.1 PPP协议
- 3.7.2 HDLC协议(是不考的,老题还有)
- 3.7.3 数据链路层设备
- 网桥
- **集线器与交换机的区别**
- 以太网交换机
- 以太网交换机的自学习功能
- 4. 网络层
- 4.1 网络层概述
- 4.2 网络层功能
- 4.3 IPv4地址
- 4.3.1 分类编址(1981年)
- 4.3.2 子网划分
- 无分类编址
- 子网掩码
- 定长的子网掩码FLSM
- 变长的子网掩码VLSM
- 4.3.3 NAT(1994)
- 4.4 IP数据报的发送
- 4.4.1 发送过程
- 4.4.2 IPV4首部格式
- 4.4.3 IP数据报分片
- 4.5 路由转发过程
- 4.5.1 路由算法
- 4.5.2 路由信息协议RIP
- 4.5.3 开放最短路径优先OSPF
- 4.6 ARP、DHCP、ICMP
- 4.6.1 ARP
- 4.6.2 DHCP协议
- 4.6.3 ICMP协议
- 4.7 IPV6
- 4.8 IP组播
- 4.9 移动IP
- 4.10 网络层设备
- 5. 运输层
- 5.1 基本概述
- 5.1.1 概述
- 5.1.2 传输层的寻址与端口
- 5.2 UDP协议
- 5.3 TCP协议
- 5.3.1 TCP连接管理
- 5.3.2 TCP关闭连接
- 5.3.3 可靠传输
- 5.3.4 流量控制
- 5.3.5 TCP拥塞控制
- 5.4 TCP与UDP的比较
- 6. 应用层
- 6.1 网络应用模型
- 6.1.1 用户/服务器模型(C/S)
- 6.1.2 P2P模型
- 6.2 域名系统(DNS)
- 6.3 域名解析过程
- 6.3.1 递归查询
- 6.3.2 迭代查询
- 6.3.3 高速缓存
- 6.4 文件传输协议(FTP)
- 6.5 电子邮件(E-mail)
- 6.5.1 电子邮件格式
- 6.5.2 电子邮件组成结构
- 6.5.3 SMTP和POP3
- 6.6 万维网
- 6.6.1 超文本传输协议HTTP
前言
失踪人口回归,接下来会陆续更新与考研相关内容,进入阶段总结部分。这部分内容主要是结合湖南科大教书匠的计算机网络和王道的计算机网络进行的一个总结。主要目的就是针对考研。
okey,废话不多说,直接发车了。。。老规矩,内容很长。然后这里主要是针对计网,为啥是计网呢,因为,计网的话确实有点抽象,东西有点杂,所以优先针对这个家伙。查看本博文时,建议在PC端查看,并且打开目录进行按点查看。
当然秉承作者一贯在作风:
文章内容还是比较多的,当然,没有超过咱们先前算法入门7W字那么多,那个重在理解和练习,这个重在概念理解背诵,然后就是刷题速度。
说到这个,这里插个眼,明天这个时候更新操作系统,如果没有更新那就是是我刷了一套数二的卷子。(PS:不考深圳大学了,初试难搞也就算了,复试还难搞)。数学的话,有时间也出一个真题分析博文。哎,现在数学部分的问题,就是算的不够快,不够准,还得加强练啊(苦逼)
1.计算机网络体系结构
第一章的考点集中在 OSI和TCP/IP的各层功能,上下层关联关部分。
1.1 计算机网络概述
计算机网络是:是一个将分散的,具有独立功能的计算机系统,通过通信设备和线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。简单点说,计算机网络是互联的,自治的计算机集合。
网络:由若干结点和连接这些结点的链路构成
互联网internet(小写,通用名词):多个网络还可以通过路由器互连在一起,这样构成了一个覆盖范围更大的网络
因特网Internet(大写,专用名词):指目前全球最大的、开放的、由众多网络互连而成的特定计算机网络,采用TCP/IP协议簇作为通信规则
1.2 计算机网络的功能
- 数据通信(连通性)
- 资源共享
- 分布式处理
- 提高可靠性
- 负载均衡
1.3 计算机网络的组成
边缘部分:
边缘部分:由所有连接在因特网上的主机组成(路由器是专用计算机,但不称为主机)。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享
核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务(提供连通性和交换)
组成部分:
硬件、软件、协议
功能组成:
通信子网:由各种传输介质、通信设备和相应的网络协议组成,使网络具有数据传输、交换、控制和存储能力,实现联网计算机之间的数据通信
资源子网:
实现资源共享功能的设备以及软件的集合,向网络用户提供共享其他计算机硬件、软件和数据的服务
1.4 计算机网络分类
按照分布范围分类
广域网(WAN,Wide Area Network)
采用交换技术 区分广域网局域网,取决于采用的协议
局域网(LAN,Local Area Network)
采用广播技术 局域网通过路由器接入广域网
城域网(MAN,MetroPolitan Area Network)
个人区域网(PAN,Personal Area Network)
按照交换技术分类
这里就是比较凸(艹皿艹 )的部分,明明是适合第二章的内容,但是在第一章就出现了(以前学的时候)
电路交换 :
数据传输前,先建立起一条专用的物理通信路径,这一路径在整个数据传输期间一直被独占,知道通信结束才释放(连接建立、数据传输、连接释放)
报文交换:
产生原因:电路交换可以实现计算机间的数据交换,但线路传输效率很低,计算机数据是突发式的出现在传输线路上的
数据交换的单位是报文,报文携带有目的地址、源地址等信息。报文交换在交换结点的时候采用的是存储转发方式
分组交换:
比较表格:
按照使用者分类
公用网(public network)
专用网(private network)
按照传输技术分类
广播式网络
点对点网络
按传输介质分类
有线网络:双绞线网络,同轴电缆网络
无线网络:蓝牙,微波,无线电
按照拓扑结构分类
注意:物理上使用集线器的局域网是一个星型网,使用集线器的以太网在逻辑上仍是一个总线网。
1.5 计算机网络的性能指标
速率
比特(常用数据量单位):8bit = 1Byte,KB = 2^10B,MB = 2^20B,GM = 2^30B,TB = 2^40B
速率(常用数据率单位):bit/s (bps),kb/s=103b/s,Mb/s=106b/s,Gb/s=109b/s,Tb/s=1012b/s
带宽
带宽在模拟信号系统中的意义 信号所包括的各种不同频率成分所占据的频率范围(Hz,kHz,MHz,GHz)
带宽在计算机网络中的意义 通信线路所能传送数据的能力,单位时间从网络一点到另一点所能通过的“最高数据率”(b/s,kb/s…)
吞吐量
单位时间内通过某个网络(信道、接口)的数据量,经常被用于对网络的测量,受网络的带宽和额定速率的限制
时延
时延带宽积
发送端连续发送数据且发送的第一个数据即将到达终点时,发送端已发出的比特数
时延带宽积 = 传播时延 × 带宽
往返时间 RTT
发送数据到接受到接收端的确认,经历的时延
利用率
**丢包率 **
分组丢失率,一定时间内,传输过程中丢失分组占比(用户透明)
分组传输过程中出现误码
分组到达一台队列已满的分组交换机时被丢弃,通信量较大时可能造成网络拥塞
1.6 计算机网络体系结构
常见的计算机网络体系结构:
OSI体系结构:
理论研究产物,研究出来时候TCP/IP体系结构已经抢占大部分市场,专家缺乏实际经验,无商业驱动力,实现复杂,运行效率低,制定周期太长,按OSI标准生产的设备无法及时进入市场,层次划分不合理
TCP/IP体系结构:
实际使用的体系结构
原理体系结构:
有利于对计算机网络原理的学习,所以有了我们课本上的五层模型
计算机网络体系结构分层的必要性
OSI参考模型各层作用:
形象一点表述是这样的:
TCP/IP
核心是IP协议,各层之间的作用是这样的:
重点:
各层协议
「应用层协议」 :
HTTP 协议(超文本传输协议,网页浏览常用的协议)
DHCP 协议(动态主机配置)
DNS 系统原理(域名系统)
FTP 协议(文件传输协议)
Telnet协议(远程登陆协议)
电子邮件协议等(SMTP、POP3、IMAP)
…
「传输层协议」 :
TCP 协议
报文段结构
可靠数据传输
流量控制
拥塞控制
UDP 协议
报文段结构
RDT(可靠数据传输协议)
「网络层协议」 :
IP 协议(TCP/IP 协议的基础,分为 IPv4 和 IPv6)
ARP 协议(地址解析协议,用于解析 IP 地址和 MAC 地址之间的映射)
ICMP 协议(控制报文协议,用于发送控制消息)
NAT 协议(网络地址转换协议)
RIP 协议、OSPF 协议、BGP 协议(路由选择协议)
…
「网络接口层」 :
差错检测技术
多路访问协议(信道复用技术)
CSMA/CD 协议
MAC 协议
以太网技术
1.7 计算机网络体系结构通信过程(访问浏览器页面为例)
整个过程如下:
- 应用层按HTTP协议规定,构建一个HTTP请求报文,将HTTP请求报文交付给运输层处理
- 运输层给HTTP请求报文添加一个TCP首部,成为TCP报文段,将TCP报文段交付给网络层处理:
- 网络层给TCP报文段添加一个IP首部,成为IP数据报,将IP数据报交付给数据链路层处理
- 数据链路层给IP数据报添加一个首部和一个尾部,成为帧,数据链路层将帧交付给物理层
- 物理层将帧看作比特流,给比特流前面添加前导码,将比特流变换成相应的信号发送给传输媒体,到达路由器
在这个过程当中,路由器也就是网络层所做出的努力如下:
最后,在接收方:
从物理层开始依次去掉首部,并交付给上层,最后将HTTP请求报文交付给应用层,应用层对HTTP报文解析,然后发回HTTP响应报文。
1.8 计算机网络体系机构中的专用术语
实体
协议
服务
1.9 计算时延的理解(!!!)
高频考点:
这里是:湖南科大教书匠的:(主要看到,分组交换的分组时延计算)
也可以参考王道的解法,王道的解法是这样的(原理也是通过时序图推导的,而且我认为可能更加通用),这里也是只计算分组时延和传播时延,其他的时间消耗不算。
那么这里总时延=传播时延+1个分组经过n个路由转发分组的时间+剩下的分组从倒数第二个路由分组转发到目的地的分组时延!
2. 物理层
2.1 物理层的基本概念
物理层要解决的问题:
物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流
物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么
物理层协议的主要任务:
机器特性 :指明借口所用的接线器的形状和尺寸、引脚数目和排序、固定和锁定装置
电气特性 :指明在接口电缆的各条线上出现的电压的范围
功能特性:指明某条线上出现的某一电平的电压表示何种意义
过程特性 :指明对于不同功能的各种可能事件的出现顺序
物理地址=MAC地址,属于数据链路层范畴
2.2 传输媒体
导引型传输媒体
同轴电缆
分类
基带同轴电缆(50 Ω) 数字传输,过去用于局域网
宽带同轴电缆(75 Ω) 模拟传输,目前用于有线电视
价格贵且布线不灵活,由双绞线代替
双绞线
光纤
非导引型传输媒体
传输方式
串行传输和并行传输
串行传输 一个个比特按时间顺序传输 远距离传输 并行传输 多个比特通过多条通信信道同时传输
速度快、成本高、近距离传输(计算机内部)
同步传输和异步传输
同步传输 通过时钟信号控制不同机器同步通信 :
- 外同步:在收发双方之间添加一条单独的时钟信号线
- 内同步:发送端将时钟同步信号编码到发送数据中一起传输(曼彻斯特编码)
异步传输
字节之间异步(字节之间的时间间隔不固定) 字节中的每个比特仍然要同步(各比特的持续时间是相同的)
通过每个字节加起始位和结束位实现字节内的同步
通信交互方式
单工传输:一个方向通信 半双工传输:通信双方都能发送或接收信息,但不能同时
全双工传输:通信双方可以同时发送和接收信息,需要两条信道
2.3 编码与调制
如图:
术语
数据:
模拟数据(模拟信号):连续变化的数据或信号
数字数据(数字信号):取值仅允许为有限的几个离散数值的数据成为数字信号或者数字数据
信源: 产生和发送数据的源头
基带信号: 数字信道上,来自信源的信号,直接表达要传输的信息
码元 :一个固定时长的信号波形(数字脉冲)表示一个K进制数字,代表不同离散数值的基本波形(16进制码元->16种形态->4bit数据)
这里经常考的就是这个码元,波特率,发送率速率的题型。
例题:
【2011】若某通信链路的数据传输速率为2400bps, 采用四相位调制, 则该链路的波特率是()
A. 600 波特
B. 1200 波特
C. 4800 波特
D. 9600 波特
数据传输速率为2400bps,即链路中单位时间传输 2400 个二进制数
波特率:单位时间内传输的码元数。已知采用四相位调制,换言之要表示出四相位需要怎么组合, 00 01 10 11,当然你能记住公式更好,
log24 = 2。所以波特率=2400 / 2 =1200Bd
码元传输速率=码元速率=波形速率=符号速率=调制速率(单元时间数字通信系统所传输的码元个数)
信息传输速率=信息速率=比特率(b/s)
波特率:每秒可能发生的信号变化次数
关系
波特率 = 比特率/每码元所含比特数 = 信息传输速率/每码元所含比特数
数字数据
数字数据编码为数字信号
这里注意:以太网采用的是曼彻斯顿编码,占用两个位置
数字数据调制为模拟信号(调制器)
模拟数据
拟数据编码为数字信号(PCM编码器)
拟数据调制为模拟信号(放大器调制器)
2.4 信道的极限容量
这里就两个核心:香农定理和奈氏准则
2.5 物理层设备
3. 数据链路层
这一章内容不少,接下来两章是大头。
3.1 基本功能(概述)
数据链路层的基本概念:
数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报
结点:主机、路由器。
链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。
数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。
帧:链路层的协议数据单元,封装网络层数据报。
点对点信道的数据链路层(三个问题)
-
封装成帧 数据链路层给网络层协议数据单元添加一个帧头(数据链路层协议首部)和帧尾的操作,称为封装成帧
-
差错检测 使发送方确定接收方是否正确收到由其发送的数据的方法:
位错:数据中的某些位出现错误
帧错:帧的丢失、重复或失序等错误 -
可靠传输 尽管误码是不能完全避免的,但若能实现发送方发送什么,接收方就能收到什么,就称为可靠传输
广播信道的数据链路层
- 编址问题(广播信道上主机如何知道收到帧是不是自己的) 将帧的目的地址、源地址添加在帧中一起传输
- 冲突问题(总线上多台主机同时使用总线传输帧,传输信号产生碰撞) 采用特殊协议(CSMA/CD等)
交换式局域网(使用点对点链路和链路层交换机)
**无线局域网 **
CSMA/CA协议,这里面还有隐蔽站的问题,解决方案是通过CTS,RTS进行信道预约
3.2 封装成帧
封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流 后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
首部和尾部包含许多的控制信息,其中帧定界符的作用就是确定帧的界限。
考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU
帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
注意:当题目中没有说明时,以太网帧的默认大小为64B
透明传输(四种方法)
3.3 差错控制
3.3.1 差错的原因
差错检错分为检测编码和纠错编码。差错基本上都是由于噪声引起,注意两个Tips:
检错码是能检测而不能直接定位错误,因此无法纠错
纠错码虽然可以完成前向纠错,但是开销很大,在网络中也比较少使用
噪声的种类
【全局性】
由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的
解决方法:提高信噪比
【局部性】
外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因
解决办法:通常利用编码技术来解决
差错的种类
位错:0变1、1变0
帧错
丢失:【1】【3】
重复:【1】【2】【2】【3】
失序:【1】【3】【2】
链路层提供的服务种类
对于通信质量好的网络,采用无确认无连接服务
对于通信质量差的网络,采用有确认无连接服务
对于无线传输链路,采用有确认有连接服务
主要,有连接就一定有确认,不存在,无确认有连接服务
3.3.2 检错编码
奇偶校验码
在待发送的数据后面增加一位校验码,使得整个数据中的“1”个的个数为奇数 or 偶数。
缺点:只能检查出奇数个的错误,检错能力为50%
循环冗余码 CRC
这里主要记住异或试除即可:
例如:
3.3.3 BCD海明码(建议查看视频)
这里的步骤确实繁琐(建议查看视频)
.
原理 在有效信息位中加入几个校验位形成海明码,并把海明码的每个二进制位分配到几个奇偶校验组中,当某一位出错后,就会引起有关几个校验位的值发生变化,可以发现并确定错位的位置
海明距离 两个合法编码的对应比特取值不同的比特数称为码距,又称海明距离
一个有效编码集中,任意两个合法编码的海明距离的最小值,称为该编码集的海明距离
-
设m为有效信息的位数,r为校验位的位数
校验码一共有2^r种取值,有海明不等式: 2^r >= m+r+1(若要检测两位错,则需再增加1位校验位,即r+1)
-
确定校验位的分布 规定校验位在海明位号为2^(k-1)上,其余为信息位
-
分组形成校验关系 被校验数据位的海明位号等于校验该数位的各校验位海明位号之和
-
校验位取值 校验位的值为对应组的所有位求异或
海明码的校验原理
3.4 流量控制与可靠传输机制
数据链路层
流量控制是点对点的
方法:接收端收不下就不发送确认
传输层
流量控制是端到端的
方法:接收端给发送端一个窗口公告
可靠传输与流量控制
可靠传输:发送端发送什么,接收端就接收什么
流量控制:控制发送速率,使接收方有足够的缓冲空间来接收每一个帧
滑动窗口机制
解决可靠传输:发送方自动重传
解决流量控制:在没有收到窗口确认的情况下不发送下一个
3.4.1 停止-等待协议 SW
从滑动窗口机制的角度看,停止-等待协议相当于发送窗口和接收窗口大小均为1的滑动窗口协议
超时重传
接收端检测到数据分组有误码时,将其丢弃并等待发送方的超时重传,重传时间一般略大于平均往返时间(平均 RTT)。分组编号 为了让接收方(发送方)能够判断收到的数据分组是否重复,需要给数据(ACK)分组编号。由于停-等协议特性,只需一个比特编号即可(0、1)
如图所示:
信道利用率
这是个重点:信道利用率U = TD / (TD + RTT + TA)
3.4.2 回退N帧协议 GBN
发送方连续发送帧,当接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧后的所有未被确认帧n比特编号.
发送窗口大小:1 <= WT <= 2^n - 1
接收窗口大小:1
累计确认
连续收到好几个按序到达且无误码的数据分组后,针对最后一个数据分组发送确认分组
捎带确认 或者在自己有数据分组要发送时才按累计确认规则进行捎带确认
缺点
若信道的传输质量很差导致误码率较大时,不一定优
于停止-等待协议
为啥,发送窗口尺寸是2^n -1。主要是存在这样的情况,原因如下:
3.4.3 选择重传协议 SR
概述 设法只重传出现差错的数据帧和计时器超时的数据帧
每个发送缓冲区对应一个计时器,当计时器超时时,缓冲区的帧就会重传
一旦接收方怀疑帧出错,就会发一个否定帧NAK给发送方,要求发送方对NAK中指定的帧进行传
接收端要设置具有相当容量的缓冲区来暂存那些未按序正确收到的帧
缺点 需要开辟缓存空间用来存储数据
n比特编号,窗口大小:WR <= 2^(n-1)
3.5 媒体接入控制
共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC
信道复用
复用是通信技术中的一个重要概念,复用就是通过一条物理线路同时传输多路用户的信号
当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽
3.5.1 静态划分信道
频分多路复用 FDM
各个用户分配不同的频带,之后始终使用相同的频带进行通信。
不同的用户在同样的时间占用不同的带宽(模拟信号角度的带宽)
系统效率较高
实现简单
时分多路复用(TDM)
将时间划分为等长的时分复用帧,每一帧划分为若干时隙。
每一个用户在一个TDM帧中占用固定序号的时隙。
改进:统计时分复用(STDM)
使用集中器收集各个用户的数据,并按照先后顺序存入自己的缓存,之后按照先后顺序填充STDM帧,
帧满即发送出去。
STDM帧大小小于连接在集中器上的用户数。
波分多路复用(WDM)
介质为光纤,原理类似于光的频分多路复用。
码分多址(CDMA):
说白了就是数据压缩表示。
将一个比特位用一组特定的码片发送,每一个用户拥有唯一的码片。
码片直接发送代表1,反码发送代表0。对于各个用户的码片,要求其规格化内积等于0,且其自身的内积为1,即:
m为码片的位数
S和T分别为两个用户的码片
两个数据的分离
将合并的数据与码片取规格化内积:
得到的结果即为S对应用户发送的比特位。
例:站点A、B、C通过CDMA共享链路,其码片序列分别为(1,1,1,1)、(1,-1,1,-1)、(1,1,-1,-1),若C从链路上接收到的序列为(2,0,2,0,0,-2,0,-2,0,2,0,2),则C收到A发送的数据是
将序列划分为与码片等长的片段:(2,0,2,0)、(0,-2,0,-2)、(0,2,0,2)
分别与A的码片做内积,再除以码片的长度:1、-1,1 注意(-1表示0):101
3.5.2 随机访问介质控制
所有的用户可以随机的发送信息,发送信息时占用全部带宽。不采用集中控制方法解决发送信息的次序问题,所有用户能根据自己的意愿随机地发送信息,占用信道全部速率
主要有:
ALOHA协议(不听就说)
纯ALOHA协议
当网络中的任何一个站点需要发送数据时,可以不进行任何检测就发送数据
在一段时间内未收到确认,那么该站点就认为传输过程中发生了冲突
发送站点需要等待一段时间后再发送数据,直至发送成功
它的信道利用率是18.4%,ALOHA协议,先前王道后面的练习题有这样的计算题
- 不监听信道
- 不按时间槽发送
- 随即重发
时隙ALOHA协议
所有站在时间上同步起来,将时间划分为一段段等长的时隙,规定只能在每个时隙开始时才能发送一个帧
CSMA协议(先听再说)
总结如下:
CSMA/CD协议(先听再说,边听边说)
载波监听多点接入/碰撞检测CSMA/CD(carrier sense multiple access with collision detection)
CS:载波侦听/监听
MA:多点接入
CD:碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据
属于半双工网络
-
发送前先侦听,每个站在发送数据前先要检验下总线上是否有其他站点正在发送数据
若有则暂时不发送数据,等到信道变空闲再发送 -
发送时,边发送变侦听,以便判断自己再发送数据时其他站点是否也在发送数据
-
争用期(碰撞窗口/以太网的端到端往返传播时延/2τ) 主机最多经过2τ(即δ->0)的时长就可检测到本次发送是否遭受了碰撞
碰撞检测
然后最短帧长=RTT*发送速率。
此外注意,如果是A,B两个主机同时发送数据,此时最短帧长=0.5RTT发送速率。
为什么的话,可以自己推导一下!
截断二进制指数退避算法
CSMA/CA协议
载波监听多点接入/碰撞避免CSMA/CA(carrier sense multiple access with collision avoidance)使用CSMA/CA协议的原因:
无线局域网中CSMA/CD的检测实现较为困难
屏蔽站:当A和C都检测不到信号,认为信道空闲时,同时向终端B发送数据帧,就会导致冲突
工作原理
发送端:信道空闲,发送RTS:包含发射端地址、接收端地址、数据发送持续时间等。信道忙等待
接收端:收到RTS后,发出CTS响应请求
发送端:收到CTS后,开始发送数据帧,并预约信道
接收端:收到数据后进行CRC校验,正确则响应ACK
发送端:收到ACK,继续发送下一帧,循环直到结束
未收到ACK使用二进制指数退避算法确定推迟重发的时间
预约信道:告诉其他站点自己要传多久数据
RTS/CTS帧:站点没有收到响应自己的CTS之前无法发送数据,解决了隐蔽站问题
大体流程如下:
注意这里还有帧间间隔IFS
所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧,该时间称为帧间间隔IFS
帧间间隔的长短取决于该站点要发送的帧的类型 高优先级帧需要等待的时间短,可获得优先发送权
短帧间间隔 SIFS 最短的帧间间隔,用来分隔开属于一次对话的各帧。一个站点应当能够在这段时间内从发送方式切换到接收方式 ACK帧、CTS帧、由过长的MAC帧分片后的数据帧、以及所有回答AP探询的帧和在PCF方式中接入点AP发送的任何帧
DCF帧间间隔DIFS 在DCF方式中用来发送数据帧和管理帧(用于异步竞争访问的时延)
反正记住DIFS最长,每次发一个等待一个SIFS
退避算法
信道由忙转为空闲且经过DIFS时间后,还需要退避一段随机时间才能使用信道
3.5.3 轮询访问介质访问控制
-
轮询协议
主结点轮流“邀请”从属结点发送数据。缺点: 轮询开销 等待延时 单点故障(主节点故障则整个网络瘫痪)
-
令牌传递协议
【令牌传递协议】
令牌在网络上循环传递有主机需要发送信息时截获令牌修改标志位,将令牌占用
将数据附加在令牌后,形成数据帧再将令牌发送出去
【令牌继续循环】
目标主机将数据部分复制副本非目标主机直接传走令牌再次回到发送主机进行校验,若数据出错则再次发送将数据移除,标志位复位,继续传送令牌
令牌持有时间:每一个主机能占用令牌的时间是有限的,没有传递完则需要等待下一轮循环到自己再继续发送
【缺点:】
令牌开销
等待延迟
单点故障(一个节点故障则循环不能继续)
适用于负载较重、通信量较大的网络中,应用于令牌环网(物理星型拓扑,逻辑环形拓扑)。
3.6 局域网
基本概念导图如下:
3.6.1 以太网与IEEE 802.3
概述
无连接,不可靠(无编号、不确认) 尽最大努力交付,差错纠正由高层完成
拓扑结构 逻辑拓扑是总线形结构,物理拓扑是星形或拓展星形结构
使用CSMA/CD方式对总线进行访问控制
以太网的传输介质与网卡
介质访问控制(MAC)地址
MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识
MAC地址的第一个字节的最后一位:0表示单播,1表示多播
网卡在出厂时都有一个唯一的代码,用于控制主机在网络上的数据通信
网卡
1. 局域网中连接计算机和传输介质的接口
2. 功能
1. 实现与局域网传输介质之间的物理连接和电信号匹配(MAC地址)
2. 实现帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码及数据缓存功能
以太网的MAC帧
高速以太网
IEEE 802.11 无线局域网
见导图:
3.6.2 虚拟局域网 VLAN(新考点)
1、传统局域网的缺陷
缺乏流量隔离:广播流量会跨越整个机构网络(ARP、RIP、DHCP协议)
一个单位的不同部门共享一个局域网,对安全不利
2、VLAN
将局域网内的设备划分成与物理位置无关的逻辑组的技术VLAN是通过软件的方式实现的,因此节点的位置不受物理位置的限制,每个VLAN是一个单独的广播域/不同的子网实现
- 基于接口:交换机中除了转发表,还存在一张VLAN表,记录了各个端口号和它对应的VLAN
号 - 基于MAC地址:VALN表中记录的是各个MAC地址和它对应的VLAN号
- 基于IP地址:可以进行跨路由器扩展
VLAN之间的通信:将帧上附加相应的VLAN标签
优点:
有效的共享资源优化管理提高了安全性。
IEEE 802.1Q帧
交换机的端口类型
Access
Trunk
Hybrid
小结
3.7 广域网
概念 通常是覆盖范围很广的长距离网络。广域网的通信子网主要使用分组交换技术,由结点交换机以及连接这些交换机的链路组成
3.7.1 PPP协议
使用串行线路通信的面向字节的协议,该协议应用在直接连接两个结点的链路上用来通过拨号或专线方式建立点对点连接发送数据。这玩意主要就是为了和ISP进行连接用的。
特点
PPP提供差错检测但不提供纠错功能,只保证无差错接收(CRC校验),它是不可靠的传输协议,因此不使用序号和确认机制
透明传输(面向字节)
异步线路:字节填充
同步线路:比特填充(硬件)
PPP两端可以运行不同的网络层协议(仅支持全双工链路,仅支持点对点链路,不支持多点线路)
封装成帧:帧定界符 MTU:不超过1500字节
对比:
3.7.2 HDLC协议(是不考的,老题还有)
高级数据链路控制(High-Level Data Link Control或简称HDLC),采用全双工通信,所有帧采用CRC检验,对信息帧进行顺序编号HDLC的站主站发送命令(包括数据信息)帧接收响应帧负责对整个链路的控制系统的初启、流程的控制、差错检测或恢复等从站是接收由主站发来的命令帧向主站发送响应帧配合主站参与差错恢复等链路控制复合站:既能发送,又能接收命令帧和响应帧HDLC的数据操作方式正常响应方式异步平衡方式异步响应方式HDLC的帧格式
两种协议的比较
- PPP协议
面向字节
有2B的协议字段
无序号和确认机制
不可靠 - HDLC协议
面向比特
通过控制字段标志协议
有序号和确认机制
可靠
3.7.3 数据链路层设备
网桥
网桥的作用
网桥:根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是 先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。网桥一般来说只有两个接口(可能有更多)。通过网桥将多个冲突域连接起来形成一个广播域,则每一个原来的冲突域就是一个网段。
广播域:网络中能接收任一设备发出的广播帧的所有设备的集合
网段:一般指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)能够直接通讯的那一部分
网桥的优点
过滤通信量,增大吞吐量扩大了物理范围提高了可靠性可互连不同物理层、不同MAC子层和不同速率的以太网
2、透明网桥
“透明”指以太网上的站点并不知道所发送的帧将经过哪几个网桥。每个网桥包含一张转发表,记录了地址和对应接口A主机发送出一条数据到B主机该数据经由网段传到网桥1号接口网桥在转发表内查找A地址A地址不存在,则记录下A地址和对应的信息来源接口1A地址存在,则略过
网桥在转发表内查找B地址B地址存在,则将数据由B地址对应的端口发送出去B地址不存在,则将数据通过除了1接口之外的所有接口转发出去其他网桥同理
3、源路由网桥
在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部中。实现方法源站以广播的形式发送一个发现帧发现帧通过不同的路由方式到达目的站,之后原路返回源站根据返回情况选择最合适的路由链路之后所有发向该目的站的信息都走这条路由
实现方法
- 源站以广播的形式发送一个发现帧
- 发现帧通过不同的路由方式到达目的站,之后原路返回
- 源站根据返回情况选择最合适的路由链路
- 之后所有发向该目的站的信息都走这条路由
集线器与交换机的区别
使用交换机作为互联设备的以太网,称为交换式以太网。交换机可以根据MAC地址过滤帧,即隔离碰撞域
交换机的每个接口是一个独立的碰撞域
交换机隔离碰撞域但不隔离广播域(VLAN除外)【没说就是没有这个功能】
以太网交换机
导图如下:
以太网交换机的自学习功能
4. 网络层
okey,接下来是第二个大头。
4.1 网络层概述
见到这个导图:
4.2 网络层功能
- 异构网络互联
- SDN的基本概念
北控,南通
3. 路由与转发(路由选择+分组转发)
4., 用塞控制
如图:
4.3 IPv4地址
概述
IPv4地址就是给因特网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32比特的标识符32比特的IPv4地址不方便阅读、记录以及输入等,因此IPv4地址采用点分十进制表示方法以方便用户使用
4.3.1 分类编址(1981年)
4.3.2 子网划分
为了缓解IPv4地址不够用,于是在基础上,发展出了子网划分技术。子网划分为子网掩码划分和(CIDR)无分类编址(注意,子网划分是机构内部的操作,划分,外界是无感知的)
无分类编址
引入 划分子网在一定程度上缓解了因特网在发展中遇到的困难,但是数量巨大的C类网因为其地址空间太小并没有得到充分使用,而因特网的IP地址仍在加速消耗 所以提出无分类编址的方法
无分类域间路由选择CIDR
- CIDR消除了传统的A类、B类和C类地址,以及划分子网的概念,可以更加有效地分配IPv4的地址空间
- 使用“斜线记法”,斜线后面写上网络前缀所占的比特数量 e.g. 218.75.230.0/24
- 实际上是将网络前缀都相同的连续的IP地址组成一个“CIDR地址块”
路由聚合 这是一个考点
- 路由聚合(构造超网)的方法是找共同前缀
- 网络前缀越长,地址块越小,路由越具体
- 若路由器查表转发分组时发现有多条路由可选,则选择网络前缀最长的那条,称为最长前缀匹配(最具体的路由)
子网掩码
默认的子网掩码是指在未划分子网的情况下使用的子网掩码 A类:255.0.0.0 B类:255.255.0.0 C类:255.255.255.0
这里的计算比较简单,只是比较繁琐。
定长的子网掩码FLSM
例题:
- 使用同一个子网掩码来划分子网
- 子网划分方式不灵活:只能划分出2^n个子网(n是从主机号部分借用的用来作为子网号的比特数量)
- 每个子网所分配的IP地址数量相同,容易造成IP地址浪费
变长的子网掩码VLSM
- 使用不同的子网掩码来划分子网
- 子网划分方式灵活:可以按需分配
- 每个子网所分配的IP地址数量可以不同,尽可能减少对IP地址的浪费
(算的时候,先算主机最多的)
4.3.3 NAT(1994)
概述 通过将专用网络地址转换为公用地址,从而对外隐藏内部管理的IP地址,目的同样也是延缓IPv4地址用尽
过程如下:
此外:
注意,做题的时候,私有地址不能出现在公网的目的主机上。在公网传输时,目的地址不能时这私有地址。
4.4 IP数据报的发送
4.4.1 发送过程
这也是一个重要考点
过程如下:
- 主机发送IP数据报
- 判断主机是否与自己在同一个网络(本机IP地址与子网掩码相与得到主机的网络地址,
- 目的IP地址与本机的子网掩码相与得到目的网络地址,判断是否相等)
- 若在同一个网络,则属于直接交付
- 若不在同一个网络,则属于间接交付,传输给主机所在的默认网关
- 路由器转发IP数据报
- 检查IP数据报首部是否出错
- 若出错,则直接丢弃该IP数据报并通告源主机
- 若未出错,则进行转发
- 根据IP数据报的目的地址在路由表中查找匹配的条目
- 若找到匹配的条目,则转发给条目中指示的下一跳
- 若找不到,则丢弃该IP数据报并通告源主机
- 某主机发送本网段或其他网段的广播数据报,路由器不会转发
- 检查IP数据报首部是否出错
态路由配置及其可能产生的路由环路问题
-
静态路由配置:给路由器人工配置路由表
- 方式简单、开销小。但不能及时适应网络状态(流量、拓扑等)的变化
- 一般在小规模网络中采用
-
路由环路的错误
这里有三个错误:
- 配置错误
- 聚合了不存在的网络 以此举例,解决:给R2路由表添加黑洞路由
- 网络故障
路由表条目类型
特殊的静态路由条目
- 默认路由(目的网络0.0.0.0,地址掩码0.0.0.0)
- 特定主机路由(目的网络为特定主机的IP地址,地址掩码为255.255.255.255)
- 黑洞路由(下一跳null 0)
4.4.2 IPV4首部格式
这个请务必背诵,并且相当重要。
这里注意:
这里有个考点就是考这个分组的。
4.4.3 IP数据报分片
IP数据报分片
最大传送单元MTU:链路层数据帧可封装数据的上限。以太网的MTU是1500字节(B)。
因此,网络层的首部+数据部分的最大长度就为1500B。
分片时,分组从0开始,通过将每一个分组的起始分组号/8得到片偏移量。
每一个分片的长度一定是8B的整数倍。
例:已知数据报首部为20B,数据部分为3800B,将其分为长度不超过1420B的数据报片 每一片的数据部分长度=1420 - 20 =
1400=1420−20=1400 分为三片:1400+1400+1000 = 38001400+1400+1000=3800 分别的偏移量
- 第一片:0 \div 8 = 00÷8=0
- 第二片:1400 \div 8 = 1751400÷8=175
- 第三片:2800\div
8 = 3502800÷8=350
4.5 路由转发过程
4.5.1 路由算法
-
静态路由算法
- 非自适应路由算法,由网络管理员手工配置的路由信息
- 大型和复杂的网络环境通常不宜采用,管理员难以全面了解网络拓扑变化;发生改变后需大范围修改和调整路由信息
-
动态路由算法
- 距离-向量路由算法
- 所有结点都定期地将它们的整个路由选择表传送给所有与之之间相邻的结点
路由选择表内容 - 每条路径的目的地(另一结点)路径的代价
- 更新条件
被通告一条新的路由,该路由在本结点的路由表中不存在,此时本地系统加入这条路由
来的路由信息中有一条到达某个目的地的路由,该路由与当前使用的路由相比,有较短的距 离(较小的代价) - 容易出现路由环路问题,RIP
- 所有结点都定期地将它们的整个路由选择表传送给所有与之之间相邻的结点
- 链路状态路由算法
- 原理:链路状态路由算法要求每个参与该算法的结点都具有完全的网络拓扑信息
主动测试所有邻接结点的状态
定期地将链路状态传播给所有其他结点(或称路由结点) - 特点:
- 使用洪泛法向所有相邻的路由器发送信息,然后相邻路由器又向其他相邻路由器发送信息
- 发送的信息是与路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息
- 只有当链路状态发生变化时,路由器才向所有路由器发送此信息
- 用于大型或路由变化骤敛的环境,OSPF
- 原理:链路状态路由算法要求每个参与该算法的结点都具有完全的网络拓扑信息
- 距离-向量路由算法
-
层次路由
然后在这里的话,我们又分为:
- 内部网关协议IGP
路由信息协议RIP(基于距离向量) - 开放式最短路径优先OSPF(基于链路状态)
外部网关协议EGP 边界网关协议BGP
4.5.2 路由信息协议RIP
那么,接下来是具体的网络协议内容,主要考的就是RIP,然后是OSPF的概念。
概述
- RIP要求自治系统AS内每个路由器维护从它自己到AS内其他每个网络的距离记录。这是一组距离,称为“距离向量”
- RIP使用跳数作为度量来衡量到达目的网络的距离,
距离等于16时不可达
,因此RIP只适用于小型互联网 - 当到达同一目的网络有多条“距离相等”的路由时,可以进行等价负载均衡
- 应用层协议,
使用UDP
要点
-
和谁交换信息 仅和相邻路由器交换信息
-
交换什么信息 自己的路由表
-
何时交换信息 周期性交换(例如每30秒)
基本过程
- 路由器刚开始工作时,只知道自己到直连网络的距离为1
- 每个路由器仅和相邻路由器周期性地交换并更新路由信息
- 若干次交换和更新后,每个路由器都知道到达AS内各网络的最短距离和下一跳地址,称为收敛
此外这里:坏消息传播得慢
.
- 又称路由环路或距离无穷计问题,这是距离向量算法的一个固有问题
解决 - 限制最大路径距离为15(16不可达)
- 当路由器发生变化时就立即发送更新报文“触发更新”,而非周期性发送
- 让路由器记录收到某特定路由信息的接口,不让同一路由信息再通过此接口的反方向传送“水平分割”
例题:
4.5.3 开放最短路径优先OSPF
概述
- OSPF是基于链路状态的,而不像RIP基于距离向量
- 采用最短路径算法SPF计算路由,保证不会产生路由环路,不限制网络规模,更新/收敛速度快
- 链路状态 指路由器都和哪些路由器相邻,以及相应链路的“代价”(代价:费用、距离、时延、带宽等)
基本过程
特点如图:
分组类型
问候分组:用来发现和维持邻站的可达性
数据库描述分组:向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息
链路状态请求分组:向对方请求发送某些链路状态项目的详细信息
链路状态更新分组:用洪泛法对全网更新链路状态
链路状态确认分组:对链路更新分组的确认
为了使OSPF能够用于规模很大的网络,OSPF把一个自治系统再划分为若干个更小的范围,叫做区域
边界网关协议BGP
概述
- 自治系统之间的路由选择必须考虑相关政策(政治、经济、安全等)
- BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而非要寻找一条最佳路由
- BGP支持CIDR,所以路由表也该包括目的网络前缀
- 在BGP刚运行时,BGP的邻站交换整个BGP路由表,但以后只需在发生变化时更新有变化的部分
过程
- 在每个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP发言人”(BGP边界路由器)
- 一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,先建立 TCP连接
- 应用层协议、
基于TCP
- 交换:到达某个网络所要经过的一系列AS(完整路径)
- 再利用BGP会话交换路由信息
- 所有BGP发言人都互相交换网络可达性的信息后,各BGP发言人就可找出到达各个自治系统的较好路由
报文类型
- OPEN(打开)报文:用来与相邻的另一个BGP发言人建立关系,使通信初始化
- UPDATE(更新)报文:用来通告某一路由的信息,以及列出要撤销的多条路由
- KEEPALIVE(保活)报文:用来周期性地证实邻站的连通性
- NOTIFICATION(通知)报文:用来发送检测到的差错
比较:
4.6 ARP、DHCP、ICMP
数据包转发过程,MAC与IP地址变化
此时可以发现:
- 数据包转发过程中源IP地址和目的IP地址不变
- 数据包转发过程中源MAC地址和目的MAC地址逐个
链路(网络)改变
此外,由图中概括起来是:
(1)发送数据的过程
应用层:产生报文
传输层:根据大小将报文分为报文段
网络层:将报文段加上IP地址(源主机和目的主机),形成(IP数据报)分组
数据链路层:将分组加上MAC地址(源主机和目的主机)和FCS
物理层:通过数字或模拟方式传输
(2)网络层数据传输的具体过程
解决下一跳走哪的问题:
1. ARP高速缓存:每台主机中都有的,IP地址与MAC地址的映射
在链路层传输数据报分组时,必须以MAC地址的形式传递,因此需要使用ARP协议来获得目的主机的
2. MAC地址,过程如下:
1)查找ARP高速缓存
首先查找本机的ARP缓存中有没有目的IP对应的MAC地址,如果有则直接填入
2)当目的主机在局域网内时
发送的请求分组中目的MAC地址为全1,表示广播分组
返回的响应分组中包括了目的MAC地址,直接填入即可
3)当目标主机不在本网络时
通过本机的子网掩码和目标地址做与运算,发现目标IP不在一个网段内
目的MAC地址设为默认网关(本网络出口路由器)的MAC地址
获取默认网关的MAC地址的方法仍然为通过ARP协议
之后的传输交由路由器处理
4)由路由器传到下一个路由器
源IP和目的IP不变
MAC地址改为相应的路由器MAC地址
5)由路由器到本网络内主机
源路由器通过ARP协议获得目的主机的MAC地址
IP地址仍然为最初的地址
MAC地址为路由器地址和获得的目的主机MAC地址
4.6.1 ARP
功能:完成主机或路由器IP地址到MAC地址的映射
过程
- 检查ARP高速缓存
- 有对应表项则写入MAC帧
- 没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组
- 目的主机收到请求后就向源主机单播一个ARP响应分组
- 源主机收到后将此映射写入ARP缓存(10-20min更新一次)
- 以太网帧的源和目的MAC地址:上、下一条的MAC地址
- IP数据报的源和目的IP地址:最接近源/目的地址的公网IP地址
4.6.2 DHCP协议
功能:用于主机动态地分配IP地址,提供了即插即用的联网机制(地址可复用)
- DHCP客户机广播“DHCP发现”消息,找网络中的DHCP服务器
- DHCP服务器收到“DHCP发现”消息后,向网络中广播“DHCP提供”消息,其中包括提供DHCP客户机的IP地址和相关配置信息
- DHCP客户机收到“DHCP提供”消息,如果接收DHCP服务器所提供的相关参数,那么通过广播“DHCP请求”消息向DHCP服务器请求提供IP地址
- DHCP服务器广播“DHCP确认”消息,将IP地址分配给DHCP客户机
若DHCP在另外的网段,可使用DHCP中继代理
DHCP服务器分配给DHCP客户的IP地址是临时的,因此DHCP客户只能在一段有限的时间内使用这个分配到的IP地址
DHCP的客户端、服务器用广播方式交互 基于UDP的应用层协议
4.6.3 ICMP协议
在网络层,使用网际控制报文协议(ICMP)来让主机和路由器报告差错和异常情况。
ICMP报文在首部的类型字段中表明此条报文的种类。
(1)ICMP差错报文
1. 差错报文的类型
终点不可达:无法交付
源点抑制(已取消):拥塞丢数据
2. 时间超过:报文生存时间TTL=0,丢弃部分已收到的数据报片
参数问题:首部字段有问题
3. 改变路由(重定向):有更好的路由
4. 差错报文的组成
ICMP差错报文本身是一个IP数据报
5. 不发送差错报文的情况
对ICMP差错报告报文不再发送ICMP差错报告报文
对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
对具有组播地址的数据报都不发送ICMP差错报告报文
对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文
(2)ICMP询问报文
回送请求和回答报文:能否PING通
公众号 蓝研知己
时间戳请求和回答报文:获得时间戳
掩码地址请求和回答报文
路由器询问和通告报文
(3)ICMP应用
PING:测试两个主机之间的连通性,使用了ICMP回送请求和回答报文
traceroute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文
发送一连串的报文,TTL依次设置为1、2、3……
每到一个新的路由,就有一个数据报生命周期结束
不断接受差错报告报文
4.7 IPV6
IPV6数据报结构
首部(固定40B)
版本:协议版本,IPV6
优先级:数据报的优先级
流标签:从特定源点到特定终点的一系列数据报称为一个“流”,属于同一个流的数据报拥有相
同的流标签(类似IPV4的分组标签)
有效载荷长度:有效载荷部分的大小(扩展首部+数据部分)
下一个首部:标识下一个首部(扩展首部)
每一个扩展首部中也有此字段
跳数限制:类似IPV4的TTL
源地址、目的地址:共计128位
有效载荷(最大64KB,即64 * 2^10 B=65535 B)
包括原IPV4首部中的扩展首部部分
IPV4与IPV6
1、区别
地址:将地址长度从32位(4B)扩展到128位(16B)
IPV6移除了校验和字段,减少每跳的处理时间
IPv6将IPv4的可选字段移出首部,提高了路由器的处理效率
IPv6支持即插即用(即自动配置),不需要DHCP协议
IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍
IPv6只能在主机处分片,IPv4可以在路由器和主机处分片
通过ICMPv6差错报告报文报告数据报过大,主机重新分片
IPv6取消了协议字段,改成下一个首部字段
IPv6取消了总长度字段,改用有效载荷长度字段
IPv6取消了服务类型字段
IPv6支持资源的预分配
2、IPV4向IPV6过渡
双栈协议:设备同时启用IPV4和IPV6协议栈
隧道技术:设备使用隧道协议,隧道协议能够将其他协议的数据包重新封装并通过隧道发送
IPV6地址
1、IPV6地址的表示
一般形式:4BF5:0000:0000:0000:BA5F:039A:000A:2176
压缩形式:4BF5:0:0:0:BA5F:39A:A:2176(舍弃前面的0,每一位至少保留一位数字)
零压缩:4BF5::BA5F:039A:000A:2176(将连续的0用::表示)
零压缩在一个地址中只能使用一次。
2、IPV6基本地址类型
单播
一对一通信
可做源地址+目的地址
多播
一对多通信
可做目的地址
任播
一对多中的一个通信
可做目的地址
4.8 IP组播
组播的概念
组播机制是让源计算机仅发送一次数据,被传递的数据到达尽可能近的结点才开始复制和分发,是种一对多的传输方式
IP组播地址
属于多组播的设备将被分配一个组播组IP地址, 我们先前的D类地址就是组播地址。
IGMP与组播路由算法
见导图:
4.9 移动IP
移动IP的概念
移动IP技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保
证了基于网络IP的网络权限在漫游过程中不发生任何改变。
移动结点:
具有永久IP地址的移动设备
归属代理(本地代理)
一个移动结点的永久“居所”称为归属网络
在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理
永久地址(归属地址/主地址):
移动站点在归属网络中的原始地址
外部代理(外地代理):
在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理
转交地址(辅地址):
可以是外部代理的地址或动态配置的一个地址
移动IP通信过程
-
移动结点刚进入外部网络
- 获得外部代理的转交地址(外部代理广播报文)
- 移动结点通告外部代理发送注册报文给归属代理(包含永久地址&转交地址)
- 归属代理接收请求,并将移动结点的永久地址和转交地址绑定
(以后到达该归属代理的数据报且要发往移动结点的数据报将被封装并以隧道方式发给转交地址),
并返回一注册响应报文。 - 外部代理接收注册响应,并转发给移动结点
-
动结点移动到了下一个网络
- 在新外部代理登记注册一个转交地址
- 新外部代理给本地代理发送新的转交地址(覆盖旧的)
- 通信
-
移动结点回到了归属网络
- 移动结点向本地代理注销转交地址
- 按原始方式通信
4.10 网络层设备
这一章内容绝对是最多的,成功更新到10版本。
冲突域与广播域
路由器的基本结构与功能
路由表与路由转发
5. 运输层
5.1 基本概述
5.1.1 概述
运输层的话,其实核心点不多,也就是UDP的格式,TCP的格式,然后就是TCP的可靠传输,拥塞控制,还有这个三次握手,四次挥手。其实非常简单。
运输层概述
之前介绍的物理层、数据链路层和网络层共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信实际上,计算机网络中进行通信的真正实体是位于通信两端主机中的进程。如何为运行在不同主机上的应用进程提供直接的通信服务是运输层的任务(运输层协议又称为端到端协议)
运输层“直接”为应用进程间的逻辑通信提供服务
运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进
程看见的就好像是在两个运输层实体之间有一条端到端的逻辑通信信道
根据应用需求的不同,因特网的运输层为应用层提供了两种不同的运输协议,即面向
连接的TCP和无连接的UDP。
具备功能
传输层提供进程和进程之间的逻辑通信
这里注意下,网络层是为主机提供逻辑通信,而传输层为主机上的进程提供端到端的逻辑通信
复用和分用
复用:A B 两个不同应用进程可以使用同一个传输层协议传输数据
分用:传输层从网络层收到数据后交付指明的应用进程
传输层对收到的报文进行差错检测(同样需要注意:网络层,只校验首部是否差错,而传输层需要对
报文进行差错检测)
传输层的两种协议
TCP
可靠
面向连接
时延大
适用 于大文件
UDP
不可靠
无连接
时延小
适用 于小文件
5.1.2 传输层的寻址与端口
端口(逻辑端口/软件端口):是传输层的SAP,唯一标识主机中的应用进程
端口号只有本地意义,只是为了标志本计算机应用层中各个进程在和传输层交互时的层间接口
端口号长度为16bit,能表示65536个不同的端口号
服务端使用的端口号
熟知端口号(0~1023):给TCP/IP最重要的一些应用 程序,所有用户都知道
登记端口号(1024~49151):为没有熟知端口号的应用程序使用的,使用时登记
客户端使用的端口号(49152~65535):仅在客户进程运行时才动态选择
常见端口号
套接字:主机号+端口号
在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机(主机
号)和它上面的一个进程(端口号)。
5.2 UDP协议
UDP概述
UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。
UDP的主要特点
UDP是无连接的
UDP采用尽最大努力交付,不保证可靠交付
UDP是面向报文的,适合一次性传输少量数据的网络应用
UDP无拥塞控制,有利于实时应用(视频,语音)
UDP首部开销小
面向报文:应用层给UDP多长的报文,UDP就照样发送,即一次发一个完整报文,不做处理
如果应用层传送下来的报文太长,UDP会将报文交给IP层,从而导致分片
如果应用层传送下来的报文太短,那么IP数据报的首部相对长度太长
UDP首部格式
长度;UDP数据报的长度(首部+数据),其最小值是8(仅首部,8B)
校验和:检测UDP数据报在传输中是否有错,有错就丢弃。该字段是可选的,当主机不想计算则为0
注意:UDP检验和提供了差错检测功能,会在UDP用户数据报之前增加12字节的伪首部,这伪首部既不向 下传送也不提供给上层,仅仅为了计算校验和,这个12B就是凑数用的,没啥用!
校验过程
若不使用校验,则将校验和字段全部置0
发送方
- 加上伪首部
- 全0填充检验和字段
- 全0填充数据部分(使整个UDP数据报是4字节的整数倍)
- 将伪首部+首部+数据字段进行二进制反码求和
以16bit(2B)为一组分开进行求和(校验和字段长度) - 将求和结果填入检验和字段
若结果恰好全为0,则全部填入1
公众号 蓝研知己 - 去掉伪首部
- 发送
接收方
1. 加上伪首部
2. 将伪首部+首部+数据字段进行二进制反码求和
结果全为1,则无差错
否则视情况丢弃数据,或交给应用层并附上差错警告
5.3 TCP协议
TCP是面向连接(虚连接)的传输层协议
每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的
无法用于广播等
TCP连接 = {socket1,socket2} = {(IP1 : prot1),(IP2 : prot2)}
TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达
TCP提供全双工通信
发送缓存
准备发送的数据
已发送但尚未收到确认的数据
接收缓存
按序到达但尚未被接受应用程序读取的数据
不按序到达的数据
TCP面向字节流
TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流
TCP将要传输的数据分成多个字节,以字节为单位传送
报文格式如下:
源端口和目的端口:
标识该TCP报文段的应用进程
序号:
指出本TCP报文段数据载荷的第一个字节的序号
确认号:
期望收到对方下一个数据报的数据载荷的第一个字节的序号,也是对收到所有数据的确认 若确认号=n,n-1数据已经正确接收
数据偏移:
指出TCP报文段的数据起始处距离TCP报文段的起始处有多远(指出首部长度) 单位为4字节
保留:
今后使用
URG:
紧急指针字段有效
ACK:
取值为1时确认号字段才有效
PSH:
报文段尽快上交应用进程,不必等到接收缓存都填满后再向上交付
RST:
用来复位TCP连接,为1时,表明TCP连接出现了异常,必须释放连接再重新建立连接;还用来拒绝一个非法的报文段或拒绝打开一个TCP连接
SYN:
在TCP连接建立时用来同步序号
FIN:
用来释放TCP连接
窗口:
指出发送本报文段一方的接收窗口
校验和:
检查包括TCP报文段首部和数据载荷两部分(校验时需加上前面12字节伪首部)
紧急指针:
指出在本报文段中紧急数据共有多少字节(当发送方有紧急数据时,可将紧急数据插队到发送缓存的最前面)
选项
最大报文段长度MSS选项:TCP报文段数据载荷部分的最大长度
窗口扩大选项:为了扩大窗口(提高吞吐率)
时间戳选项:用来计算往返时间RTT;用于处理序号超范围情况
选择确认选项
填充:使整个首部长度是4B的整数倍
5.3.1 TCP连接管理
TCP连接的建立采用客户服务器方式
主动发起连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫服务器
注意,在这里我们认为,一个TCP连接需要的是一个RTT,因为第三次握手的时候,已经在传数据了!
-
客户端发送连接请求报文段,无应用层数据
SYN=1
seq=x(随机产生)
ACK=0
ack无效 -
服务器端为该TCP连接分配缓存和变量,并向客户端返回确认报文段,允许连接,无应用层数据
SYN=1
seq=y(随机)
ACK=1
ack=x+1 -
客户端为该TCP连接分配缓存和变量,并向服务器端返回确认的确认,可以携带数据
SYN=0
seq=x+1
ACK=1
ack=y+1
SYN洪泛攻击:一直发送第一次握手的SYN数据包,并不进行确认,导致服务器有大量挂起等待确认的TCP连接,消耗CPU和内存,进而导致死机
解决方法:SYN cookie
2、TCP连接释放
参与一条TCP连接的两个进程中的任何一个都能终止该连接
此外:
连接已建立后
TCP服务器进程没收到一次TCP客户进程的数据,就重新设置并启动保活计时器(2H)
若保活计时器到时后,TCP服务器进程就向TCP客户进程发送一个探测报文段(每75s一次,十次后仍无响应,则关闭连接)
5.3.2 TCP关闭连接
5.3.3 可靠传输
- 发送方在未收到接收方的确认时,可将发送窗口内还未发送的数据全部发送出去
- 接收方只接收序号落在发送窗口内的数据
- TCP要求接收方必须有累积确认和捎带确认机制
- 接收方不应过分推迟发送确认,会导致发送方不必要的超时重传
可靠:保证接收方进程从缓存区读出的字节流与发送方发出的字节流是完全一样的
1、校验
与UDP类似,通过伪首部进行检验和校验
2、序号
为传输流中的每一个字节进行编号,将缓冲区中的字节组成若干个TCP段(数据报),通过确认号和序
号的机制进行发送
3、确认
接收方收到报文段后,返回确认字段,确认字段中的确认号为下一个期望收到的起始字节编号。
捎带确认:接收方将确认字段捎带在自己要发送的数据中(ACK=1,使用相应的确认号即可)
累计确认:只确认到第一个丢失为止的字节
超时重传(知道就行):
TCP的发送方在规定的时间(重传时间RTTs)内没有收到确认就要重传已发送的报文段,
RTTs本质是加权平均往返时间
重传时间过短:太长的数据报来不及发送完毕
重传时间过长:增加网络空闲时间,降低传输效率
TCP采用自适应算法,动态改变重传时间RTTs
冗余ACK(冗余确认)
每当比期望序号大的失序报文段到达时,发送一个冗余ACK,指明下一个期待字节的序号
例:发送方已发送1,2,3,4,5报文段
接收方收到1,返回给1的确认(ACK=2)
接收方收到3,返回给1的确认(ACK=2,冗余ACK)
接收方收到4,返回给1的确认(ACK=2,冗余ACK)
接收方收到5,返回给1的确认(ACK=2,冗余ACK)
发送方收到3个对于报文段1的冗余ACK
发送方认定2丢失,重传2
5.3.4 流量控制
一般来说我们总希望数据传输快一些但如果数据发送过快,接收方可能来不及接收,造成
数据丢失
流量控制:让发送方的发送速率不要太快,让接收方来得及接收。
这里的话,和链路层的可靠传输SW协议有点类似,区别在于,服务端会指定发送方的窗口大小。(发送方的当前窗口大小,在流量控制方面),同样也是控制发送方不要太残暴了。
5.3.5 TCP拥塞控制
okey,这一章快结束了,我们来看到TCP的拥塞控制,这里的话,要注意两个点 ,一个是老的机制,一个是新的机制,如果题目当中有说到三次确认,那么就是新的机制,也就是快开始。
拥塞 对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏
拥塞控制 防止过多数据注入网络,保证网络中的路由器或链路不致过载
若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降
四种拥塞控制算法的条件
- 数据是单方向传送,而另一个方向只传送确认
- 接收方总是有足够大的缓存空间,因而发送方发送窗口的大小由网络的拥塞程度来决定
- 以最大报文段MSS的个数为讨论问题的单位,而不是以字节为单位
慢开始+拥塞避免(老的,没有特别说明就是用这个)
快重传+快恢复(新的,有出现这个三次累计确认的话,就是用这个)
5.4 TCP与UDP的比较
6. 应用层
这里面的话主要分为两个部分吧,一个就是最简单的记忆部分,当然也有细节点的,比如这个:
当然遇到了也没事,画个图先。
6.1 网络应用模型
应用层对应用程序的通信提供服务
应用层协议定义了什么
应用进程交换的报文类型
请求还是响应
各种报文类型的语法
报文中的各个字段及其详细描述。
字段的语义
包含在字段中的信息的含义
进程何时、如何发送报文,以及对报文进行响应的规则
6.1.1 用户/服务器模型(C/S)
服务器:提供计算服务的设备
永久提供服务
永久性访问地址/域名
客户机:请求计算服务的主机
与服务器通信,使用服务器提供的服务
间歇性接入网络
可能使用动态IP地址
不与其他客户机直接通信
应用情景
Web
文件传输FTP
远程登录
电子邮件
6.1.2 P2P模型
不存在永远在线的服务器
每个主机既可以提供服务,也可以请求服务
任意端系统/节点之间可以直接通讯
节点间歇性接入网络
节点可能改变IP地址
可扩展性好
网络健壮性强
6.2 域名系统(DNS)
域名系统(DNS)是因特网使用的命名系统,用来把便于人们记忆的具有特殊含义的域名
(如www.baidu.com)转变为便于机器处理的IP地址
DNS系统采用C/S模型,运行在UDP上, 端口 53
顶级域名服务器:管理该顶级域名注册的所有二级域名
权限域名服务器:负责一个区的域名服务器,将域名转换为所管辖主机的IP地址
本地域名服务器:当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器,本
地域名服务器将请求转交至根域名服务器
6.3 域名解析过程
6.3.1 递归查询
6.3.2 迭代查询
6.3.3 高速缓存
最好的情况就是这个,在本地的域名服务器里面有了缓存。
例题:
6.4 文件传输协议(FTP)
直接看到导图:
6.5 电子邮件(E-mail)
6.5.1 电子邮件格式
首部
From(系统自动生成):xxxx@gmail.com
To(必须填入):xxxx@qq.com
Subject(可选):电子邮件格式
主体
正文内容
6.5.2 电子邮件组成结构
电子邮件组成结构
用户代理
为用户提供的图形界面
例如outlook等
将邮件发送到自身的邮件服务器
邮件服务器
将邮件发送到接收方的邮件服务器
向发件人报告邮件传输结果
可以同时充当服务器和客户
基于C/S模式
使用TCP连接实现可靠传输(!!!)
6.5.3 SMTP和POP3
1、简单邮件传送协议SMTP
SMTP客户:负责发送邮件的SMTP进程
SMTP服务器:负责接收邮件的进程
TCP连接,端口号:25
传输过程
建立连接
邮件发送
连接释放
SMTP协议的缺点
SMTP不能传送可执行文件或者其他二进制对象
SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字
SMTP服务器会拒绝超过一定长度的邮件
通用因特网邮件扩充MINE
可以将原本SMTP不支持传输的格式、语言等转化为7位ASCII码,经由SMTP传输后再恢复为原文件类
型。
2、邮局协议POP3
端口为110
在传输层明文传输
将邮件下载至客户端,并视情况
继续保留在服务器中
删除服务器中的邮件
3、网际报文存取协议IMAP
当用户Pc上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部
若用户需要打开某个邮件,该邮件才上传到用户的计算机上
IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件
IMAP允许只读取邮件中的某一个部分
4、基于万维网的电子邮件
使用浏览器登录电子邮箱来收发电子邮件
用户代理
浏览器
通过HTTP协议与邮件服务器连接
邮件服务器
使用供应商的邮件服务器而不是自己的
邮件服务器之间的通信协议仍然为SMTP
6.6 万维网
万维网概述
- 万维网是基于C/S的协议
统一资源定位符URL:资源在万维网中的唯一标识 - 组成方式:<协议>://<主机>:<端口>/<路径>
URL不区分大小写
超文本传输协议HTTP
超文本标记语言HTML
6.6.1 超文本传输协议HTTP
HTTP定义了:
浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档
服务器怎样把文档传送给浏览器
1、HTTP连接过程
- 浏览器分析URL
- 浏览器向DNS请求解析IP地址
- DNS解析出IP地址
- 浏览器与服务器建立TCP连接
- 浏览器发出取文件命令
- 服务器响应
- 释放TCP连接
- 浏览器显示
2、HTTP协议的特点
- HTTP是无状态的
- 每一次连接是一样的
- 通过cookie识别用户,存储用户信息
- HTTP采用TCP作为传输层协议
- HTTP是面向连接的:采用TCP协议
- HTTP本身是无连接的:通信双方在交换HTTP报文之前不需要先建立HTTP连接
3、HTTP协议的连接方式
- 非持久连接:每一次的传输都需要先进行HTTP握手
- 传输时间为:2xRTT+文件传输时间2×RTT+文件传输时间
- 持久连接:连接建立后会保持一段时间,可以继续传输后续的请求
非流水线式连接:类似停等协议,每一个请求按序发送
流水线式连接:类似GBN和SR协议,请求可以一起发送
4、网站访问实例
5、非持续连接
HTTP/1.0采用非持续连接方式 每个页面元素对象的传输都需要单独建立一个TCP连接
1.1 的话是长连接,比如我们的netty默认支持的就是1.1,当然一般情况下,我们还是直接使用websocket协议进行开发。
6、Cookie
还有session,token呢。考研知道cookie就得了。但是作为开发者,我们要知道的可不仅仅只是这些,我们还有OAuth2.0,扯远了,扯远了,用的话也不是多高级的东西。
7、万维网缓存与代理技术
一想到这个我就想到了redis三联问不知道为啥。