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

本文涉及的产品
云防火墙,500元 1000GB
简介: 网络术语、接口和协议简介

介绍

对于任何管理服务器的人来说,了解网络是非常重要的。它不仅对于将您的服务上线并顺利运行至关重要,还能让您深入诊断问题。

本文将概述一些常见的网络概念。我们将讨论术语、常见协议以及网络不同层的责任和特性。

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

网络术语表

首先,我们将定义一些您将在本指南以及其他关于网络的指南和文档中看到的常见术语。

这些术语将在接下来的适当部分中进行扩展:

  • 连接:在网络中,连接指的是通过网络传输的相关信息。一般来说,在数据传输之前建立连接(按照协议中规定的程序),在数据传输结束时可能会拆除连接。
  • 数据包:数据包是有意传输到网络上的最小单位。在网络通信中,数据包是从一个端点到另一个端点传输数据的信封。

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

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

网络接口可能与物理设备相关联,也可能是虚拟接口的表示。在大多数 Linux 环境中可用的“环回”设备是一个虚拟接口的例子,用于连接回同一台机器。

  • LAN:LAN 指的是“局域网”。它指的是一个网络或网络的一部分,不对更广泛的互联网公开。家庭或办公网络是 LAN 的一个例子。
  • WAN:WAN 指的是“广域网”。它指的是比 LAN 要广泛得多的网络。虽然 WAN 是用来描述一般的大型分散网络的相关术语,但通常指的是互联网作为一个整体。

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

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

一些低层协议包括 TCP、UDP、IP 和 ICMP。建立在这些低层协议之上的一些应用层协议的熟悉例子包括 HTTP(用于访问网络内容)、SSH 和 TLS/SSL。

  • 端口:端口是单台计算机上可以与特定软件关联的地址。它不是物理接口或位置,但它允许您的服务器能够使用多个应用程序进行通信。
  • 防火墙:防火墙是一个决定是否允许服务器上的流量进出的程序。防火墙通常通过为哪种类型的流量在哪个端口上是可接受的创建规则来工作。通常,防火墙会阻止服务器上未使用的端口。
  • NAT:NAT 指的是网络地址转换。这是一种重新打包并将传入请求发送到 LAN 上的相关设备或服务器的路由服务器的方法。这通常在物理 LAN 中实现,作为通过一个 IP 地址将请求路由到必要的后端服务器的方法。
  • VPN:VPN 指的是虚拟专用网络。这是一种通过互联网连接分开的 LAN 的方法,同时保持隐私。这用于连接远程系统,就像它们在本地网络上一样,通常是出于安全原因。

还有许多其他术语,这个列表并不详尽。我们将在需要时解释其他术语。在这一点上,您应该了解一些高层概念,这将使我们能够更好地讨论接下来的主题。

网络层

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

这意味着有多种技术和协议是相互叠加的,以使通信功能正常运行。每个连续的更高层都会对原始数据进行一些抽象。

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

我们用来讨论每个分层方案的语言取决于使用的模型。无论使用哪种模型来讨论层,数据的路径是相同的。

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

每个层都有能力在从相邻层接收的数据周围添加自己的“包装”,这将帮助后续的层在移交数据时决定如何处理数据。

TCP/IP 模型

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

  • 应用层:在该模型中,应用层负责在应用程序之间创建和传输用户数据。这些应用程序可以位于远程系统上,并且应该表现为对最终用户来说是本地操作。这种通信被称为对等通信
  • 传输层:传输层负责进程之间的通信。这种网络层次利用端口来定位不同的服务。
  • 网络层:网络层用于在网络中的节点之间传输数据。该层知道连接的端点,但不关心从一个地方到另一个地方所需的实际连接。IP 地址在该层中被定义为一种可寻址远程系统的方式。
  • 链路层:链路层实现了本地网络的实际拓扑结构,使得网络层能够呈现一个可寻址的接口。它建立相邻节点之间的连接以发送数据。

正如你所看到的,TCP/IP 模型是抽象且灵活的。这使得它成为了实现的热门选择,并使其成为网络层次被分类的主导方式。

接口

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

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

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

许多时候,管理员会配置一个接口来服务于互联网流量,另一个接口用于局域网或私有网络。

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

协议

网络通过在彼此之上堆叠多种不同的协议来工作。这样,一条数据可以使用多个封装在彼此之内的协议进行传输。

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

媒体访问控制

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

通过 MAC 地址寻址硬件,即使上层软件在操作过程中可能会更改该特定设备的名称,您也可以通过唯一值引用设备。

MAC 地址是您可能经常与之交互的低级链路层中的协议之一。

IP

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

网络可以连接在一起,但是在跨网络边界时,流量必须进行路由。该协议假定网络不可靠,并且有多条到达相同目的地的路径,它可以在这些路径之间动态切换。

该协议有许多不同的实现。今天最常见的实现是 IPv4 地址,遵循模式 123.123.123.123,尽管由于 IPv4 地址数量有限,IPv6 地址也因此变得越来越受欢迎,其遵循模式 2001:0db8:0000:0000:0000:ff00:0042:8329

ICMP

ICMP 代表互联网控制消息协议。它用于在设备之间发送消息,指示它们的可用性或错误条件。这些数据包用于各种网络诊断工具,如 pingtraceroute

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

TCP

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

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

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

数据发送后,连接使用类似的四次握手进行关闭。

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

UDP

UDP 代表用户数据报协议。它是 TCP 的一种流行的伴侣协议,同样实现在传输层。

UDP 和 TCP 的根本区别在于 UDP 提供不可靠的数据传输。它不验证数据是否已经在连接的另一端接收到。这听起来可能不太好,对于许多目的来说确实如此。然而,对于一些功能来说,这也是非常重要的。

