[toc]

OSI七层网络模型的概念

简介

  • 网络建立的目的
    1. 互相通信,
    2. 统一通信标准,互联网协议
  • 七层网络模型分别为:
    1. 物理层
    2. 数据链路层
    3. 网络层
    4. 传输层
    5. 会话层
    6. 表示层
    7. 应用层
  • 区分OSI
    • OSI:七层网络模型
    • IOS:苹果的操作系统
    • ISO:镜像文件

image-20221208201833660

功能

OSI七层模型

  • 物理层
    • 网络硬件设备
  • 数据链路层
    • 以太网、网卡,MAC地址 电信号组成数据帧 帧:报头18和数据46 通过广播传输数据
  • 网络层
    • 解决广播风暴故障 出现路由协议(IP、Novell公司的IPX以及AppleTalk协议) IP地址+子网掩码 按位与运算,来计算IP地址是否在同一网段 通过IP地址传输数据
  • 传输层
    • 端口范围:0-65535,系统占用:0-1023 TCP协议和UDP协议 TCP协议: 三次握手 四次挥手 11种状态 通过端口到端口传输数据
  • 会话层
    • 建立会话 保持会话 断开会话
  • 表示层
    • 转码/解码 解压/压缩 加密/解密
  • 应用层
    • 为操作系统或网络应用程序提供访问网络服务的接口,规定应用程序的数据格式

物理层

物理层的描述

  • 物理层的描述:
    • 主要定义物理设备标准,如网线的接口类型,光纤的接口类型,各种传输介质的传输速率等。
    • 建立、维护、断开物理连接。
    • 物理层就是网络的硬件设备,如:中继器、集线器、HUB、双绞线等
  • 单位:
    • 比特(Bit)
  • 物理层的作用:
    • 主要作用是传输比特流(就是有1、0转化为电力强弱来进行传输,到达目的地后再转化为1、0)。

image-20221208202222494

image-20221208202241259

image-20221208202322595

数据链路层

数据链路层的描述

  • 功能
    • 建立逻辑连接、数据分帧、处理流控制、mac物理地址寻址、差错校验、重发等功能
  • 单位:
    • 帧(Frame)
  • 常见设备
    • 网桥、网卡、二层交换机

image-20221208202400126

拓展:以太网协议

  • 以太网协议
    • 早期的时候各个公司有自己的分组方式,后来形成了统一的标准,就是以太网协议
    • 要有一块独一无二的MAC地址
    • 一组电信号构成一个数据帧
    • 每一组数据帧分为报头和数据两个部分 head和data
head data
发送者/源地址6个字节
接收者/目标地址 6个字节
数据类型 6个字节
包括(最短46个字节,最长1500字节)

数据包的具体内容 head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送

image-20221208202907099

image-20221208202926148

网络层

网络层的描述

  • 功能:
    • 为数据在节点之间传输创建逻辑链路,并分组转发数据
    • 将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。
    • 网络层用于本地LAN网段之上的计算机系统建立通信,它有自已的路由地址结构与第二层机器地址是分开的、独立的,这种协议称为路由或可路由协议。
  • 路由协议
    • IP、Novell公司的IPX以及AppleTalk协议。
  • 常见设备
    • 路由器、多层交换机、防火墙

IP协议

  • IP协议:
    • 规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,广泛采用ipv4版本,它规定网络地址由32位2进制表示
  • IP协议的作用
    • IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些IP地址在同一个子网段
  • 如何判断是否在统一网段
    • 如何判断是否在统一网段,取决于IP和子网掩码
  • 范围
    • 0.0.0.0-255.255.255.255
  • 格式
    • 一个ip地址通常写成四段十进制数,例:172.16.10.1

IP地址分成两部分(点分十进制)

  • ip地址分成两部分(点分十进制)
    • 网络部分:标识子网
    • 主机部分:标识主机
  • 单纯的ip地址段只是标识了ip地址的种类,从网络部分或主机部分都无法辨识一个ip所处的子网
  • 例:172.16.10.1与172.16.10.2并不能确定二者处于同一子网,需要结合子网掩码进行判断

