计算机网络思维导图
计算机网络
网络层
概述
-
主要任务
- 实现网路互连,进而实现数据包在各网络之间的传输
-
解决问题
- 向运输层提供可靠传输/不可靠传输的服务
- 网络层寻址问题
- 路由选择问题
-
英特网时使用最多的互联网,使用TCP/IP协议栈
- 网络层使用网际协议IP,时整个协议栈的核心协议,TCP/Ip中网络层常称为网际层
-
两钟服务
-
面向连接的虚电路服务
-
图示
-
网络层的连接
-
虚电路VC
- 通信双方沿着已建立的虚电路发送分组
-
-
目的主机的地址仅在连接建立阶段使用
-
网络协议可靠传输,即可实现无差错按序到达、不丢失、不重复
-
通信结束后,需要释放之前建立的连接
-
应用
- 异步传输模式ATM
-
-
无连接的数据报服务
- 可靠通信由用户主机保证
- 不需要建立网络层连接
- 每个分组可走不同的路径
- 每个分组首部必须携带目的主机的完整地址
- 分组可能误码、丢失、重复、失序
- 不提供端到端的可靠传输服务,更简单更便宜
-
区别
-
IPv4地址
-
给英特网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内的唯一32bit的标识符
-
点分十进制表示方法
-
00001010111100000000111110101010
- 10.240.15.170
-
-
IPv4地址的变化
-
分类编址的IPv4地址
-
分类
-
A类
-
格式
-
使用
-
-
B类
-
格式
-
使用
-
-
C类
-
格式
-
使用
-
-
D类
-
格式
-
-
E类
-
格式
-
-
-
分配规则
- 只有A、B、C类地址可分配给网络中的主机或路由器的各接口
- 主机号全为0的地址是网络地址,不能分配
- 主机号全为1的地址是广播地址,不能分配
-
IP地址分析
-
-
划分子网的IPv4地址
-
子网掩码
-
使用连续的比特1来对应网络号和子网号
-
使用连续的比特0来对应主机号
-
IP地址与子网掩码进行逻辑与运算&,即可得到所在子网的网络地址
-
图示
-
默认子网掩码
-
A类
- 8个1+32个0
-
B类
- 16个1+16个0
-
C类
- 24个1+8个0
-
-
-
-
无分类编址的IPv4地址
-
无分类域间路由选择CIDR
- 消除了传统的A、B、C类地址以及划分子网的概念
- 有效地分配IPv4的地址空间
-
CIDR使用“斜线记法”,在IPv4地址后加上/,在斜线后面写上网络前缀说占的比特数量
-
具体分析
-
路由聚合
-
找聚合地址块
- 即找最长共同前缀
-
网络前缀越长,地址块越小,路由越具体
-
查表转发时,选择网络前缀最长的那条,称为最长前缀匹配
-
-
-
IPv4地址的应用规划
-
定长的子网掩码FLSM
- 分配子网主机数量相同,容易造成IP地址浪费
-
变长的子网掩码VLSM
-
-
IPv4数据报首部格式
-
图示
-
组成
-
版本
- 占4b 表示IP协议版本
- 通信双方使用IP协议版本必须一致,通常为4(即IPv4)
-
首部长度
-
占4b 表示IP数据报首部的长度
- 该字段以4字节为单位
-
取值范围为十进制的5-15
- 即为20-80B
-
-
区分服务
- 占8b 用于区分服务
-
总长度
- 占16b 表示IP数据报的总长度(首部+数据载荷)
- 最大取值为2^16=65535,以字节为单位
-
标识
- 占16b 属于同一个数据报的各分片具有相同的标识
-
标志
-
占3b
-
MF位
- 1表示后面还有分片
- 0表示这是最后一个分片
-
DF位
- 1表示不允许分片
- 0表示允许分片
-
保留位
- 必须为0
-
-
-
片偏移
- 占13b 指出分片数据报的数据载荷部分偏移其在元数据报的位置有多少个单位
-
生存时间TTL
-
占8b 以秒为单位 最大生存周期为255秒
- 若该字段-在改路由器上耗费时间≠0转发,否则不转发
-
防止IP数据报在网络中永久兜圈
-
-
协议
- 占8b 指明数据部分是何种协议
-
首部检验和
- 占16b 用来检验差错
- 每经过一个路由器 都会出现计算
- IPv6中,不再计算检验和,从而更快地转发
-
源IP地址
- 占32b
-
目的IP地址
- 占32b
-
可选字段
- 1-40B不等
-
填充字段
- 确保首部长度为4B的整数倍,用0进行填充
-
-
IP数据报分片
IP数据报的发送和转发过程
-
判断源主机和亩地主机是否在同一网络中
-
分为
- 直接交付
- 间接交付
-
判断方法
- 源目的地址和本主机子网掩码&的结果和目的地址与本主机子网掩码&是否相同
-
-
路由器转发
-
默认网关(与其他网络通信的路由器)
-
两种情况
-
检查IP数据报是否出错
- 出错,丢弃通告源主机
- 没有出错,转发
-
查找目的地址在路由表钟匹配的条目
- 找不到,丢弃通告源主机
- 找到,转发下一条
-
-
查表转发的过程
-
图示
-
将目的地址与路由表中的地址掩码相&,判断是否和目的网络相同,然后进行转发
-
-
隔离广播域
-
不转发广播数据报
- 会造成广播风暴,严重浪费因特网资源
-
-
-
静态路由配置
-
图示
-
路由环路问题
-
静态路由配置错误
-
图示
-
解决办法
- 设置生存时间TTL字段
-
-
聚合不存在的网路
-
图示
-
解决办法
- 黑洞路由
-
-
网络故障
-
图示
-
解决办法
- 黑洞路由
-
-
-
路由选择协议
-
分类
-
静态路由选择
- 人工配置
- 简单,开销小,但不能及时适应网络状态的变化
- 一般只在小规模网络中采用
-
动态路由选择
- 自动获取路由信息
- 比较复杂,开销比较大,能较好的适应网络变化
- 适用于大规模网络
-
-
因特网采用的路由选择协议
-
特点
-
自适应
- 动态路由选择
-
分布式
- 路由器之间交换路由信息
-
分层次
- 将整个因特网划分成许多较小的自治系统AS
-
-
分层次采用路由选择协议
-
图示
-
-
常见路由选择协议
-
分类
-
路由信息协议RIP
-
维护的值
-
距离向量D-V
-
跳数
- 衡量达到目的网络的距离
- 到直连网络的距离为1
- 到非直连网络的距离为经过的路由器+1
- 距离等于16时不可达
-
-
基本工作原理
-
图示
-
好的路由
- 距离短,所经过路由器数量少的路由
-
当多条路由距离相等时
- 等价负载均衡
-
三个要点
-
和谁交换
- 相邻路由器
-
交换什么信息
- 自己的路由表
-
何时交换信息
- 周期性交换
-
-
-
基本工作过程
-
图示
-
刚开始,只知道自己直连网路距离为1
-
每个路由器和相邻路由器周期性地交换并更新路由信息
-
若干次交换和更新后,每个路由器都知道到达本AS内个网络的最短距离和下一跳地址,称为收敛
-
-
问题
-
“坏消息传得慢”
-
图示
-
减小概率的措施
-
限制最大路径距离为15
-
触发更新
- 路由表发生变化时立即发送更新报文
-
水平分割
-
-
-
-
-
开放最短路径优先OSPF
-
基于链路状态
-
不会产生路由环路
-
不限制网络规模,更新效率高,收敛速度快
-
链路状态
-
指本路由器和哪些路由器相邻,以及相应链路的“代价”
-
代价的定义
-
100Mbps/链路带宽
- 小于等于1 记为1
- 大于1且有小数的,舍去小数
-
-
-
工作原理
-
OSPF的每个路由器都会产生链路状态通告LSA
-
包含信息
- 直连网络的链路信息
- 相邻路由器的链路状态信息
-
LSA被封装在链路状态更新分组LSU中,采用洪泛法发送
-
-
每个路由器都有一个链路状态数据库LSDB,用于存储LSA,最终各路由器的LSDB将达到一致
-
每个路由器基于LSDB进行最短路径优先SPF计算,构建自己的路由表
-
-
分组类型
- 问候分组
- 数据库描述分组
- 链路状态分组
- 链路状态更新分组
- 链路状态确认分组
-
工作过程
-
优化
-
-
边界网关协议BGP
-
封装关系
-
-
路由器的基本结构
-
图示
-
输入输出端口
- 分为物理层、链路层、网路层
-
路由选择处理机
- 收取其他路由器发来的路由报文
- 发送自己已知的路由表信息
-
-
网际控制报文协议ICMP
-
概念
- 更有效地转发IP数据报和提高交付成功的机会
- 主机和路由器使用ICMP发送差错报告报文和询问报文
- ICMP报文被封装再IP数据报中发送
-
两种报文
-
差错报告报文
-
分类
- 终点不可达
- 源点抑制
- 时间超过
- 参数问题
- 改变路由(重定向)
-
对于某些情况不再发送ICMP差错报告报文
- 对ICMP差错报告报文不再发送
- 对第一个分片的数据报片的所有后续数据报片
- 对具有多播地址的数据报
- 对有特殊地址的数据报
-
-
询问报文
-
分类
-
回送请求和回答
- 测试目的站是否可达及了解其有关状态
-
时间戳请求和回答
- 进行时间同步和测量时间
-
-
-
-
应用举例
-
分组网间探测PING
- 测试主机或路由器之间的连通性
- 直接使用ICMP,没有通过TCP或UDP
- 使用ICMP回送请求和回答报文
-
跟踪路由
- 测试IP数据报从源主机到达目的主机要经过哪些路由器
-
虚拟专用网VPN与网络地址转换NAT
-
虚拟专用网VPN
-
概念
- 利用公用的因特网作为本机构各专用网之间的通信载体,这样的专用网又称VPN
-
专用私有地址
-
过程
-
分类
- 内联网VPN
- 外联网VPN
- 远程VPN
-
-
网络地址转换NAT
-
概念
- 能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源
-
过程
-
-
网络地址与端口号转换NAPT
-
用一个全球IP就可以使用多个拥有本地地址的主机同时和因特网上的主机进行通信
-
过程
-
运输层
概述
-
进程使用进程标识符PID来标志
- 不同操作系统使用不同格式的进程标识符
-
传输层的功能
-
提供进程和进程之间的逻辑通信
-
复用和分用
-
图示
-
复用
- 应用层所有的应用进程都可以通过传输层再传到网络层
-
分用
- 传输层从网络层收到数据后交付指明的应用进程
-
-
对收到的报文进行差错检测
-
-
端口号
-
TCP/IP系统的应用进程进行标识使用的统一方法
-
分类
-
服务端使用
-
熟知端口号
-
0-1023 给TCP/IP最重要的一些应用程序,让所有用户都知道
-
-
登记端口号
- 1024-49151 为没有熟知端口号的应用程序使用的
-
-
客户端使用
-
短暂端口号
- 49152-65535 留给客户进程选择短暂使用
-
-
-
端口号只具有本地意义,不同计算机中相同端口号没有联系
-
UDP协议
-
特点
-
1、无连接
- UDP是无连接的,减少开销和发送数据之前的时延
-
2、不保证可靠交付
- UDP使用尽最大努力交付,即不保证可靠交付
-
3、面向报文
- UDP是面向报文的(一次性全部传输数据),适合一次性传输少量数据的网络应用
-
4、无拥塞控制
- UDP无拥塞控制,适合很多实时应用
-
5、UDP首部开销小
- UDP首部8B,TCP首部20B
-
-
UDP首部格式
-
图示
-
首部字段
-
16位源端口号
-
16位目的端口号
-
16位UDP长度
- 首部字段+数据字段
-
16位UDP检验和
-
-
UDP查错检验
-
图示
-
伪首部 12B
-
组成
-
源IP地址
- 4字节
-
目的IP地址
- 4字节
-
0
- 1字节
-
17
- 1字节
- 封装UDP报文的IP数据报首部协议字段是17
-
UDP长度
- 2字节
- UDP首部8B+收据部分长度(不包括伪首部)
-
-
过程
-
-
-
TCP协议
-
特点
-
面向连接
- TCP是面向连接的传输协议
-
点对点
- 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的
-
可靠有序,不丢不重
- TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达
-
全双工通信
-
TCP提供全双工通信,每一端都存在发送缓存和接受缓存
- 发送缓存:准备发送的数据&已发送但尚未收到确认的数据
- 接收缓存:按序到达但尚未被接受应用程序读取的数据&不按序到达的数据
-
-
面向字节流
- TCP把应用程序交下来的数据看成仅仅是一串的无结构的字节流
-
-
TCP报文段首部格式
-
图示
-
组成
-
源端口 2B
-
目的端口 2B
-
序号
- 报文中第一个字节的编号
-
确认号
- 期望收到对方下一个报文段的第一个数据字节的序号
-
数据偏移(首部长度)
- TCP报文段的数据起始处距离TCP报文段的起始处有多远 以4B为单位
-
控制位
-
紧急位URG
- URG=1,标明此报文段中有紧急数据,是高优先级的数据
-
确认位ACK
- ACK=1,在连接建立后所有传送的报文段都必须把ACK置为1
-
推送位PSH
- PSH=1,接收方尽快交付接受应用进程
-
复位RST
- RST=1,标明TCP连接中出现严重差错,必须释放连接,然后重新建立连接
-
同步位SYN
- SYN=1,表明是一个连接请求/连接接受报文
-
中止位FIN
- FIN=1,表明此报文段发送方数据已发完,要求释放连接
-
-
窗口
- 指发送本报文段的一方的接收窗口,即现在允许对方发送的数据量
-
检验和
- 检验首部+数据,检验时要加上12B伪首部,第四个字段位协议字段6
-
紧急指针
- URG=1时才有意义,指出本报文段中紧急数据的字节数
-
选项
-
-
-
TCP运输连接管理
-
TCP连接的建立
-
图示
-
三次握手
-
第一次
- SYN = 1,表明是连接请求报文
- seq = x,是随机生成的序号
-
第二次
- SYN = 1,表明是连接接受报文
- ACK = 1,表明连接建立
- seq = y,是随机生成的序号
- ack = x + 1,表明确认收到序号x+1以前的数据,下一个从x+1开始(虽然第一次不含数据,但也消耗一个序号)
-
第三次
- ACK = 1,表明连接建立
- seq = x + 1,表明数据从x+1开始
- ack = y + 1,表明确认收到序号y+1以前的数据,下一个从y+1开始(虽然第二次不含数据,但也消耗一个序号)
-
-
SYN洪泛攻击
-
-
TCP连接的释放
-
图示
-
四次挥手
-
最后等待2MSL后,TCP客户端关闭
- 避免第四次确认报文丢失,TCP服务器就会一直重传,因为TCP客户已经关闭,不会回复TCP服务器的关闭请求
-
-
-
-
TCP的流量控制
-
让发送方的发送速率不要太快,要让接收方来得及接收
-
滑动窗口实现流量控制
-
图示
-
过程
-
rwnd为接收窗口大小
-
seq表示当前确认收到数据的序号+1
-
持续计时器
- TCP发送方收到接收方的零窗口(rwnd=0)通知后,应启动持续计时器。持续计时器超时后,应向接收方发送零窗口探测报文。
-
-
-
-
TCP的拥塞控制
-
图示
-
状态变量
-
拥塞窗口cwnd
-
取决于网络拥塞程度
- 网络拥塞依据:发生超时重传,即没有按时收到应当到达的确认报文
-
维护原则
- 只要没出现拥塞,就再增大一些
-
发送方设置
-
-
接收窗口rwnd
- 反应接收方容量,接收方设置
-
发送窗口swnd
- swnd=min{rwnd,cwnd}
-
满开始门限ssthresh
- 当网络拥塞时,ssthresh=cwnd/2
- 当cwnd<ssthresh,使用慢开始算法
- 当cwnd>ssthresh,使用拥塞避免算法
-
-
四个拥塞控制算法
-
慢开始
- cwnd按照指数规律增长
- 当cwnd<ssthresh时,cwnd *= 2
- 当cwnd>ssthreash时,转用拥塞避免算法
-
拥塞避免
-
cwnd线性增长
-
cwnd += 1
-
当出现网络拥塞时,ssthresh = cwnd / 2,cwnd = 1,然后执行慢开始算法
-
将报文丢失误认为网络拥塞
- 当个别报文段在网络中丢失,但实际并未发生拥塞,导致超时重传,也会将cwnd设置为1,会降低传输效率
-
-
快重传
-
图示
-
接收方收到数据需要立即发送确认,即使收到了失序的报文段也要立即发送出对已收到的报文段的重复确认
-
发送方一旦收到3个连续的重复确认,就执行快恢复算法
-
-
快恢复
- ssthresh = cwnd / 2, cwnd /= 2
- 执行拥塞避免算法
-
-
-
TCP的超时重传时间的选择
-
卡恩算法
-
针对超时重传无法测准往返时间的问题
-
在计算加权平均往返时间RTT_s时,只要报文段重传了,就不采用其往返时间RTT样本
-
修正
- 报文段每重传一次,就把超时重传时间RTO增大一些
-
-
图示
-
例子
-
-
TCP的可靠传输
-
图示
-
机制
- 数据传输之前会有三次握手来建立连接
- 数据传输时,有确认、滑动窗口、超时重传、拥塞控制等机制
- 数据传输后进行四次挥手断开连接
-
应用层
概述
-
网络应用模型应用(程序各种端系统上的组织方式和他们之间的关系)
-
客户服务器(C/S)方式
-
图示
-
服务器特点
- 总是处于运行状态,并等待客服的服务请求
- 具有固定的端口号(例如HTTP服务默认端口号为80),而运行服务器的主机也有固定的IP地址
-
应用
- 万维网WWW
- 电子邮件
- 文件传输FTP
-
-
对等(P2P)方式
-
图示
-
特点
-
没有固定的服务请求者和服务者,各端系统中的应用进程是对等的。对等方相互直接直接通信,每个对等方既是服务的请求者也是提供者
-
服务分散
-
可扩展性
- 服务分散在大量的对等计算机中
-
成本优势
-
-
应用
- P2P文件共享
- 即时通信
- P2P流媒体
- 分布式存储
-
-
应用程序相关
-
动态主机配置协议DHCP
-
图示
-
-
提供了一种即插即用连网机制,允许一台计算机加入新网络时可以自动获取IP地址等网络配置信息而不用手工参与
-
DHCP端口号
-
服务器UDP端口号67
-
客户UDP端口号68
- DHCP客户为获取到IP地址时使用地址0.0.0.0
-
-
DHCP中继代理
- 通常是一个路由器
- 收到主机广播发送的DHCP发现报文后,单播向DHCP服务器转发此次报文
-
-
DNS域名系统
-
层次树状结构
-
图示
-
顶级域名分类
-
国家顶级域名nTLD
- cn us uk
-
通用顶级域名gTLD
- com net org int edu gov mil
-
反向域arpa
-
-
-
域名服务器
-
实现域名到IP地址的转换
-
四种不同类型
-
根域名服务器
- 通常不直接对域名进行解析,而是返回该域名服务器所属顶级域名服务器的Ip地址
-
顶级域名服务器
- 管理在该顶级域名服务器注册的所有二级服务器
-
权限域名服务器
- 管理某个区的域名
-
本地域名服务器
- 不属于以上结构
- 代理作用,将收到的报文转发到上述的域名服务器的等级结构中,离用户比较近
- 也称默认域名服务器
-
-
-
域名转换
-
递归查询
-
图示
-
如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让该主机进行下一步的查询
-
-
迭代查询
-
图示
-
当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出要查询的IP地址,要么告诉本地域名服务器下一步请求服务器的地址
-
-
域名服务器中的高速缓存
-
图示
-
作用
- 提高了DNS查询效率,并减轻根域名服务器的负荷和减少英特网上的DNS查询报文数量
-
由于域名到IP地址的映射关系并不是永久不变,每项内容会设置计时器并删除超过合理时间的项
-
-
-
-
文件传送协议FTP
-
图示
-
最广泛的文件传送协议
- 屏蔽了各计算机系统的细节,适合于异构网络中任意计算机之间传送文件
- 提供交互式的访问
-
建立两个并行的TCP连接
-
控制连接
- 一直保持打开
-
数据连接
- 每次传输数据时才建立,传输结束就关闭
-
-
两种连接方式
-
默认情况
- FTP使用TCP 21端口进行控制连接,TCP 20端口进行数据连接
-
主动方式
- 数据连接使用TCP 20端口
-
被动方式
- 数据连接由服务器和客户端自行协商决定
-
-
-
电子邮件
-
三个主要构件
-
用户代理UA
-
用户与电子邮件的接口,又称电子邮件客户端软件
-
功能
- 攥写
- 显示
- 处理
- 通信
-
-
邮件服务器
- 电子邮件系统的基础设施
- 功能:发送和接收邮件,同时负责维护用户邮箱
-
邮件发送和读取协议
-
发送协议
-
SMTP(Simple Mail Transfer Protocol简单邮件传输协议)
-
过程
- 连接建立
- 发送邮件
- 释放连接
-
缺点
- 不能传输可执行文件和其他二进制对象
- 只能传输7位ASCII码
- SMTP服务器会拒绝超过一定长度的邮件
-
-
MIME(Multipurpose Internet Mail Extensions通用英特网邮件扩展)
-
使电子邮件支持声音、图像等文件
-
两种编码方式
-
quoted-printable编码
- 适合所传输数据中只有少量的非ASCII编码,用一个等号“=”后面加两个数字字符来表示一个非ASCII码字符。
-
Base64编码
- 这种编码的方法是先把二进制代码划分为几个24位等长的单元,然后把每一个24位单元划分为4个6位组,每一个6位组按照以下方法转换成ASCII码。
-
-
图示
-
-
-
读取协议
-
POP(Post Office Protocol邮局协议)
- 非常简单、功能有限、下载删除和下载保留
-
IMAP(Internet Message Access Protocol因特网邮件访问协议)
- 联机协议,用户在自己的计算机上可以操控邮件服务器中的邮箱
-
-
-
图示
-
-
信息格式
-
信封
-
内容
- 首部
- 主体
-
-
客户/服务器模式C/S
-
万维网邮件
-
通过浏览器登录邮件服务器万维网网站就可以写、收、发、读和管理电子邮件
-
图示
-
-
-
万维网WWW
-
URL统一资源定位符
- 四部分组成
-
万维网的文档
-
HTML超文本标记语言
- 使用多种“标签”描述网页的结构和内容
-
CSS层叠样式表
- 从审美角度来描述网页的样式
-
JavaScript一种脚本语言
- 控制网页的行为
-
分类
-
静态文档
- 本党创作完毕后就放在服务器,在被用户浏览的过程中内容不会改变。
-
动态文档
-
指文档的内容在浏览器访问万维网服务器时才由应用程序动态创建的
-
通用网关接口CGI
- 定义了动态文档如何创建,输入数据如何提供给应用程序,输出结果如何使用
-
-
活动文档
- 活动文档是指能够提供了一种连续更新屏幕内容的技术,这种技术把创建文档的工作移到浏览器端进行。
-
-
-
HTTP协议
-
超文本传输协议HTTP:定义了浏览器怎样向万维网服务器请求万维网文档,以及万维网服务器怎样把万维网文档传给浏览器
-
图示
-
特点
-
无状态
-
Cookie是一种对于无状态的HTTP进行状态化的技术
- 使用识别码识别
-
-
采用TCP作为运输层协议,但本身使无连接的(交换HTTP报文前不需要建立HTTP连接)
-
-
连接方式
-
持久连接(Keep-alive)HTTP/1.0
-
非流水线
-
流水线
-
-
非持久连接(Close)HTTP/1.1
-
-
报文格式
-
HTTP请求报文
- 每个字段都是ASCII码,且长度不固定
-
-
HTTP响应报文
-
-
-
-
搜索引擎
-
数据链路层
概述
-
概念
-
链路
- 从一个结点到相邻结点的一段物理线路
-
数据链路
- 把实现通信协议的硬件和软件加到链路上
-
以帧为单位传输和处理数据
-
点对点信道的三个问题
-
封装成帧
- 添加帧头帧尾,为了在数据链路层上传输数据
-
差错检验
-
通过封装在帧尾部的检错码,检查帧中是否存在误码
-
奇偶校验
- 奇校验
- 偶校验
-
循环冗余校验CRC
-
过程
-
-
实例
-
-
特点
- 漏检率低,易于硬件实现,广泛应用于数据链路层
- 只能检测出现错误,无法纠错
-
-
-
透明传输
-
数据链路层对上次交付的数据没有任何限制
-
面向字节的物理链路
-
字节填充
- 在帧定界符前加转义字符
- 在转义字符前添转义字符
-
-
面向比特的物理链路
-
比特填充
- 在连续5个1后加0
-
-
-
可靠传输
-
丢弃有误码的帧后,还学要确保接收方主机收到正确的副本
-
传输差错
- 比特差错
- 分组丢失
- 分组失序
- 分组重复
-
各层次的可靠传输
-
可靠传输协议
-
停止等待协议
-
过程
-
信道利用率
-
类型
-
确认与否认
- 如接收到误码,可丢弃等待发送方超时重传
- 对于误码率较高的点对点的链路,为使发送方尽早重传,可使用否认分组NAK分组
-
超时重传
- 一般超时重传时间选择为略大于RTT
- 在运输层,不太好确定
-
确认丢失
- 为了让接收方判断所收到的数据分组是否重复,给数据分组编号,由于停止-等待协议的停等特性,只需要一个比特
-
确认迟到
-
为了让发送方判断ACK分组是否重复,需要给ACK分组编号,只需一个比特
- 数据链路层一般不会出现ACK分组迟到,所以不用编号
-
-
-
-
回退N帧协议
-
过程
-
-
-
选择重传协议
-
过程
-
-
-
可靠传输协议
-
停止等待协议
-
过程
-
信道利用率
-
类型
-
确认与否认
- 如接收到误码,可丢弃等待发送方超时重传
- 对于误码率较高的点对点的链路,为使发送方尽早重传,可使用否认分组NAK分组
-
超时重传
- 一般超时重传时间选择为略大于RTT
- 在运输层,不太好确定
-
确认丢失
- 为了让接收方判断所收到的数据分组是否重复,给数据分组编号,由于停止-等待协议的停等特性,只需要一个比特
-
确认迟到
-
为了让发送方判断ACK分组是否重复,需要给ACK分组编号,只需一个比特
- 数据链路层一般不会出现ACK分组迟到,所以不用编号
-
-
-
-
回退N帧协议
-
过程
-
-
-
选择重传协议
-
过程
-
-
点对点协议PPP
-
提供了一个标准方法
-
构成
-
对于各种协议数据报的封装方法——封装成帧
-
链路控制协议LCP
- 用于建立、配置以及测试数据链路的连接
-
一套网络控制协议NCPs
- 其中每个协议支持不同的网络层协议
-
图示
-
-
帧格式
-
组成
-
标志字段
- 占1B,定界符取值为0x7E
-
地址字段
- 占1B,取值0xFF,目前没用
-
控制字段
- 占1B,取值0x03,目前没用
-
协议字段
-
占2B,指明帧的数据部分交送哪个协议处理
- 0x0021表示IP数据报
- 0xC021表示LCP分组
- 0x8021表示NCP分组
-
-
帧检验序列
- 占2B,表示CRC计算出的校验位
-
-
-
实现透明传输
-
面向字节的异步链路
-
字节填充法:插入转义字符
-
图示
-
-
面向比特的同步链路
-
比特填充法:插入比特0
-
图示
-
-
-
差错检测
-
图示
-
CRC循环冗余校验
-
-
工作状态
媒体接入技术MAC
-
解决如何协调多个发送和接收站点对一个共享传输媒体的占用
-
分类
-
静态划分信道
-
频分复用FDM
-
时分复用TDM
-
波分复用WDM
-
码分复用CDM
-
可在同样的时间使用同样的频带进行通讯
-
CDMA的每一个站被指派一个唯一的m bit码片序列
- 如果发送比特1 则发送自己的码片序列
- 发送比特0 则发送自己码片序列的反码
-
码片序列挑选原则
-
每个站不相同
-
每个站必须正交,即规格化内积为0
- S*T = 0
- S*T的反码 = 0
- S*S = 1
- S*S的反码 = -1
-
列举
-
-
-
-
动态划分信道
-
随机接入
-
载波监听多址接入/碰撞检测CSMA/CD
-
过程
-
图示
-
多址接入MA
- 多个主机连接在同一个总线上,竞争使用总线
-
载波监听CS
-
先听后说
-
发送帧之前先检测是否有其他站点在发送帧
- 若总线空闲96比特时间,则发送
- 若总线忙,继续检测等待总线空闲96比特时间后发送
-
-
-
碰撞检测CD
-
边说边听
-
每一个发送帧的站边发送边检测碰撞
- 一旦出现碰撞,则立即停止发送,退避一段时间后再发送“一旦冲突,立即停说,等待时机,重新再说”
-
-
-
-
争用期
- 经过争用期这段时间还没检测到碰撞,才能肯定这次发送不会发生碰撞
-
最小帧长和最大帧长
-
以太网规定最小帧长为64字节
- 保证主机可在发送完成之前就检测到是否遭遇碰撞
- 长度小于64字节的帧都是由于碰撞异常中止的无效帧
-
-
截断二进制指数退避算法
-
信道利用率
-
-
-
CSMA/CA
-
-
MAC地址和ARP协议
-
MAC地址
-
概念
- 在广播信道中,唯一标识每个主机的数据链路层地址
- 一般被固化在网卡中,所以也称为硬件/物理地址
- 对网络上的各接口的唯一标识
-
格式
-
-
发送顺序
-
第一字节->第六字节
- b0->b7
-
-
三类MAC地址的发送
-
单播
-
广播
-
多播
-
-
数据包转发过程中MAC地址变化情况
-
-
ARP地址解析协议
-
每台主机会有一个ARP高速缓存表
-
如果没有找到
-
发送ARP请求报文
-
收到ARP响应报文
-
-
-
类型
-
动态
- 自动获取,生命周期默认两分钟
-
静态
- 手工设置,生命周期不同
-
-
集线器与交换机
-
集线器
-
图示
-
特点
- 逻辑上任然是一个总线网,各站共享资源,使用CMSA/CD协议
- 只工作在物理层,碰撞检测由各站网卡检测
- 一般有少量的容错能力和网络我管理功能
-
-
交换机
-
图示
-
特点
- 多接口,全双工方式
- 同连通多接口,无碰撞(不使用CMSA/CD协议)
- 工作在数据链路层(包括物理层),收到帧后在帧交换表中查找帧的目的MAC地址所对应的接口号,然后转发
- 自学习算法建立帧转发表
-
转发帧的两种方式
- 存储转发
- 直通转发
-
自学习算法
-
-
区别
-
交换机隔离碰撞域,集线器不隔离碰撞域
-
虚拟局域网VLAN
-
是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求
-
实现
-
使用IEEE 802.1Q帧对以太网MAC帧格式进行扩展,插入4字节的VLAN标记
-
VLAN标记的最后12比特称为VID,标记了属于哪一个VLAN
- VID的取值0-4085
- 1-4094是有效VID
-
-
收发
- 收到普通MAC帧时由交换机插入帧,称为打标签
- 转发802.1Q帧时,可能删去VLAN标记,称为去标签
-
-
端口类型
-
Access
-
Trunk
-
Hybrid
-
实例
-
物理层
概述
-
主要任务‘
传输媒体
-
导引型传输媒体
-
同轴电缆
-
双绞线
-
分类
- 无屏蔽
- 屏蔽
-
特性
-
-
光纤
-
特性
-
分类
-
多模光纤
-
单模光纤
-
-
-
电力线
-
-
非导引型传输媒体
- 无线电波
- 微波
- 红外线
- 可见光
传输方式
-
分类
- 串行传输- 远距离传输- 并行传输- 计算机内部传输
- 同步传输- 传输字节之间没用时间间隔- - 异步传输- 字节之间的时间间隔不固定-
- 单工通信- - 半双工通信- 全双工通信
编码与调制
-
常用编码
-
不归零编码
- 无法区分码元,存在同步问题
-
不归零编码
- 自同步,编码效率低
-
曼切斯特编码
- 码元中间时刻的跳变既表示时钟,也表示数据
-
差分曼切斯特编码
- 跳变仅表示时钟,码元开始处是否发生变化表示数据
-
图示
-
-
调制方法
-
基本调制方法
-
调幅
-
调频
-
调相
-
图示
-
-
正交振幅调制QAM
-
信道极限容量
-
影响因素
- 信道能够通过的频率范围
- 信噪比
-
奈氏准则
-
香农公式
中间设备的区分
TCP/IP协议族
相关文章:
计算机网络思维导图
计算机网络 网络层 概述 主要任务 实现网路互连,进而实现数据包在各网络之间的传输 解决问题 向运输层提供可靠传输/不可靠传输的服务网络层寻址问题路由选择问题 英特网时使用最多的互联网,使用TCP/IP协议栈 网络层使用网际协议IP,时整个…...
07.useDefault
在 React 应用开发中,处理状态的默认值和空值情况是一个常见需求。useDefault 钩子提供了一种优雅的方式来管理状态,同时为空值(null 或 undefined)提供默认回退值。这个自定义钩子不仅简化了状态管理,还提高了代码的可读性和健壮性。以下是如何实现和使用这个自定义钩子:…...
git更加详细和灵活的提交过程,附带如何配置. gitignore来忽略部分文件的提交。
本套流程可以控制提交的代码是哪些,比直接使用git add . 更灵活,比如在项目中,一些文件不能通过.gitignore进行尽职提交,那么就需要使用本方法来手动控制是否提交,缺点就是相对麻烦一些。 git status//查看从当前工作…...

