欢迎光临散文网 会员登陆 & 注册

网络术语、接口和协议

2023-03-03 12:58 作者:silenthunter0814  | 我要投稿

1 概述

计算机网络是一个广泛而复杂的主题。对于初学者很难确定一个清晰的初始学习路径。

无论如何,从熟悉一些常见的网络概念开始总是一个不错的实践,这能够让我们在同一层面上讨论一些基本的具体问题而不必为晦涩的"方言"而分心。

这些概念和术语具有通用性,与操作系统无关,但在实现利用服务器网络的功能和服务时应该非常有帮助。


2 网络术语

这些术语将在后面相应部分进行扩展:

Connection

连接:在网络中,连接是指通过网络传输的相关信息。一般来说,连接是在数据传输之前建立的(通过遵循协议中规定的过程),并且可以在数据传输结束时解构。

Packet

数据包:数据包是数据通过网络传输的最小单位。通过网络进行通信时,数据包是将数据(分段)从一个端点传送到另一个端点的信封。

数据包有一个标头部分,其中包含有关数据包的信息,包括源和目标、时间戳、网络跳数等。数据包的主要部分包含正在传输的实际数据。

Interface

网络接口:网络接口可以指代网络硬件的任何类型的软件接口。例如,如果计算机中有两个网卡,我们可以分别控制和配置与它们关联的每个网络接口。

网络接口可以与物理设备相关联,或者它可以是虚拟接口的表示。 “环回”(loopback)设备是大多数 Linux 环境中可用的虚拟接口,用于连接回同一台机器。

LAN

LAN 代表“局域网”。它指的是更大的互联网无法公开访问的网络或网络的一部分。家庭、办公室或校园网络是 LAN 的一个示例。

WAN

WAN 代表“广域网”。它意味着比 LAN 范围更广的网络。虽然 WAN 是用于描述大型、分散的一般网络的相关术语,但它通常是指整个互联网。

如果说接口连接到 WAN,通常假定它可以通过 Internet 访问。

Protocol

协议:协议是一组规则和标准,用于定义设备可用于通信的语言。网络中广泛使用了大量协议,它们通常在不同的层中实现。

一些低级协议是 TCP、UDP、IP 和 ICMP。建立在这些低层协议之上的应用层协议的一些常见示例是 HTTP(用于访问 Web 内容)、SSH 和 TLS/SSL。

Port

端口:端口是一台机器上的一个应用层地址,可以绑定到一个特定的软件。它不是物理接口或位置,但它允许服务器能够使用多个应用程序进行通信。

Firewall

防火墙:防火墙是一种安全控制程序,它决定是否允许来自服务器的流量传入或传出。防火墙通常通过创建规则来确定哪些类型的流量在哪些端口上是可接受的。通常,防火墙会阻止服务器上特定应用程序未使用的端口。

NAT

NAT 代表网络地址转换。它是一种将本地传入请求重新打包并发送到外部互联网络的方法。这通常在物理 LAN 中实现,作为一种通过一个 IP 地址将请求路由到必要的后端服务器的方法。

VPN

VPN 代表虚拟专用网络。它是一种通过 Internet 连接单独的 LAN,同时保持隐私的方法。这用于连接远程系统,就好像它们在本地网络上一样,通常出于安全原因。


3 分层网络

虽然网络通常以拓扑的形式在主机之间以水平方式进行讨论,但其实现是在任何给定计算机或网络中以垂直方式分层的。

当数据从一台机器发出时,它从堆栈的顶部(应用程序)开始并向下(操作系统)过滤。在最低级别,通过网络物理接口实际传输到另一台机器。此时,数据通过另一台计算机的物理层向上传输。

每一层都能够在从相邻层接收到的数据周围添加自己的“包装器”,这将有助于后续层决定在传递数据时如何处理数据。

TCP/IP Model

TCP/IP 模型,通常称为 Internet 协议套件,是一种广泛采用的分层模型。它定义了四个独立的层:

Application

应用层:在该模型中,应用层负责创建和传输应用程序之间的用户数据。这些应用程序可以位于远程系统上,并且对于最终用户来说应该像在本地一样运行。据说这种交流发生在同伴之间。

Transport

传输层:传输层负责进程之间的通信。此级别的网络利用端口来处理不同的服务。

Internet

互联网层:互联网层用于在网络中的节点之间传输数据。该层知道连接的端点,但不关心从一个地方到另一个地方所需的实际连接。 IP 地址在此层中定义为以可寻址方式到达远程系统的一种方式。

Link

链路层:链路层实现本地网络的实际拓扑结构,允许互联网层提供可寻址接口。它在相邻节点之间建立连接以发送数据。

Interfaces

接口是计算机的网络通信点。每个接口都与一个物理或虚拟网络设备相关联。