因为不需要等待确认数据是否已经接收并强制重新发送数据,UDP 比 TCP 快得多。它不与远程主机建立连接,只是在没有确认的情况下发送数据。

因为它是一个直接的交易,所以它对于像查询网络资源这样的通信非常有用。它也不维护状态,这使得它非常适合将数据从一台机器传输到许多实时客户端。这使得它非常适合 VOIP、游戏和其他不能容忍延迟的应用程序。

HTTP

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

HTTP 定义了一些动词,告诉远程系统你正在请求什么。例如,GET、POST 和 DELETE 都以不同的方式与请求的数据交互。要查看不同的 HTTP 请求在实际中的示例,请参考《如何在 Express 中定义路由和 HTTP 请求方法》。

DNS

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

SSH

SSH 代表安全外壳协议。它是在应用层实现的加密协议,可以用于安全地与远程服务器通信。许多其他技术都建立在这个协议之上,因为它具有端到端加密和普遍性。

还有许多其他重要的协议我们没有涵盖到。然而,这应该为您提供了一些使互联网和网络通信成为可能的基本技术的概述。

结论

到目前为止,您应该熟悉一些网络术语,并能够理解不同组件如何能够相互通信。这应该有助于您理解其他文章和系统文档。

接下来,作为一个高层次的现实世界示例,您可能想阅读《如何在 Go 中进行 HTTP 请求》。


目录
相关文章
|
17天前
|
缓存 网络协议 安全
【网络攻防战】DNS协议的致命弱点:如何利用它们发动悄无声息的网络攻击?
【8月更文挑战第26天】DNS(域名系统)是互联网的关键组件,用于将域名转换为IP地址。然而,DNS协议存在安全漏洞,包括缺乏身份验证机制、缓存中毒风险及放大攻击的可能性。通过具体案例,如DNS缓存中毒和DNS放大攻击,攻击者能够误导用户访问恶意站点或对目标服务器实施DDoS攻击。为了防范这些威胁,可以采用DNSSEC实现数字签名验证、利用加密的DNS服务(如DoH或DoT)、限制DNS服务器响应以及及时更新DNS软件等措施。理解并应对DNS的安全挑战对于确保网络环境的安全至关重要。
49 2
|
8天前
|
缓存 网络协议 网络性能优化
C语言 网络编程(二)TCP 协议
TCP(传输控制协议)是一种面向连接、可靠的传输层协议,通过校验和、序列号、确认应答等机制确保数据完整性和可靠性。通信双方需先建立连接,再进行通信,采用三次握手建立连接,四次挥手断开连接。TCP支持任意字节长度的数据传输,具备超时重传、流量控制及拥塞控制机制。三次握手用于同步序列号和确认双方通信能力,四次挥手则确保双方均能完成连接关闭操作,保证数据传输的可靠性。
|
8天前
|
网络协议 视频直播 C语言
C语言 网络编程(三)UDP 协议
UDP(用户数据报协议)是一种无需建立连接的通信协议,适用于高效率的数据传输,但不保证数据的可靠性。其特点是无连接、尽力交付且面向报文,具备较高的实时性。UDP广泛应用于视频会议、实时多媒体通信、直播及DNS查询等场景,并被许多即时通讯软件和服务(如MSN/QQ/Skype、流媒体、VoIP等)采用进行实时数据传输。UDP报文由首部和数据部分组成,首部包含源端口、目的端口、长度和校验和字段。相比TCP,UDP具有更高的传输效率和更低的资源消耗。
|
11天前
|
监控 安全 网络安全
深入理解SNMP:网络管理的关键协议
【8月更文挑战第31天】
39 1
|
5天前
|
网络协议
网络协议概览:HTTP、UDP、TCP与IP
理解这些基本的网络协议对于任何网络专业人员都是至关重要的,它们不仅是网络通信的基础,也是构建更复杂网络服务和应用的基石。网络技术的不断发展可能会带来新的协议和标准,但这些基本协议的核心概念和原理将继续是理解和创新网络技术的关键。
16 0
|
6天前
|
域名解析 负载均衡 网络协议
Linux网络接口配置不当所带来的影响
总而言之,Linux网络接口的恰当配置是保证网络稳定性、性能和安全性的基础。通过遵循最佳实践和定期维护,可以最大程度地减少配置错误带来的负面影响。
26 0
|
11天前
|
存储 运维 监控
|
11天前
|
消息中间件 Kafka Java
Spring 框架与 Kafka 联姻,竟引发软件世界的革命风暴!事件驱动架构震撼登场!
【8月更文挑战第31天】《Spring 框架与 Kafka 集成:实现事件驱动架构》介绍如何利用 Spring 框架的强大功能与 Kafka 分布式流平台结合,构建灵活且可扩展的事件驱动系统。通过添加 Spring Kafka 依赖并配置 Kafka 连接信息,可以轻松实现消息的生产和消费。文中详细展示了如何设置 `KafkaTemplate`、`ProducerFactory` 和 `ConsumerFactory`,并通过示例代码说明了生产者发送消息及消费者接收消息的具体实现。这一组合为构建高效可靠的分布式应用程序提供了有力支持。
38 0
|
13天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)简介
【8月更文挑战第30天】在人工智能的浪潮中,深度学习以其强大的数据处理能力成为时代的宠儿。本文将深入浅出地介绍深度学习的一个重要分支——卷积神经网络(CNN),并探讨其如何在图像识别等领域大放异彩。通过实例,我们将一窥CNN的神秘面纱,理解其背后的原理,并探索如何利用这一工具解锁数据的深层价值。
|
18天前
|
网络协议