网络术语、接口和协议简介

来自菜鸟教程
跳转至:导航、​搜索

介绍


对于管理服务器的任何人来说,对网络的基本了解都很重要。 它不仅对于让您的服务在线和平稳运行至关重要,而且还让您能够洞察诊断问题。

本文档将提供一些常见网络概念的基本概述。 我们将讨论基本术语、通用协议以及不同网络层的职责和特征。

本指南与操作系统无关,但在实施利用服务器网络的功能和服务时应该非常有用。

网络词汇表


在我们开始深入讨论网络之前,我们必须定义一些您将在本指南以及其他有关网络的指南和文档中看到的常用术语。

这些术语将在以下相应部分中进行扩展:

  • Connection:在网络中,连接是指通过网络传输的相关信息。 这通常意味着在数据传输之前建立连接(通过遵循协议中规定的过程),然后在数据传输结束时解构。

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

    数据包有一个标头部分,其中包含有关数据包的信息,包括源和目标、时间戳、网络跃点等。 数据包的主要部分包含正在传输的实际数据。 它有时被称为主体或有效载荷。

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

    网络接口可以与物理设备相关联,或者它可以是虚拟接口的表示。 作为本地机器的虚拟接口的“环回”设备就是一个例子。

  • LAN:LAN 代表“局域网”。 它是指一个网络或网络的一部分,不能对更大的互联网公开访问。 家庭或办公室网络是 LAN 的一个示例。

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

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

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

    一些低级协议是 TCP、UDP、IP 和 ICMP。 基于这些较低协议的应用层协议的一些熟悉示例包括 HTTP(用于访问 Web 内容)、SSH、TLS/SSL 和 FTP。

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

  • Firewall:防火墙是一个程序,它决定是否应允许进入服务器或流出的流量。 防火墙通常通过为哪些端口上可接受的流量类型创建规则来工作。 通常,防火墙会阻止服务器上特定应用程序未使用的端口。

  • NAT:NAT代表网络地址转换。 这是一种将传入路由服务器的请求转换为它在 LAN 中知道的相关设备或服务器的方法。 这通常在物理 LAN 中实现,作为通过一个 IP 地址将请求路由到必要的后端服务器的一种方式。

  • VPN:VPN 代表虚拟专用网络。 它是一种通过互联网连接不同局域网的方法,同时保持隐私。 这被用作连接远程系统的一种方式,就像它们在本地网络上一样,通常是出于安全原因。

您可能会遇到许多其他术语,并且此列表不能详尽无遗。 我们将根据需要解释其他术语。 此时,您应该了解一些基本的高级概念,这将使我们能够更好地讨论即将到来的主题。

网络层


虽然网络通常以水平方式在拓扑方面进行讨论,但在主机之间,其实现在整个计算机或网络中以垂直方式分层。

这意味着有多种技术和协议建立在彼此之上,以便更轻松地进行通信。 每个连续的更高层都对原始数据进行了更多抽象,并使其更易于应用程序和用户使用。

它还允许您以新的方式利用较低层,而无需投入时间和精力来开发处理这些类型流量的协议和应用程序。

我们用来讨论每个分层方案的语言根据您使用的模型而有很大差异。 无论用于讨论层的模型如何,数据的路径都是相同的。

当数据从一台机器发出时,它从堆栈顶部开始并向下过滤。 在最低级别,实际传输到另一台机器。 此时,数据通过另一台计算机的层向上传播。

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

OSI 模型


从历史上看,谈论网络通信不同层的一种方法是 OSI 模型。 OSI 代表开放系统互连。

该模型定义了七个独立的层。 该模型中的层是:

  • Application:应用层是用户和用户应用程序最常与之交互的层。 网络通信在资源的可用性、与之通信的合作伙伴和数据同步方面进行了讨论。

  • Presentation:表示层负责映射资源和创建上下文。 它用于将较低级别的网络数据转换为应用程序期望看到的数据。

  • Session:会话层是一个连接处理程序。 它以持久的方式创建、维护和破坏节点之间的连接。

  • Transport:传输层负责处理它上面的层一个可靠的连接。 在这种情况下,可靠是指验证在连接的另一端接收到的数据片段是否完好无损的能力。

    该层可以重新发送已丢失或损坏的信息,并可以向远程计算机确认数据的接收。

  • Network:网络层用于在网络上不同节点之间路由数据。 它使用地址来判断将信息发送到哪台计算机。 该层还可以将较大的消息分解成较小的块,以便在另一端重新组装。

  • Data Link:该层被实现为使用现有物理连接在网络上不同节点或设备之间建立和维护可靠链接的方法。

  • Physical:物理层负责处理用于建立连接的实际物理设备。 这一层涉及管理物理连接的裸软件以及硬件本身(如以太网)。

