GaGa

One GaGa, One World !

在 TCP(传输控制协议)中,标记位(Flags) 是 TCP 头部中的一个重要字段,用于控制连接的建立、数据传输和连接的关闭。TCP 头部中的标记位字段占用 6 位(在现代实现中通常还有额外的位用于扩展,但标准的是 6 个主要标记位)。这些标记位通过置 1 或 0 来表示不同的控制信息。


TCP 标记位详解

  1. SYN(Synchronize Sequence Numbers)

    • 含义:同步序列号,用于建立连接。
    • 作用:在 TCP 三次握手中,发起方发送 SYN 标记位为 1 的报文,表示请求建立连接并初始化序列号
    • 使用场景:三次握手的第 1 步(客户端发送 SYN)和第 2 步(服务器回复 SYN+ACK)。
  2. ACK(Acknowledgment)

    • 含义:确认,用于确认收到数据或控制报文。
    • 作用:ACK 标记位为 1 时,头部中的“确认号”(Acknowledgment Number)字段有效,表示确认收到前序数据或报文。
    • 使用场景:三次握手的第 2 步(SYN+ACK)和第 3 步(ACK),以及四次挥手中的确认报文。
  3. FIN(Finish)

    • 含义:结束,表示发送方已无数据要发送,请求关闭连接。
    • 作用:在 TCP 四次挥手中,发送 FIN 标记位为 1 的报文,表示一方完成了数据发送。
    • 使用场景:四次挥手的第 1 步和第 3 步(主动关闭方和被动关闭方分别发送 FIN)。
  4. RST(Reset)

    • 含义:重置,用于异常终止连接。
    • 作用:当出现错误(如端口未监听、连接不可达)或需要强制中断连接时,发送 RST 标记位为 1 的报文。
    • 使用场景:连接异常(如客户端连接未开放的端口)或拒绝连接时。
  5. PSH(Push)

    • 含义:推送,要求接收方尽快将数据交给应用层。
    • 作用:标记位为 1 时,指示接收端不要缓存数据,而是立即将数据推送给上层应用。
    • 使用场景:实时应用(如 Telnet)中,确保数据及时交付。
  6. URG(Urgent)

    • 含义:紧急,表示报文中包含紧急数据。
    • 作用:标记位为 1 时,头部中的“紧急指针”(Urgent Pointer)字段有效,指示紧急数据的结束位置,接收方需优先处理这些数据。
    • 使用场景:很少使用,常见于需要中断或优先处理的情况(如 SSH 的 Ctrl+C)。
Read more »

TCP 的状态转移图描述了 TCP 连接从建立到关闭的各种状态以及状态之间的转换条件


tcp status change.png

说明

Read more »

tcp三次握手

TCP(传输控制协议)的三次握手是建立可靠连接的关键过程,用于在客户端和服务器之间同步序列号并交换控制信息


三次握手的过程(简化版)

Read more »

在 Linux 文件系统中,inodeblock 是文件存储和管理中的两个核心概念,它们之间有着密切的关系。

1. 什么是 inode?

  • inode(索引节点)是 Linux 文件系统中用来存储文件元数据的数据结构。每个文件或目录都有一个唯一的 inode。
  • inode 中包含了文件的以下信息:
    • 文件类型(普通文件、目录、符号链接等)
    • 文件大小
    • 文件权限(读、写、执行等)
    • 文件的所有者(用户 ID 和组 ID)
    • 文件的时间戳(创建、修改、访问时间)
    • 指向数据块(block)的指针(即文件内容实际存储的位置)
  • 注意:inode 中不包含文件名,文件名是由目录项(directory entry)维护的,目录项将文件名映射到对应的 inode 编号。

2. 什么是 block?

Read more »

SLI/SLO

  • SLI(service level indicator)服务等级指标
    • 指标来衡量系统稳定性
  • SLO (service level objective) 服务等级目标
    • 设定稳定性目标(99.999 …)

扣款请求接口,状态码非5xx的比例(SLI),大于99.5%(SLO)表示系统稳定

系统中常见监控指标

Read more »

什么是 Wazuh?

Wazuh 是一个免费且开源的安全平台,旨在为终端和云工作负载提供统一的扩展检测与响应(XDR)和安全信息与事件管理(SIEM)保护。它广泛用于保护各种环境,包括本地、虚拟化、容器化和基于云的系统,帮助组织和个人防御安全威胁。

特点:

  • Wazuh 似乎是一个免费且开源的安全平台,提供 XDR 和 SIEM 保护,适用于终端和云工作负载。

  • 研究表明,它能检测威胁、预防攻击,并帮助满足合规要求,广泛用于各种规模的企业。

  • 证据倾向于支持其灵活性和社区支持,但功能复杂性可能需要技术专长。

  • https://github.com/wazuh/wazuh

Read more »

ps 命令是一个非常强大的工具,用于显示当前系统中的进程状态。


基本概念

ps 是 “process status” 的缩写,它可以列出运行中的进程信息,比如进程 ID(PID)、用户、CPU 和内存使用情况、命令名称等。

Read more »

在 Linux 系统中,net.ipv4.ip_forward 是一个内核参数,用于控制是否启用 IPv4 数据包转发功能。简单来说,它决定了系统是否可以将接收到的数据包从一个网络接口转发到另一个网络接口,也就是是否具有路由转发的能力

具体作用

  • 值为 0(默认值):表示禁用 IP 转发。系统只会处理发往本机的数据包,不会转发其他设备的数据包。这时,系统仅作为终端设备(比如普通的客户端或服务器),而不是路由器。
  • 值为 1:表示启用 IP 转发。系统会将接收到的、不以本机为目的地址的数据包转发到适当的网络接口,起到路由器的作用。

使用场景

Read more »

1. 定义与本质

  • 进程(Process)
    进程是操作系统中资源分配的基本单位,是程序执行的一个实例。它包含了程序代码、数据以及运行时的状态信息(如程序计数器、寄存器值等)。每个进程拥有独立的虚拟地址空间,由操作系统通过内存管理单元(MMU)映射到物理内存。
  • 线程(Thread)
    线程是进程内部的执行单元,是 CPU 调度的基本单位。一个进程可以包含一个或多个线程,线程共享进程的地址空间和资源(如堆、文件句柄等),但每个线程有自己的栈和寄存器上下文,用于独立执行代码。

2. 内存与资源管理

  • 进程
    进程拥有独立的地址空间,通常包括代码段、数据段、堆和栈等。操作系统通过进程控制块(PCB,Process Control Block)管理进程状态,PCB 记录了进程的标识符(PID)、内存分配、打开的文件等信息。由于内存隔离,进程间通信(IPC)需要通过管道、消息队列或共享内存等机制实现。
  • 线程
    线程共享进程的地址空间,因此线程间可以直接访问相同的全局变量和堆内存,无需复杂通信机制。但每个线程有独立的栈空间,用于存储局部变量和函数调用信息,同时维护自己的线程控制块(TCB,Thread Control Block),记录线程状态和执行上下文。
Read more »
0%