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七层图示:
TCP/IP五层图示:(TCP/IP四层是将数据链路层和物理层合并成了网络接口层)
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水晶头)
- 线序:线序从左到右
- 直通线和交叉线:
- 直通线:568B-568B、568A-568A
- 交叉线:568B-568A
- 通断规则:
- 4芯通:百兆(线序中的第1236通)
- 8芯全通:千兆(在应急情况下,可以将一根网线分成两个头,第1236和第4578)
- 设备连线标准:
POE设备:通过双绞线进行供电(类似一台2层或3层的交换机)
- 作用:供电 + 数据传输
- 支持:POE交换机
- 摄像头支持POE供电
- 无线路由器支持POE供电
- 图示:
2.1.2 光纤
特点:光传输(玻璃纤维,塑料)
- 不受电磁信号干扰
- 传输速率快:
- 1000M:G
- 10000M:TEN-G
- 100000M:E
- 传输距离大:
- 多模:2KM
- 类比于手电筒
- 单模:42KM
- 类比于激光
- 多模:2KM
- 光缆本身不值钱,但是接口比较贵(接口就是一个光模块)
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)
- 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子层协商的,正常情况下都是全双工,可以手动调
- 对数据进行识别并纠错、重传(误码率)、协商速率等
- 图示:
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对应的记录。以后的通信就可以直接查表发送数据了。
- ARP广播:通过IP地址获取MAC地址
- 访问外部网络(不是在同一个广播域)
- 访问网关:192.168.30.254
- 获取网关的MAC地址
- 通过ARP广播:FF:FF:FF:FF:FF:FF
- 然后网关对报文进行转发,将其转发到其他网段。
- 访问网关:192.168.30.254
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
- 新建/etc/ip-mac文件,写入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
- 首先通过IP地址和子网掩码来区分出自己所处的子网,然后进行判断:
- 同一子网:目标主机MAC,目标主机IP
- 不同子网:网关MAC,目标主机IP
- 分析101和102是否处于同一网络
- 同一网络(在这个案例中两者是同一网络)
- 不同网络:
- 先通过ARP获取网关的MAC地址,然后将包发送给网关,再由网关来转发。
- 同一网络(在这个案例中两者是同一网络)
- 这个包会以广播的方式在发送端所处的局域网内传输,所有的主机接收后拆开包:
- 若发现目标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
- 网络地址:192.168.30.0
专业名词:
- 现网:现实网络、运行网络
4.5.2 IP地址类型(主类地址,有类地址)
主类地址图示:
单播地址:能够配置使用的,可以一对一进行传递
- 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地址:
- A类地址:1.0.131.0/24
- A类的无类地址(1.0.131.0/24)
- A类的主类:掩码 /8
无类IP地址:
- 同网段:
- 网络地址和掩码一样:一定是在同网段
- 网络地址和掩码不一样:不一定不在同网段
- 路由器:具有隔离广播的功能(二层和三层广播)
- 掩码变长,可用的IP地址就会变少,网段的数量就会变多
特殊网段:
- 互连网段:/30
- 可用地址:2^(32-30)-2 = 2
- 互连地址,给网络设备使用的,如两个路由器相连
- 逻辑网段:/32
- loopback口
- 业务网段:
- 打印机、服务器、手机
4.5.4 子网的划分
子网划分的好处:
- 将一个大的广播域划分成几个小的广播域,减少网关设备所承载的负载量
- 有效的避免IP地址的浪费,是一个大的地址开年更加弹性和更加灵活的进行分配
若不划分子网:
- 会出现大量的局域网地址,同时向一个网关发送请求,会引起网关设备的负载过高
- 会引起局域网内的大量广播数据传送,形成广播风暴
- 会非常浪费地址空间,有可能只有两台主机或一台主机,就要分配一个C类地址
子网划分图示:
子网数的计算:
- 某网络中可用的主机地址:
- 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图示:
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首部图示
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的有限状态机)
OSI模型各层详解的更多相关文章
- Kaggle网站流量预测任务第一名解决方案:从模型到代码详解时序预测
Kaggle网站流量预测任务第一名解决方案:从模型到代码详解时序预测 2017年12月13日 17:39:11 机器之心V 阅读数:5931 近日,Artur Suilin 等人发布了 Kaggl ...
- CSS3盒模型display:box详解
display:box;box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构.css实现的布局方式.经典的一个布局应用就是布局的垂直等高.水平均分.按比例划分. 目前box ...
- 基于模型的特征选择详解 (Embedded & Wrapper)
目录 基于模型的特征选择详解 (Embedded & Wrapper) 1. 线性模型和正则化(Embedded方式) 2. 基于树模型的特征选择(Embedded方式) 3. 顶层特征选择算 ...
- 网络编程之TCP/IP各层详解
网络编程之TCP/IP各层详解 我们将应用层,表示层,会话层并作应用层,从TCP/IP五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议,就理解了整个物联网通信的原理. 首先,用户感知到的只 ...
- Java内存模型相关原则详解
在<Java内存模型(JMM)详解>一文中我们已经讲到了Java内存模型的基本结构以及相关操作和规则.而Java内存模型又是围绕着在并发过程中如何处理原子性.可见性以及有序性这三个特征来构 ...
- OSI模型——传输层
OSI模型——传输层 运输层 运输层概述 运输层提供应用层端到端通信服务,通俗的讲,两个主机通讯,也就是应用层上的进程之间的通信,也就是转换为进程和进程之间的通信了,我们之前学到网络层,IP协议能将分 ...
- OSI七层详解
OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...
- 网络基础知识-TCP/IP协议各层详解
TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...
- OSI模型七层模型结构
OSI模型,即开放式通信系统互联参考模型(Open System Interconnection,OSI/RM,Open Systems Interconnection Reference Model ...
随机推荐
- MyBatis In的使用
http://blog.csdn.net/unei66/article/details/17792503 MyBatis In的使用 标签: mybatisin 2014-01-03 16:23 74 ...
- 笔记二(JavaWeb)
上一个笔记写的好累,这次换Markdown试试 缺省适配器设计模式:父类不实现该方法,让子类去实现(抽象方法) 模板方法设计模式:定义一个操作中的方法骨架,而将一些步骤延迟到子类中.模板方法使得子类可 ...
- Robot Framework(3)- 基本概念
如果你还想从头学起Robot Framework,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1770899.html 前言 在 RF ...
- ASP.NET Core on K8S学习之旅(14)Ingress灰度发布
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 之前一篇介绍了Ingress的基本概念和Nginx Ingress的基本配置和 ...
- 【JavaScript数据结构系列】04-优先队列PriorityQueue
[JavaScript数据结构系列]04-优先队列PriorityQueue 码路工人 CoderMonkey 转载请注明作者与出处 ## 1. 认识优先级队列 经典的案例场景: 登机时经济舱的普通队 ...
- vue使用IntersectionObserver实现无限下拉信息流
基于 IntersectionObserver 异步监听方法,实现无线信息流下拉加载, https://developer.mozilla.org/zh-CN/docs/Web/API/Interse ...
- MvvmLight + Microsoft.Extensions.DependencyInjection + WpfApp(.NetCore3.1)
git clone MvvmLight失败,破网络, 就没有直接修改源码的方式来使用了 Nuget安装MvvmLightLibsStd10 使用GalaSoft.MvvmLight.Command命名 ...
- JAVA自学笔记(1)
JAVA入门级知识储备(一) 1.Scanner的欢乐接收 import java.util.Scanner; public class first { public static void main ...
- 使用Burpsuite对手机抓包的配置
之前使用dSploit的时候就一直在想怎么对手机进行抓包分析,前两天使用了Burpsuite神器,发现通过简单的配置就可以抓手机app的数据包了,进而分析手机app的流量. 配置环境: 1.win7下 ...
- 二、【Python】机器学习-监督学习
关键词 分类(Classification) 回归(Regression) 泛化(Generalize) 过拟合(Overfitting) 欠拟合(Underfitting) 2.1 分类与回归 监督 ...