1、OSI模型
OSI模型(Open Systems Interconnection model)是一个网络通信协议参考模型,将网络通信协议划分为七个不同的层次。每个层次都负责特定的功能,从物理层到应用层,提供了一种标准化的方式来实现网络通信。以下是OSI模型的七层:
1.物理层(Physical Layer)
物理层是最底层,负责传输原始的比特(bit)流。它处理与物理介质的传输方式有关的操作,如电压、电流和光信号的传输。
2.数据链路层(Data Link Layer)
数据链路层负责在物理连接上传输数据帧。它提供了可靠的点对点数据传输,并处理物理错误的校正和检测。
3.网络层(Network Layer)
网络层负责在网络上传输数据包。它定义了如何在不同的网络中路由数据,以及如何进行网络寻址和转发。
4.传输层(Transport Layer)
传输层提供了端到端的数据传输和可靠性。它负责分段和重新组装数据,以及提供流量控制和差错恢复。
5.会话层(Session Layer)
会话层建立、管理和终止会话。它处理不同主机之间的通信会话,并在必要时提供会话恢复和管理。
6.表示层(Presentation Layer)
表示层负责数据的表示和转换,以确保不同系统之间的数据格式兼容。它处理加密、压缩、编码和解码等操作。
7.应用层(Application Layer)
应用层提供了用户与网络的接口,支持特定的应用程序和服务。它包含各种协议和应用程序,如HTTP、SMTP、FTP等。
每个层次在网络通信中有着不同的功能和职责,并通过层与层之间的接口进行通信。OSI模型的设计使得不同厂商和组织可以分别开发和实现不同层次的协议,从而形成互操作性的网络环境。该模型提供了一种结构化的方法来理解和设计网络协议和通信系统。然而,实际的网络通信中,并不是所有的层都是必需的,而且现代网络通信通常使用更简化和组合的协议栈,如TCP/IP协议栈。
2、TCP/IP协议
(一)TCP/IP协议的应用层
应用层包括所有和应用程序协同工作,并利用基础网络交换应用程序的业务数据的协议。一些特定的程序被认为运行在这个层上,该层协议所提供的服务能直接支持用户应用。应用层协议包括HTTP(万维网服务)、FTP(文件传输)、SMTP(电子邮件)、SSH(安全远程登陆)、DNS(域名解析)以及许多其他协议。
(二)TCP/IP协议的传输层
传输层的协议,解决了诸如端到端可靠性问题,能确保数据可靠的到达目的地,甚至能保证数据按照正确的顺序到达目的地。传输层的主要功能大致如下:
(1)为端到端连接提供传输服务;
(2)这种传输服务分为可靠和不可靠的,其中TCP是典型的可靠传输,而UDP则是不可靠传输;
(3)为端到端连接提供流量控制、差错控制、服务质量等管理服务。
传输层主要有两个性质不同的协议:TCP传输控制协议和UDP用户数据报协议。
TCP协议是一个面向连接的、可靠的传输协议,它提供一种可靠的字节流,能保证数据完整、无损并且按顺序到达。TCP尽量连续不断地测试网络的负载并且控制发送数据的速度以避免网络过载。另外,TCP试图将数据按照规定的顺序发送。
UDP协议是一个无连接的数据报协议,是一个“尽力传递”和“不可靠”协议,不会对数据包是否已经到达目的地进行检查,并且不保证数据包按顺序到达。
总体来说,TCP协议传输效率低,但可靠性强;UDP协议传输效率高,但可靠性略低,适用于传输可靠性要求不高、体量小的数据(比如QQ聊天数据)。
(三)TCP/IP协议的网络层
TCP/IP协议网络层的作用是在复杂的网络环境中为要发送的数据报找到一个合适的路径进行传输。简单来说,网络层负责将数据传输到目标地址,目标地址可以是多个网络通过路由器连接而成的某一个地址。另外,网络层负责寻找合适的路径到达对方计算机,并把数据帧传送给对方,网络层还可以实现拥塞控制、网际互连等功能。网络层协议的代表包括:ICMP、IP、IGMP等。
(四)TCP/IP协议的链路层
链路层有时也称作数据链路层或网络接口层,用来处理连接网络的硬件部分。该层既包括操作系统硬件的设备驱动、NIC(网卡)、光纤等物理可见部分,还包括连接器等一切传输媒介。在这一层,数据的传输单位为比特。其主要协议有ARP、RARP等。
3、常见的通信协议
通信协议是指在计算机网络中,数据交换和传输的规则和标准。基于特定的通信协议,不同的设备可以相互连接并传递信息。以下是一些常用的通信协议:
TCP/IP协议:TCP/IP协议是Internet上应用最广泛的协议之一,它分为两个部分:TCP(传输控制协议)和IP(Internet协议)。TCP/IP协议是一种面向连接的协议,它用于在多个计算机之间传输数据,并确保数据的顺序和可靠性。
HTTP协议:HTTP(HyperText Transfer Protocol)协议是一种应用层协议,用于在Web浏览器和Web服务器之间传输数据。它是一种无状态的协议,它把每个请求作为一个独立的事务处理,不保留任何客户端的信息。
FTP协议:FTP(File Transfer Protocol)协议是一种用于在计算机之间传输文件的协议。FTP协议有两种模式:主动模式和被动模式。在主动模式下,客户端在数据传输之前告诉服务器端其要使用的数据端口,而在被动模式下,则是在数据传输之前服务器端告诉客户端要使用哪个数据端口。
SMTP协议:SMTP(Simple Mail Transfer Protocol)协议是一种用于在计算机之间传输电子邮件的协议。它是一种面向文本的协议,可以使用Telnet工具进行测试。
POP3协议:POP3(Post Office Protocol 3)协议是一种用于在计算机之间传输电子邮件的协议。它被设计用于从邮件服务器上下载电子邮件。
DNS协议:DNS(Domain Name System)协议是一种将域名转换成IP地址的协议。DNS协议通过将域名和IP地址进行映射,使得我们可以使用人类可读的域名来访问Web页面,而不必使用复杂的IP地址。
SSH协议:SSH(Secure Shell)协议是一种用于加密远程访问的协议。SSH协议通过加密通信,确保了远程访问的安全,避免了中间人攻击和数据泄露等问题。
Telnet协议:Telnet协议是一种用于远程登录的协议。它将计算机连接到远程计算机,使得用户可以在远程计算机上执行命令,并进行文件传输和调试。但由于它不加密通信,已经被SSH所取代。