当前位置: 首页 > article >正文

网络协议课程笔记上

一、 TCP 协议核心概念

  • 端口: 0-65535 范围,用于区分不同应用和服务。
    • 0-1023: 系统/特权端口 (root 用户)。
    • 1024-49151: 应用/注册端口 (常用服务)。
    • 49152-65535: 动态/私有端口 (客户端临时分配)。
  • 三次握手 (Three-way Handshake): 建立可靠 TCP 连接的关键步骤。
    1. SYN: 客户端发送同步报文,请求连接。
    2. SYN-ACK: 服务器回复同步-确认报文,确认请求并同步序号。
    3. ACK: 客户端发送确认报文,连接建立。
    • 目的: 确保连接双方都准备好通信,并同步序列号,为可靠传输奠定基础。
  • 四次挥手 (Four-way Handshake): 安全断开 TCP 连接的步骤。
    1. FIN: 客户端发送完成报文,请求关闭连接 (不再发送数据)。
    2. ACK: 服务器回复确认报文,确认收到关闭请求 (可能继续发送数据)。
    3. FIN: 服务器发送完成报文,表示服务器也准备好关闭连接 (数据发送完毕)。
    4. ACK: 客户端回复确认报文,连接完全关闭。
    • 目的: 确保双方都完成数据传输并同意断开,避免数据丢失。
  • TCP 状态机: 描述 TCP 连接生命周期中不同状态的转换。
    • 关键状态: CLOSED, LISTEN, SYN_SENT, SYN_RECEIVED, ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2, CLOSE_WAIT, LAST_ACK, TIME_WAIT.
    • 核心流程:CLOSEDLISTEN (服务器监听),经过三次握手进入 ESTABLISHED (连接建立),再通过四次挥手回到 CLOSED (连接关闭)。 TIME_WAIT 状态等待 2MSL 时间,确保网络中残余数据包消失。
  • MSL (最大报文段生存时间): TCP 连接超时时间,默认 60 秒。
    • 作用: 处理延迟或重传报文,避免资源立即释放,影响连接稳定性。
  • 半连接队列 & 全连接队列: 服务器端用于管理连接请求的队列。
    • 半连接队列 (SYN Queue): 存放 SYN 请求,等待完成三次握手。默认大小有限,超出可能导致 SYN Flood 攻击。
    • 全连接队列 (Accept Queue): 存放已完成三次握手,等待应用层 accept() 的连接。默认大小有限,过载可能导致连接拒绝。
    • 优化: 调整队列大小可提升并发连接处理能力。
  • Socket (套接字): 应用程序与 TCP/IP 协议栈交互的接口。
    • 客户端创建 Socket 发起连接,服务器端 Socket 监听端口、接受连接。
    • Socket 提供了 bind, listen, accept, read, write 等系统调用,实现网络通信。
  • 超时重传: TCP 保证可靠性的机制,数据包丢失后会重传,默认重传次数有限,超过则放弃连接。
  • 拥塞控制: 防止网络过载的机制,通过算法 (如 Reno, CUBIC, BBR) 动态调整发送速率,避免网络拥堵。

二、 UDP 协议核心概念

  • 用户数据报协议 (User Datagram Protocol): 传输层协议,提供不可靠、无连接的数据传输服务。
  • 特点:
    • 不可靠: 不保证数据包到达、顺序和完整性。
    • 无连接: 无需握手,直接发送数据。
    • 轻量级: 头部仅 8 字节,开销小,速度快。
    • 实时性: 适用于实时应用 (语音、视频)。
    • 支持广播/多播: 可以进行广播和多播通信。
  • 头部结构 (8 字节): 源端口, 目标端口, 长度, 校验和。
  • 应用场景: 对实时性要求高,但可容忍少量丢包的应用,如在线视频、语音通话、DNS 查询等。

