目录
1、OSI七层模型是什么
1.1 物理层(Physical Layer)
1.2 数据链路层(Data Link Layer)
1.3 网络层(Network Layer)
1.4 传输层(Transport Layer)
1.5 会话层(Session Layer)
1.6 表示层(Presentation Layer)
1.7 应用层(Application Layer)
2、七层模型图示
3、tcp与udp的位置及其区别
3.1 tcp与udp的位置
3.2 tcp与udp的区别
小结:
1、OSI七层模型是什么
计算机网络的七层模型是指OSI(Open System Interconnection)参考模型,它被国际标准化组织(ISO)制定,并于1984年正式发布。该模型将计算机网络通信协议分为七层,该模型目的是将复杂的网络通信问题划分为更小、更容易管理的部分,每一层负责不同的功能,分别是:
1.1 物理层(Physical Layer)
负责传输比特流,即0和1的数据流,这一层关注数据传输的物理特性,如电压、电流、频率等。这一层的数据单位叫做比特(bit)。
物理层是OSI七层模型中最底层的部分,主要负责将数字数据转换成适合在通信信道中传输的信号。物理层直接和物理介质相关,主要定义了相关物理设备的标准(网卡,网线,集线器,中继器,调制解调器等)。
1.2 数据链路层(Data Link Layer)
负责将物理层传输的比特流组织成➡帧(Frame),并进行错误检测和纠正,以保证数据无误地传输。
因为数据链路层是 OSI 模型中最复杂的一层,所以它通常被分成两部分: 媒体访问控制子层和逻辑链路控制子层。数据链路层的协议是由底层网络定义的。在物理层传输的比特序列被组合成字节,进而组合成帧。数据链路层使用MAC地址访问介质,可以发现错误,但不能纠正。
图片来源:计算机网络 – 七层模型概述 – 前端教程
1.3 网络层(Network Layer)
负责实现不同网络之间的互联,提供路由选择和寻址等功能,以保证数据能够正确地传递到目标网络中。网络层在数据链路层之上增加了路由的概念。每当数据抵达网络层时,就会检查每个帧中包含的源地址和目标地址,以确定数据是否已到达其最终目的地。如果数据已经到达最终目的地,第3层就会将数据格式化并打包为数据包交付给下一层运输层,否则网络层会更新目的地址并将帧推送到下层。
图片来源:计算机网络 – 七层模型概述 – 前端教程
互联网是由无数子网络构成的巨型网络,为了避免在同一网段内的广播风暴,需要将用户划分到不同的网段,使得每个用户都能在自己的小网段内进行广播。为了实现这个目的,在网络层引入了一套新的地址系统,称为“网络地址”或“网址”。每台计算机在网络层拥有两种地址:MAC地址和网络地址。MAC地址是网卡固有的地址,而网络地址则是由网络管理员分配的。网络地址用于区分不同的子网络,而MAC地址将数据包送达目标子网络内的特定网卡。
为了支持路由,网络层需要一个维护逻辑地址,比如网络设备的IP
地址。网络层还管理着这些逻辑地址和物理地址之间的映射,在IPv4
网络中,这种映射通过地址解析协议(ARP
)完成,IPv6
使用邻居发现协议(NDP
)。
1.4 传输层(Transport Layer)
负责将数据可靠地传输到目标主机的应用程序中,提供端到端的数据传输服务。传输层通过网络连接传输数据。传输层在网络通信过程中起着至关重要的作用,主要负责定义端口号、流量控制和校验。TCP(传输控制协议)和 UDP(用户数据报协议)是传输层比较常见且有代表性的协议。
- TCP协议是一种面向连接的、可靠的协议。它通过三次握手和四次挥手的过程来确保数据传输的可靠性(可靠协议)。然而,这种可靠性的保证会以速度为代价,因为三次握手和四次挥手会增加通信的开销。尽管如此,TCP协议在很多场景下仍然是首选,如文件传输、电子邮件发送和Web浏览等。
- 与TCP相比,UDP协议更注重实时性和高效性。由于UDP没有进行三次握手和四次挥手的过程,因此它的稳定性相对较低,但传输速度较快。这使得UDP协议非常适用于对实时性和低延迟性有较高要求的场景,如在线游戏、实时音视频通信和直播等。
1.5 会话层(Session Layer)
负责建立、维护和关闭应用程序之间的会话,为应用程序提供可靠的数据传输和错误处理机制。在网络通信中负责创建、维护、终止或断开发送方和接收方之间的连接,类似于电话通话的过程。它为发送方和接收方提供了一种机制,允许他们在需要时启动或停止通信会话,并在通信过程中遇到拥塞的情况下仍能维持对话。它支持多种类型的连接,这些连接可以动态地创建并在单个网络上运行。
1.6 表示层(Presentation Layer)
主要是进行消息数据的语法处理,负责数据的格式转换、加密解密和压缩解压缩等操作,以保证应用程序能够正确地读取和处理数据。也常被称为“报文”。
1.7 应用层(Application Layer)
应用层为终端用户使用的应用提供网络服务(处理用户数据的协议)。举个例子,在Web浏览器应用程序中,应用层协议HTTP打包发送和接收网页内容所需的数据。同时应用层也会向表示层提供或获取数据。该层负责提供网络应用程序所需的服务,例如电子邮件、文件传输、远程登录等。
它是网络模型中与用户最接近的一层,为用户提供了直接的网络服务和应用接口。应用层处理了诸多网络协议,以满足用户在各种场景下的需求。以下是一些常见的应用层协议及其用途:
- HTTP(超文本传输协议):HTTP 是用于在互联网上进行文档和资源传输的基本协议。例如,当我们使用浏览器访问网页时,就是通过 HTTP 协议进行通信的。在 Web 开发中,AJAX 请求也是基于 HTTP 协议发送的。
- DNS(域名系统):DNS 是用于将域名解析成 IP 地址的服务,它将便于人们记忆的域名转换为计算机可识别的 IP 地址。例如,当我们在浏览器中输入一个网址时,DNS 会将该网址转换为实际的 IP 地址,以便正确访问目标网站。
- SMTP(简单邮件传输协议):SMTP 是一种用于在网络上发送和接收电子邮件的协议。当我们使用电子邮件客户端或 Web 邮件服务发送邮件时,就是通过 SMTP 协议进行通信的。
- WebSocket:WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,用于实现客户端和服务器之间的长连接。例如,在实时聊天、在线游戏或股票行情推送等场景中,WebSocket 可以提供低延迟、高效的数据传输。
- SSH(安全外壳协议):SSH 是一种用于在不安全的网络环境中对远程服务器进行安全访问和管理的加密协议。它可以保护数据在传输过程中的完整性、机密性和可靠性,广泛应用于远程登录、文件传输等场景。(片段引自:计算机网络 - 七层模型概述 - 掘金)
2、七层模型图示
图片来源:网络七层模型-CSDN博客
3、tcp与udp的位置及其区别
3.1 tcp与udp的位置
TCP和UDP都是传输层协议,处于OSI参考模型的第四层。在TCP/IP协议栈中,TCP和UDP也位于网络层和应用层之间,负责提供端到端的数据传输服务。其中,TCP是一种面向连接的协议,提供可靠的数据传输服务,而UDP则是一种无连接的协议,提供不可靠但高效的数据传输服务。由于UDP比较简单,UDP头包含很少的字节,比TCP负载消耗少。
3.2 tcp与udp的区别
TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种常用的传输层协议,它们之间有以下几点区别:
-
连接导向 vs 无连接:TCP是一种面向连接的协议,通信双方在传输数据前需要先建立连接,然后再进行数据传输,最后释放连接;而UDP是无连接的,通信双方直接发送数据包,不需要建立连接。
-
可靠性:TCP提供可靠的数据传输,通过序号、确认和重传机制来确保数据的完整性和顺序性;而UDP不提供可靠性保证,数据包可能会丢失或者乱序到达。
-
拥塞控制:TCP具有拥塞控制机制,可以根据网络情况动态调整传输速率,以避免网络拥塞;UDP没有拥塞控制机制,数据包会以最大速率发送,可能导致网络拥塞。
-
数据量限制:TCP没有固定的数据包大小限制,可以根据需要动态调整;而UDP有固定的数据包大小限制,每个数据包的大小都有一个上限。TCP的头部开销大,UDP的头部开销小。
-
应用场景:TCP是面向字节流的,UDP是面向报文的。TCP适用于要求可靠传输、顺序传送的应用,如文件传输、邮件等;UDP适用于实时性要求高、可以容忍少量数据丢失的应用,如音频、视频流等。
总的来说,TCP和UDP各有优势,适用于不同的应用场景。TCP适合对数据可靠性要求高的场景,而UDP适合对实时性要求高的场景。在实际应用中,根据具体需求选择合适的协议非常重要。
小结:
尽管OSI七层模型在理论上得到了广泛的认可和应用,但在实际的网络实现中,它并没有得到广泛的采用。TCP/IP协议族,最早由美国国防部高级研究计划署(DARPA)在20世纪70年代开发,成为了互联网的基石。TCP/IP模型采用了一个更简化的四层架构,即:链路层、网络层、传输层和应用层。
图片来源:计算机网络 – 七层模型概述 – 前端教程
就算如此,OSI七层模型仍然是计算机网络领域的重要理论基础。这七层模型的设计目的是为了提供一个标准的参考框架,使不同厂商和组织开发的计算机网络能够相互兼容和互通。同时,该模型也有助于理解和分析网络通信协议的工作原理和功能。它有助于理解不同协议和设备如何相互协作,并为网络故障排查、性能优化等提供了有用的参考框架。
参考:
计算机网络 - 七层模型概述 - 掘金
简单图解OSI七层网络模型
网络七层结构是干啥的?看这篇文章就够了 - 知乎
网络七层模型-CSDN博客
ISO的七层模型是什么?tcp/udp属于哪一层?tcp/udp有哪些优缺点?tcp/udp的使用场合?PPP协议属于哪一层协议?_tcp哪一层-CSDN博客
TCP和UDP的区别_ZJE_ANDY的博客-CSDN博客
【精选】计算机网络七层模型OSI_计网七层模型_coding-day的博客-CSDN博客
感谢阅读,码字不易,多谢点赞!如有不当之处,欢迎反馈指出,感谢!