在上一篇关于互联网的工作原理的数据传输中,我们了解到,两台计算机之间传输数据时,需要将数据封装成数据包。这些数据包中不仅包含我们实际要传输的信息,还包括很多额外的内容,比如目标地址、发件人的地址等等。
那么问题来了:这些额外的信息应该放在数据包的哪里?我们又如何区分哪些是我们需要传输的核心数据,哪些是为了保障传输顺利而添加的附加信息?
显然,这些信息不能随意塞进数据包里。就像快递包装一样,只有遵循一套标准的打包方式,才能确保在传输过程中不出岔子。所以,为了规范和标准化网络通信,工程师们设计了OSI模型和TCP/IP模型,用来规范数据的封装和传输。
或许你会问:既然有了一个模型,为什么还要有两个呢?它们之间有什么区别和联系?
其实很简单,OSI模型是一个理论框架,它把网络通信分为7层,每一层都有各自的职责。这个模型非常详细和规范,非常适合我们用来学习和理解网络是如何运作的。但是,OSI模型更多地是一种理想化的设计,并没有广泛地应用在实际中。
而TCP/IP模型就不一样了。它只有4层或5层,设计更简化,目的就是为了解决实际网络通信中的问题。TCP/IP模型广泛应用于互联网,是我们日常使用的计算机网络中实际运行的“规矩”。
换句话说,OSI模型更适合研究和学习,而TCP/IP模型则是在现实中“干活”的那个。正因为如此,在实际网络中,TCP/IP模型成为了更常用的协议栈,而OSI模型则更多地作为理解网络原理的理论工具来使用。
OSI(Open Systems Interconnection,开放式系统互连)模型是由国际标准化组织(ISO)在1984年提出的一个网络通信模型。它的目的是为了定义网络通信的标准框架,使得不同的网络设备和系统能够互操作。OSI模型将网络通信过程分成了7个层次,每一层都有特定的功能和职责,这种分层的设计使得网络通信过程更加清晰和模块化。
物理层负责在物理媒体上传输原始的比特流,即将数据以电信号、光信号或无线信号的形式传输。它定义了网络设备之间的物理连接方式、信号的电压、电流、光的强度等特性。
典型的设备有:网线、集线器、交换机(工作在物理层模式下)等。
协议与标准:以太网标准(Ethernet)、光纤标准(Fibre Channel)等。
数据链路层负责将物理层传输的原始比特流组织成帧(Frame),并提供错误检测和纠正功能,确保数据在同一网络中的可靠传输。数据链路层还负责控制网络中多个设备之间的访问权(如媒介访问控制MAC)。
典型的设备有:交换机、网卡。
协议与标准:以太网(Ethernet)、Wi-Fi(IEEE 802.11)、PPP(Point-to-Point Protocol)等。
网络层负责数据包的路由和转发,决定数据从源到目的地的路径。它解决的是跨越多个网络的传输问题,因此它是实现不同网络之间互连的关键层次。
典型的设备:路由器。
协议与标准:IP(Internet Protocol)、ICMP(Internet Control Message Protocol)、ARP(Address Resolution Protocol)等。
传输层负责端到端的数据传输和控制,确保数据可靠、有序地传输到目标应用程序。它提供了数据分段、流量控制、差错校验、数据重传等功能。
典型的协议:TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)。
协议的特点:TCP提供可靠的、面向连接的服务,而UDP则提供无连接的、尽力而为的数据传输服务。
会话层负责建立、管理和终止应用程序之间的会话。它提供了会话建立、数据同步、恢复等功能,以确保会话数据的顺序和完整性。
使用场景:如远程过程调用(RPC)、会话管理协议等。
协议与标准:NetBIOS、PPTP(Point-to-Point Tunneling Protocol)等。
表示层负责数据的格式化和转换,以便不同系统之间能够理解和正确处理数据。它还负责数据的加密、解密、压缩和解压缩。
使用场景:例如,将不同字符集的数据转换成通用格式、加密数据传输。
协议与标准:SSL/TLS(用于数据加密)、JPEG、MPEG、GIF等格式。
应用层为用户提供网络服务的接口,它直接与用户的应用程序交互。应用层提供了很多网络服务,如文件传输、电子邮件、远程登录、网络管理等。
使用场景:用户常用的网络操作,如浏览网页、发送电子邮件等。
协议与标准:HTTP(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)、DNS(Domain Name System)等。
TCP/IP模型的设计初衷是为了更好地支持互联网的通信需求,因此它的层次划分更贴近实际的网络通信过程。TCP/IP模型有四层(或五层,取决于具体分类),它们分别是:
如果有五层的话,就是将网络接口层划分为物理层和数据链路层
OSI模型与TCP/IP模型在这里只是写出了它的功能,但是你并不能够理解实际的数据联通过程和很深刻的了解在每个层中都完成了那些事情,所以仅仅了解到这里是远远不够的,还需要你再深入地去学习。
但作为入门的博客,你大致的理解就已经是一个不错的开端了,山之千仞,始于垒土,这里也只是告诫大家要进一步的去学习,而不是浅尝辄止。
HTTP,全称超文本传输协议,是用于传输网页数据的应用层协议。当我们在浏览器中输入一个网址并访问网页时,浏览器和服务器之间的通信就是通过HTTP进行的。
HTTP的工作流程非常简单:
HTTP的特点:
HTTPS是HTTP的加密版本,使用了SSL/TLS协议来加密数据,确保数据传输的安全性。HTTPS解决了HTTP的几个重要问题:
HTTPS已经成为互联网上的主流协议,尤其是在需要传输敏感信息的场合(如登录页面、支付页面)中,使用HTTPS是必不可少的。
TCP,即传输控制协议,是一种面向连接的、可靠的传输层协议。它保证了数据从发送端到接收端的可靠传输,常用于需要高可靠性的数据传输场景,如文件传输、网页浏览、电子邮件等。
TCP的主要特点:
UDP,即用户数据报协议,是一种面向无连接的传输层协议。与TCP相比,UDP更加轻量,不保证数据的可靠性、有序性和完整性,但传输速度快,适用于实时传输或对丢包不敏感的场景,如视频会议、在线游戏、实时语音等。
UDP的主要特点:
DNS,即域名系统,是互联网的“电话簿”,负责将人类易读的域名(如www.example.com)转换为计算机可识别的IP地址(如192.0.2.1)。当你在浏览器中输入一个域名时,DNS会将其解析为IP地址,从而使浏览器能够找到相应的服务器并访问网站。
DNS的工作流程:
DNS的重要性: