网络术语、端口、协议
导言
对网络的基本了解对于任何管理服务器的人来说都很重要。这不仅对让您的服务在线和平稳运行至关重要,而且还为您提供了诊断问题的洞察力。
本文件将提供一些常见网络概念的基本概述。我们将讨论基本术语、通用协议以及不同层次网络的责任和特点。
本指南与操作系统无关,但在实现利用服务器上网络的功能和服务时,应该非常有帮助。
网络术语表
在我们开始深入讨论网络之前,我们必须定义一些常见的术语,您将在本指南以及其他有关网络的指南和文档中看到。
这些术语将在以下适当章节中扩展:
-
连接:在网络中,连接是指通过网络传输的相关信息。这通常推断,连接是在数据传输之前构建的(通过遵循协议中规定的程序),然后在数据传输结束时解构。
-
数据包:一般来说,数据包是通过网络传输的最基本的单元。通过网络通信时,数据包是将您的数据(成块)从一个端点到另一个端点的信封。
数据包有一个标题部分,其中包含有关数据包的信息,包括源和目标、时间戳、网络跳动等。数据包的主要部分包含要传输的实际数据。它有时被称为身体或有效载荷。
-
网络接口:网络接口可以指网络硬件的任何类型的软件接口。例如,如果您的计算机中有两张网卡,您可以单独控制和配置与它们关联的每个网络接口。
网络接口可以与物理设备相关联,也可以是虚拟接口的表示。“环回”设备是本地机器的虚拟接口,就是一个例子。
-
局域网:局域网代表“局域网”。它指的是更大的互联网无法公开访问的网络或网络的一部分。家庭或办公室网络是局域网的一个例子。
-
广域网:广域网代表“广域网”。它意味着一个比局域网广泛得多的网络。虽然广域网是用来描述大型分散网络的相关术语,但它通常意味着整个互联网。
如果说接口连接到广域网,通常假设它可以通过互联网访问。
-
协议:协议是一套规则和标准,基本上定义了设备可用于通信的语言。网络中广泛使用了大量协议,它们通常在不同层实现。
一些低级协议是TCP、UDP、IP和ICMP。基于这些较低协议的应用程序层协议的一些熟悉示例是HTTP(用于访问Web内容)、SSH、TLS/SSL和FTP。
-
端口:端口是一台机器上可以绑定到特定软件的地址。它不是一个物理接口或位置,但它允许您的服务器能够使用多个应用程序进行通信。
-
防火墙:防火墙是一个程序,它决定是否允许进入服务器或进出服务器的流量。防火墙通常通过创建哪些类型的流量可以在哪些端口上接受来工作。一般来说,防火墙会阻止服务器上特定应用程序不使用的端口。
-
NAT:NAT代表网络地址转换。这是一种将传入路由服务器的请求转换为它在局域网中知道的相关设备或服务器的方法。这通常在物理局域网中实现,作为通过一个IP地址将请求路由到必要的后端服务器的一种方式。
-
VPN:VPN代表虚拟专用网络。它是一种通过互联网连接独立局域网的手段,同时保持隐私。这通常出于安全原因,被用作连接远程系统的手段,就像它们在本地网络上一样。
你可能会遇到许多其他术语,这个列表不能详尽无遗。我们会根据需要解释其他术语。此时,您应该了解一些基本的、高级的概念,这将使我们能够更好地讨论即将到来的主题。
网络层
虽然网络经常以横向拓扑的方式讨论,但在主机之间,其实现在整个计算机或网络中以垂直方式分层。
这意味着有多种技术和协议相互建立,以便通信更轻松地运行。每个连续的更高层都更多地抽象原始数据,使其更容易用于应用程序和用户。
它还允许您以新的方式利用较低层,而无需投入时间和精力来开发处理这些类型流量的协议和应用程序。
我们用来谈论每种分层方案的语言因您使用的模型而异。无论用于讨论图层的模型如何,数据路径都是一样的。
当数据从一台机器发送时,它从堆栈顶部开始,向下过滤。在最低层,实际传输到另一台机器。此时,数据通过另一台计算机的层层返回。
每个层都能够在从相邻层收到的数据周围添加自己的“wrapper”,这将有助于之后的层决定在数据传递时如何处理数据。
OSI模型
从历史上看,谈论不同层网络通信的一种方法是OSI模型。OSI代表Open Systems Interconnect。
该模型定义了七个独立的层。该模型中的图层是:
-
应用程序:应用程序层是用户和用户应用程序最常与之交互的层。从资源可用性、与之通信的合作伙伴和数据同步方面讨论了网络通信。
-
演示文稿:演示文稿层负责映射资源和创建上下文。它用于将较低级别的网络数据转换为应用程序期望看到的数据。
-
会话:会话层是一个连接处理程序。它以持久的方式创建、维护和破坏节点之间的连接。
-
传输:传输层负责为上面的层提供可靠的连接。在这种情况下,可靠是指验证连接另一端是否完整接收数据的能力。
此层可以重新发送已删除或损坏的信息,并可以确认接收到远程计算机的数据。
-
网络:网络层用于在网络上的不同节点之间路由数据。它使用地址来判断要向哪台计算机发送信息。该层还可以将较大的消息分解成更小的块,以便在另一端重新组装。
-
数据链路:该层是作为使用现有物理连接在网络上不同节点或设备之间建立和维护可靠链接的一种方法。
-
物理:物理层负责处理用于连接的实际物理设备。该层涉及管理物理连接的裸机软件以及硬件本身(如以太网)。
如您所见,根据它们与裸机硬件的接近程度及其提供的功能,可以讨论许多不同的层。
TCP/IP模型
TCP/IP模型,通常称为互联网协议套件,是另一个更简单且已被广泛采用的分层模型。它定义了四个独立的层,其中一些与OSI模型重叠:
-
应用程序:在此模型中,应用程序层负责在应用程序之间创建和传输用户数据。这些应用程序可以在远程系统上运行,并且应该看起来像是本地对最终用户一样运行。
据说沟通发生在同行之间。
-
传输:传输层负责流程之间的通信。这种级别的网络利用端口来处理不同的服务。根据所使用的协议类型,它可以建立不可靠或可靠的连接。
-
互联网:互联网层用于在网络中将数据从一个节点传输到另一个节点。该层了解连接的端点,但不担心从一个地方到另一个地方所需的实际连接。IP地址在此层中被定义为以可寻址方式访问远程系统的一种方式。
-
链接:链接层实现了本地网络的实际拓扑结构,允许互联网层呈现可寻址的接口。它在相邻节点之间建立连接以发送数据。
如您所见,TCP/IP模型更加抽象和流畅。这使它更容易实现,并使其成为网络层分类的主要方式。
接口
接口是您计算机的网络通信点。每个接口都与物理或虚拟网络设备相关联。
通常,您的服务器将为您的每张以太网或无线互联网卡配备一个可配置的网络接口。
此外,它将定义一个名为“环回”或本地主机接口的虚拟网络接口。这被用作将一台计算机上的应用程序和进程连接到其他应用程序和进程的接口。您可以在许多工具中看到这被引用为“lo”界面。
很多时候,管理员配置一个接口来服务互联网流量,另一个接口为局域网或专用网络提供服务。
在DigitalOcean中,在启用专用网络的数据中心,您的VPS将有两个网络接口(除了本地接口)。“eth0”接口将配置为处理来自互联网的流量,而“eth1”接口将用于与专用网络通信。
协议
网络的工作原理是背着许多不同的协议。通过这种方式,可以使用相互封装的多个协议传输一段数据。
我们将讨论您可能遇到的一些更常见的协议,并试图解释其区别,并给出它们涉及流程的哪个部分的上下文。
我们将从在较低的网络层上实现的协议开始,并一直致力于具有更高抽象的协议。
中等访问控制
中型访问控制是一种用于区分特定设备的通信协议。在制造过程中,每台设备都应该获得一个唯一的媒体访问控制地址(MAC地址),将其与互联网上的所有其他设备区分开来。
通过MAC地址寻址硬件允许您通过唯一值引用设备,即使顶部的软件可能会在运行期间更改该特定设备的名称。
中等访问控制是链接层中唯一可能定期交互的协议之一。
IP
IP协议是允许互联网工作的基本协议之一。IP地址在每个网络上都是唯一的,它们允许机器在网络上相互寻址。它在IP/TCP模型的互联网层上实现。
网络可以连接在一起,但跨越网络边界时必须路由流量。该协议假设网络不可靠,并有多个路径前往同一目的地,可以在两者之间动态更改。
该协议有许多不同的实现。今天最常见的实现是IPv4,尽管由于IPv4地址稀缺和协议功能的改进,IPv6作为替代品越来越受欢迎。
ICMP
ICMP代表互联网控制消息协议。它用于在设备之间发送消息,以指示可用性或错误条件。这些数据包用于各种网络诊断工具,如ping和traceroute。
通常,当不同类型的数据包遇到某种问题时,会传输ICMP数据包。基本上,它们被用作网络通信的反馈机制。
TCP
TCP代表传输控制协议。它在IP/TCP模型的传输层中实现,并用于建立可靠的连接。
TCP是将数据封装到数据包中的协议之一。然后,它使用下层可用的方法将这些传输到连接的远程端。在另一端,它可以检查错误,请求重新发送某些部分,并将信息重新组装成一个逻辑部分以发送到应用程序层。
该协议在数据传输之前使用称为三向握手的系统建立连接。这是通信两端确认请求并商定确保数据可靠性的方法的一种方式。
数据发送后,使用类似的四向握手将断开连接。
TCP是互联网许多最流行用途的首选协议,包括WWW、FTP、SSH和电子邮件。可以肯定地说,如果没有TCP,我们今天知道的互联网就不会在这里。
UDP
UDP代表用户数据报协议。它是TCP的流行配套协议,也在传输层中实现。
UDP和TCP之间的根本区别在于UDP提供不可靠的数据传输。它没有验证连接的另一端是否已收到数据。这听起来可能是一件坏事,出于许多目的,它是坏事。然而,这对某些功能也极其重要。
由于不需要等待数据已收到并被迫重新发送数据的确认,UDP比TCP快得多。它不会与远程主机建立连接,它只是将数据发射到该主机,并且不在乎它是否被接受。
因为它是一个简单的事务,所以对于查询网络资源等简单通信非常有用。它也不保持状态,这使得它非常适合将数据从一台机器传输到许多实时客户端。这使得它非常适合VOIP、游戏和其他负担不起延迟的应用程序。
HTTP
HTTP代表超文本传输协议。它是应用程序层中定义的协议,构成了网络通信的基础。
HTTP定义了许多函数,告诉远程系统您正在请求的内容。例如,GET、POST和DELETE都以不同的方式与请求的数据交互。
FTP
FTP代表文件传输协议。它也在应用程序层中,提供了一种将完整文件从一个主机传输到另一个主机的方法。
它本质上不安全,因此不建议用于任何面向外部的网络,除非它作为公共、仅下载的资源实现。
DNS
DNS代表域名系统。它是一种应用程序层协议,用于为互联网资源提供人性化的命名机制。它将域名与IP地址联系起来,并允许您在浏览器中按名称访问网站。
SSH
SSH代表安全外壳。它是在应用程序层中实现的加密协议,可用于以安全的方式与远程服务器通信。由于其端到端加密和无处不在,围绕该协议构建了许多其他技术。
还有许多其他我们尚未涵盖的协议同样重要。然而,这应该能很好地概述一些使互联网和网络成为可能的基本技术。
结论
此时,您应该熟悉一些基本的网络术语,并能够了解不同组件如何相互通信。这应该有助于您了解其他文章和系统文档。