网络协议课程笔记上

ops/2025/2/12 20:28:25/

一、 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.ppmy.cn/ops/157848.html

相关文章

通过 Docker 安装和部署 KeyDB v6.3.4 的详细步骤

KeyDB 是一种高性能的开源内存数据库,最初是基于 Redis 项目开发的,但在性能、特性和功能上进行了许多增强和改进。它兼容 Redis 的大部分命令和数据结构,因此可以作为 Redis 的替代品使用,尤其是在需要更高性能和多线程支持的场景…

OpenCV2D 特征框架 (19)目标检测类cv::CascadeClassifier的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::CascadeClassifier 是 OpenCV 中用于对象检测的一个核心类,特别适用于基于 Haar 特征和 LBP(局部二进制模式&#xf…

GRU 和 LSTM 公式推导与矩阵变换过程图解

GRU 和 LSTM 公式推导与矩阵变换过程图解 GRULSTM 本文的前置篇链接: 单向/双向,单层/多层RNN输入输出维度问题一次性解决 GRU GRU(Gate Recurrent Unit)是循环神经网络(RNN)的一种,可以解决RNN中不能长期…

使用Docker + Ollama在Ubuntu中部署deepseek

1、安装docker 这里建议用docker来部署,方便简单 安装教程需要自己找详细的,会用到跳过 如果你没有安装 Docker,可以按照以下步骤安装: sudo apt update sudo apt install apt-transport-https ca-certificates curl software-p…

【大模型】AI 辅助编程操作实战使用详解

目录 一、前言 二、AI 编程介绍 2.1 AI 编程是什么 2.1.1 为什么需要AI辅助编程 2.2 AI 编程主要特点 2.3 AI编程底层核心技术 2.4 AI 编程核心应用场景 三、AI 代码辅助编程解决方案 3.1 AI 大模型平台 3.1.1 AI大模型平台代码生成优缺点 3.2 AI 编码插件 3.3 AI 编…

怎样确定网站访问速度出现问题是后台还是服务器造成的?

网站的访问速度会影响到用户的体验感,当网络过于卡顿或访问速度较慢时,会给用户带来不好的体验感,但是网站访问速度不仅会是后台造成影响的,也可能是服务器的原因,那么我们该如何分辨呢? 当网站使用了数据库…

单片机上SPI和IIC的区别

SPI(Serial Peripheral Interface)和IC(Inter-Integrated Circuit)是两种常用的嵌入式外设通信协议,它们各有优缺点,适用于不同的场景。以下是它们的详细对比: — 1. 基本概念 SPI&#xff0…

【DeepSeek】deepseek可视化部署

目录 1 -> 前文 2 -> 部署可视化界面 1 -> 前文 【DeepSeek】DeepSeek概述 | 本地部署deepseek 通过前文可以将deepseek部署到本地使用,可是每次都需要winR输入cmd调出命令行进入到命令模式,输入命令ollama run deepseek-r1:latest。体验很…