OSI七层模型
计算机网络入门
网络核心内容
OSI7层网络模型相关概念(重点掌握)
TCP三次握手与四次挥手过程(重点掌握)
TCP的11种状态集转化(重点掌握)
DNS相关知识概念与原理,自己拥有域名配置DNS解析.
linux网关配置(添加****网关** **网段 以及****网络主机路由)
修改网卡配置文件
面试题:用户访问www.baidu.com 整个过程. (重点掌握)
网络状态信息查询命令
抓包命令(wireshark,tpcdump)(BurpSuite)、工具。(重点掌握)
ip地址分类.子网掩码(简介)
1.网络简介
- 网络:
- 简单说通过网络介质把各种设备连接起来形成的结构.
- 网络介质:
- 网线: cat5,cat5e 六类网线,七类网线(速度),八类网线
- 光纤:
- wifi: 无线路由器,ap节点.
- 5G
FC接口
全名叫Ferrule Connector,最早应用于存储局域网络。外壳材质为金属,接口处有
螺纹,和光模块连接时可以固定的很好。
ST接口
材质为金属,接口处为卡扣式,常用于光纤配线架
LC接口
材质为塑料,用于连接SFP光模块,接口可以卡在光模块上
- 核心:网速/传输速度:
- 网络带宽的速度: 1000Mb/s == 1000/8 = 125MB/s
- b小写,bit位: 1字节=8bit
- 网络中单位是位,我们要把它转换为字节.一般:b小写就是位 ,B大写字节.
2 网络设备与架构
- 主要掌握:路由器与交换机区别.
- 主要掌握:常用网站(公司)网络架构.
2.1 交换机
switch (开关,交换机)
交换机特点:
- 在一个交换机的端口上所连接的所有终端设备,均在一个网段(局域网 LAN)上 (称为一个广播域)
- 产生广播消耗设备CPU资源
- 终端用户的设备接入,连接交换机. 一般情况下交换机24口,48口,96口.
- 一个网段会有一个统一的网络标识,网段192.168.15.xxx
- 交换机有一些基本的安全功能, 这种交换机叫网管功能的交换机(web页面).
- 后面讲解完成7层模型再来看.
- 一般来说交换机工作在OSI模型的第2层,也叫二层交换.(等我们说了OSI7层模型就理解.带有网管和dhcp功能的交换机叫3层)
- 了解:广播域的隔离(创建VLAN 虚拟局域网)
- 了解:交换机可以隔离冲突域,每一个端口就是一个冲突域
2.2 路由器
连接不同的网络.
核心功能:路由功能(指路),ip(DCHP分配IP).
路由器特点:
- 网络的出入口(网关)
- 路由协议的转发(路由选路,指路)
- 路由类似于现实生活中从A地去往B地可能需要先步行,在坐车,在做飞机才能到达B地,这样的整个过程在网络中对应数据的传递过程就称为路由。因此一个数据信息跨越不同的网段传递到目的地址,就可以把传递数据的过程称为路由,也可以看做每条传递数据的路径。
- 数据转发,会维护一个路由表(相当于一个地图)
- 路由器会作为网关(GATEWAY,数据的出入口,类似于大楼的大门),一般会在网络出口的位置摆放一台路由器
- 路由器用于连接广域网(公网)
2.3 数据传输与路由器交换机
2.4 通用网站网络架构
2.5 路由寻址
查看代码
# window路由表
C:\Users\yingying>route print
===========================================================================
IPv4 路由表
===========================================================================
活动路由:
网络目标 网络掩码 网关 接口 跃点数
0.0.0.0 0.0.0.0 192.168.15.1 192.168.15.99 35
10.0.0.0 255.255.255.0 在链路上 10.0.0.1 291
10.0.0.1 255.255.255.255 在链路上 10.0.0.1 291
10.0.0.255 255.255.255.255 在链路上 10.0.0.1 291
127.0.0.0 255.0.0.0 在链路上 127.0.0.1 331
127.0.0.1 255.255.255.255 在链路上 127.0.0.1 331
127.255.255.255 255.255.255.255 在链路上 127.0.0.1 331
192.168.15.0 255.255.255.0 在链路上 192.168.15.99 291
192.168.15.99 255.255.255.255 在链路上 192.168.15.99 291
192.168.15.255 255.255.255.255 在链路上 192.168.15.99 291
192.168.80.0 255.255.255.0 在链路上 192.168.80.1 291
192.168.80.1 255.255.255.255 在链路上 192.168.80.1 291
192.168.80.255 255.255.255.255 在链路上 192.168.80.1 291
192.168.137.0 255.255.255.0 在链路上 192.168.137.1 311
192.168.137.1 255.255.255.255 在链路上 192.168.137.1 311
192.168.137.255 255.255.255.255 在链路上 192.168.137.1 311
224.0.0.0 240.0.0.0 在链路上 127.0.0.1 331
224.0.0.0 240.0.0.0 在链路上 192.168.15.99 291
224.0.0.0 240.0.0.0 在链路上 192.168.137.1 311
224.0.0.0 240.0.0.0 在链路上 192.168.80.1 291
224.0.0.0 240.0.0.0 在链路上 10.0.0.1 291
255.255.255.255 255.255.255.255 在链路上 127.0.0.1 331
255.255.255.255 255.255.255.255 在链路上 192.168.15.99 291
255.255.255.255 255.255.255.255 在链路上 192.168.137.1 311
255.255.255.255 255.255.255.255 在链路上 192.168.80.1 291
255.255.255.255 255.255.255.255 在链路上 10.0.0.1 291
===========================================================================
永久路由:
无
IPv6 路由表
===========================================================================
活动路由:
接口跃点数网络目标 网关
1 331 ::1/128 在链路上
21 291 fe80::/64 在链路上
4 311 fe80::/64 在链路上
27 291 fe80::/64 在链路上
26 291 fe80::/64 在链路上
26 291 fe80::2bd3:b335:2907:42fd/128
在链路上
21 291 fe80::4170:1d77:c86a:2ca1/128
在链路上
4 311 fe80::4e6b:1779:2b6:f266/128
在链路上
27 291 fe80::8b54:717b:fc3b:e7a3/128
在链路上
1 331 ff00::/8 在链路上
21 291 ff00::/8 在链路上
4 311 ff00::/8 在链路上
27 291 ff00::/8 在链路上
26 291 ff00::/8 在链路上
===========================================================================
永久路由:
无
# 路由寻址 (请求超时的路由为不允许访问)
C:\Users\xxxx>tracert -d qq.com
通过最多 30 个跃点跟踪
到 qq.com [157.255.219.143] 的路由:
1 1 ms 1 ms 1 ms 192.168.15.1
2 2 ms 1 ms 2 ms 192.168.201.1
3 4 ms 4 ms 4 ms 221.218.208.1
4 * * * 请求超时。
5 * * * 请求超时。
6 * * 38 ms 219.158.6.110
7 * * * 请求超时。
8 * * * 请求超时。
9 * * * 请求超时。
10 * * * 请求超时。
11 * * * 请求超时。
12 * * * 请求超时。
13 * * * 请求超时。
14 42 ms 42 ms 42 ms 157.255.219.143
跟踪完成。
# linux 路由表
# 查询路由表
[root@Kylin-V10-sp3 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.2 0.0.0.0 UG 100 0 0 ens33
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
[root@Kylin-V10-sp3 ~]#
# 路由寻址
[root@Kylin-V10-sp3 ~]# traceroute qq.com
traceroute to qq.com (157.255.219.143), 30 hops max, 60 byte packets
1 _gateway (10.0.0.2) 1.048 ms 0.942 ms 0.909 ms
2 * * *
3 * * *
4 * * *
5 * * *
[root@Kylin-V10-sp3 ~]# traceroute -nI qq.com
traceroute to qq.com (157.255.219.143), 30 hops max, 60 byte packets
1 10.0.0.2 0.616 ms 0.599 ms 0.581 ms
2 192.168.15.1 1.805 ms 1.756 ms 1.704 ms
3 192.168.201.1 1.662 ms 1.637 ms 2.634 ms
4 221.218.208.1 4.596 ms 4.593 ms 4.571 ms
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 157.255.219.143 43.728 ms 43.672 ms 42.074 ms
[root@Kylin-V10-sp3 ~]#
2.6 小结:
- 核心:交换机与路由器特点
- 数据在局域网传输流程(简易)
- 数据访问外部访问流程(简易)
- 了解:一般网站网络部分的架构图
3. 局域网上网原理与虚拟机上网原理
3.1 局域网上网原理
3.2 虚拟机上网原理
https://www.processon.com/view/link/646ecd9c115a1e11e0743e2a
4.OSI 7层模型 ⭐⭐⭐⭐⭐
OSI (Open System Interconnect),全称为开放系统互连参考模型.
4.1 概述
- 用于规定数据在发送,传输,接收处理流程.
- 类似于:收发快递
- 打包(快递) OSI7层模型-封包
- 邮寄 网络介质传输数据包
- 拆包(打开快递) OSI7层模型-拆包
目标:
- 核心:熟练掌握7层模型包含了什么.
- 核心:逐渐掌握7层模型每一层特点.
- 逐渐掌握7层模型与数据发送(封包,打包),数据接收过程(解包,拆包)
4.2 OSI7层模型
open system interconnect开放系统互连参考模型,是由ISO(国际标准化组织)定义的。
层 |
OSI7 |
每一层概述 |
7 |
应用层 |
大部分软件运行在这一层. 协议: http,https,DNS(域名->ip) |
6 |
表示层 |
负责数据加密,解密,压缩(代码)....(了解) |
5 |
会话层 |
主要负责会话管理,维护....(了解) |
4 |
传输层 |
主要负责数据传输方式.(可靠传输或不可靠) |
3 |
网络层 |
主要负责路由与寻址. |
2 |
数据链路层 |
将分组数据封装成帧.ip -->mac地址(网卡物理地址),错误检测 |
1 |
物理层 |
物理链路,网卡 :本质: 把数据转换为2进制形式,通过线缆传输. |
记忆口诀:物数网传会表应. 物联网叔会使用.
4.3 OSI7层模型详解
4.3.1 应用层 ⭐⭐⭐⭐⭐
- 大部分软件,服务运行在应用层中.
- 详细含义: 暴露很多接口,提供给其他服务软件使用.主要就是提供应用程序可以接入网络的接口,并根据程序的不同对应不同的接口协议.
- 接口: 别人定义好的规范.usb接口一样,这里的接口指的是软件的接口,用于软件之间,服务之间相互使用.
- API (应用程序编程接口Application Programming Interface) 软件开发后提供给用户使用的接口(http/https)
- 核心:应用层中常见的服务/协议:
协议 |
含义 |
端口 |
http |
超文本传输协议: 网站基础协议之一 |
80 |
https |
多了个secure: 对数据加密了 |
443 |
smtp |
简单邮件传输协议 发邮件. smtp未加密 smtps加密 |
25,465 |
dns |
域名解析服务 域名-->ip |
53 |
其他 |
ntp,rtmp,hls,ftp,websocket,..... |
对于应用层掌握常用协议即可.注意服务/协议对应的端口,端口的概念不是7层的,是传输层概念4层.
4.3.2 表示层-了解
TLS 传输层安全协议.
4.3.3 会话层-了解
会话---连接/登录. LDAP,RPC
4.3.4 传输层-重点⭐⭐⭐⭐⭐
- 传输层用于管理或控制连接(端到端连接).
- 传输层控制了,连接或数据传输是否可靠.指定端口号.
- 如何指定数据传输是否可靠?根据代码书写的时候指定
- 可靠的连接. tcp协议(建立连接经历3次握手,断开连接经历4次断开)
- 不可靠的连接. udp协议(直接建立,直接断开)
- 通过端口与对方连接.(访问百度连接百度80或443端口)
- 一句话:可靠或不可靠的连接+端口号.
- 小结:
- 核心:传输层用于控制数据传输是否可靠,这里还指定了端口. (tcp,udp)
- 可靠:tcp,不可靠是udp
4.3.5 网络层-重点 ⭐⭐⭐⭐⭐
- 负责将数据从源地址传输到目的地址(IP) 收件人,发件人的地址.
- 主要负责: 主要作用就是路由(指路)和寻址(根据ip地址找人)
- 提供ip地址(DHCP).
- 进行路由(问路,指路)(路由表.
- 设备: 3层路由器,3层交换.
- 小结:
- 网络层:用于指定源ip和目标ip.
- 网络层核心概念:ip地址.
- 协议:IPv4(32位)/IPv6(128位)/ICMP(ping协议 互联网控制信息协议)
4.3.6 数据链路层
- 数据链路层:把上层数据进行转换为帧(对数据进行处理与加工).
- 这一层加工数据的时候,增加了MAC地址. 网卡物理地址,网卡生产的时候设置.
- 数据可以在局域网传输(精确传输). 局域网传输的时候使用的是mac地址.
- mac地址48位(bit)2进制,展示16进制,12个.
- mac地址: 网卡物理地址,世界上独一无二的地址.
- 设备: 2层交换
4.3.7 物理层
通过设备的网卡把上面的数据转换为网络介质中可以传输的信号.
把数据转换为0101010内容,通过传输介质传递给对方
4.3.8 osi7层模型小结
OSI7 层模型 |
含义 |
协议与概念 |
应用层 |
应用之间互相调度使用,提供接口 |
http(80),https(443),smtp(25),dns(53) |
表示层 |
数据加密,解密;编码,解码;压缩,解压缩 |
|
会话层 |
负责建立,管理维护会话信息. |
|
传输层 |
负责连接建立/断开,传输是否可靠 |
tcp/udp, 核心概念:端口 |
网络层 |
负责路由(指路)与寻址(根据ip地址找人)
|
IP 核心概念: ip地址 设备: 三层路由器三层交换 |
数据链路层 |
负责数据到达局域网后传输 |
核心概念: mac地址 设备:二层交换 |
物理层 |
负责把数据转换为介质可以识别信号(数据),通过介质传输 |
网卡,传输介质 |
4.3.9 抓包查看OSI7层模型
抓包ping和http(使用wireshark抓包)
#抓取ping的数据包
ping baidu.com 过滤条件是icmp协议
#抓取http协议数据包(tcp)
curl www.baidu.com 过滤条件是http协议
#过滤ntpdate结果 (udp)
ntpdate ntp.aliyun.com 过滤条件是ntp
5 数据传输与OSI7层模型
给对方发送:"天凉了,多喝热水."发生了什么
5.1 封包过程
- 把"天凉了,多喝热水" 从应用层开始一层层增加内容(封包).
- 最后通过网络介质传输出去.
5.2 网络设备处理包的过程
5.3 对方解包的过程
https://www.processon.com/view/link/666112b0f6d07f43a1fb14e8
5.4 抓包查看
过滤http协议的数据包,过滤出icmp(ping)数据包即可.
6 TCP/IP 协议(OSI7层精简模型)-了解
7. TCP 3次握手-重点 ⭐⭐⭐⭐⭐
https://www.processon.com/view/link/6243d5151efad40756d2add7
我们与对应的节点建立连接.
- qq服务端端口,网站80/443建立连接,连接Linux系统的22端口.
- tcp之所以称为稳定,可靠的.因为建立连接的时候要经过3次握手.
- tcp三次握手目标: 与端口建立连接.
- udp没有3次握手建立连接的过程,直接连接.
7.1 三次握手-概述
7.2 三次握手-详细内容
文字描述3次握手流程(TCP与端口建立)
- 客户端发出建立连接请求: SYN(标记)建立连接请求. 发出seq的随机数(seq=100)
- 服务端收到客户端请求: ACK(确认标记),SYN(与客户端建立连接), 发出ack=seq+1(101), seq=随机(666)
- 客户端收到服务端请求与确认: 发出ACK(确认标记)确认建立连接, 发出ack=seq+1(667) ,seq=ack(101)
- 到此,连接建立,开始传输数据.
7.3 抓包查看
访问http协议 80
wireshark过滤 80端口的数据包 tcp.port == 80
[root@Kylin-V10-sp3 ~]# curl http://baidu.com
<html>
<meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
</html>
[root@Kylin-V10-sp3 ~]#
连接telnet连接 22端口
# wireshark过滤 10.0.0.41 ip的数据包
# ip.addr == 10.0.0.41
[root@Kylin-V10-sp3 ~]# telnet 10.0.0.41 22
Trying 10.0.0.41...
Connected to 10.0.0.41.
Escape character is '^]'.
SSH-2.0-OpenSSH_8.2
^]
telnet> Connection closed.
[root@Kylin-V10-sp3 ~]#
8 TCP 4次挥手-重点⭐⭐⭐⭐⭐
- 4次挥手目的是断开连接.
- 客户端主动断开,服务端断开.
8.1 四次挥手-概述
8.2 四次挥手-详细内容
文字描述4次挥手流程:
- 客户端: 发出断开连接请求: (FIN)断开连接请求,seq=1000, ack=668
- 服务端: 收到客户端请求,确认: (ACK) ,确认断开, seq=668, ack=seq+1(1001)
- 服务端: 向客户端发出断开连接请求,(FIN)断开连接请求, seq=668 , ack=seq+1(1001)
- 客户端: 确认收到请求,断开连接, (ACK)确认收到请求, seq=1001, ack=seq+1(669)
- 连接断开
9 抓包分析-3次握手与4次挥手
9.1 准备
工具:wireshark(windows安装)
知识点
常见TCP中的标记位 |
|
SYN |
sync 同步请求,与服务器端口建立连接. |
ACK |
ack 确认.(回复:收到.) |
FIN |
finnish/final 结束,断开连接 |
PSH |
表示传输数据. |
seq, ack
seq与ack |
|
seq |
sequence 序列号,随机. |
ack |
ack 确认号 |
9.2 三次握手 -(能够抓取三次握手数据包即可)
curl http://www.baidu.com 并抓包
wireshark抓包规则:tcp.port == 80