如您所见,可以根据它们与裸硬件的接近程度以及它们提供的功能来讨论许多不同的层。

TCP/IP 模型


TCP/IP 模型,通常称为 Internet 协议套件,是另一种更简单且已被广泛采用的分层模型。 它定义了四个独立的层,其中一些与 OSI 模型重叠:

  • Application:在这个模型中,应用层负责在应用之间创建和传输用户数据。 应用程序可以在远程系统上,并且对于最终用户来说应该像是在本地运行一样。

    据说通信发生在对等点之间。

  • Transport:传输层负责进程之间的通信。 此级别的网络使用端口来处理不同的服务。 它可以根据使用的协议类型建立不可靠或可靠的连接。

  • Internet:Internet 层用于在网络中从节点到节点传输数据。 该层知道连接的端点,但不担心从一个地方到另一个地方所需的实际连接。 IP 地址在这一层中定义为以可寻址方式访问远程系统的一种方式。

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

如您所见,TCP/IP 模型更加抽象和流畅。 这使其更易于实施,并使其成为网络层分类的主要方式。

接口


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

通常,您的服务器将为您拥有的每张以太网卡或无线网卡配备一个可配置的网络接口。

此外,它将定义一个称为“环回”或本地主机接口的虚拟网络接口。 这用作将单台计算机上的应用程序和进程连接到其他应用程序和进程的接口。 您可以在许多工具中看到这被称为“lo”接口。

很多时候,管理员配置一个接口来为 Internet 的流量提供服务,而另一个接口则用于 LAN 或专用网络。

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

协议


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

我们将讨论您可能会遇到的一些更常见的协议,并尝试解释它们之间的区别,并提供有关它们所涉及的过程部分的上下文。

我们将从在较低网络层上实现的协议开始,然后逐步发展到具有更高抽象的协议。

媒体访问控制


媒体访问控制是一种用于区分特定设备的通信协议。 每个设备都应该在制造过程中获得一个唯一的 媒体访问控制地址 (MAC 地址),以区别于互联网上的所有其他设备。

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

媒体访问控制是您可能定期与之交互的链接层中仅有的协议之一。

知识产权


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

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

该协议有许多不同的实现。 当今最常见的实现是 IPv4,尽管由于可用的 IPv4 地址稀缺和协议功能的改进,IPv6 作为替代方案越来越受欢迎。

ICMP


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

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

TCP


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

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

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

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

TCP 是许多最流行的 Internet 使用的首选协议,包括 WWW、FTP、SSH 和电子邮件。 可以肯定地说,如果没有 TCP,我们今天所知道的互联网就不会存在。

UDP


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

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

因为不需要等待确认收到数据并强制重新发送数据,所以UDP比TCP快得多。 它不与远程主机建立连接,它只是将数据发送到该主机并且不关心它是否被接受。

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

HTTP


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

HTTP 定义了许多函数来告诉远程系统您正在请求什么。 例如,GET、POST 和 DELETE 都以不同的方式与请求的数据交互。

FTP


FTP代表文件传输协议。 它也在应用层,提供了一种将完整文件从一个主机传输到另一个主机的方法。

它本质上是不安全的,因此不建议将其用于任何面向外部的网络,除非它被实现为公共的、仅供下载的资源。

域名系统


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

SSH


SSH 代表安全外壳。 它是在应用层实现的加密协议,可用于以安全的方式与远程服务器进行通信。 由于其端到端加密和普遍性,围绕该协议构建了许多其他技术。

还有许多我们没有涉及的其他同样重要的协议。 但是,这应该让您对一些使互联网和网络成为可能的基本技术有一个很好的概述。

结论


此时,您应该熟悉一些基本的网络术语,并能够理解不同的组件是如何相互通信的。 这应该有助于您理解其他文章和系统文档。