介绍
对网络的基本理解对于管理服务器的任何人都很重要。 不仅是让您的服务在线和运行顺利,它还为您提供了洞察,以诊断问题的关键。
本文档将提供一些常见的网络概念的基本概述。 我们将讨论基本术语,公共协议,以及不同网络层的职责和特点。
本指南与操作系统无关,但在实施利用服务器网络的功能和服务时应该非常有帮助。
网络术语
在我们开始讨论任何深度的网络之前,我们必须定义一些常见术语,您将在本指南以及其他有关网络的指南和文档中看到。
这些术语将在随后的适当部分进行扩展:
连接 :在网络中,一个连接指的相关信息片被通过网络转移。 这通常推断在数据传输之前建立连接(通过遵循在协议中布置的过程),然后在数据传输结束时解构。
包 :一个包,一般来说,也就是转移通过网络最基本的单元。 当通过网络通信时,包是从一个端点到另一个端点携带您的数据(以片为单位)的包络。
分组具有包含关于分组的信息的报头部分,包括源和目的地,时间戳,网络跳等。分组的主要部分包含正被传送的实际数据。 它有时被称为身体或有效载荷。
- 网络接口 :一个网络接口可以指任何种类的软件接口的联网硬件。 例如,如果计算机中有两个网卡,则可以单独控制和配置与其关联的每个网络接口。
网络接口可以与物理设备相关联,或者它可以是虚拟接口的表示。 作为本地机的虚拟接口的“环回”设备就是这样的示例。
LAN:LAN代表“局域网”。 它指的是更大的互联网不可公开访问的网络或网络的一部分。 家庭或办公室网络是LAN的示例。
WAN:WAN代表“广域网”。 这意味着比LAN更广泛的网络。 虽然WAN是用于描述一般的大型分散网络的相关术语,但它通常意味着整个互联网。
如果接口被称为连接到WAN,通常假设它可以通过互联网到达。
- 协议 :协议是一组规则和标准,基本上定义了设备可使用通信的语言。 在网络中广泛使用大量协议,并且它们通常在不同的层中实现。
一些低级协议是TCP,UDP,IP和ICMP。 基于这些较低协议的应用程序层协议的一些常见示例是HTTP(用于访问Web内容),SSH,TLS / SSL和FTP。
端口 :端口是一台机器,可以绑定到特定的软件上的一个地址。 它不是物理接口或位置,但它允许您的服务器能够使用多个应用程序进行通信。
防火墙 :防火墙是决定业务是否进入服务器或外出应允许一个程序。 防火墙通常通过创建在哪些端口上可接受的流量类型的规则来工作。 通常,防火墙阻止服务器上特定应用程序未使用的端口。
NAT:NAT表示网络地址转换。 它是一种将传入到路由服务器的请求转换到它在LAN中知道的相关设备或服务器的方法。 这通常在物理LAN中实现,作为通过一个IP地址将请求路由到必要的后端服务器的一种方法。
VPN:VPN表示虚拟专用网络。 它是通过互联网连接单独的LAN,同时保持隐私的一种手段。 这被用作连接远程系统的手段,就像它们在本地网络上,通常出于安全原因。
有很多其他的术语,你可能会遇到,这个列表不能穷尽。 我们将根据需要解释其他术语。 在这一点上,你应该了解一些基本的,高层次的概念,这将使我们能够更好地讨论下面的主题。
网络层
虽然通常以水平方式在主机之间讨论网络拓扑,但是其实现在整个计算机或网络中以垂直方式分层。
这意味着,有多个技术和协议建立在彼此的顶部,以使通信更容易地运行。 每个连续的更高层抽象原始数据一点点,并使它更容易为应用程序和用户使用。
它还允许您以新的方式利用低层,而无需投入时间和精力来开发处理这些类型的流量的协议和应用程序。
我们用来谈论每个分层方案的语言会根据您使用的模型而显着不同。 不管用于讨论层的模型,数据的路径是相同的。
当数据从一个机器发出时,它从的顶部开始并向下过滤。 在最低层,实际传输到另一台机器。 在这一点上,数据通过另一计算机的层向上传播。
每个层都有能力在它从相邻层接收的数据周围添加自己的“包装器”,这将有助于后面的层决定在数据被传递时对数据做什么。
OSI模型
过去,谈论网络通信的不同层次的一种方法是OSI模型。 OSI代表开放系统互连。
此模型定义七个单独的图层。 此模型中的图层为:
应用 :应用层是用户和用户的应用程序最经常与之交互的层。 就资源的可用性,与之通信的合作伙伴以及数据同步来讨论网络通信。
演示 :表示层负责测绘资源和创造环境。 它用于将低级网络数据转换为应用程序期望看到的数据。
会话 :会话层的连接处理程序。 它以持久方式创建,维护和销毁节点之间的连接。
交通 :传输层负责办理其上面的层的可靠连接。 在此上下文中,可靠是指验证在连接的另一端完整接收到一条数据的能力。
此层可以重新发送已丢弃或损坏的信息,并可以确认数据到远程计算机的接收。
网络 :该网络层用于在网络上的不同节点之间路由数据。 它使用地址能够告诉哪台计算机发送信息。 该层还可以将较大的消息拆分为较小的块,以在相对端重新组装。
数据链接 :该层被实现为建立和维护使用现有的物理连接的网络上的不同节点或设备之间的可靠链路的方法。
物理 :物理层负责处理,用于进行连接的实际物理设备。 该层涉及管理物理连接的裸软件以及硬件本身(如以太网)。
正如你可以看到的,有许多不同的层可以讨论基于它们接近裸硬件和它们提供的功能。
TCP / IP模型
TCP / IP模型,更通常被称为因特网协议组,是更简单并且已被广泛采用的另一分层模型。 它定义了四个单独的层,其中一些与OSI模型重叠:
- 应用 :在此模型中,应用程序层负责创建和应用程序之间传送用户数据。 应用程序可以在远程系统上,并且应该看起来像本地对最终用户操作。
据说通信发生在对等体之间。
交通 :传输层负责进程之间的通信。 这种级别的网络利用端口来解决不同的服务。 它可以建立不可靠或可靠的连接,取决于所使用的协议类型。
因特网 :互联网层被用来从节点传输数据的网络中向节点。 此层知道连接的端点,但不担心从一个地方到另一个地点需要的实际连接。 在该层中定义IP地址作为以可寻址方式到达远程系统的方式。
链接 :链接层实现本地网络,其允许互联网层呈现一个可寻址接口的实际拓扑结构。 它在相邻节点之间建立连接以发送数据。
正如你可以看到的,TCP / IP模型,有点更抽象和流动。 这使得它更容易实现,并允许它成为网络层被分类的主要方式。
接口
接口是计算机的网络通信点。 每个接口与物理或虚拟网络设备相关联。
通常,您的服务器将为每个以太网或无线互联网卡有一个可配置的网络接口。
此外,它将定义一个称为“loopback”或localhost接口的虚拟网络接口。 这用作将单个计算机上的应用程序和进程连接到其他应用程序和进程的接口。 你可以看到这在许多工具中被称为“lo”接口。
很多时候,管理员配置一个接口为互联网服务流量,另一个接口为LAN或专用网络。
在DigitalOcean中,在启用了专用网络的数据中心中,您的VPS将具有两个网络接口(除本地接口之外)。 “eth0”接口将被配置为处理来自互联网的流量,而“eth1”接口将操作以与专用网络通信。
协议
网络通过将许多不同的协议搭载在彼此之上来工作。 以这种方式,可以使用彼此封装的多个协议来传输一条数据。
我们将讨论一些更常见的协议,你可能会遇到,并试图解释差异,以及给出上下文,它们涉及到的过程的哪部分。
我们将从在较低网络层上实现的协议开始,并且以更高抽象的协议工作。
媒体访问控制
媒体访问控制是用于区分特定设备的通信协议。 每个设备应该在制造过程中获得唯一的MAC地址,以区别于互联网上的每个其他设备。
通过MAC地址寻址硬件允许您通过唯一值引用设备,即使在操作期间顶部的软件可能更改该特定设备的名称。
媒体访问控制是来自链路层的唯一可能与定期交互的协议之一。
IP
IP协议是允许互联网工作的基本协议之一。 IP地址在每个网络上是唯一的,并且它们允许机器通过网络彼此寻址。 它在IP / TCP模型的互联网层实现。
网络可以链接在一起,但是流量必须在跨越网络边界时路由。 此协议假定一个不可靠的网络和到同一目的地的多条路径,它可以在它们之间动态地改变。
有许多不同的协议实现。 今天最常见的实现是IPv4,尽管IPv6由于可用的IPv4地址稀缺和协议能力的改进而日益普及作为替代方案。
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代表超文本传输协议。 它是在应用层中定义的协议,它形成了web上通信的基础。
HTTP定义了许多函数,告诉远程系统你正在请求什么。 例如,GET,POST和DELETE都以不同的方式与请求的数据交互。
FTP
FTP表示文件传输协议。 它也在应用程序层中,并提供了将完整文件从一个主机传输到另一个主机的方法。
它本质上是不安全的,因此不推荐用于任何面向外部的网络,除非它被实现为公共的,仅下载资源。
DNS
DNS代表域名系统。 它是一个应用层协议,用于为互联网资源提供人性化的命名机制。 这是一个域名绑定到一个IP地址,并允许您访问网站的名称在您的浏览器。
SSH
SSH代表安全shell。 它是在应用层中实现的加密协议,可用于以安全的方式与远程服务器通信。 由于其端到端加密和无处不在,许多附加技术围绕该协议构建。
有许多我们没有覆盖的其他协议同样重要。 然而,这应该给你一个很好的概述一些基础技术,使互联网和网络可能。
结论
在这一点上,您应该熟悉一些基本的网络术语,并且能够了解不同的组件如何能够相互通信。 这将有助于您了解其他文章和您的系统的文档。