OSI 七层网络模型
OSI(Open Systems Interconnection)七层网络参考模型是一种用于描述计算机网络通信的框架,将网络通信划分为七个不同的层次,每个层次负责不同的功能。
以下为 OSI 七层网络参考模型的简单表格:
+-----------------------+-------------------------------------------+-----------------------------------+
| OSI 层级 | 功能 | 协议 |
+-----------------------+-------------------------------------------+-----------------------------------+
| 7. 应用层 | 用户界面、应用服务和通信(和具体应用相关的消息格式)| HTTP、FTP、SMTP、POP3、Telnet、 |
| | | SSH、DNS、SNMP 等 |
+-----------------------+-------------------------------------------+-----------------------------------+
| 6. 表示层 | 数据转换、加密、压缩 | SSL/TLS、JPEG、GIF、MPEG、 |
| | | ASCII、Unicode 等 |
+-----------------------+-------------------------------------------+-----------------------------------+
| 5. 会话层 | 建立、管理和终止会话 | NetBIOS、RPC、PPTP、SMB、 |
| | | NFS、SQL 等 |
+-----------------------+-------------------------------------------+-----------------------------------+
| 4. 传输层 | 分段、流量控制、错误检测和恢复(保证信息的可靠传输)| TCP、UDP、SCTP、SPX、RTP 等 |
+-----------------------+-------------------------------------------+-----------------------------------+
| 3. 网络层 | 路由、寻址、路径选择(在网络中找到对方) | IP、ICMP、OSPF、BGP、EIGRP、路由器等 |
+-----------------------+-------------------------------------------+-----------------------------------+
| 2. 数据链路层 | 帧封装、物理地址、错误检测和修复(在子网中找到对方)| 以太网、Wi-Fi、MAC、交换机 |
| | | ARP、VLAN 等 |
+-----------------------+-------------------------------------------+-----------------------------------+
| 1. 物理层 | 物理媒介、信号传递(用信号表示上述东西) | 以太网电缆、光纤等 |
+-----------------------+-------------------------------------------+-----------------------------------+
以下是每个层次的详细解释:
物理层(Physical Layer):
物理层是网络模型的最底层,负责传输原始比特流,以及在物理媒介上发送和接收数据。它涉及电压、电流、物理连接、传输速率等方面的规范。
在这一层,数据仅以比特形式传输,没有任何逻辑结构。物理层的设备有网卡,网线,集线器,中继器等。
这一层获取他们对应的传送信号,电压等,转换成二进制数,但是数据还未组织,仅作为原始的电气电压。处理单位为bit
,传输的是比特流。
物理层信道:
- 有线信道
- 明线:平行架设在电线杆上的架空线路。传输损耗低,但是易受外界环境干扰。
- 对称电缆:由多对双绞线组成的线缆。
- 同轴电缆:以低损耗的方式传输模拟信号和数字信号。如电视广播系统、长途电话传输系统以及局域网互联等。
- 光纤:由玻璃或塑料制成的纤维,利用光在这些纤维中以全反射原理传输的光传导工具。
- 无线信道
- 以辐射无线电波为传输方式。主要有地波传输,天波传输和视距传输。例如:卫星通讯,电台广播。
数据链路层(Data Link Layer):
数据链路层负责将原始比特流转化为帧,以便在物理媒介上传输。它还处理物理层可能出现的错误,并提供一些基本的流量控制和错误检测功能。
MAC(Media Access Control)子层控制着数据在共享媒介上的访问。(MAC地址:每个网卡的唯一标识,明确发送者和接收者,直到数据内容和进行分组)通过广播的形式传播,局域网的所有计算机都能收到消息。
可以通过ipconfig -all
进行查看:
网络层(Network Layer):
网络层负责数据包的路由和转发,以便在不同的网络之间进行通信。它决定了数据的最佳路径,以及如何处理可能的拥塞。IP(Internet Protocol)是在这一层工作的协议,它赋予设备唯一的IP地址。采用IP协议,目前从 IPv4 过渡到 IPv6 。
两个作用:
-
寻址:对网络层而言,使用IP地址来唯一标识互联网上的设备,网络层依靠IP地址进行相互通信(类似于数据链路层的MAC地址)。
-
路由:在同一个网络中的内部通信并不需要网络层设备,仅仅靠数据链路层就可以完成相互通信,对于不同的网络之间相互通信则必须借助路由器等三层设备。
传输层(Transport Layer):
传输层提供端到端的通信,定义端口号,负责数据的分段、传输控制和流量管理。它可以实现可靠的数据传输(如TCP)或者无连接的数据传输(如UDP),并为应用程序提供数据的完整性和顺序性。可以把 TCP 比作打电话,电话接通、通话、结束挂断整个过程都是可靠的,也可以把 UDP 比作写信,对方能否收到,信发出的顺序等都是不可靠的。这一层常被称为数据段。
TCP 是面向连接的协议,是可靠的,因为TCP会进行三次握手四次挥手,但是这样会降低速度。
UDP 具有较好的实时性,效率比TCP高。UDP是没有三次握手四次挥手的,故此不稳定,但是速度快,常用于直播,游戏。
会话层(Session Layer):
会话层管理不同设备之间的会话,并确保数据的同步和传输。它负责建立、维护和终止应用程序之间的通信会话,并处理错误恢复和数据同步。
会话层包含了一种称为检查点(Checkpoint) 的机制来维持可靠会话。检查点定义了一个最接近成功通信的点,并且定义了当发生内容丢失或损坏时,需要回滚以便恢复丢失或损坏数据的点,即断点下载的原理。
表示层(Presentation Layer):
表示层处理数据的格式转换(解码编码)、加密和压缩,以便不同系统上的应用程序可以互相通信。它确保数据的语法和语义正确,使得应用程序能够正确解释和显示接收到的数据。
应用层(Application Layer):
应用层是网络模型的最顶层,直接与用户应用程序交互。
它包含了各种应用程序,如Web浏览器、电子邮件客户端等。在这一层,用户可以进行各种网络活动,如浏览网页、发送电子邮件等。
还或者例如:ajax调用接口发送http请求,域名系统DNS,webSocket长连接,SSH协议。常被称为报文。
OSI七层模型的每个层次都有特定的功能,数据从发送方开始从应用层逐层封装,直到物理层,然后在接收方,从物理层开始在逐层解封装,使得不同的设备和应用程序能够在网络上进行通信。
面试回答
五层网络模型( 面试回答)
网络要解决的问题是:两个程序之间如何交换数据。
- 物理层:网线、光纤。传输比特流。
- 数据链路层:控制网络层和物理层的通信。主要将网络层接收到的数据分割成特定可被物理层传输的帧(对比特流的封装)。用于 Mac 地址确定,代表设备有交换机。
- 网络层:决定如何将数据从发送发路由到接收方。作用是 分配 IP 地址,代表设备是家用路由器。
- 传输层:为应用程序提供端到端的服务。建立主机到主机的通信。TCP、UDP。操作系统内核。
- 应用层:应用程序解读传输层的数据。规定使用到的协议如 HTTP 等。
四层?五层?七层?
TCP / IP 网络模型
TCP/IP ⽹络模型(也称为互联⽹协议套件)是⼀种⽤于描述⽹络通信的概念模型。它分为四层,每层都有特定的职责和作⽤,它们分别是:
- 应⽤层(Application Layer):应⽤层负责处理与应⽤程序的通信和数据传输。它包括各种应⽤层协议,例如 HTTP、HTTPS、FTP、DNS 等。这些协议定义了客户端和服务器之间如何互相发送和接收数据。应⽤层的主要职责是为应⽤程序
提供⽤户接⼝、数据传输以及数据封装和解封装。 - 传输层(Transport Layer):传输层主要负责在⽹络中进⾏端到端的可靠数据传输。它提供了两种主要的传输协议:TCP(传输控制协议)和 UDP(⽤户数据报协议)。TCP 提供了可靠、⾯向连接的数据传输,它可以确保数据在传输过程中不会丢失、重复或乱序。UDP 提供了不可靠、⽆连接的数据传输,它不能保证数据的传输质量,但传输速度更快,适⽤于实时通信等场景。
- ⽹络层(Internet Layer):⽹络层负责在不同⽹络之间进⾏数据包的路由和传输。它使⽤ IP(互联⽹协议)进⾏寻址和路由,将数据包从源主机传输到⽬的主机。⽹络层的主要职责包括:IP地址的分配、路由选择、分组传输和拥塞控制等功能。
- 链路层(Link Layer):链路层(⼜称⽹络接⼝层或数据链路层)负责在同⼀⽹络中进⾏数据帧的发送和接收。链路层的协议因⽹络硬件⽽异,如 Ethernet、Wi-Fi、PPP 等。链路层的主要职责包括:物理寻址、数据帧封装和解封装、差错检测、流量控制以及链路管理。
具体过程:
发送方:
- 应⽤层:应⽤层向下传输报⽂,报⽂中包含应⽤层⾃⼰的报头和应⽤层的数据。
- 传输层:传输层接收到应⽤层的报⽂,将应⽤层报⽂封装成⼀个或多个数据段,同时添加传输层的报头信息,例如 TCP 的源端⼝和⽬标端⼝号等。
- ⽹络层:⽹络层接收到传输层的数据段,将数据段打包成 IP 数据包,同时添加⽹络层的报头信息,例如源 IP 地址和⽬标 IP 地址等。
- 数据链路层:数据链路层接收到 IP 数据包,将其封装成数据帧,同时添加数据链路层的报头信息,例如源 MAC 地址和⽬标 MAC 地址等。
- 物理层:物理层接收到数据帧,将其转换为 0 和 1 的电信号,通过物理介质传输到接收⽅,接收⽅的物理层将电信号转换为数据帧。
接收⽅:接收⽅也会按照相反的顺序层层解析报⽂。
- 物理层:物理层传来的 0 和 1 的电信号,并将其转换为数据帧。
- 数据链路层:会解析数据帧中的报头信息,剥离数据链路层的报头信息,并将剩余的数据包交给⽹络层。
- ⽹络层:解析数据包中的报头信息,剥离⽹络层的报头信息,并将剩余的数据段交给传输层。
- 传输层:解析数据段中的报头信息,剥离传输层的报头信息,并将剩余的数据段重组成完整的数据,并交给应⽤层。
- 应⽤层:解析数据中的应⽤层报⽂,并进⾏处理和响应。
TCP 和 UDP 的区别
- TCP面向连接(如打电话要先拨号建立连接)提供可靠的服务,UDP是无连接的,即发送数据之前不需要建立连接,UDP尽最大努力交付,即不保证可靠交付。
- UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。
UDP:直播、游戏;TCP:网页。
- 每一条TCP连接只能是一对一的(客户端—服务端),UDP支持一对一,一对多,多对一和多对多的交互通信。
- UDP分组首部开销小(占据空间小),TCP首部开销20字节,UDP的首部开销小,只有8个字节。
- TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流(数据的分解组装,一点点发送接收),UDP是面向报文的一次交付一个完整的报文,报文不可分割,报文是UDP数据报处理的最小单位。
- UDP适合一次性传输较小数据的网络应用,如DNS,SNMP(专业的网管,比如服务器、路由器、交换机统一管理、排查错误等等)等。