OSI模型各层详解

时间:2023-03-09 04:40:32
OSI模型各层详解

1. OSI概述

1.1 模拟器说明

1.1.1 模拟器的作用

搭建实验环境进行测试。

1.1.2 模拟器的类型

  • PT:一般是学校中使用,命令不完整,且不能抓包
  • GNS3:思科(CCNA,CCNP),命令行比较完整,可以抓包分析(运行IOS)
  • EVE:思科(CCIE)
  • ENSP:华为

1.2 集线器和交换机

1.2.1 集线器(HUB)

只是简单的将多个计算机串联起来(HUB带电源供电,以放大电信号)。HUB是物理层设备。

和HUB相连的所有主机都在一个冲突域内,所以同一时间只能有一个主机发送报文,而其他所有主机都只能接受。即某个时段,HUB接口中,只能有一个用户建立数据链路和目的端进行通信,而其他端口只能处于监听状态。

CSMA/CD:载波侦听多路访问/冲突检测 协议:是广播型信道中采用的一种随机访问技术的竞争型访问方法,是一种退让机制。

HUB集线器采用是是半双工通信机制。

1.2.2 交换机(Switch)

Switch和主机相连的每个接口都会把电信号(高低电频)转换为数字信号(100101010)。

交换机是拥有CPU、内存、缓存以及一系列芯片的,可以边缓存边转发,所以可以对从接口传入过来的数据进行处理。

Switch的每一个接口是一个冲突域,所以和交换机相连的所有主机都可以同时发送报文。

网桥:PC1  --> (电信号转换为数字信号) 网桥 (数字信号转换为电信号) --> PC2  (网桥还会对接收的信息进行纠错)

1.3 OSI七层模型概述

1.3.1 OSI七层&TCP/IP五层

OSI七层图示:
OSI模型各层详解
TCP/IP五层图示:(TCP/IP四层是将数据链路层和物理层合并成了网络接口层)

OSI模型各层详解

1.3.2 对OSI七层各个层次的解释

  • 第七层:应用层
    • QQ、搜狗、思维导图等应用软件
  • 第六层:表示层
    • 转码的过程、压缩、应用软件之间的数据交互
  • 第五层:会话层
    • 迅雷下载、限速
    • 应用层:数据 = PDU
  • 第四层:传输层
    • TCP、UDP
    • TCP + 数据 = 段(segment)
  • 第三层:网络层
    • 路由、如何到达到对方
    • IP + TCP + 数据 = 包(packet)
  • 第二层:数据链路层
    • MAC地址
    • MAC + IP + TCP + 数据 = 帧(frame)
  • 第一层:物理层
    • 比特(bit)

2. 物理层(传输介质)

2.1 有线介质

2.1.1 双绞线

特点:电传输(线缆+水晶头)

  • 传输距离:100m
  • 传输介质:铜
  • 误码率:线缆传输过程中受到干扰发生错误的比例
  • 绞线的主要目的就是屏蔽信号,所以要绞在一起,绞的越紧抗干扰能力越强;全平的线容易受到干扰。

线缆的部分:

  • 非屏蔽线:
    • CAT5:五类线
    • CAT5E:超五类线
    • CAT6:六类线
    • CAT6E:超六类线
    • 建议使用六类线,部分六类线有屏蔽功能
  • 屏蔽线:(屏蔽线外面有一层铝箔包裹,以屏蔽信号)
    • CAT7:七类线
    • 七类线默认就是屏蔽线,建议在机房环境下使用七类线

水晶头部分:(RJ45水晶头)

  • 线序:线序从左到右
    • OSI模型各层详解
  • 直通线和交叉线:
    • 直通线:568B-568B、568A-568A
    • 交叉线:568B-568A
  • 通断规则:
    • 4芯通:百兆(线序中的第1236通)
    • 8芯全通:千兆(在应急情况下,可以将一根网线分成两个头,第1236和第4578)
  • 设备连线标准:
    • OSI模型各层详解

 POE设备:通过双绞线进行供电(类似一台2层或3层的交换机)

  • 作用:供电 + 数据传输
  • 支持:POE交换机
    • 摄像头支持POE供电
    • 无线路由器支持POE供电
  • 图示:
    • OSI模型各层详解