通常,操作系统将为每个以太网或无线网卡提供一个可配置的网络接口。

此外,操作系统还将定义一个称为“环回”(loopback)或本地主机(localhost)接口的虚拟网络接口。这用作将单个计算机上的应用程序和进程连接到其他应用程序和进程的接口。“环回”设备通常命名为“lo”接口。

在启用了专用网络的数据中心中,VPS(虚拟网络主机) 将有两个网络接口。 “eth0”接口将被配置为处理来自互联网的流量,而“eth1”接口将用于与专用网络通信。


4 协议

网络通过在彼此之上搭载许多不同的协议来工作。通过这种方式,可以使用相互封装的多个协议来传输一份数据。

Media  Access Control

介质访问控制是一种用于区分特定设备的通信协议。每个设备在制造时都应该获得一个唯一的、硬编码的介质访问控制地址(MAC 地址),以区别于互联网上的所有其他设备。

通过 MAC 地址寻址硬件允许通过唯一值引用设备,即使顶部的软件可能在操作期间更改该特定设备的名称也是如此。

MAC 寻址是可交互的低级链路层的唯一协议。

IP (Internet Protocol)

IP协议是允许互联网工作的基本协议之一。 IP 地址在每个网络上都是唯一的,它们允许机器在网络上相互寻址。它是在 TCP/IP 模型中的 Internet 层上实现的。

网络可以链接在一起,但在跨越网络边界时必须路由流量。该协议假设一个不可靠的网络和多条通往同一目的地的路径,它可以在这些路径之间动态切换。

该协议有许多不同的实现。最常见的实现是 IPv4 地址,它遵循 123.123.123.123 模式,而 IPv6 地址,遵循 2001:0db8:0000:0000:0000:ff00:0042:8329 模式,由于 IPv4 数量有限而越来越普遍的应用。

ICMP (Internet Control Message Protocol)

ICMP 代表 Internet 控制消息协议。它用于在设备之间发送消息以指示它们的可用性或错误情况。这些数据包用于各种网络诊断工具,例如 ping 和 traceroute。

通常当不同类型的数据包遇到问题时,会传输 ICMP 数据包。它们用作网络通信的反馈机制。

TCP (Transmission Control Protocol)

TCP代表传输控制协议。它在TCP/IP模型的传输层实现,用于建立可靠的连接。

TCP 是将数据封装到数据包中的协议之一。然后它使用较低层可用的方法将这些传输到连接的远程端。另一方面,它可以检查错误,请求重新发送某些片段,并将信息重新组合成一个逻辑片段发送给应用层。

该协议使用称为三向握手的系统在数据传输之前建立连接。这是通信两端确认请求并商定确保数据可靠性的方法的一种方式。

发送数据后,使用类似的四次握手断开连接。

TCP 是许多最流行的互联网用途的首选协议,包括 WWW、SSH 和电子邮件。

UDP (User Datagram Protocol)

UDP 代表用户数据报协议。它是 TCP 的流行伙伴协议,也在传输层中实现。

UDP 和 TCP 之间的根本区别在于 UDP 提供不可靠的数据传输。它不验证连接的另一端是否已收到数据。这听起来像是一件坏事,而且在许多方面确实如此。但是,它对于某些功能也极为重要。

由于不需要等待确认数据已收到而强制重发数据,UDP 比 TCP 快得多。它不与远程主机建立连接,它只是发送数据而无需确认。

因为它是一个简单的事务,所以它对于查询网络资源等通信非常有用。它也不维护状态,这使得它非常适合将数据从一台机器传输到多个实时客户端。这使其成为 VOIP、游戏和其他无法承受延迟的应用程序的理想选择。

HTTP (Hypertext Transfer Protocol)

HTTP 代表超文本传输协议。它是在应用层中定义的协议,构成了网络通信的基础。

HTTP 定义了一些动词来告诉远程系统你在请求什么。例如,GET、POST 和 HEAD 都以不同的方式与请求的数据进行交互。

HTTP 是应用层协议,它构建在 TCP/IP 协议之上。

DNS (Domain Name System)

DNS 代表域名系统。它是一种应用层协议,用于为互联网资源提供一种人性化的命名机制。它将域名与 IP 地址联系起来,并允许用户在浏览器中按名称访问站点。

SSH (Secure Shell)

SSH 代表安全外壳。它是一种在应用层实现的非对称加密协议,可用于以安全的方式与远程服务器通信。由于其端到端加密和无处不在,许多其他技术(SCP 和 STP, vscode remote) 都是围绕该协议构建的。


5 结论

还有许多其他同样重要的术语和协议我们没有涉及。但是,这应该可以让我们很好地了解互联网络的一些基本技术,并成为我们系统学习网络知识的起点。


网络术语、接口和协议的评论 (共 条)

分享到微博请遵守国家法律