使用正则表达式删除文本的奇数行或者偶数行
用智谱清言和kimi搜出来的结果都没法在notepad生效,后面在overflow上找到的答案比较靠谱。 查找:^[^\n]*\n([^\n]*) 替换:\1 删除偶数行 查找:^([^\n]*)\n[^\n]* 替换:\1 代码解释 ^:这个符号代表字符…...
YOLOv10改进策略【注意力机制篇】| CVPR2024 CAA上下文锚点注意力机制
一、本文介绍 本文记录的是基于CAA注意力模块的YOLOv10目标检测改进方法研究。在远程遥感图像或其他大尺度变化的图像中目标检测任务中,为准确提取其长距离上下文信息,需要解决大目标尺度变化和多样上下文信息时的不足的问题。CAA能够有效捕捉长距离依赖,并且参数量和计算量…...

Unity修改鼠标图片【超简单】
1.向Unity导入需要修改的鼠标图片,在Unity内设置图片的Texture Type为Cursor。 2.编写代码 [SerializeField] Texture2D mouseTex;//放图片 void Start() {Cursor.SetCursor(mouseTex, Vector2.zero, CursorMode.Auto); }3.代码挂载在某物体(或者随便哪…...
windows C++-创建数据流代理(三)
以下示例展示了 log_agent 类,它类似于 dataflow_agent 类。 log_agent 类实现异步记录代理,用于将日志消息写入文件和控制台。 log_agent 类使应用程序能够将消息分类为信息性、警告或错误消息。 它还使应用程序能够指定每个日志类别是写入文件、控制台…...

C语言学习-循环嵌套打印字母金字塔
前言 最近博主也是在努力的学习C语言,在学习的过程当中碰到了一个对我来说的“难题”,足足控了我有半小时,不过这个问题也是挺有趣的,我也就借着本道题目来写一篇文章和大家交流交流 准备工作 vs2022(其他编辑器当然也可以)c语…...
探索CI/CD:持续集成与持续部署的基本概念
在现代软件开发中,持续集成(CI)和持续部署(CD)已经成为提高开发效率和产品质量的关键实践。本文将详细介绍CI/CD的基本概念、优势以及如何在实际项目中实施CI/CD。 一、什么是持续集成(CI)&…...
大厂面试真题:说一说CMS和G1
CMS垃圾回收器四个主要步骤 初始标记阶段(Initial Mark Phase) 目的:标记老年代中所有从GC Roots直接可达的对象。特点:此阶段会导致STW(Stop The World),即暂停应用程序的执行,但停…...

使用Qt Creator创建项目
个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 使用Qt Creator创建项目 收录于专栏【Qt开发】 本专栏旨在分享学习Qt的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 温馨提示: 1. 新…...

C++ 与 C 的那些事儿:深度剖析两者区别
在编程的世界里,C 和 C 就像是一对有着紧密血缘关系却又各具特色的兄弟。对于很多初学者或者有一定编程经验的人来说,分清它们之间的差异至关重要。今天,我们就来深入探讨一下 C 和 C 的区别。 <1>、C 是一种静态类型的、编译式的、通…...
学习Redis 高可用性
Redis 高可用性(High Availability)是指在 Redis 系统中实现持续的可用性,即使在发生硬件故障或其他意外情况下,系统仍能保持运行。 Redis 高可用性(High Availability)是指在 Redis 系统中实现持续的可用性…...

【含开题报告+文档+PPT+源码】基于springBoot+vue超市仓库管理系统的设计与实现
开题报告 随着电子商务的快速发展和物流行业的日益壮大,超市仓库管理系统的重要性也日益凸显。传统的超市仓库管理方式存在许多问题,比如人工操作繁琐、数据统计不准确、管理效率低下等。因此,需要设计和实现一个高效、智能的超市仓库管理系…...

美发店管理革新:SpringBoot系统的应用
1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理美发门店管理系统的相关信息成为必然。开发…...
C++从0到1
左值和右值: 左值左值是可以位于赋值操作左边的表达式。意味着左值代表一个对象的身份内存中的具体位置。可以被取地址,并且可以位于赋值操作的左边或右边右值右值是不能位于赋值操作左边的表达式。右值代表一个对象的值,通常是一个临时对象…...

VMware Tools 安装和配置
1. 使用 ISO 映射文件,并且选择.iso文件 2. 启动虚拟机,如果 VMware Tools 是灰色的,那么卸载 open-vm-tools(不要重装),重新启动虚拟机。卸载可以参考:重装 open-vm-tools-CSDN博客 3. 拷贝挂载…...
云原生化 - 基础镜像(简约版)
根据最佳实践的建议,每个容器只做一件事,并尽可能减少基础镜像的内容,这里列举一些常用的基础镜像,可供选择。(完整版请查阅这里) 基础镜像推荐 1. BusyBox 描述:一个包含了许多常用UNIX工具的…...
云计算相关
文章目录 一、虚拟化1、虚拟化技术概述特点 2、虚拟化与云化3、计算虚拟化分类与作用常见的计算服务架构 4、存储虚拟化5、网络虚拟化 二、行业管理规章制度1、服务器管理制度访问控制变更管理备份与恢复监控与审计 2、操作系统安全管理规范更新与补丁管理用户账号管理防火墙与…...

人机协作:科技与人类智慧的融合
随着科技的飞速发展,越来越多的领域开始借助人工智能(AI)和自动化技术来提升工作效率。人机协作(Human-Machine Collaboration)这一概念逐渐成为现代技术进步的核心。它不仅改变了我们的工作方式,也在重新定…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...

C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...

基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...

嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
pycharm 设置环境出错
pycharm 设置环境出错 pycharm 新建项目,设置虚拟环境,出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...