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