2.1.2 光纤

特点:光传输(玻璃纤维,塑料)

  • 不受电磁信号干扰
  • 传输速率快:
    • 1000M:G
    • 10000M:TEN-G
    • 100000M:E
  • 传输距离大:
    • 多模:2KM
      • 类比于手电筒
    • 单模:42KM
      • 类比于激光
  • 光缆本身不值钱,但是接口比较贵(接口就是一个光模块)

2.2 无线介质(WiFi)

2.2.1 运营商网络

5G:

  • 高频:波长比较短
  • 干扰源:不容易受到干扰
  • 特点:
    • 价格贵
    • 穿墙能力比较差

2.4G:

  • 低频:波长比较长
  • 干扰源:
    • 电磁炉
    • 蓝牙鼠标
    • 电吹风
  • 特点:穿墙能力比较好

2.2.2 无线路由器

 把RJ45的有限网络,放出无线的信号。

3. 数据链路层

3.1 数据链路层概述

3.1.1 由来和功能

  • 由来:单纯的数字信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思。
  • 数据链路层的功能:
    • 在数据链路层进行比特转换(电信号 --> 数字信号)
    • 定义了数字信号的分组方式

3.1.2 以太网协议

以太网协议:

  • 由来:早期许多公司都有自己的分组方式,后来形成了统一的标准,即以太网协议(ethernet)
  • 规则:ethernet规定,MTU为1500字节
    • 一组电信号构成一个数据帧
    • 每一数据帧分为:报头head和数据data两部分

数据帧的构成:(head+data)

OSI模型各层详解

  • head部分(固定的18个字节)
    • 源地址:6字节
    • 目的地址:6字节
    • 数据类型+FCS(帧检测序列):6字节(2+4)
  • data部分(最短46字节,最长1500字节)
    • 帧的数据长度最小为 46 字节,最大为 1500 字节。
    • 如果不足 46 字节时,会填充到最小长度。最大值也叫最大传输单元(MTU)
  • 注意:
    • head+data=(最短64字节,最长1518字节),如果超过最大限制就分片发送。

3.2 数据链路层:MAC子层+LLC子层

  • MAC Sub-layer(介质访问控制子层)
    • 指定数据如何通过物理线路进行传输,并与物理层通信
  • LLC Sub-layer(逻辑链路控制子层)
    • 对数据进行识别并纠错、重传(误码率)、协商速率等
      • 若误码率较高,会直接将接口速率降低(如千兆变百兆),若再高,会将接口直接宕掉
    • 全双共和半双共也是LLC子层协商的,正常情况下都是全双工,可以手动调
  • 图示:
    • OSI模型各层详解

3.2 MAC地址

组成:12个十六进制数字组成

  • 前6位:厂商编号
  • 后6位:流水线号

3.3 交换机与MAC地址

  • MAC地址表:MAC -> 接口
    • 若交换机中的MAC表有目标MAC的记录:直接查表转发
    • 若交换机中的MAC表没有目标MAC的记录:就发送给除了自己的所有接口(广播的方式)
    • MAC地址表如果过大,内存可能会溢出
  • 接口带宽:
    • E:10M/100M
    • F:100M
    • G:1000M
    • Ten-G:10000M

3.4 接口UP的方式(双UP和单UP)

  • 物理层的UP
  • 协议的UP
    • 协议的UP是需要LLC子层来进行协商看能否UP起来的
  • 双UP才能转发数据(接口和协议都UP)

3.5 双工

  • 全双工:
    • 收发能同时进行
  • 半双工:
    • 收发不能同时进行
    • 如HUB集线器

4. 网络层

4.1 网络层概述

4.1.1 由来

世界大网络由一个个小的彼此隔离的局域网组成,以太网包只能在一个局域网内发送。一个局域网是一个广播域,以太网的广播包只能在一个广播域内发送,跨广播域通信只能通过路由转发。

