OSI:
OSI(Open Systems Interconnection)模型是一个用于描述计算机网络协议体系结构的概念模型,由国际标准化组织(ISO)在20世纪80年代提出并定义。它将计算机网络通信过程划分为七个不同的层次,每个层次负责执行特定的功能,从而实现网络中的数据传输。
以下是OSI模型的七个层次:
1.物理层(Physical Layer):这一层处理物理传输媒介(如电缆、光纤等)上的比特流传输,主要关注数据的物理传输和电信号的编码。
2.数据链路层(Data Link Layer):数据链路层负责在相邻节点之间可靠地传输数据帧,通过物理地址(MAC地址)来识别网络设备,并处理数据帧的传输错误。
3.网络层(Network Layer):网络层负责在不同网络之间进行数据包的路由和转发,通过IP地址来标识和定位主机,实现不同网络之间的通信。
4.传输层(Transport Layer):传输层提供端到端的数据传输服务,负责分割和重组数据、建立和维护端到端的连接,以及处理数据的可靠性、流量控制和拥塞控制。
5.会话层(Session Layer):会话层负责建立、管理和终止应用程序之间的会话连接,提供会话控制和同步功能。
6.表示层(Presentation Layer):表示层负责数据的格式化、编码和加密,确保不同系统之间的数据能正确地解释和处理。
7.应用层(Application Layer):应用层提供网络服务和应用程序之间的接口,包括电子邮件、文件传输、远程登录等各种网络应用。
每个层次都有特定的功能和协议,数据在不同层次之间通过封装和解封装来传输。OSI模型提供了一个通用的框架,使不同厂商开发的计算机网络设备和协议能够互相兼容和交互操作。尽管实际上的网络协议体系结构并不完全符合OSI模型,但它仍然是理解计算机网络通信原理的重要参考和基础。
在计算机网络中,协议和标准是实现网络通信所必需的重要概念。它们定义了网络设备和系统之间的通信规则、数据格式、控制流程等,以确保网络的正常运行和互操作性。下面详细解释协议和标准的含义和作用:
协议(Protocol):
协议是一组规则和约定,用于在网络中实现数据传输和通信。
它规定了数据的格式、传输方式、操作流程、错误处理等细节,以确保发送方和接收方能够理解和解释数据。
协议可以被视为一种交流语言,确保网络中的各个节点之间能够相互理解和协同工作。
例如,传输控制协议(TCP)是一种用于可靠数据传输的协议,它规定了数据的分段、序列号、确认机制等,以确保数据的完整性和可靠性。
标准(Standard):
标准是一份正式的文件或规范,定义了在特定领域中应遵循的技术、规则和流程。
它提供了一种共同的参考和规范,使得不同厂商和组织能够在相同的技术基础上进行开发和实现。
标准通常由国际标准化组织(ISO)、互联网工程任务组(IETF)等组织制定,并经过广泛的讨论和协商,以确保其广泛的适用性和可接受性。
例如,以太网是一种局域网标准,定义了在以太网上进行数据传输所需遵循的物理层和数据链路层协议。
协议和标准在网络中起着关键的作用:
互操作性:协议和标准确保不同厂商和组织的设备和系统能够相互通信和交互操作,实现互操作性。
统一规范:协议和标准提供了一种统一的规范,确保网络中的各个组件按照相同的规则进行通信和操作。
网络安全:协议和标准定义了安全性和加密机制,以确保数据在传输过程中的保密性、完整性和认证。
可扩展性:协议和标准为网络的发展提供了可扩展性,新的技术和功能可以在现有的框架下进行扩展和添加。
常见的协议和标准包括但不限于以太网(Ethernet)、传输控制协议/互联网协议(TCP/IP)、超文本传输协议(HTTP)、域名系统(DNS)、简单网络管理协议(SNMP)等。这些协议和标准在计算机网络中扮演重要的角色,支持各种网络应用和服务的正常运行。
封装(Encapsulation)和解封装(Decapsulation)是OSI模型中数据在不同层次之间传输时所采用的处理方式。这两个概念描述了数据在通过网络协议栈的每个层次时,如何添加或去除相应的首部(Header)或尾部(Trailer)信息。
封装(Encapsulation):
封装是指在发送端将数据从应用层开始逐层添加首部或尾部信息的过程,使其逐渐形成一个数据包(Packet)或帧(Frame)的结构。
每个层次在封装过程中会添加特定的首部或尾部信息,用于传递必要的控制信息和数据描述,以便在接收端进行正确的解封装和处理。
例如,当数据从应用层向下传输到传输层时,传输层会在数据上添加传输层首部(如TCP首部),以标识端口号、序号、校验和等信息。
解封装(Decapsulation):
解封装是指在接收端将数据从物理层开始逐层去除首部或尾部信息的过程,使其逐渐恢复为原始的数据格式。
每个层次在解封装过程中会去除相应的首部或尾部信息,并将剩余的数据传递给上一层进行进一步的处理和传输。
例如,当数据从物理层向上传输到数据链路层时,数据链路层会去除物理层的首部(如MAC地址),并将剩余的数据传递给网络层。
数据包或帧的结构:
随着数据在网络协议栈中的封装,每个层次会在数据上添加特定的首部或尾部,形成一个具有层次结构的数据包或帧。
每个首部或尾部包含了特定的字段和信息,用于传递控制信息、地址信息、校验和等。
在接收端的解封装过程中,每个层次会根据相应的首部或尾部信息来识别和提取所需的数据,并将剩余的数据传递给上一层。
封装和解封装的过程使数据能够在不同层次之间进行传输和处理,每个层次负责特定的功能和服务。通过封装和解封装,不同的网络设备和协议能够互相兼容和交互操作,从而实现了网络的正常通信。
实际网络协议体系结构:
实际的网络协议体系结构通常是基于OSI模型进行设计和实现的,但并不严格遵循七层结构,而是更加简化或合并了一些层次。
最常见的网络协议体系结构是TCP/IP协议栈,它将OSI模型的网络层、传输层和应用层合并为一个网络层和一个应用层。
OSI模型的优点:
提供了一个通用的框架,使不同厂商的设备和协议能够互操作和兼容。
便于网络协议的设计、开发和维护。
促进了网络标准化和互联网的发展。
我们刚刚看到的OSI 模型只是一个参考/逻辑模型。它旨在通过将通信过程划分为更小和更简单的组件来描述通信系统的功能。但是当我们谈论 TCP/IP 模型时,它是由国防部 (DoD) 在 1960 年代设计和开发的,并且基于标准协议。它代表传输控制协议/互联网协议。TCP /IP 模型是 OSI 模型的简明版本。它包含四层,与 OSI 模型中的七层不同。
层数有时称为五层或四层。在本文中,我们将研究五个层。物理层和数据链路层在 4 层参考中被称为一个单独的层,称为“物理层”或“网络接口层”。
这些层是:
应用层
传输层(TCP/UDP)
网络/互联网层(IP)
数据链路层 (MAC)
物理层
1.物理层:
它是一组需要网络通信的应用程序。该层负责生成数据和请求连接。它代表发送方,网络访问层代表接收方。在这篇文章中,我们将代表接收者进行交谈。
2.数据链路层:
数据包的网络协议类型(在本例中为 TCP/IP)由数据链路层识别。数据链路层也提供错误预防和“成帧”。点对点协议 (PPP) 成帧和以太网 IEEE 802.2 成帧是数据链路层协议的两个示例。
3.互联网层:
该层与 OSI 网络层的功能相似。它定义了负责在整个网络上进行数据逻辑传输的协议。驻留在这一层的主要协议如下:
IP –代表 Internet 协议,它负责通过查看数据包标头中的 IP 地址将数据包从源主机传送到目标主机。IP 有 2 个版本:IPv4 和 IPv6。IPv4 是大多数网站当前使用的一种。但 IPv6 正在增长,因为与用户数量相比,IPv4 地址的数量有限。
ICMP –代表互联网控制消息协议。它封装在 IP 数据报中,负责为主机提供有关网络问题的信息。
ARP –代表地址解析协议。它的工作是从已知的 IP 地址中找到主机的硬件地址。ARP有几种类型:Reverse ARP、Proxy ARP、Gratuitous ARP和Inverse ARP。
互联网层是互联网协议 (IP) 套件中的一层,它是定义互联网的一组协议。互联网层负责通过网络将数据包从一台设备路由到另一台设备。它通过为每个设备分配一个唯一的 IP 地址来实现这一点,该地址用于识别设备并确定数据包到达它所应采用的路由。
以下是互联网层的用例示例:
想象一下,您正在使用计算机向朋友发送电子邮件。当您点击“发送”时,电子邮件被分解成更小的数据包,然后被发送到互联网层进行路由。互联网层为每个数据包分配一个 IP 地址,并使用路由表来确定数据包到达目的地的最佳路由。然后数据包被转发到其路由上的下一跳,直到到达目的地。当所有数据包都已发送后,您朋友的计算机可以将它们重新组合成原始电子邮件。
在此示例中,Internet 层在将电子邮件从您的计算机传送到您朋友的计算机中起着至关重要的作用。它使用 IP 地址和路由表来确定数据包采用的最佳路由,并确保将数据包传送到正确的目的地。没有互联网层,就不可能通过互联网发送数据。
4.传输层:
TCP/IP 传输层协议交换数据接收确认并重新传输丢失的数据包以确保数据包按顺序到达且没有错误。端到端通信就是这样称呼的。传输控制协议(TCP)和用户数据报协议是这一层的传输层协议(UDP)。
TCP:应用程序可以使用 TCP 相互交互,就好像它们通过电路物理连接一样。TCP 以类似于逐个字符传输而不是单独数据包的方式传输数据。一个建立连接的起点,整个字节顺序的传输,和一个关闭连接的终点组成了这次传输。
UDP:数据报传送服务由另一个传输层协议 UDP 提供。UDP 不验证接收主机和发送主机之间的连接。传输少量数据的应用程序使用 UDP 而不是 TCP,因为它消除了建立和验证连接的过程。
5、应用层:
该层类似于 OSI 模型的传输层。它负责端到端的通信和无差错的数据传输。它为上层应用程序屏蔽了数据的复杂性。该层中存在的三个主要协议是:
HTTP 和 HTTPS – HTTP 代表超文本传输协议。万维网使用它来管理 Web 浏览器和服务器之间的通信。HTTPS 代表 HTTP 安全。它是 HTTP 与 SSL(安全套接字层)的组合。在浏览器需要填写表格、登录、验证和进行银行交易的情况下,它非常有效。
SSH – SSH 代表安全外壳。它是一个类似于Telnet 的终端仿真软件。SSH 更受欢迎的原因是因为它能够维护加密连接。它通过 TCP/IP 连接建立安全会话。
NTP – NTP 代表网络时间协议。它用于将我们计算机上的时钟同步到一个标准时间源。它在银行交易等情况下非常有用。在不存在 NTP 的情况下假设以下情况。假设您执行一项交易,您的计算机在下午 2:30 读取时间,而服务器在下午 2:28 记录时间。如果不同步,服务器可能会严重崩溃。
主机到主机层是 OSI(开放系统互连)模型中的一个层,负责提供网络上主机(计算机或其他设备)之间的通信。它也被称为传输层。
主机到主机层的一些常见用例包括:
可靠的数据传输:主机到主机层通过使用纠错和流量控制等技术确保数据在主机之间可靠地传输。例如,如果一个数据包在传输过程中丢失,主机到主机层可以请求重传该数据包以确保所有数据都被正确接收。
分段和重组:主机到主机层负责将大数据块分解成可通过网络传输的较小段,然后在目的地重组数据。这允许更有效地传输数据并有助于避免网络过载。
多路复用和多路分解:主机到主机层负责将来自多个源的数据多路复用到单个网络连接上,然后在目的地对数据进行多路分解。这允许多个设备共享同一个网络连接,有助于提高网络的利用率。
端到端通信:主机到主机层提供面向连接的服务,允许主机端到端地相互通信,而不需要中间设备参与通信。
例如:
考虑一个有两台主机 A 和 B 的网络。主机 A 想向主机 B 发送一个文件。主机 A 中的主机到主机层会将文件分成更小的段,添加纠错和流量控制信息,然后通过网络将数据段传输到主机 B。主机 B 中的主机到主机层将接收数据段、检查错误并重新组装文件。一旦文件传输成功,主机 B 中的主机到主机层将向主机 A 确认收到文件。
在这个例子中,主机到主机层负责在主机 A 和主机 B 之间提供可靠的连接,将文件分成更小的段,并在目的地重新组装这些段。它还负责多路复用和多路分解数据,并提供两台主机之间的端到端通信。
最后,面向连接的层让我们以表格格式了解 TCP/IP 和 OSI 模型之间的差异,如下所示:遵循无连接。