了解OSI模型和TCP/IP模型
在上一篇关于互联网的工作原理的数据传输中,我们了解到,两台计算机之间传输数据时,需要将数据封装成数据包。这些数据包中不仅包含我们实际要传输的信息,还包括很多额外的内容,比如目标地址、发件人的地址等等。
那么问题来了:这些额外的信息应该放在数据包的哪里?我们又如何区分哪些是我们需要传输的核心数据,哪些是为了保障传输顺利而添加的附加信息?
显然,这些信息不能随意塞进数据包里。就像快递包装一样,只有遵循一套标准的打包方式,才能确保在传输过程中不出岔子。所以,为了规范和标准化网络通信,工程师们设计了OSI模型 和TCP/IP模型,用来规范数据的封装和传输。
OSI模型与TCP/IP模型的区别
或许你会问:既然有了一个模型,为什么还要有两个呢?它们之间有什么区别和联系?
其实很简单,OSI模型是一个理论框架,它把网络通信分为7层,每一层都有各自的职责。这个模型非常详细和规范,非常适合我们用来学习和理解网络是如何运作的。但是,OSI模型更多地是一种理想化的设计,并没有广泛地应用在实际中。
而TCP/IP模型就不一样了。它只有4层或5层,设计更简化,目的就是为了解决实际网络通信中的问题。TCP/IP模型广泛应用于互联网,是我们日常使用的计算机网络中实际运行的"规矩"。
换句话说,OSI模型更适合研究和学习,而TCP/IP模型则是在现实中"干活"的那个。正因为如此,在实际网络中,TCP/IP模型成为了更常用的协议栈,而OSI模型则更多地作为理解网络原理的理论工具来使用。
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模型的设计初衷是为了更好地支持互联网的通信需求,因此它的层次划分更贴近实际的网络通信过程。TCP/IP模型有四层(或五层,取决于具体分类),它们分别是:
- 网络接口层(Network Interface Layer):对应OSI模型的物理层和数据链路层。这一层负责处理数据如何在同一网络(通常是局域网)内传输,包括如何访问物理介质、如何组装和解析帧等。
- 互联网层(Internet Layer):对应OSI模型的网络层。这一层负责数据包的路由和转发,决定数据如何通过不同的网络传输到达目的地。
- 传输层(Transport Layer):对应OSI模型的传输层。这一层提供端到端的通信服务,确保数据可以可靠、有序地从一个进程传输到另一个进程。
- 应用层(Application Layer):综合了OSI模型的会话层、表示层和应用层的功能。它为用户提供直接的网络服务,如文件传输、电子邮件、远程登录等。
如果有五层的话,就是将网络接口层划分为物理层和数据链路层
OSI模型与TCP/IP模型在这里只是写出了它的功能,但是你并不能够理解实际的数据联通过程和很深刻的了解在每个层中都完成了那些事情,所以仅仅了解到这里是远远不够的,还需要你再深入地去学习。
但作为入门的博客,你大致的理解就已经是一个不错的开端了,山之千仞,始于垒土,这里也只是告诫大家要进一步的去学习,而不是浅尝辄止。
关键网络协议简介(HTTP/HTTPS、TCP/UDP、DNS)
HTTP/HTTPS
HTTP(Hypertext Transfer Protocol)
HTTP ,全称超文本传输协议,是用于传输网页数据的应用层协议。当我们在浏览器中输入一个网址并访问网页时,浏览器和服务器之间的通信就是通过HTTP进行的。
HTTP的工作流程非常简单:
- 客户端(浏览器)发起请求:当你在浏览器中输入一个网址(URL)时,浏览器会向服务器发送一个HTTP请求,要求访问特定的资源(如网页、图片、视频等)。
- 服务器响应请求:服务器接收到请求后,处理请求并返回相应的资源(如网页内容)给客户端。
- 浏览器显示内容:浏览器接收到服务器返回的资源后,会将这些资源渲染成我们看到的网页。
HTTP的特点:
- 无状态性 :每一次HTTP请求都是独立的,与之前的请求没有关联。这意味着服务器不会记住前一次请求的状态。为了实现"记住用户"的功能(如登录状态),通常会使用Cookie 和Session技术。
- 明文传输:HTTP传输的数据是明文的,意味着数据在传输过程中容易被窃听和篡改。这也是HTTP不够安全的原因之一。
HTTPS(Hypertext Transfer Protocol Secure)
HTTPS 是HTTP的加密版本,使用了SSL/TLS协议来加密数据,确保数据传输的安全性。HTTPS解决了HTTP的几个重要问题:
- 数据加密:HTTPS通过SSL/TLS协议加密传输的数据,确保数据在传输过程中不会被窃听。
- 数据完整性:HTTPS能够检测数据在传输过程中是否被篡改,确保数据的完整性。
- 身份验证:通过数字证书,HTTPS能够验证服务器的身份,确保客户端访问的是合法的服务器,而不是伪装的服务器。
HTTPS已经成为互联网上的主流协议,尤其是在需要传输敏感信息的场合(如登录页面、支付页面)中,使用HTTPS是必不可少的。
2. TCP/UDP
TCP(Transmission Control Protocol)
TCP,即传输控制协议,是一种面向连接的、可靠的传输层协议。它保证了数据从发送端到接收端的可靠传输,常用于需要高可靠性的数据传输场景,如文件传输、网页浏览、电子邮件等。
TCP的主要特点:
- 连接管理:TCP在数据传输之前,需要先建立连接(即"三次握手"),在传输结束后,需要断开连接(即"四次挥手")。这种连接管理确保了数据传输的可靠性。
- 数据分段与重组:TCP会将大块数据分成多个小段进行传输,并在接收端重新组装。这保证了数据能够有序、完整地到达接收端。
- 可靠传输:TCP通过确认应答机制,确保每一个数据段都被成功接收。如果接收端未收到某个数据段,TCP会重新发送该数据段,直到确认成功接收。
UDP(User Datagram Protocol)
UDP,即用户数据报协议,是一种面向无连接的传输层协议。与TCP相比,UDP更加轻量,不保证数据的可靠性、有序性和完整性,但传输速度快,适用于实时传输或对丢包不敏感的场景,如视频会议、在线游戏、实时语音等。
UDP的主要特点:
- 无连接:UDP在发送数据之前不需要建立连接,直接将数据发送给接收端。这使得UDP具有较低的延迟。
- 不保证可靠性:UDP不会追踪已发送的数据包,也不会确认是否成功接收。发送端只管发送,接收端如果漏掉数据包,UDP不会重发。
- 更快的传输速度:由于UDP省去了连接管理和确认应答机制,因此传输速度比TCP更快。
3. DNS(Domain Name System)
DNS,即域名系统,是互联网的"电话簿",负责将人类易读的域名(如www.example.com)转换为计算机可识别的IP地址(如192.0.2.1)。当你在浏览器中输入一个域名时,DNS会将其解析为IP地址,从而使浏览器能够找到相应的服务器并访问网站。
DNS的工作流程:
- 查询DNS服务器:当用户输入域名时,浏览器会首先查询本地的DNS缓存,如果没有命中缓存,就会向DNS服务器发起请求,询问该域名对应的IP地址。
- 递归解析:如果DNS服务器没有缓存请求的域名,它会向更高级别的DNS服务器(如根DNS服务器)递归查询,直到找到正确的IP地址。
- 返回结果:最终,DNS服务器将找到的IP地址返回给浏览器,浏览器再使用该IP地址访问目标网站。
DNS的重要性:
- 便捷性:用户不需要记住复杂的IP地址,只需要记住简单的域名。
- 灵活性:域名可以指向不同的IP地址,便于网站迁移和服务器更换。
- 全球分布式系统:DNS采用分布式架构,全球各地的DNS服务器共同维护域名解析的效率和稳定性。