计算机网络知识拓扑
2021-12-16 10:23:03 0 举报
AI智能生成
详细的计算机网络拓扑, 喜欢的麻烦点赞哟
作者其他创作
大纲/内容
概括
网络分类
广域网(WAN)
城域网(MAN)
局域网(LAN)
发展简史
互联网发展历史
第一阶段: 单个网络ARPANET(1969美国国防部创建的网络,为了连接就近的几个计算机)
第二阶段: 三级结构的互联网(现代网络的雏形)
第三阶段: 多层次ISP互联网
中国互联网发展简史
1980年开始互联网实验
1989年第一个公共网络建立
1994接入国际互联网
计算机的层次结构
功能
保证数据通路顺通 (如果网络被外部原因断开,例如被挖掘机挖断)
识别目的计算机(计算机网络中有许多计算机,A怎么识别到B, B又怎么识别到A)
目的计算机状态(A需要和B通信,A通过网络知道B是否在线等状态)
数据是否错误(因为外部因素导致数据传输错误,怎么保证不出错,或者出错后如何解决)
设计的基本原则<br>
各层之间相互独立(无需知道下层如何实现,层与层耦合低)
每一层要有足够的灵活性(网络一直在发展,具有灵活性方便以后拓展变化)<br>
各层之间完全解耦
OSI七层模型
<b>应用层</b> - 为计算机用户提供接口和服务(HTTP/FTP/等等)
<b>表示层</b> - 数据处理(编码解码,加密解密等)
<b>会话层</b> - 管理通信会话(建立/维护/重连)通信会话
<b>传输层</b> - 管理端到端连接
<b>网络层</b> - 数据路由(决定数据在网络的路径,路怎么走)
<b>数据链路层 </b>- 管理相邻节点的网络数据通信(与网络层区别是,网络层管理在整个网络之前的通信,链路层是管理相邻节点通信)
<b>物理层</b> - 计算机网络涉及的一些物理设备(光电物理特性)
TCP/IP四层模型
<b>应用层</b> - 包含(OSI的应用层/表示层/会话层) - HTTP/FTP
<b>传输层</b> TCP/UDP
<b>网络层</b> IP/ICMP
<b>网络接口层</b> - OSI的数据链路层和物理层 Ethernet/ARP/RARP
现代互联网的网络拓扑<br>
边缘部分
家庭
路由器
终端机器 (手机/电脑等)
企业
内部网关
核心部分
地区ISP/国际ISP
从用户的角度看网络
客户端-服务器(C/S)模式
对等连接-P2P模式
计算机网络的性能指标
速率
bps = bit/s
8 kbps = 1KB/s
100Mbps = 12.5MB/s
时延
发送时延
本机的发送时延: 发送时延 = 数据长度(bit) / 发送速率(bit/s), 发送速率由计算机网卡决定
传播时延
传播时延 = 传播路径距离 / 传播速率(bit/s), 传播速率由传输介质决定
排队时延
数据包在网络设备中等待的时间
处理时延
数据包到达某一设备或者目的机器被处理所需要的时间(如果服务器性能不好,所需时间就可能会很久)
往返时间 <br>
网络层
概述
网络层作用
决定数据在网络的路径
子网划分,路由协议<br>
IP协议
虚拟互连网络<br>
为什么要有IP协议
现实的计算机网络是错中复杂的<br>
物理设备通过使用IP协议,屏蔽了物理网络之间的差异
当网络中的主机使用IP协议连接时,无需关注网络细节(关注端到端的连接)
IP协议的作用
IP协议使得复杂的实际网络变为一个虚拟互连网络
IP协议使得网络层可以屏蔽底层细节而专注网络层的数据转发
IP协议解决了在虚拟网络中数据报传输路径问题
如何表示IP地址
点分十进制
0~255.0~255.0~255.0~255
IP协议详情
IP头部
版本 - 4位
表示: IP协议版本, 如果一方使用IPV4(4字节 - 32比特位)另一方也需要使用IPV4要不然无法通信
首部长度 - 4位
<div class="lake-content" typography="traditional"><span style="font-size: inherit;">注意: 单位是32位(4字节),4位的取值范围为(0~15),最大IP地址位15*4为60字节</span><br></div>
服务类型 - 8位
总长度 - 16位
注意: <b>单位是字节</b>, 16bit, 取值范围(0~65535), 表示IP首部+IP数据总长度
链路层最大传输单位(MTU)为<b>1500字节</b>,IP包最大可以是<b>65535字节</b>
如果IP包大于数据链路层的最大帧大小,数据链路层将对数据包进行分片
标识 - 16位
协议内部使用
<b>标志 - 3位</b>
只有两位有意义, 标记IP包是否可以分片
<b>片偏移 - 13位</b>
如果进行分片,这里记录的就是偏移数据
<b>生存时间(TTL) - 8位</b>
IP包每经过一个网络设备(路由器,计算机)TTL - 1, 当TTL为0网络设备必须丢弃掉该报文
TTL设计目的: 当IP报文在网络传输找不到终点时,避免报文在网络中无限的传输消耗带宽
<b>协议 - 8位</b>
表面IP报文具体携带的是什么协议(例如: TCP, UDP等)
ICMP - 字段值 1, IGMP - 字段值 2, IP - 字段值 4, TCP - 字段值 6, UDP - 字段值 17....
<b>首部校验和 - 16位</b>
校验IP首部是否出错
<b>源IP地址 - 32位</b>
<b>目的IP地址 - 32位</b>
选项options
IP协议的转发流程<br>
逐跳 (hop-by-hop)
IP数据
查询下一跳IP(<b>路由表</b>)<br>
封装IP数据包
链路层查询<b>ARP表</b>获得MAC地址
链路层增加帧首帧尾
ARP协议和RARP协议
ARP
作用
将网络层IP32位地址 => 转换为MAC48位地址
使用情况
有缓存
无缓存
广播数据包
缓存收集到的MAC地址与IP地址关系
ARP协议是封装到数据链路层的(数据帧内)<br>
RARP
作用
把MAC地址转换为IP地址
IP地址的子网划分<br>
分类IP地址
为什么要分类
规划和分配IP地址非常麻烦<br>
A-E类
划分子网
为什么需要子网划分?<br>
不划分路由表将极大,导致寻址缓慢
例如公司256人, C类最多254个IP,只能用B类,B类数量2^16个,造成极大浪费
如何划分子网
子网掩码
子网掩码和IP地址一样都有32位地址
连续0和1组成
某个子网的子网掩码具备网络号位数个连续的1
IP地址与子网掩码& 与运算,得出子网地址
无分类编址CIDR
CIDR没有A/B/C类网络号,和子网划分概念
CIDR将网络前缀相同的IP地址称为"CIDR地址块"
网络地址转换NAT技术<br>
为什么需要NAT技术?
IP地址不够用,减缓IP地址消耗
IP分类
内网地址
A类内网地址 - 千万级数量设备
B类内网地址 - 百万级数量设备
C类内网地址 - 万级数量设备
外网地址(全球唯一)
NAT技术
解决的问题
内网那么多设备使用同一个外网IP, 那么外部怎么知道具体是哪个设备在请求?
作用
NAT技术用于多个主机通过一个公有IP访问互联网私有设备
实现原理
路由器会将内网地址和端口转为公网的地址<b>加端口</b>
ICMP协议详解<br>
作用
ICMP用于传输中报告错误信息或异常信息
ICMP协议在IP数据报中
占8位(8位协议)
分类
差错报告报文
询问报文
应用
Ping
<div class="lake-content" typography="traditional"><span class="ne-text">Traceroute</span></div>
利用每次递增IP数据报的TTL时间记录传输路径
路由
路由表是如何知道目标地址的下一跳地址?
路由算法
算法是正确的,完整的
算法在计算上应该尽可能的简单
算法可以适应网络中的变化
算法是稳定的和公平的
自治系统 - AS<br>
作用
因为互联网规模非常大,环境非常复杂,为了使互联网简单些,我们对互联网进行<b>人为的划分</b>
概述
一个自治系统是处于一个管理机构下的网络设备群
AS内部网络自行管理,AS对外部提供一个或者多个出入口
网络层次
每一个节点都可以理解为一个AS
不同自治系统路由算法不同
内部
内部网关协议(RIP/OSPF)
外部
外部网关协议(BGP)
路由算法
内部网关协议RIP
使用距离矢量算法 - DV<br>
概述
RIP协议把网络的跳数(hop)作为DV算法的距离
不够准确
RIP协议每隔30s交换一次路由信息
浪费资源
RIP协议认为跳数>15的路由为不可达路由
视野短
缺点
随便相信相邻顶点的信息
视野不够 - 指能看到自己相邻顶点的信息
特点
实现简单,开销小
<div class="lake-content" typography="traditional"><span style="font-size: inherit;">限制了网络规模(大于15跳的是不可达的)</span><br></div>
故障信息传递慢,更新收敛时间长
内部网关协议之OSPF协议<br>
使用dijkstra-戴克斯特拉算法
算法特点
贪心+广搜
以起点为中心,向外层层拓展
使用LS协议
特点
<div class="lake-content" typography="traditional"><span style="font-size: inherit;">向所有路由器发送消息(一传十,十传百)</span><br></div>
消息描述该路由器与相邻路由器的链路状态
这些状态相当于连接"代价"
网络管理人员决定的
距离/时延/带宽/...
只有链路状态发生变化才发送更新信息
OSPF协议的过程
向所有路由器发送消息
链路状态数据库
链路状态数据库是全网一致的
每个网络节点都可以运行dijkstra算法
五种消息类型
问候消息(hello)
维护路由与相邻路由的可达性
链路状态数据库的描述信息
用于向相邻路由器发送自己链路状态数据库状态的简单消息
链路状态请求消息
用于向相邻路由器请求链路状态数据库
链路状态的更新消息
是OSPF非常重要/频繁/最常见的消息
链路状态确认信息
用于链路更新的确认
对比RIP
RPI
从邻居看网络
路由器之间累加距离
频繁/周期更新/收敛很慢
路由间拷贝信息
OSPF
整个网络拓扑
Dijkstra算最短路径
状态更新快,收敛快
链路间传递路由状态,自行计算
路由器接入网路 => 路由器向相邻节点发出问候信息 => 与相邻路由器交流链路状态数据库 => 广播和更新未知路由
外部网关协议之BGP协议<br>
概述
BGP协议是运行在AS(自治系统)之间的一种协议
为什么要在AS之间使用BGP协议?
互联网规模太大(如果使用内部网关的算法,存储路由信息太大,dijkstra算法也很慢)
AS内部之间使用不同的路由协议, 需要使用BGP协议协调
有的使用RIP协议,有的使用OSPF协议, 不同协议无法通信
AS之间要考虑除网络之外的一些因素(法律/政治/安全/...)
BGP协议能找到一条到达目的地比较好的路由
BGP speaker (BGP发言人)
BGP并不关心内部网络拓扑
AS之间通过BGP speaker交流信息
BGP speaker可以人为的配置策略
物理层
作用
连接不同物理设备<br>
传输比特流<br>
物理介质
同轴电缆
老的网线,绝缘层是泡沫<br>
双绞线
光纤
无线介质
红外线
无线
激光
传输原理
高低电频<br>
比特流
信道
分类
单工通信信道
只能往一个发送通信,没有反馈的信道(有线电视,无线电收音机,只能接收不能发送)<br>
半双工通信信道
双方都可以发送接收信息,不能同时双方发送和接收
全双工通信信道
双方都可以发送接收(当前主流)
分用-复用技术
多个电脑连接复用器或分用器使得只使用一个信道, 提升信道利用效率(高峰会产生信道的拥塞)
复用和分用利用了哪些技术
频分复用
时分复用
波分复用
码分复用
数据链路层
数据链路层功能<br>
封装成帧<br>
过程
将IP数据包添加帧首帧尾再转为二进制
帧首部
<span style="font-size: inherit;">特定比特流</span><br>
SOH: 0000 0001
帧尾部
特定比特流
EOT: 0000 0100
如何解决数据帧中也有这些特定比特流?
透明传输
如何解决数据报里面的控制字符不被解析出来?
IP数据包转比特流前在特定比特流前添加特殊字符ESC
如果数据报里面也出现了转义字符了咋办?
再转义一次ESCESC
差错检测
奇偶校验码<br>
原理: 在比特流尾巴添加一位比特位检测比特流是否出错<br>
缺点: 奇偶校验码的局限: (比特流出错是偶数的话就检测不出)
循环冗余校验码CRC<br>
作用
一种根据传输或保存的数据而产生固定位数校验码的方法
检测数据传输或者保存后可能出现的错误
生成的数字计算出来并且附加到数据后面
原理
模2运算 - <b>异或(xor)</b>
过程
选定一个用于校验的多项式G(x), 并在数据尾部添加r个0
将添加r个0的数据,使用模"2"除法除以多项式的尾串
得到的余数填充在原数据r个0的位置得到可校验的位串
最大传输单位MTU
MTU
设置MTU有什么作用?
MTU受到底层物理硬件影响,而且数据帧过大过小都会影响数据帧传输的效率
以太网MTU一般为<b>1500字节</b>
路径MTU
路径MTU由链路中最小MTU决定<br>
传输层
待更新
<b><font color="#ffeb3b">图文文字和更多详细内容请到语雀查看<br>https://www.yuque.com/bossgaohascat/ey2oip/xvpzbb</font></b><br>
0 条评论
下一页