OSI7层参考模型-开放式系统互联参考模型
上三层
为应用程序对数据流量进行加工以及处理的阶段
应用层
抽象语言 -->编码
表示层
编码-->二进制
会话层
提供应用程序的会话地址,这个时跟着应用程序走就可以了比如说qq的名字之类的
下四层
负责数据的传输
传输层
靠tcp/udp完成分段/端口号
UDP
用户数据报文协议 --- 非面向连接的不可靠传输协议;
传输层的基本协议,仅完成传输层的基本工作
一般来说微信视频、直播要用到udp
source port 源端口
destination port 目标端口
UDP length 报头长度由图可知8个字节
checksum校验和 用作校验
tcp
详解请看
HCIA学习--TCP协议的一些简介,UDP协议、IP协议报头详解及TCP三次握手、四次挥手_两台主机中通信进程的端口号不能相同_板栗妖怪的博客-CSDN博客
分段
数据包容量不易过大,否则影响传输效率及共享带宽;所以要分段限制数据包大小
带宽计算公式
速率约等于 (带宽/8)*85%
端口号
用于标记进程
0-65535
其中1-1023 注明端口 用于默认标记固定服务
1024-65535 动态端口 高端口 用于随机对应终端的各种进程
网络层
internet协议
ip地址 又称逻辑地址 临时地址
ipv4报头
数据链路层
HCIA仅了解了以太网协议一种
以太网在数据链路层功能
控制物理层(该层的基本功能)
提供MAC地址进行物理寻址(以太网的额外的功能)
以太网两种报头
名词注解
MTU
最大传输单元 传输层对数据分段的大小
封装
数据从高层向低层的加工过程,过程中数据封装每层的头部,不断变大
解封装
数据从低层向高层的识别过程,过程中需要读取,删除部分头部,不断变小
PDU
协议数据单元 各层数据在封装完成后,对数据的单位称呼
应用层---报头
传输层--段
网络层--包
数据链路层--帧
物理层-- 比特
ARP --地址解析协议
通过对端的一种地址来获取对端另一种地址
AARP 正向ARP -- 已知同一网段的ip地址,通过广播来获取该ip对应的MAC地址
反向ARP --- 已知对端的MAC地址,获取本地的ip地址(现在一般不用了)
FARP -- 无故ARP 使用AARP,来查询本地的ip地址;(用于ip地址的冲突检测)
dns
域名解析服务通过域名地址查询对应的IP地址
tcp/ip与osi区别
1、层数不同
2、OSI模型的网络层支持所有的网络层协议
TCP/IP的网络层实际被称为internet层,仅支持IP协议
3、TCP/IP协议栈道支持跨层封装
跨层封装--- 应用层数据直接封装于3层报头或者2层报头
封装3层报头
同一广播域内的服务型协议--ARP/OSPF..... 使用的设备均为3层设备
封装2层报头
同一交换网络内的二层设备服务型协议---STP
正常应用程序封装的数据流量不做跨层处理
因此跨层封装的意义在于更快的完成服务型协议间的沟通计算
跨层封装时,部分层面的功能,必须由其他层面来辅助完成比如说4层的分段、端口号(区分进程)
跨层封装到3层报头时,IPV4报头可以对数据进行分片,之后每片内容填充于报头中,携带到目的地
报头第二行就是看分片,最后一行就是用来填充数据
identification 分片之后同一个数据包靠标识确认,标识相同就是同一个数据包
flag 标记是否需要分片以及分片是否足够
frag offsel分片后数据包的序号
protocol 3层报头中还存在协议号,用于对标后方所封装的协议0-255,6代表TCP/17代表UDP;
其余数字每一个皆对应一个固定的跨层封装协议
2层报头中也有类似的功能来实现分段、进程区分
在非跨层封装到2层时,以太网使用第二代数据帧,该帧不具备分片功能,仅存在类型号,可用于区分进程
一旦数据被跨层封装到二层时,将启用第一代以太网封装
上面一代下面二代
第一代封装将数据链路层分为了两层 --->LLC逻辑链路控制子层+MAC介质访问控制子层
LLC层负责分片和提供类型号来区分进程
MAC层用于提供MAC,以及控制物理层
(通过802.2那个字段进行分片)
数据包转发过程
获取目标ip地址方式
- 本地已知
- 访问网页基于域名,通过DNS服务器进行解析
- 终端客户端软件提前存储服务器ip地址,直接访问服务器,基于服务器中转来与实际目标通讯
获取mac地址方式
使用ARP请求通过广播的形势来获取同一广播域设备的mac地址
MAC地址
由48位二进制构成,使用16进制标识;全球唯一,出厂时烧录到芯片中
ipv4地址
HCIA学习(第二天)--OSI七层参考模型_板栗妖怪的博客-CSDN博客
静态路由
在默认情况下,路由器仅存在直连网段的路由;
直连路由产生的条件:
- 路由器的接口配置了合法的ip地址
- 同时该接口已经开启,且可以通信
所有非直连网段为该路由器的未知网段,获取未知网段方法:
- 静态路由 -- 管理员手写路由表
- 动态路由 -- 所有路由器运行相同的动态路由协议后,路由器间沟通、协商、计算自动生成路由表
静态路由的两种写法
[Huawei]ip route-static 10.1.1.0 24 192.168.1.2
目标网络号 下一跳
下一跳:流量从本地发出后,下一个进入的路由器接口 -- 下一个入口地址(路由器)
[Huawei]ip route-static 10.1.1.0 24 GigabitEthernet 0/0/1
目标网络号 出接口
出接口:流量从本地路由器发出的接口号;
网络类型
点到点 --- 在一个网段中,只能存在两个节点
点到点例子
靠下图接口连接的两台设备可以是点对点
MA -- 多路访问 ---在一个网段中,存在节点数量不限制)
(静态路由写法在MA网络中建议使用下一跳写法,在点到点网络中建议使用出接口写法)
然后由在点到点连接中硬要使用下一跳写法
由于路由器是递归查询路由表的,故下一跳写法生成的路由条目每次查询时,均需要递归到直连路由上,但出接口写法可以不用递归;因此在点到点网络中,由于其不存在代理ARP/ICMP重定向之类规则,故建议出接口写法
在MA网络中硬使用出接口写法
为获取精确的下一跳MAC地址,路由器将使用代理ARP和ICMP重定向;
代理ARP:若一台路由器收到了非本接口直连网段地址的ARP请求,将查询本地路由表,若表中存在到达被请求ip地址的网段的路由,将代理该被请求ip,使用本地的MAC地址进行ARP应答
ICMP重定向:当路由器发现一个数据包从本地的A口进入后,查询完路由表依然从A口再发出,将告知上一跳设备,本地的下一跳地址来优化转发路径
基于以上的规则总结:在MA网络中使用出接口写法,数据转发过程繁琐浪费资源,故建议下一跳写法;
静态的扩展配置
手工汇总
当路由器访问多个连续子网(可以汇总成一个网段)时,且全部基于相同的下一跳路径;可以将这些目标网络进行汇总计算后,仅编写到达汇总网段的一条路由即可;--优化路由表,减少路由条目数量,加快查表速度,降低网络延时;
路由黑洞
汇总的路由网段中包含了网络内实际不存在的网段时,流量将有去无回;造成资源浪费; 主动黑洞--地址设计不合理 被动黑洞--设备关机断电导致
缺省路由
一条不限定目标,在路由表中0.0.0.0标识的路由,代表所有网段;路由器查表时,在查询完本地所有的直连、静态、动态路由后若依然没有可达路径,才使用该条目;
[Huawei]ip route-static 0.0.0.0 0 12.1.1.2
空接口防环路由
当黑洞路由与缺省路由相遇时,将必然出现环路;
通过在黑洞路由器上,编写到达汇总网段的空接口路由,可以防止环路的产生;
[Huawei]ip route-static 1.1.1.0 24 NULL 0
浮动静态路由
默认手写的静态路由优先级为60;直连路由为0;优先级取值范围0-255;越小越优秀;通过在编写静态路由时,修改优先级,可以实现静态路由备份的效果;
[Huawei]ip route-static 1.1.1.0 24 12.1.1.2 preference 61
负载均衡
当访问同一网段时,若存在多条开销相似路径时,可以让设备将流量拆分后延多条路径同时传输,实现带宽叠加的效果;
协议号和端口号的区别
协议号是存在于IP数据报的首部的20字节的固定部分,.该字段是指出此数据报所携带的是数据是使用何种协议,以便目的主机的IP层知道将数据部分上交给哪个处理过程。也就是协议字段告诉IP层应当如何交付数据。
端口号存在于UDP和TCP报文的首部,是传输输层服务访问点TSAP,端口的作用是让应用层的各种应用进程都能将其数据通过端口向下交付给传输输层。