tryhackme-Pre Security-Pre Security-Network Fundamentals-Packets & Frames
房间地址:https://tryhackme.com/room/packetsframes
这是网络安全入门的基础模块的计算机科学基础知识:Packets & Frames(数据包与帧),序号 01 表示第一篇文章,当你不知道从哪里开始的时候,你可以按照数字顺序来进行参考即可。
Packets & Frames
Task 1 What are Packets and Frames
数据包和帧是一小段数据,组合在一起构成更大的信息或消息。然而,在 OSI 模型中,它们是两个不同的概念。
数据包是来自 OSI 模型第 3 层(网络层)的数据,包含 IP 报头和有效负载等信息。而帧则用于 OSI 模型第 2 层(数据链路层),它封装了数据包并添加了 MAC 地址等附加信息。
您可以将此过程想象成通过邮局邮寄信件。信封是一个帧,用于将信封中的内容(在这个比喻中称为数据包)移动到另一个位置。收件人打开信封(帧)后,他们就知道如何转发信件(数据包)。
这个过程称为封装,我们在第三节讨论过:OSI 模型。在这个阶段,可以安全地假设,当我们谈论任何与 IP 地址相关的内容时,我们谈论的是数据包。当封装信息被剥离后,我们谈论的是帧本身。
数据包是跨联网设备(例如任务 1 中解释的设备)进行数据传输的有效方式。由于这些数据以小块的形式进行交换,因此与一次性发送大块消息相比,网络上出现瓶颈的可能性更小。
例如,从网站加载图片时,图片不会以整张图片的形式发送到您的计算机,而是以小块的形式发送到您的计算机,并在您的计算机上进行重构。以下图为例,说明了这个过程。猫的图片被分成三个数据包,当它到达计算机时,会被重构并形成最终的图片。
数据包具有不同的结构,具体取决于所发送数据包的类型。正如我们接下来要讨论的,网络充满了标准和协议,它们充当着一套规则,规定了数据包在设备上的处理方式。随着数十亿设备连接到互联网,如果没有标准化,事情很快就会崩溃。
我们继续以互联网协议为例。使用此协议的数据包将包含一组报头,其中包含通过网络发送的数据的附加信息。
一些值得注意的标题(头)包括:
一把梭:有IP地址的数据叫数据包,没有IP地址的数据叫帧
Task 2 TCP/IP (The Three-Way Handshake)
TCP(简称传输控制协议)是网络中使用的另一条规则。
该协议与我们之前在本模块第三部分讨论过的 OSI 模型非常相似。TCP/IP 协议由四层组成,可以说是 OSI 模型的简化版本。这些层是:
应用层
传输层
互联网层
网络接口层
与 OSI 模型的工作方式非常相似,当数据(或数据包)经过 TCP 模型的每一层时,信息都会被添加到其中。您可能还记得,这个过程称为封装,而这个过程的逆过程称为解封装。
TCP 的一个定义特性是基于连接的,这意味着 TCP 必须在客户端和充当服务器的设备之间建立连接,然后才能发送数据。
因此,TCP 保证任何发送的数据都会在另一端收到。这个过程被称为三次握手,我们稍后会讨论它。下表比较了 TCP 的优缺点:
TCP 数据包包含各种信息部分,这些部分称为报头,是在封装时添加的。下表中列出了一些关键的报头:
接下来,我们将讨论三次握手——这是用于在两个设备之间建立连接的过程。三次握手使用一些特殊消息进行通信——下表重点介绍了其中的一些主要消息:
下图展示了 Alice 和 Bob 之间正常的三次握手过程。在现实生活中,这发生在两个设备之间。
任何发送的数据都会被赋予一个随机数序列,并使用该数序列进行重构,并以 1 为增量递增。两台计算机必须就相同的数序列达成一致,才能以正确的顺序发送数据。此顺序的达成需要三个步骤:
SYN - 客户端:这是我的初始序列号 (ISN),用于同步 (0)
SYN/ACK - 服务器:这是我的初始序列号 (ISN),用于同步 (5,000),并且我确认您的初始数序列 (0)
ACK - 客户端:我确认您的初始序列号 (ISN) 为 (5,000),以下是我的 ISN+1 (0 + 1) 的数据。
TCP 关闭连接:
让我们快速解释一下 TCP 关闭连接背后的过程。首先,一旦设备确定另一台设备已成功接收所有数据,TCP 就会关闭连接。
由于 TCP 会在设备上保留系统资源,因此最佳做法是尽快关闭 TCP 连接。
要启动 TCP 连接的关闭,设备会向另一台设备发送一个“FIN”数据包。当然,对于 TCP 连接,另一台设备也必须确认此数据包。
让我们像之前一样,使用 Alice 和 Bob 来演示这个过程。
在图示中,我们可以看到 Alice 向 Bob 发送了一个“FIN”数据包。由于 Bob 收到了这个数据包,他会通知 Alice 他已经收到了,并且他也想关闭连接(使用 FIN)。Alice 清楚地听到了 Bob 的回复,并会让 Bob 知道她已经确认了这一点。
Task 3 Practical - Handshake
在本任务附带的静态实验中,帮助 Alice 和 Bob 按照正确的顺序重新组合 TCP 握手,从而实现通信!
请将对话结束时给出的标志值填入下面的问题中。
Task 4 UDP/IP
用户数据报协议 (UDP) 是另一种用于在设备之间进行数据传输的协议。
与其兄弟 TCP 不同,UDP 是一种无状态协议,它不需要两个设备之间保持持续连接即可发送数据。例如,UDP 不需要进行三次握手,两个设备之间也不需要同步。
回想一下在第三节“OSI 模型”中对这两个协议的一些比较。UDP 适用于应用程序可以容忍数据丢失的情况(例如视频流或语音聊天),或者连接不稳定并非万能的情况。下表比较了 UDP 的优缺点:
如上所述,在两个设备之间建立连接时不会发生任何过程。这意味着它不考虑数据是否已接收,也不像 TCP 那样提供数据完整性等保障措施。
UDP 数据包比 TCP 数据包简单得多,并且报头更少。但是,这两个协议共享一些标准报头,如下表所示:
接下来,我们将讨论 UDP 连接与 TCP 连接的区别。需要注意的是,UDP 是无状态的。连接期间不会发送任何确认消息。
下图展示了 Alice 和 Bob 之间正常的 UDP 连接。在实际应用中,这种情况通常发生在两台设备之间。
Task 5 Ports 101 (Practical)
端口或许恰如其名,是数据交换的重要节点。想象一下港口和码头。想要停靠港口的船只必须前往与其尺寸和船上设施兼容的港口。船只排队后,会连接到港口的某个端口。例如,邮轮不能停靠在为渔船建造的港口,反之亦然。
这些端口强制规定了哪些船只可以停靠以及停泊在何处——如果不兼容,就不能停泊在这里。网络设备在相互通信时也使用端口来执行严格的规则。建立连接后(回想一下 OSI 模型中的上下文),设备发送或接收的任何数据都将通过这些端口发送。在计算中,端口是介于 0 到 65535 (65,535) 之间的数值。
由于端口的范围可以是 0-65535 之间的任何值,因此很容易出现无法跟踪哪个应用程序正在使用哪个端口的风险。繁忙的港口总是一片混乱!幸好,我们将应用程序、软件和行为与一套标准规则联系起来。例如,通过强制所有 Web 浏览器数据都通过 80 端口发送,软件开发者可以设计出 Google Chrome 或 Firefox 等 Web 浏览器,使其以相同的方式解析数据。
这意味着所有 Web 浏览器现在都遵循一条通用规则:数据通过 80 端口发送。浏览器的外观、体验和易用性取决于设计者或用户的决定。
虽然 Web 数据的标准规则是端口 80,但一些其他协议也被分配了标准规则。任何介于 0 到 1024 (1,024) 之间的端口都称为公共端口。下面让我们来探讨一下这些其他协议:
我们仅简要介绍了网络安全中较为常见的协议。您可以查看包含 1024 个常用端口的表格,了解更多信息。
https://www.vmaxx.net/techinfo/ports.htm
这里值得注意的是,这些协议仅遵循标准。也就是说,您可以在标准端口以外的其他端口上管理与这些协议交互的应用程序(例如,在 8080 而不是标准端口 80 上运行 Web 服务器)。但请注意,应用程序会假定遵循标准,因此您必须在端口号后面加上冒号 (😃。
实践挑战:
打开本任务附带的网站,并连接到 IP 地址“8.8.8.8”和端口“1234”,您将收到一个 flag。
就是这个B样子
Task 6 Continue Your Learning: Extending Your Network
加入此网络模块的最后一个房间:“扩展您的网络”,继续您的学习并完成此模块。