那么我们便要用一种方法来区分哪些计算机属于同一广播域,如果在同一广播域就采用广播的方式发送,如果不是同一广播域就采用路由的方式发送(向不同的广播域/子网发数据包)。

由此我们便引入一套新的地址来区分不同的广播域/子网,这套地址就叫做网络地址。

4.1.2 网络层的作用

  • 网络层也叫Internet层,负责将报文从源端发送到目的端
  • 网络层为网络中的设备提供逻辑地址
  • 网络层负责数据包的寻径和转发

4.2.3 协议

  • 路由器:三层设备,识别到IP地址
  • 协议:
    • IP:ipv4、ipv6
    • ICMP:ping、tracert
    • ARP:IP --> MAC(ARP是2层和3层之间的协议)
    • RARP:MAC --> IP
    • IGMP:组播加入协议

4.2 IP包

4.2.1 IP包概述

  • 版本:
    • ipv4:普及
    • ipv6:下一代
  • 报文长度
  • 总长度

4.2.2 数据包切片

  • 切片大小
  • MTU默认1500字节
    • 如果小包能通过,但是大包通过不了,就要考虑是否是MTU切片的问题了
  • Flag位:
    • 置0时能切片,置1时不能切片
  • ping命令:
    • ping  -l  1440  -f  114.114.114.114
    • -l 指明单个ICMP包大小,-f 设置不能切片

4.2.3 生存时间(TTL)

TTL(Time To Live):

TTL表示数据包在三层设备存活的时间。这个值表示IP包被路由器丢弃之前允许通过的最大网段数量。实际上TTL是IP数据包在网络中可以转发的最大跳数。

TTL是发送主机设置的,以防止数据包不断在IP互联网络上永不终止的循环,转发IP数据包时,要求路由器至少将TTL减小1。TTL的最大值是255,TTL的另一个推荐值是64。

实现过程:

TTL字段由IP数据包的发送者设置,在整个转发路径上,每经过一个路由器,路由器都把该TTL值减1,然后再将IP包转发出去。

如果在IP包到达目的IP之前,TTL减少为0,路由器会将丢弃收到的到的TTL=0的IP包,并向IP包的发送者发送ICMP time exceeded消息。

TTL为0的响应报文,H3C、HUAWEI的设备默认是关闭的,如果需要探测则要将其开启。

4.3 ICMP协议

ping和tracert会使用ICMP协议

ICMP的两个重要类型码(icmp-type)

  • 请求码:8
  • 应答码:0

路由跟踪:检测到的路径(三层)

  • tracert  -d  114.114.114.114
  • C:\Users\24698>tracert  -d 114.114.114.114
    
    通过最多 30 个跃点跟踪到 114.114.114.114 的路由
    
      1     3 ms     1 ms     1 ms  192.168.1.1
    2 20 ms 30 ms 5 ms 100.97.232.1
    3 9 ms 5 ms 7 ms 111.38.4.157
    4 10 ms 12 ms 11 ms 120.210.231.177
    5 10 ms 13 ms 12 ms 120.193.121.38
    6 11 ms 11 ms 13 ms 114.114.114.114 跟踪完成。

4.4 ARP协议

4.4.1 IP地址和MAC地址

  • IP地址:源IP地址 --> 目的IP地址
  • MAC和IP的对应:
    • IP --> MAC:192.168.1.1  ac-f9-70-f8-db-ca   动态

4.4.2 ARP广播

  • 访问内部网络中的主机:
    • ARP广播:通过IP地址获取MAC地址
      • 目的MAC地址:FF:FF:FF:FF:FF:FF
      • 交换机接收到广播包:泛洪 --> 发送给除了接收接口之外的所有接口
    • 发送目的地址为全F的广播包(呼叫IP为192.168.30.123的主机,把你的MAC地址告诉我)
    • 目标主机收到后进行响应(123主机收到后,将自己的MAC地址作为响应报文的源MAC地址,对方的MAC作为目标MAC地址,并将对方MAC记入本地ARP表)
    • 此时双方的ARP表中都有了彼此的MAC和IP对应的记录。以后的通信就可以直接查表发送数据了。
  • 访问外部网络(不是在同一个广播域)
    • 访问网关:192.168.30.254
      • 获取网关的MAC地址
      • 通过ARP广播:FF:FF:FF:FF:FF:FF
    • 然后网关对报文进行转发,将其转发到其他网段。

