OSI七层模型
1. OSI七层模型
OSI(Open System Interconnect)七层模型是一种将计算机网络通信协议划分为七个不同层次的标准化框架。每一层都负责不同的功能,从物理连接到应用程序的处理。这种模型有助于不同的系统之间进行通信时,更好地理解和管理网络通信的过程。
OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO开放互连系统参考模型



- 应用层(Application Layer):这是网络体系结构中的最顶层,提供用户接口和应用程序之间的通信服务。在这一层,用户可以访问各种网络应用程序,如电子邮件、文件传输和远程登录。
- 表示层(Presentation Layer):该层负责数据的格式化、加密和压缩,以确保数据在不同系统之间的交换是有效的和安全的。它还提供了数据格式转换和语法转换的功能。\
- 会话层(Session Layer):会话层管理应用程序之间的通信会话,负责建立、维护和终止会话。它还提供了数据的同步和检查点恢复功能,以确保通信的完整性和持续性。
- 传输层(Transport Layer):传输层为应用程序提供端到端的数据传输服务,负责数据的分段、传输控制、错误恢复和流量控制。它主要使用 TCP(传输控制协议)和 UDP(用户数据报协议)来实现这些功能。
- 网络层(Network Layer):网络层负责数据包的路由和转发,以及网络中的寻址和拥塞控制。它选择最佳的路径来传输数据包,以确保它们能够从源主机到目标主机进行传输。
- 数据链路层(Data Link Layer):数据链路层提供点对点的数据传输服务,负责将原始比特流转换为数据帧,并检测和纠正传输中出现的错误。它还控制访问物理媒介的方式,以及数据帧的传输和接收。
- 物理层(Physical Layer):物理层在物理媒介上传输原始比特流,定义了连接主机的硬件设备和传输媒介的规范。它确保比特流能够在网络中准确地传输,例如通过以太网、光纤和无线电波等媒介。
TCP/IP四层模型
TCP/IP 四层模型是目前被广泛采用的一种模型,由以下 4 层组成:应用层、传输层、网络层、网络接口层
应用层常见协议
- HTTP(HyperText Transfer Protocol):用于在客户端和服务器之间传输超文本数据,通常用于 Web 浏览器和 Web 服务器之间的通信。
- FTP(File Transfer Protocol):用于在客户端和服务器之间传输文件,支持上传和下载文件的功能。
- SMTP(Simple Mail Transfer Protocol):用于在邮件服务器之间传输电子邮件,负责发送邮件。
- POP3(Post Office Protocol version 3):用于从邮件服务器上下载邮件到本地计算机,负责接收邮件。
- IMAP(Internet Message Access Protocol):也是用于接收邮件的协议,与 POP3 类似,但提供了更丰富的功能,如在服务器上管理邮件等。
- DNS(Domain Name System):用于将域名解析为对应的 IP 地址,从而实现域名和 IP 地址之间的映射。
- HTTPS(HyperText Transfer Protocol Secure):是 HTTP 的安全版本,通过 SSL/TLS 加密传输数据,保证通信过程中的安全性。
- SSH(Secure Shell):用于远程登录和执行命令,提供了加密的网络连接,保证了通信的安全性。
- SNMP(Simple Network Management Protocol):用于网络设备之间的管理和监控,可以实现对网络设备的远程配置和监控。
- Telnet:用于远程登录和执行命令,类似于 SSH,但不提供加密功能,通信数据不安全。
传输层常见协议
- TCP(Transmission Control Protocol):提供可靠的、面向连接的数据传输服务,确保数据的可靠性、顺序性和完整性。TCP适用于对数据传输质量要求较高的场景,如文件传输、网页浏览等。
- UDP(User Datagram Protocol):提供无连接的数据传输服务,不保证数据的可靠性,也不保证数据的顺序性和完整性。UDP适用于实时性要求较高、对数据传输质量要求不那么严格的场景,如音视频传输、在线游戏等。
网络层常见协议
- IP(Internet Protocol):是互联网中最基本的协议,用于在网络中传输数据包。IP协议定义了数据包的格式、寻址方式和路由选择等信息,是整个互联网的基础。
- ICMP(Internet Control Message Protocol):用于在IP网络中传递控制消息和错误信息。ICMP通常用于网络设备之间的通信,如路由器和主机之间的通信,以及用于检测网络连通性和故障诊断。
- ARP(Address Resolution Protocol):用于将IP地址映射为MAC地址(物理地址)。ARP协议在局域网内部使用,通过发送ARP请求获取目标设备的MAC地址,从而实现数据包的传输。
- RARP(Reverse Address Resolution Protocol):与ARP相反,用于将MAC地址映射为IP地址。RARP协议通常用于无盘工作站等设备,可以根据MAC地址获取对应的IP地址。
- IPv6(Internet Protocol version 6):是IP协议的下一代版本,用于解决IPv4地址空间不足的问题。IPv6采用128位地址长度,提供了更大的地址空间,支持更多的设备连接到互联网。
网络接口层常见协议
- 以太网协议(Ethernet):是一种常见的局域网技术,使用MAC地址进行帧的传输和接收。
- 无线局域网协议(Wi-Fi):用于无线局域网的数据传输,通常基于IEEE 802.11标准。
- 点对点协议(PPP):用于建立点对点连接的协议,通常用于拨号连接和虚拟专用网(VPN)等场景。
- 数据链路层交换协议(DLC):用于在数据链路层进行数据交换和管理的协议,如HDLC、SLIP和PPP等

