boxmoe_header_banner_img

Hello! 欢迎来到RootReapers的博客!

文章导读

TryHackMe学习日记&day4


avatar
admin 2025年6月20日 63

前天结束了计网,今天开始学习数据包和框架(昨天胃炎请假一天)

数据包和帧:

它们两个都是小块数据,当他们组合在一起时会形成较大的信息,但是它们在osi模型在是两个不同的东西

帧位于第二层:数据链路层,这意味着没有 IP 地址等信息。将此视为将信封放入信封中并将其寄走。第一个信封将是您邮寄的数据包,但一旦打开,其中的信封仍然存在并包含数据(这是一个框架)

当我们谈论任何 IP 地址时,我们谈论的是数据包。当封装信息被剥离时,我们谈论的是框架本身

数据包是在联网设备之间传输数据的一种有效方式,例如任务 1 中介绍的设备。由于这些数据是小块交换的,因此与一次发送大消息相比,整个网络中出现瓶颈的可能性更小

例如,从网站加载图像时,此图像不会作为一个整体发送到您的计算机,而是在您的计算机上重建的小块。以下图为例来说明这个过程。猫咪的照片被分成三个包,到达计算机后被重建,形成最终的图像

头部字段描述
生存时间(Time to Live)为数据包设置过期计时器,防止数据包无法到达主机或逃逸时堵塞网络
校验和(Checksum)为TCP/IP等协议提供完整性检查。如果任何数据被更改,该值将与预期值不同,从而发现数据损坏
源地址(Source Address)发送数据包的设备IP地址,以便返回数据知道返回路径
目的地址(Destination Address)数据包要发送到的设备IP地址,以便数据知道下一步传输路径

TCP/IP协议

到目前为止,该协议与我们之前的 OSI 模型非常相似。

TCP/IP 协议由四层组成,可以说只是 OSI 模型的概括版本。

这些层是:

• Application 应用

• Transport 运输

• Internet 互联网

• Network Interface 网络接口

它的工作原理和osi的十分相似,当数据或者数据包经过TCP每一层时,就会添加一部分信息,经过最后一层后,形成完整数据包,这个过程叫做封装

TCP 的一个定义特征是它是基于连接的,这意味着 TCP 必须在发送数据之前在客户端和充当服务器的设备之间建立连接

因此,TCP 保证发送的任何数据都将在另一端接收。此过程称为 Three-way handshake(三次握手),稍后会提到

TCP协议优点TCP协议缺点
保证数据完整性要求设备间保持可靠连接。如果一小块数据未接收,整个数据块都将无法使用且必须重传
能同步两个设备,防止数据乱序导致的传输拥塞慢速连接可能成为另一设备的瓶颈,因为连接会一直占用另一设备的资源
为实现可靠性执行更多处理流程由于使用该协议的设备需要做更多工作(计算),TCP明显比UDP慢

TCP 数据包包含从封装添加的称为报头的信息的各个部分。让我们解释下表中的一些关键标头

头部字段描述
源端口(Source Port)发送方用于发送TCP报文的随机端口号(从0-65535范围内当前未使用的端口中随机选择)
目的端口(Destination Port)接收方主机上运行的应用程序或服务的端口号(例如Web服务器运行在80端口),此值不是随机选择的
源IP地址(Source IP)发送数据包的设备IP地址
目的IP地址(Destination IP)数据包目标设备的IP地址
序列号(Sequence Number)连接建立时,第一个传输的数据段会被赋予一个随机数(后续会有更详细的解释)
确认号(Acknowledgement Number)当一个数据段被赋予序列号后,下一个数据段的序列号将是前一个序列号+1(后续会有更详细的解释)
校验和(Checksum)确保TCP数据完整性的值。发送方会进行数学计算并记住结果。如果接收方的计算结果不同,则说明数据已损坏
数据(Data)存储实际传输数据的部分,例如正在传输的文件字节
标志位(Flag)决定在握手过程中数据包应如何处理。特定的标志位会触发特定的行为(下面会有详细说明)

接下来讨论一下TCP三次握手

步骤报文类型描述
1SYN同步报文是客户端在握手过程中发送的初始数据包。用于发起连接并使两台设备同步(后续会有更详细的解释)
2SYN/ACK此数据包由接收设备(服务器)发送,用于确认来自客户端的同步请求
3ACK确认报文可由客户端或服务器使用,用于确认已成功接收到一系列消息/数据包
4DATA连接建立后,实际数据(如文件字节)通过”DATA”报文传输
5FIN此数据包用于在通信完成后正常(正确地)关闭连接
#RST此数据包会突然终止所有通信。这是最后手段,表示过程中出现了问题。例如服务或应用程序工作异常,或系统存在资源不足等故障

下图显示了 Alice 和 Bob 之间的正常 Three-way 握手过程。在现实生活中,这将是在两个设备之间

任何发送的数据都会被赋予一个随机数字序列,并使用此数字序列并以 1 为增量进行重建。两台计算机必须就相同的编号规则达成一致,才能以正确的顺序发送数据。此顺序分三个步骤达成一致:

  1. SYN – 客户端:这是我的初始序列号 (ISN),用于 SYNchronise 和 (0
  2. SYN/ACK – 服务器:这是我用 (5,000) 进行 SYNchronise 的初始序列号 (ISN),我确认您的初始编号序列 (0)
  3. 确认 – 客户:我确认您的初始序列号 (ISN) 为 (5,000),下面是我的 ISN+1 (0 + 1) 的一些数据

知道了TCP如何连接,接下来了解一下它是如何关闭的

首先,一旦设备确定另一台设备已成功接收所有数据,TCP 将关闭连接

由于 TCP 会在设备上保留系统资源,因此最佳做法是尽快关闭 TCP 连接

要启动关闭 TCP 连接,设备将向另一台设备发送 “FIN” 数据包。当然,使用 TCP 时,另一台设备也必须确认此数据包

让我们像以前一样使用 Alice 和 Bob 来展示这个过程

在图中,我们可以看到 Alice 向 Bob 发送了一个 “FIN” 数据包。因为 Bob 收到了这个,所以他会让 Alice 知道他收到了这个,并且他还想关闭连接(使用 FIN)。Alice 已经清楚地听到了 Bob 的声音,并会让 Bob 知道她承认了这一点



评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字
插入代码
<!-- 添加到页面底部,标签之前 -->