网络术语、接口与协议简介
简介
引言
对于任何管理服务器的人来说,理解网络是非常重要的。它不仅对于将您的服务在线上并正常运行至关重要,而且还能让您洞察问题所在,进行诊断。
这篇文章将概述一些常见的网络概念。我们将讨论术语、常见协议,以及网络不同层级的职责和特征。
这份指南不受操作系统限制,但在服务器上实施利用网络的功能和服务时应非常有帮助。
网络术语字典
首先,我们将定义一些常见的术语,这些术语将在本指南以及其他与网络相关的指南和文档中经常出现。
这些术语将在后续适当的章节中进行详细阐述。
- Connection: In networking, a connection refers to pieces of related information that are transferred through a network. Generally speaking, a connection is established before data transfer (by following the procedures laid out in a protocol) and may be deconstructed at the end of the data transfer.
- Packet: A packet is the smallest unit that is intentionally transferred over a network. When communicating over a network, packets are the envelopes that carry your data (in pieces) from one end point to the other.
数据包包含一个包头部分,其中包含有关数据包的信息,包括源地址、目标地址、时间戳、网络跳数等。数据包的主要部分包含正在传输的实际数据。有时也被称为正文或有效载荷。
- Network Interface: A network interface can refer to any kind of software interface to networking hardware. For instance, if you have two network cards in your computer, you can control and configure each network interface associated with them individually.
一个网络接口可以与物理设备关联,也可以是虚拟接口的表示。在大多数Linux环境中可用的“环回”设备就是这样的一个例子,它可以用于连接回同一台机器。
- LAN: LAN stands for “local area network”. It refers to a network or a portion of a network that is not publicly accessible to the greater internet. A home or office network is an example of a LAN.
- WAN: WAN stands for “wide area network”. It means a network that is much more extensive than a LAN. While WAN is the relevant term to use to describe large, dispersed networks in general, it is usually meant to mean the internet, as a whole.
如果说一个接口已连接到广域网(WAN),通常会认为它可以通过互联网进行访问。
- Protocol: A protocol is a set of rules and standards that define a language that devices can use to communicate. There are a great number of protocols in use extensively in networking, and they are often implemented in different layers.
一些低级协议包括TCP、UDP、IP和ICMP。一些基于这些低级协议构建的应用层协议的熟悉例子有HTTP(用于访问网络内容)、SSH和TLS/SSL。
- Port: A port is an address on a single machine that can be tied to a specific piece of software. It is not a physical interface or location, but it allows your server to be able to communicate using more than one application.
- Firewall: A firewall is a program that decides whether traffic coming or going from a server should be allowed. A firewall usually works by creating rules for which type of traffic is acceptable on which ports. Generally, firewalls block ports that are not used by a specific application on a server.
- NAT: NAT stands for network address translation. It is a way to repackage and send incoming requests to a routing server to the relevant devices or servers on a LAN. This is usually implemented in physical LANs as a way to route requests through one IP address to the necessary backend servers.
- VPN: VPN stands for virtual private network. It is a means of connecting separate LANs through the internet, while maintaining privacy. This is used to connect remote systems as if they were on a local network, often for security reasons.
在未来的学习过程中,你会遇到许多其他术语,而这个列表并不是详尽无遗的。我们将在需要时为你解释其他术语。目前,你应该理解一些高层次的概念,以便我们更好地讨论即将要涉及的话题。
网络层次
尽管网络通常以水平的拓扑结构(主机之间)进行讨论,但在任何计算机或网络中,它的实现是以垂直方式分层的。
这意味着通信需要建立在多种技术和协议的基础之上。每一层的上级层都对原始数据进行了一些抽象处理。
这还可以帮助你以新的方式利用较低层,而无需投入时间和精力开发处理这些类型流量的协议和应用。
无论使用哪种模型来讨论分层方案,我们用来交流各个分层模式的语言都会有显著差异。然而,无论使用哪个模型来讨论这些层级,数据的路径都是相同的。
在数据从一台机器发送出去时,它从堆栈的顶部开始向下过滤。在最低层,将数据实际传输到另一台机器。此时,数据通过另一台计算机的各层向上传输。
每一层都有能力在接收到来自相邻层的数据时,为其添加自己的“包装器”,这将帮助后续层对数据进行决策。
TCP/IP模型
传输控制协议/互联网协议模型,更常被称为互联网协议套件,是一种广泛采用的分层模型。它定义了四个独立的层次:
- Application: In this model, the application layer is responsible for creating and transmitting user data between applications. The applications can be on remote systems, and should appear to operate as if locally to the end user. This communication is said to take place between peers.
- Transport: The transport layer is responsible for communication between processes. This level of networking utilizes ports to address different services.
- Internet: The internet layer is used to transport data from node to node in a network. This layer is aware of the endpoints of the connections, but is not concerned with the actual connection needed to get from one place to another. IP addresses are defined in this layer as a way of reaching remote systems in an addressable manner.
- Link: The link layer implements the actual topology of the local network that allows the internet layer to present an addressable interface. It establishes connections between neighboring nodes to send data.
正如你可以看到的,TCP / IP模型是抽象且流动的。这使得它成为了流行的实现方式,并使其成为了网络层次被分类的主流方式。
界面 (jiè
接口是计算机的网络通信点。每个接口都与一个物理或虚拟的网络设备相关联。
通常情况下,您的服务器将为每个以太网或无线网卡配置一个可配置的网络接口。
此外,它将定义一个名为“回送”或本地主机接口的虚拟网络接口。这被用作将单台计算机上的应用程序和进程连接到其他应用程序和进程的接口。在许多工具中,您可以看到它被引用为“lo”接口。
很多时候,管理员会配置一个接口用于处理与互联网的通信流量,另一个接口用于局域网或私有网络。
在启用私有网络的数据中心(包括Silicon Cloud vServers),您的VPS将具有两个网络接口。 “eth0″接口将配置为处理来自互联网的流量,而”eth1″接口将用于与私有网络进行通信。
协议
网络工作是通过在一系列不同的协议上进行叠加来实现的。通过这种方式,一个数据可以使用多个协议相互嵌套地传输。
我们将从较低的网络层开始实施协议,并逐步向更高的抽象层协议发展。
媒体访问控制
中等访问控制是一种通信协议,用于区分特定设备。每个设备在制造时应获得一个唯一的、硬编码的媒体访问控制地址(MAC地址),以将其与互联网上的其他设备区分开来。
通过MAC地址来定位硬件,即使上层软件在运行过程中更改了特定设备的名称,您仍能通过唯一的值来引用该设备。
MAC地址是你很可能会定期与之交互的低层链路层中的少数协议之一。
IP的原文为 “Internet Protocol” (互联网协议) ,可尝试以下一种释义版:IP是指互联网协议。
IP协议是允许互联网正常运作的基础协议之一。每个网络上的IP地址都是唯一的,它们允许机器在网络上彼此通信。在TCP/IP模型中,IP协议被实现在互联网层。
网络可以连接在一起,但当跨越网络边界时,必须进行路由处理。该协议假设网络不可靠,并且存在多条可动态切换的到达同一目的地的路径。
现在有许多不同的协议实现。如今最常见的实现是IPv4地址,其遵循123.123.123.123的模式,尽管由于可用的IPv4地址有限,IPv6地址的使用越来越普遍,它遵循2001:0db8:0000:0000:0000:ff00:0042:8329的模式。
ICMP(Internet Control Message Protocol)可以用中文表达为“互联网控制消息协议”。
ICMP 是互联网控制消息协议的缩写。它用于在设备之间发送消息以指示它们的可用性或错误情况。这些数据包在各种网络诊断工具(如 ping 和 traceroute)中使用。
通常情况下,当不同类型的数据包遇到问题时,会传输ICMP数据包。它们用作网络通信的反馈机制。
传输控制协议
TCP是传输控制协议的缩写。它被实现在TCP/IP模型的传输层,用于建立可靠连接。
TCP是将数据封装成数据包的协议之一,然后通过底层可用的方法将其传输到连接的远程端。在另外一端,它可以检查错误,请求重新发送指定的部分,并将信息重新组装成一个逻辑部分发送到应用层。
此协议通过称为“三次握手”的系统,在数据传输之前建立连接。 这是通信双方确认请求并商定确保数据可靠性的方法。
在数据发送完毕后,使用类似的四次握手来中断连接。
对于互联网的许多最受欢迎的用途,包括WWW、SSH和电子邮件,TCP是首选的协议。
用户数据报协议 (UDP)
UDP代表用户数据报协议。它是TCP的流行伴侣协议,并且也被实现在传输层。
UDP和TCP的基本差异在于,UDP提供的是不可靠的数据传输。它不验证数据是否已在连接的另一端接收。这听起来可能不好,对于许多目的来说确实如此。但是,对于某些功能来说,这也非常重要。
因为UDP不需要等待确认数据是否已接收并强制重新发送数据,所以它比TCP更快。它不会与远程主机建立连接,只是在没有确认的情况下发送数据。
因为这是一个直接的交易,对于像查询网络资源这样的通信非常有用。它也不维持状态,这使得它非常适合将数据从一台机器传输到许多实时客户端。这使得它成为VOIP、游戏和其他不能容忍延迟的应用的理想选择。
HTTP 可以被描述为超文本传输协议。
HTTP代表超文本传输协议。它是应用层中定义的一种协议,构成了网络通信的基础。
HTTP定义了一些动词,告诉远程系统你在请求什么。例如,GET,POST和DELETE使用不同的方式与所请求的数据交互。要查看不同HTTP请求的示例,请参考《如何在Express中定义路由和HTTP请求方法》。
域名系统
DNS代表域名系统。它是一个应用层协议,用于为互联网资源提供人类友好的命名机制。它将域名与IP地址关联起来,使您能够通过浏览器的名称访问网站。
SSH 可以被翻译为”安全外壳协议”。
SSH代表着安全外壳协议。这是一个应用层中实现的加密协议,可以用于安全地与远程服务器通信。由于其端到端加密和广泛应用的特性,许多附加技术围绕着这个协议而建立。
尽管我们还有许多未涉及但同样重要的协议,但以上概述应该让你对构建互联网和网络的一些基本技术有个良好的了解。
结论
到这个阶段,你应该熟悉一些网络术语,并且能够理解不同组件是如何相互通信的。这将帮助你理解其他文章和系统文档。
接下来,作为一个高级的真实世界示例,你可能想阅读《如何在Go中进行HTTP请求》。