4.4.3 ARP绑定

  • 在Linux下:
    • 新建/etc/ip-mac文件,写入IP与MAC的绑定信息
      • 192.168.1.101  ac:f9:70:f8:db:aa
    • 然后手动执行绑定:
      • arp  -f  /etc/ip-mac
  • 在Windows下:
    • 命令行执行:arp  -s  192.168.1.101  ac:f9:70:f8:db:aa

4.4.4 ARP攻击(ARP欺骗、中间者攻击)

  • 攻击:网络执行法官、聚生网管、P2P终结者
  • 防御:使用ARP绑定即可杜绝这类攻击

4.4.5 ARP协议工作方式详细分析

假设:主机192.168.1.101/24 访问 192.168.1.102/24

  1. 首先通过IP地址和子网掩码来区分出自己所处的子网,然后进行判断:
    • 同一子网:目标主机MAC,目标主机IP
    • 不同子网:网关MAC,目标主机IP
  2. 分析101和102是否处于同一网络
    • 同一网络(在这个案例中两者是同一网络)
      • OSI模型各层详解
    • 不同网络:
      • 先通过ARP获取网关的MAC地址,然后将包发送给网关,再由网关来转发。
  3. 这个包会以广播的方式在发送端所处的局域网内传输,所有的主机接收后拆开包:
    • 若发现目标IP为自己就响应,返回自己的MAC,并在主机的ARP表中记录对方的MAC
    • 若发现目标IP不是自己,则直接将包丢弃

4.5 IP地址

4.5.1 IP基础

基本常识:

  • 网关地址:
    • 家用级别:192.168.1.1
    • 企业级别:192.168.1.254
  • 私网和公网:
    • 私网:可以任意使用,相对可以任意规划
      • A类:10.0.0.0 - 10.255.255.255
      • B类:172.16.0.0 - 172.31.255.255、172.16.0.0/12
      • C类:192.168.0.0 - 192.168.255.255
    • 公网:外网使用,运营商申请(自动分配、非固定或固定IP地址)
      • 114.114.114.144、8.8.8.8等
  • 进制:
    • BIN:二进制
    • OCT:八进制
    • HEX:十六进制
    • DEC:十进制

掩码:

  • 从左往右不能中断:
    • 255.0.0.0                  /8
    • 255.255.0.0              /16
    • 255.255.255.0          /24
    • 255.255.255.255      /32
  • 划分网络部分和主机部分:
    • 192.168.1.1/24
    • 192.168.1.1/16

网段:

  • 同网段:
    • 直接进行访问(必须要在同一个广播域下)
    • 不需要通过中间的网关
  • 不同网段:
    • 发送给网关:同一个广播域(同一个交换机)
    • 需要通过中间的网关
  • 网段:192.168.30.0/24
    • 网络地址:192.168.30.0
      • 网络部分:192.168.30
      • 主机部分为0
    • 掩码:255.255.255.0

专业名词:

  • 现网:现实网络、运行网络

4.5.2 IP地址类型(主类地址,有类地址)

主类地址图示:

OSI模型各层详解

单播地址:能够配置使用的,可以一对一进行传递

  • A类:
    • 第一组:0XXX  XXXX
    • 范围:1-126(去掉特殊地址0和127)
    • 默认情况:
      • 主类、有类
      • 掩码:/8
  • B类:
    • 第一组:10XX  XXXX
    • 范围:128-191
    • 默认情况:
      • 主类、有类
      • 掩码:/16
  • C类:
    • 第一组:110X  XXXX
    • 范围:192-223
    • 默认情况:
      • 主类、有类
      • 掩码:/24

组播地址:可以一对多

  • 协议:UDP