TCP
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP旨在在不可靠的互联网环境中为应用程序提供可靠的、顺序的、无差错的数据流服务
以下是TCP的主要特点和功能:
-
面向连接
TCP在传输数据之前必须先建立连接,数据传送结束后要释放连接。由于TCP是面向连接的,所以它能提供可靠的、点对点的服务
-
可靠性
TCP通过校验和、序列号、确认应答、重传控制、连接管理以及流量控制等机制实现可靠性传输。TCP对发送的每一个字节都有一个序列号,在接收端会按照序列号来重组数据。同时,接收端会发送一个确认应答给发送端,表示已经收到数据。如果发送端在指定时间内没有收到确认应答,那么它会重发数据。
-
流量控制
TCP使用滑动窗口协议来实现流量控制,以避免发送方发送速率过快导致接收方来不及处理。
-
拥塞控制
TCP通过慢开始、拥塞避免、快重传和快恢复等算法来防止网络拥塞
-
全双工通信
TCP允许数据在两个方向上同时传输,即全双工通信
-
面向字节流
TCP将应用层发下来的报文看成字节流,不区分应用层发下来的数据包。TCP把数据包封装成TCP报文段并添加TCP头部,然后交付给IP层发送
-
总结
TCP是互联网上广泛使用的协议,它为各种应用层协议(如HTTP、FTP、SMTP等)提供了可靠的、基于连接的传输服务。在大多数情况下,当我们谈论基于网络的通信时,所使用的协议栈中的传输层协议就是TCP。
-
UDP
UDP(User Datagram Protocol,用户数据报协议)是传输层的一个无连接协议,它提供面向事务的简单不可靠信息传输服务。UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务。在TCP/IP协议模型中,UDP为网络层以上和应用层以下提供了一个简单的接口,接收来自应用程序的数据报并处理来自IP层的数据报,然后把它们发送到网络上。
以下是UDP的主要特点:
-
无连接
UDP在发送数据之前不需要建立连接,发送方可以随时发送数据,接收方也可以随时接收数据。这种无连接的特性使得UDP的开销较小,数据传输效率高。
-
不可靠
UDP不保证数据包的顺序、错误或重传。如果数据包在传输过程中丢失或损坏,UDP不会采取任何补救措施。因此,UDP通常用于对实时性要求较高、但对数据可靠性要求不高的应用,如视频流、音频流、实时游戏等。
-
头部开销小
UDP的头部开销比TCP小,只包含必要的字段,如源端口、目的端口、长度和校验和。这有助于减少网络传输的延迟和带宽消耗。
-
支持一对多,多对一多对多的通信
UDP支持广播和组播功能。可以实现一对多、多对一、多对多的通信模式。
-
传输效率高
由于UDP没有建立连接、确认数据、处理重传等步骤,因此其传输效率相对较高。但是这也意味着UDP在传输过程中可能会丢失数据
-
适合传输少量数据
对于需要传输大量数据的场景,TCP通常更为合适。然后,对于需要快速响应和实时应用或需要传输少量数据的场景,UDP可能是一个更好的选择
-
总结
总的来说,UDP是一种简单、高效的传输层协议,适用于对实时性要求较高、但对数据可靠性要求不高的应用场景。然后,对于需要可靠传输的场景,还是建议使用TCP协议。
TCP和UDP的主要区别
-
连接性
TCP是面向连接的协议,它在传输数据之前需要建立连接(三次握手),并在数据传输完成后关闭连接(四次挥手)。这种连接是全双工的,即数据可以在两个方向上同时传输。
UDP则是无连接的协议,它不需要建立或关闭连接,发送方可以直接发送数据报,接收方也可以随时接收数据报。
-
可靠性
TCP提供可靠的传输服务。它使用确认和重传机制来确保数据正确、完整、有序地到达目的地。TCP还通过流量控制和拥塞控制机制来防止网络过载。
UDP则提供不可靠的传输服务。它不检查数据包的顺序、错误或重传。如果数据包在传输过程中丢失或损坏,UDP不会采取任何补救措施。因此,UDP通常用于对实时性要求较高、但对数据可靠性要求不高的应用(如视频流、音频流、实时游戏等)
-
头部开销
TCP的头部开销相对较大,包含更多的控制信息,如序列号、确认号、窗口大小等。
UDP的头部开销较小,只包含必要的字段,如源端口、目的端口、长度和校验和。
-
传输效率
由于TCP需要建立连接、确认数据、处理重传等,所以其传输效率相对较低。但这也使得TCP在需要可靠传输的场景下表现更好。
UDP则不需要这些额外的步骤,因为其传输效率更高。但这也意味着UDP在传输过程中可能会丢失数据
-
应用场景
TCP通常用于需要可靠传输的场景,如文件存储、电子邮件、远程登录等。
UDP则常用于对实时性要求较高、但对数据可靠性要求不高的场景,如视频流、音频流、DNS查询、VoIP(网络电话)等。
-
流浪控制和拥塞控制
TCP具有流量控制和拥塞控制机制,可以根据网络状况动态调整发送速率,以防止网络拥塞和丢包。
UDP则没有这些机制,它只负责将数据报从源端发送到目的端,则不关心网络状况和数据传输质量
-
一对一,一对多,多对一,和多对多通信
TCP通常用于一对一的通信,即一个TCP连接只能有一个发送方和一个接收方。
UDP则支持一对多、多对一和多对多的通信模式,可以实现广播和组播功能
转载于:https://blog.csdn.net/longfeng995/article/details/139657477
-