🍁博主简介:
🏅云计算领域优质创作者
💊交流社区:CSDN云计算交流社区欢迎您的加入!
目录
OSI模型,即开放式系统互连(Open System Interconnection)模型,是由国际标准化组织(ISO)在1984年提出的一种网络互连参考模型。该模型定义了网络互连的七层框架,为各种计算机互连构成网络提供了标准框架。
1、OSI七层模型
1.1 各层位置及功能
1、物理层
地位:OSI模型中的最低层,是整个OSI协议的基础。
功能:负责为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境。具体任务包括比特流的传输、同步、差错检测等。
2、数据链路层
位置:位于物理层和网络层之间。
功能:定义了在单个链路上如何传输数据,包括数据链路的建立、维护和拆除,帧的封装与解封,差错控制等。
3、网络层
位置:位于传输层和数据链路层之间。
功能:将数据设法从源端经过若干个中间节点传送到另一端,向传输层提供最基本的端到端的数据传送服务。网络层的主要任务是路由选择和拥塞控制。
4、传输层
功能:涉及到两个节点之间的数据传输,向上层提供可靠的数据传输服务。传输层的服务一般要经历传输连接建立阶段,数据传输阶段,传输连接释放阶段3个阶段才算完成一个完整的服务过程。
5、会话层
位置:位于传输层之上。
功能:负责建立、管理和终止会话,以及同步不同设备上的应用程序之间的对话。
6、表示层
功能:将设备的固有数据格式转换为网络标准传输格式,确保不同系统之间的互操作性。此外,表示层还负责数据的加密和解密,提供数据的安全性和保密性。
7、应用层
地位:OSI模型的最顶层。
功能:直接为应用进程提供服务,如文件传输、电子邮件远程登录和远端接口调用等协议。应用层是用户与网络之间的接口,用户通过应用层来访问网络提供的服务。
1.2 七层模型注意事项
上三层是为用户提供服务的,下四层负责实际数据传输
下四层的传输单位:
位置 | 单位 |
---|---|
传输层 | 数据段(报文)(数据拆分) |
网络层 | 数据包(报文分组) |
数据链路层 | 数据帧 |
物理层 | 比特(位) |
越是上层的设备越智能,可以识别所有当前层以下的数据,越贴近用户;越是下层的设备越傻瓜,越贴近硬件
数据发送时,数据从上层向下层传输; 数据接收时,数据从下层向上层传输
数据不能跨层传递,每层之间通过逻辑的接口传递
物理层负责实际数据传递,其它层只是逻辑对应
OSI模型只是理论模型,不能对应实际协议或硬件。
真正的互联网用的是TCP/IP模型,TCP模型是依赖于OSI模型诞生的,没有OSI模型就没有TCP/IP模型
2、TCP/IP五层模型
TCP/IP五层模型使得网络通信更加灵活、可靠和可管理。每一层都通过特定的协议和机制来实现其功能,并通过接口与相邻层次进行交互。这种层次结构的设计使得网络通信更加清晰和易于理解,同时也为网络设备的开发和维护提供了便利
2.1 各层功能及协议简述
1、应用层
功能:应用层是网络通信的最高层,它定义了应用程序和网络之间的接口。在这一层,用户可以直接与应用程序进行交互。
协议:常见的应用层协议有HTTP(用于Web浏览)、FTP(用于文件传输)、SMTP(用于电子邮件发送)等。
作用:应用层负责处理网络应用相关的细节,如电子邮件的发送和接收、文件的上传和下载等。
2、传输层
功能:传输层负责在源主机和目标主机之间建立数据传输通道,提供可靠的数据传输服务。
协议:主要的传输层协议有TCP(传输控制协议)和UDP(用户数据报协议)。TCP提供可靠、面向连接的数据传输服务,而UDP则提供无连接、不可靠的数据传输服务。
作用:传输层确保数据的正确传输顺序和可靠性,以及处理数据的分段和重新组装。
3、网络层
功能:网络层负责在网络上寻址和路由数据包,定义数据在网络中的传输路径。
协议:主要的网络层协议是IP(互联网协议),它定义了数据包的格式和地址方式,使得不同应用类型的数据在Internet上通畅地传输。
作用:网络层通过IP地址来标识网络中的设备,并通过路由算法选择最佳的数据传输路径。
4、数据链路层
功能:数据链路层负责在物理网络上传输数据帧,包括数据的分段和重新组装,以及物理介质的访问控制。
协议:常见的数据链路层协议有以太网协议(Ethernet)等。
作用:数据链路层将数据封装成帧,并在物理介质上传输这些帧。同时,它还负责处理帧的同步、差错控制和流量控制等问题。
5、物理层
功能:物理层是网络通信的最底层,它负责在物理介质上传输比特流。
协议:物理层定义了物理连接的特性,如电压、频率、电缆规格、集线器、中继器、网卡等。
作用:物理层为数据链路层提供传输数据的通路,确保比特流能够在物理介质上正确传输。
3、TCP和UDP比较
TCP(传输控制协议)和UDP(用户数据报协议)是网络通信中两种常用的传输层协议,它们各自具有不同的特点和适用场景。
通过下方图解想必是非常生动形象的展示tdp和udp的区别了吧!
可靠性
TCP提供可靠的数据传输服务。它通过序列号、确认机制和重传机制来确保数据的完整性和有序性。如果数据在传输过程中出现丢失或错误,TCP会自动重传丢失的数据,保证数据的可靠传输。
UDP则不提供可靠的数据传输服务。它无连接、不保证可靠交付,因此主机不维持复杂的连接状态。UDP发送数据之后不会确认是否到达,也不会重传丢失的数据。因此,UDP更适用于一些对可靠性要求相对较低的应用场景,如音频和视频传输。
速度
由于TCP需要确保数据的可靠传输,它需要额外的控制信息来维护连接状态和数据的传输控制。这使得TCP相对UDP更加复杂,在传输效率上稍低一些。
UDP没有连接建立和断开的开销,只需要很少的控制信息,因此传输速度较快。UDP适用于一些实时性要求较高的应用,如在线游戏和实时视频传输。
连接性
TCP是面向连接的协议。在数据发送和接收前,必须先建立连接,建立连接后才能发送数据。这种连接性使得TCP能够保证数据传输的可靠性。
UDP是无连接的协议。它可以直接发送数据,不需要先建立连接。这使得UDP的开销较小,并且发送数据的实时性较高。但缺点是无法保证数据传输的可靠性。
数据包大小
TCP在传输数据时,将数据分割成较小的数据块,并根据网络状况调整数据块的大小。这使得TCP可以适应不同网络环境下的数据传输。
UDP的数据包大小没有限制,它可以发送任何大小的数据。但在实际使用中,通常会将数据包大小限制在网络传输的最大MTU(最大传输单元)以内。
应用场景
TCP适用于需要可靠传输的场景,如文件传输、电子邮件发送等。在这些场景中,数据的完整性和有序性至关重要。
UDP适用于对实时性要求较高、对可靠性要求相对较低的场景,如在线游戏、实时视频传输等。在这些场景中,数据的传输速度更为重要,而数据的丢失或错误可能不会对应用产生严重影响。
TCP和UDP在可靠性、速度、连接性和数据包大小等方面存在差异。选择使用哪种协议要根据具体的应用场景和需求来决定。
4、数据封装和解封装
数据封装和解封装是网络通信中两个关键的过程,它们确保了数据能够在不同的网络层次之间正确、有效地传输。以下是按照TCP/IP五层模型进行数据封装和解封装的过程说明:
4.1 数据封装过程
应用层
原始数据(如文本、图片等)首先被转换为应用层可以理解的格式,如HTTP请求或SMTP邮件。
应用层添加自己的报头信息,如端口号、协议类型等。
传输层
在TCP协议中,应用层数据被分割成较小的数据段(segments)。
每个数据段都被添加上TCP头部,包含源端口、目标端口、序列号、确认号等信息。
UDP协议则直接添加UDP头部,包括源端口、目标端口和长度信息,不进行数据分割。
网络层
传输层的数据段或UDP数据包被封装上IP头部,形成IP数据包(packets)。
IP头部包含源IP地址、目标IP地址、TTL(生存时间)等信息。
数据链路层
IP数据包被封装上数据链路层头部(如以太网头部),形成数据帧(frames)。
数据链路层头部包含源MAC地址、目标MAC地址等信息。
物理层
数据帧在物理层被转换为比特流(bit streams),并通过物理介质(如光纤、电缆等)进行传输。
4.2 数据解封装过程
物理层
接收端从物理介质上接收到比特流,并将其转换为数据帧。
数据链路层
接收端检查数据帧的MAC地址,如果与自己的MAC地址匹配,则去掉MAC头部,继续处理;否则,丢弃该数据帧。
网络层
接收端检查IP数据包的IP地址,如果与自己的IP地址匹配,则去掉IP头部,继续处理;否则,根据路由表进行转发或丢弃。
传输层
如果是TCP协议,接收端根据TCP头部中的序列号、确认号等信息进行数据的重组和排序,确保数据的完整性和有序性。
如果是UDP协议,接收端直接去掉UDP头部,将数据传递给应用层。
应用层
接收端根据应用层协议解析数据,还原为原始数据格式,如HTTP响应、SMTP邮件等。
通过数据封装和解封装的过程,数据能够在不同的网络层次之间正确、有效地传输,确保了网络通信的可靠性和高效性。