特殊地址:特殊用途的

  • 默认路由:0.0.0.0/0
  • 本地环回地址:127.xx.xx.xx(访问这个IP就是访问自己)
  • 网络地址:
    • 比如对于172.16.100.1/16来说,172.16.0.0就是网络地址
    • 网络部分不变,主机部分为0
    • 用途:和掩码配合,标记网段
  • 广播地址:
    • 全局广播地址:(针对的是所有网段)
      • 二层广播地址:FF:FF:FF:FF:FF:FF,交换机接收到二层广播会泛洪(转发给除了自己的所有接口)
      • 三层广播地址:255.255.255.255,三层设备
    • 本地广播地址:(针对特定的网段)
      • 网络部分不变,主机部分为全1的地址,如192.168.100.255

4.5.3 IP地址类型(无类地址)

有类和无类IP地址:

OSI模型各层详解

  • A类地址:1.0.131.0/24
    • A类的无类地址(1.0.131.0/24)
    • A类的主类:掩码 /8  

无类IP地址:

OSI模型各层详解

  • 同网段:
    • 网络地址和掩码一样:一定是在同网段
    • 网络地址和掩码不一样:不一定不在同网段
  • 路由器:具有隔离广播的功能(二层和三层广播)
  • 掩码变长,可用的IP地址就会变少,网段的数量就会变多

特殊网段:

  • 互连网段:/30
    • 可用地址:2^(32-30)-2 = 2
    • 互连地址,给网络设备使用的,如两个路由器相连
  • 逻辑网段:/32
    • loopback口
  • 业务网段:
    • 打印机、服务器、手机

4.5.4 子网的划分

子网划分的好处:

  • 将一个大的广播域划分成几个小的广播域,减少网关设备所承载的负载量
  • 有效的避免IP地址的浪费,是一个大的地址开年更加弹性和更加灵活的进行分配

若不划分子网:

  • 会出现大量的局域网地址,同时向一个网关发送请求,会引起网关设备的负载过高
  • 会引起局域网内的大量广播数据传送,形成广播风暴
  • 会非常浪费地址空间,有可能只有两台主机或一台主机,就要分配一个C类地址

子网划分图示:

OSI模型各层详解

 子网数的计算:

  • 某网络中可用的主机地址:
    • 2的N次方-2 (N表示IP地址中主机部分的二进制位数)
    • 如202.96.23.0这个C类地址中有2的8次方个可用主机地址
  • 某网络中的子网数:
    • 2的N次方(N表示子网部分的二进制位数),如上面的子网就有2的3次方个

5. 传输层

5.1 传输层概述

5.1.1 TCP和UDP协议

TCP和UDP图示:

OSI模型各层详解

TCP和UDP的应用场景:

  • TCP:可靠、面向连接,有虚拟管道的概念(构建在网络层之上)
    • 公屏讨论区:TCP
    • 收发邮件:TCP
      • 发送邮件:SMTP(简单邮件传输协议),端口:25/tcp
      • 接收邮件:POP3(邮局协议版本3),端口110/tcp
  • UDP:不可靠,但具有及时性
    • 直播语音+视频:UDP

5.1.2 查看应用端口号:(Windows中)

  • 查看IP地址对应的链接
    • netstat  -nat | find  '14.125.177.33'
  • 查看PID对应的端口和地址
    • netstat  -nat | find  '1778'

5.2 TCP报文首部详解

5.2.1 TCP首部图示

OSI模型各层详解

5.2.2 TCP报文首部各字段的解释

  • Source Port Number:源端口
  • Destination Port Number:目标端口
  • Sequence Number:请求时附带的随机序列号
  • Acknowledgement Number:应答时附带的序列号
  • Header Length:报文首部的长度
  • Reserved:报文的标识位,占据6bit,可表示6个flag
  • Windows Size:滑动窗口的大小
  • TCP Checksum:TCP的校验和,提供额外的可靠性
  • Urgent Pointer:标记进制数据在字段中的位置
  • Options:可选部分(这部分的最大长度为40Bytes)
  • Data:数据部分

5.3 TCP的连接和断开(三次握手,四次挥手)

5.4 TCP FSM(TCP的有限状态机)