三、 网络层协议核心概念

  • ICMP (Internet Control Message Protocol): 互联网控制报文协议,辅助 IP 协议,用于网络控制和错误报告。
    • Ping: 基于 ICMP Echo 请求/应答,测试网络连通性。
    • Traceroute: 基于 ICMP Time Exceeded 消息,追踪路由路径。
    • 防火墙: 可配置 ICMP 规则,控制 ICMP 流量,影响 ping 和 traceroute 功能。
  • ARP (Address Resolution Protocol): 地址解析协议,通过 IP 地址查找 MAC 地址。
    • ARP 请求广播: 询问目标 IP 的 MAC 地址。
    • ARP 响应单播: 目标主机回复包含 MAC 地址的响应。
    • ARP 缓存: 存储 IP-MAC 地址映射关系,提高效率。
    • ARP 欺骗/投毒: 网络攻击手段,伪造 ARP 响应,篡改 IP-MAC 映射,导致流量劫持或中断。
    • 静态 ARP 绑定: 防御 ARP 欺骗的方法,手动配置 IP-MAC 映射。
  • IP 协议 (Internet Protocol): 网络层核心协议,负责数据包路由和转发。
    • 无连接: 每个数据包独立路由。
    • 尽力而为: 不保证可靠 delivery。
    • 主要功能: IP 编址, 路由选择, 数据包分片与重组。
    • IP 数据包头部 (IPv4): 包含版本, 头部长度, 服务类型, 总长度, 标识, 标志, 片偏移, 生存时间 (TTL), 协议类型, 头部校验和, 源/目标 IP 地址等字段。
    • TTL (生存时间): 限制数据包在网络中的跳数,防止环路,ping 命令可观察 TTL 值。
  • IP 地址: 网络设备的逻辑地址,IPv4 为 32 位,点分十进制表示。
    • 网络 ID & 主机 ID: IP 地址分为网络标识和主机标识,用于网络分层和寻址。
    • 特殊 IP 地址:
      • 网络地址: 标识网段,不可分配给主机。
      • 广播地址: 广播消息到网段内所有主机,不可分配给主机。
      • 127.0.0.1: 本地环回地址,测试本机网络协议栈。
      • 0.0.0.0: 所有网络,所有接口。
    • IP 地址分类 (ABC 类): 根据网络 ID 长度划分,影响网络规模和主机容量。
      • A 类: 网络 ID 8 位,主机 ID 24 位,网络号范围 1-126。 (私有地址: 10.0.0.0/8)
      • B 类: 网络 ID 16 位,主机 ID 16 位,网络号范围 128-191。 (私有地址: 172.16.0.0/12)
      • C 类: 网络 ID 24 位,主机 ID 8 位,网络号范围 192-223。 (私有地址: 192.168.0.0/16192.168.0.0/24)
      • D 类: 组播地址 (224-239)。
      • E 类: 保留地址 (240-255)。
    • 私有 IP 地址: 用于局域网,公网 IP 地址用于互联网。


http://www.kler.cn/a/540562.html

相关文章:

  • vue动态table 动态表头数据+动态列表数据
  • 第三节 docker基础之---Commit+Dockerfile制作
  • 【人工智能】解码语言之谜:使用Python构建神经机器翻译系统
  • 【MySQL】深度学习数据库开发技术:使用CC++语言访问数据库
  • [权限提升] Linux 提权 维持 — 系统错误配置提权 - Sudo 滥用提权
  • 网络协议课程笔记上
  • AUTOSAR 4.2.2版本中Dem 操作循环(Operation Cycle)的开启和关闭
  • Python实现GO鹅优化算法优化支持向量机SVM回归模型项目实战
  • JSON是什么
  • 从零到一:基于Rook构建云原生Ceph存储的全面指南(上)
  • The 2024 ICPC Asia East Continent Online Contest (II) (6/9/12)
  • JDK8 stream API用法汇总
  • STM32 RTC亚秒
  • 【高级架构师】多线程和高并发编程(三):锁(下)深入ReentrantReadWriteLock
  • Python——批量图片转PDF(GUI版本)
  • 2.10寒假作业
  • 反射:获取类中的成分、并对其进行操作
  • SpringCloud - Sentinel服务保护
  • 矩阵NFC碰一碰发视频的源码技术开发攻略,支持OEM
  • 【数据】Cassandra(列存储)
  • 小红书爬虫: 获取所需数据
  • JVM栈帧中|局部变量表、操作数栈、动态链接各自的任务是什么?
  • Java_多线程
  • 非华为电脑制作一碰传NFC贴纸
  • AutoGen实战应用
  • DeepSeek--教师备课效能100%