OSI七层模型
目录
警告
本文最后更新于 2022-07-05,文中内容可能已过时。
OSI 模型是从上往下的,越底层越接近硬件,越往上越接近软件,这七层模型分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
物理层
: 在媒体上传输比特,提供机械的和电气的规约数据链路层
: 将分组数据封装成帧,提供节点到节点方式的传输网络层
: 将分组从源端传送到目的端,提供网络互联传输层
: 提供可靠的端到端的报文传输和差错控制会话层
: 建立、管理和终止会话表示层
: 对数据进行转换、加密和压缩应用层
: 程序及接口
OSI七层模型 | TCP/IP4层模型 | 功能 | TCP/IP协议簇 |
---|---|---|---|
应用层 | 应用层 | 文件传输、邮件、文件共享、虚拟终端、web、域名服务 | TFTP、HTTP、SMTP、DNS、TELNET |
表示层 | 应用层 | 数据格式化、代码转化、数据加密 | 没有协议 |
会话层 | 应用层 | 解除或建立与别的节点的会话关系 | 没有协议 |
传输层 | 传输层 | 提供端对端的接口 | TCP、UDP |
网络层 | 网络层 | 为数据包选择路由(路由器) | IP、ICMP、RIP、OSPF、BGP、IGMP |
数据链路层 | 链路层 | 传输有地址的帧及错误检测功能 | SLIP、CSLIP、PPP、ARP、RARP、MTU(交换机) |
物理层 | 链路层 | 以二进制数据形式在物理媒介上传输数据(光纤、普通网线、无线信号) | ISO2110、IEEE802、IEEE802.2 |
全流程职责
当你输⼊⼀个⽹址并按下回⻋键的时候,⾸先,应⽤层协议对该请求包做了格式定义;紧接着传 输层协议加上了双⽅的端⼝号,确认了双⽅通信的应⽤程序;然后⽹络协议加上了双⽅的IP地 址,确认了双⽅的⽹络位置;最后链路层协议加上了双⽅的MAC地址,确认了双⽅的物理位置, 同时将数据进⾏分组,形成数据帧,采⽤⼴播⽅式,通过传输介质发送给对⽅主机。⽽对于不同 ⽹段,该数据包⾸先会转发给⽹关路由器,经过多次转发后,最终被发送到⽬标主机。⽬标机接 收到数据包后,采⽤对应的协议,对帧数据进⾏组装,然后再通过⼀层⼀层的协议进⾏解析,最 终被应⽤层的协议解析并交给服务器处理。
链路层
: 对0和1进行分组,定义数据帧,确认主机的物理地址,传输数据;网络层
: 定义IP地址,确认主机所在的网络位置,并通过IP进行mac寻址,对外网数据包进行路由转发。传输层
: 定义端口,确认主机上应用程序身份,并将数据包交给对应的应用程序。应用层
: 定义数据格式,并按照对应的数据格式解读数据。
一条消息如何发送到目标电脑上的
- 应用层录入消息
hello
(写信) - 传输层附加TCP包首部(装入信封)
- 网络层附加IP包首部(写入地址和邮编)
- IP数据包:首部(20字节:包含版本、首部长度、区分服务、总长度、标识、标志、片偏移、生存时间、协议、首部校验、源地址、目标地址、可选字段、填充、数据部分) + 数据(最大65515字节)
- 数据链路层附加以太包首部(邮票和邮章)
- 以太网协议: 一组电信号就是一个数据包,一个数据包又被称为一帧
- 以太网包,包含目标mac、源mac地址
- 物理层传通过光缆将数据输至目标(邮车转移)
- 数据链路层拆解以太包首部
- 网络层拆解IP包首部
- 传输层拆解TCP包首部
- 应用层接收消息
网络地址分类
特殊B类地址网段: 169.254.0.0/16, 用于处理DHCP分配失败或没有DHCP服务的情况
共有地址
A类
:1.0.0.0
-126.0.0.0
,默认子网掩码:255.0.0.0
,第一个字节为网络号,后三个字节为主机号。该类ip地址的最前面为0,所以地址的网络号取值于1-126之间。一般用于大型网络。B类
:128.0.0.0
-191.255.0.0
,默认子网掩码:255.255.0.0
,前两个字节未网络号,后两个字节为主机号,该类IP 地址的最前面为10,所以地址的网络号取值于128-191之间,一般用于中等规模网络。C类
:192.0.0.0
-223.255.255.0
,默认子网掩码:255.255.255.0
,前三个字节为网络号,最后一个字节为主机号,该类IP地址的最前面为110,所以地址的网络号取值于192-223之间,一般用于小型网络.D类
: 是多播地址,该类IP地址的最前面为1110,所以地址的网络号取值于224-239之间,一般用于多路广播用户。E类
: 是保留地址。该类IP地址的最前面为1111,所以地址的网络号取值于240-255之间。
私有地址
- A类:
10.0.0.0
-10.255.255.255
- B类:
172.16.0.0
-172.31.255.255
- C类:
192.168.0.0
-192.168.255.255
TCP 包常见标识
SYN
: 表示建立连接FIN
: 表示关闭连接ACK
: 表示响应PSH
: 表示有data数据传输PST
: 表示连接重置
三次握手
客户端发送SYN
到服务器端表示准备建立连接,服务端响应发送SYN+ACK
于客户端表示准备建立连接请求,客户端发送ACK
响应表示开始传输数据
四次挥手
客户端发送FIN
请求到服务端表示准备断开连接,同时进入FIN_WAIT_1
状态下,服务端接收到FIN
后发送ACK
于客户端表示接收到了准备断开的响应请求,同时进入CLOSE_WAIT
,客户端接收到了ACK
同时进入FIN_WAIT_2
,服务端再次发送FIN+ACK
于客户端表示我也准备断开请求了,同时服务端进入LAST_ACK
,客户端在接收到FIN+ACK
后发送ACK
到服务端,表示我已经接收到服务端确认并准备关闭连接,服务端接收到客户端ACK
后直接关闭,客户端在发送后进入CLOSE_WAIT
并等待2个报文长度时间(默认30秒)后关闭连接。