Avatar
😀

Organizations

  • iptables

    iptables 基于 netfilter 采用一条条规则链表,时间复杂度为O(n),最主要的是 iptables 专为防火墙设计

    ipvs

    ipvs 同样基于 netfilter,但底层采用的是hash表,索引复杂度为O(1)

    Created Sat, 19 Nov 2022 00:00:00 +0000
  • 什么是 Tcp

    三次握手

    1. tcp client发送连接请求报文,报文首部同步标记位 SYN=1 同时随机序列号 seq=x,此时 tcp client 进入 SYNC-SENT 状态的

    2. tcp server 若同意连接则确认报文为 ACK=1,SYN=1,ASK=x+1,seq=y 返回给客户端,并进入 SYNC_RCVD 状态

    3. tcp client 收到回复并确认 ACK 是否为1,seq 是否为 x+1,并返回报文 ACK=1,ASK=y+1,此时双方进入 ESTABLISHED 状态

    四次挥手

    1. 主动方发送报文FIN=1,seq=last+1并进入FIN_WAIT_1,此时报文不能携带任何数据

    2. 被动方收到连接释放报文,并发送确认报文 ACK=1,ack=u+1,seq=v ,并进入 CLOSE_WAIT状态,但此时如果缓冲区存在未发送数据,那么需要继续发送(这也是 CLOSE_WAIT 持续的时长),主动方收到此条报文后进入 FIN_WAIT_2,因为还需要处理未发送数据

    3. 上一步执行完毕,被动方发送 FIN=1,ack=w+1,seq=u+1 并进入 LAST-ACK 状态,而主动方收到此条报文后进入 TIME_WAIT (2msl maximum segment life),之后才会进入 CLOSED

    4. 在主动方进入 CLOSED 之前,需要发送报文确认退出

    2MSL

    1MSL保证主动方最后的 ACK 能到达对端,1MSL 确保 ACK 重传

    如何确保可靠性

    1. 三次握手,四次挥手确保连接和断开的可靠

    2. 记录了哪些数据被接受,哪些未接收,序列号保证了消息的顺序性

    3. ACK应答,超时重传,失序重传,丢弃重复数据,流量控制,拥塞控制

    重传机制

    RTT,RTO

    Round-Trip Time 消息往返时间 Retransmission Timeout 超时重传

    tcp Created Thu, 16 Sep 2021 00:00:00 +0000
  • 进程状态

    • TASK_RUNNING
    • TASK_INTERRUPTIBLE
    • TASK_UNINTERRUPTIBLE
    • TASK_TRACED
    • TASK_STOPPED
    Created Wed, 25 Dec 2019 00:00:00 +0000
  • I/O

    前言

    • 数据的读取分为:

      1. 等待数据准备

      2. 等待内核拷贝至用户空间

    • 基本模型矩阵

      阻塞 非阻塞
      同步 Read/Write Read\Write(O_NONBLOCK)
      异步 I/O multiplexing(select/poll) AIO
    I/O Created Mon, 25 Feb 2019 00:00:00 +0000