子网掩码

  • 子网掩码
    • 所谓”子网掩码”,就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。
  • 判断两个IP是否在同一子网
  • 方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。
  • 示例:
    • IP地址172.16.10.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。

按位运算AND

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# AND运算
AND运算又叫做"按位与"运算,符号:"&",在编程术语中表示一种运算方法,不可逆

# 按位与运算
1&1=1;
1&0=0;
0&1=0;
0&0=0;

## 例:
比如,已知IP地址172.16.10.1和172.16.10.2的子网掩码都是255.255.255.0,请问它们是否在同一个子网络?
两者与子网掩码分别进行AND运算:
172.16.10.1: 10101100.00010000.00001010.00000001
255.255.255.255.0: 11111111.11111111.11111111.00000000

IP数据包

  • IP数据包
    • IP数据包也分为head和data部分,无须为ip包定义单独的栏位,直接放入以太网包的data部分
  • 数据包长度
    • head:长度为20到60字节
    • data:最长为65,515字节。
  • 而以太网数据包的”数据”部分,最长只有1500字节。因此,如果IP数据包超过了1500字节,它就需要分割成几个以太
    网数据包,分开发送了。

传输层

传输层描述

  • 功能
    • 定义传输数据的协议端口号、端口间建立连接、浏览控制(发送速率控制)、数据包分割及排序。
    • 数据包离开网卡即进入网络传输层,定义了一些传输数据的协议和端口号(TCP、UDP协议),从下层接收的数据包进行分段和传输,到达目的地后再进行重组。这一层数据叫做段
  • 单位
    • 数据段(Segment)
  • 常见
    • TCP(打电话)、UDP(写信)、SPX、进程、端口(socket)
  • 补充:
    • 端口范围0-65535,0-1023为系统占用端口

常用端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 常用端口	
ftp 21
dns 53
ssh 22
telnet 23
mysql 3306
http 80
https 443
nginx 80
rsync 873
rdp 3389

windows
remote desktop protocol

TCP协议

三次握手

1
2
3
4
5
6
7
8
9
10
# TCP协议的11种状态中的四种(三次握手)
LISTEN # 服务端等待客户端连接时的,监听状态
SYN_SENT # 客户端发送SYN连接后,等待收到确认的状态
SYN_RCVD # 服务端收到SYN请求后,还未回复确认的状态
ESTABLISHED # 客户端和服务端建立连接后的状态

# 三次握手流程
第一次:客户端发送初始序号x和syn=1请求标志
第二次:服务器发送请求标志syn,发送确认标志ACK,发送自己的序号seq=y,发送客户端的确认序号ack=x+1
第三次:客户端发送ACK确认号,发送自己的序号seq=x+1,发送对方的确认号ack=y+1

image-20221209154608497

TCP四次挥手

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# TCP协议的11种状态中的七种(四次挥手)
FIN_WAIT_1 # 客户单发送FIN断开连接是的状态
CLOSE_WAIT # 服务端收到了客户端发来的断开连接是返回ACK的状态
FIN_WAIT_2 # 客户端接收服务端返回的ACK的状态
LAST_ACK # 服务端发送FIN给客户端的状态
TIME_WAIT # 客户单返回ACK给服务端,断开连接后的状态
CLOSED # 被动关闭端在接收ACK包后,进入CLOSED状态关闭TCP请求
CLOSING # 客户端和服务端同时发起断开连接

# 四次挥手的流程
第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1, Server进入CLOSED状态,完成四次挥手。

image-20221209161020064

会话层

  • 功能
    • 负责在网络的两节点之间建立、维持和终止通信。
    • 建立、管理、终止会话,对应主机进程,指本地主机与远程主机正在进行的会话。
  • 常见
    • 服务器验证用户登录、断点续传

表示层

  • 功能
    • 数据格式转换服务,如:
      1. 图片编码和解码
      2. 压缩与解压缩
      3. 加密与解密
  • 常见
    • URL加密、口令加密、图片编解码

应用层

  • 功能
    • 为操作系统或网络应用程序提供访问网络服务的接口,规定应用程序的数据格式。
    • 是最靠近应用程序的OSI层,由用户使用相应的接口实现自己的服务。
  • 常见
    • Telnet、HTTP、FTP、SNMP、DNS等