Java技术八股学习Day23

计算机网络(二)

TCP 协议详解

(1)TCP 协议的核心特点

TCP(传输控制协议)是面向连接、可靠的字节流协议,核心特点包括:面向连接(需三次握手建立连接)、可靠传输(保障数据无丢失、无重复、按序到达)、有状态(维护连接上下文信息)、面向字节流(忽略应用层消息边界)、支持流量控制和拥塞控制,仅支持单播传输,适用于对可靠性要求高的场景。

(2)TCP 三次握手
  • 核心目的:建立可靠连接,同步双方的序列号和确认号,确保双方收发能力正常。
  • 过程:① 客户端发送 SYN 报文(携带初始序列号 seq=x),请求建立连接;② 服务器回复 SYN+ACK 报文(seq=y,ack=x+1),确认客户端请求并同步自身序列号;③ 客户端发送 ACK 报文(ack=y+1),确认服务器响应,连接正式建立。
  • 为何需要三次:避免历史无效连接请求(如网络延迟的旧请求)干扰当前连接,确保双方都能接收和发送数据。
(3)TCP 四次挥手
  • 核心目的:安全关闭连接,确保双方所有数据都已传输完成。
  • 过程:① 主动方发送 FIN 报文(seq=u),表示数据发送完毕,请求关闭连接;② 被动方回复 ACK 报文(ack=u+1),确认收到关闭请求,此时被动方仍可发送数据;③ 被动方数据传输完毕后,发送 FIN 报文(seq=v),请求关闭连接;④ 主动方回复 ACK 报文(ack=v+1),确认收到关闭请求,等待 2MSL 后关闭连接。
  • 为何需要四次:被动方收到 FIN 后可能仍有未发送的数据,需先确认关闭请求,待数据发送完成后再发起自身的关闭请求,分两次确认避免数据丢失。
(4)TCP 可靠性保障机制

TCP 通过多层机制实现可靠传输:

  • 序列号与确认应答(ACK):为每个字节分配唯一序列号,接收方收到数据后回复确认号,告知发送方已成功接收的字节范围;
  • 超时重传:发送方未在超时时间内收到确认,自动重传未被确认的数据,超时时间会动态调整;
  • 流量控制:基于滑动窗口机制,接收方通过窗口大小告知发送方可发送的字节数,避免接收方缓冲区溢出;
  • 拥塞控制:通过慢启动、拥塞避免、快速重传、快速恢复等算法,根据网络拥塞状态调整发送速率,避免加剧网络拥堵;
  • 其他辅助机制:校验和(检测数据传输错误)、延迟确认(合并多个确认报文)、捎带确认(在发送数据时附带确认信息)。
(5)TCP 滑动窗口
  • 核心作用:同时实现流量控制和高效传输,允许发送方在收到确认前连续发送多个数据段,无需等待逐个确认。
  • 窗口类型:发送窗口(发送方可连续发送的字节范围)、接收窗口(接收方当前可接收的字节范围),窗口大小通过 TCP 头部的窗口字段协商。
  • 工作原理:发送方根据接收方告知的窗口大小调整发送速率,接收方根据自身缓冲区状态动态更新窗口大小,若接收方缓冲区满则窗口设为 0,发送方暂停发送。
(6)TCP 拥塞控制
  • 核心目标:避免发送方发送速率超过网络承载能力,减少丢包和延迟。
  • 核心算法:① 慢启动:初始窗口较小,按指数级增长,快速试探网络承载能力;② 拥塞避免:窗口增长到阈值后,按线性增长,平稳提升发送速率;③ 快速重传:收到 3 个重复确认后,立即重传未被确认的数据,无需等待超时;④ 快速恢复:重传后窗口调整为阈值的一半,按线性增长,避免再次引发拥塞。
(7)TCP 粘包与拆包
  • 粘包原因:TCP 面向字节流,无消息边界,多个应用层消息可能被合并为一个 TCP 段发送,或一个消息被拆分为多个 TCP 段发送。
  • 解决方案:① 固定消息长度:发送方按固定长度封装消息,接收方按固定长度解析;② 消息头 + 消息体:消息头包含消息总长度,接收方先读取消息头,再按长度读取消息体;③ 分隔符:用特殊字符(如 \r\n)分隔消息,接收方按分隔符拆分消息。

UDP 协议详解

(1)UDP 协议的核心特点

UDP(用户数据报协议)是无连接、尽最大努力传输的报文协议,核心特点包括:无连接(发送数据前无需建立连接)、不可靠(不保证数据到达、不按序、无重复检测)、无状态(不维护连接信息)、面向报文(保留应用层消息边界)、头部开销小(固定 8 字节)、支持单播、多播、广播,传输效率高,适用于实时性要求高、可容忍少量丢包的场景。

(2)TCP 与 UDP 的核心区别
对比维度 TCP UDP
连接性 面向连接(三次握手 / 四次挥手) 无连接
可靠性 可靠传输(序列号、ACK、重传) 不可靠(无确认、无重传)
传输模式 面向字节流(无消息边界) 面向报文(保留消息边界)
头部开销 20-60 字节(可变) 8 字节(固定)
流量控制 支持(滑动窗口) 不支持
拥塞控制 支持(慢启动、拥塞避免等) 不支持
适用场景 文件传输、网页加载、邮件等 实时音视频、DNS、游戏等

IP 协议详解

(1)IP 协议的核心作用

IP(网际协议)是网络层核心协议,定义了数据包(IP 数据报)的格式,负责跨网络的路由和寻址,使数据包能在不同网络(如局域网、广域网)之间传输,最终到达目标设备,是互联网的基础协议。

(2)IP 地址
  • 定义:网络设备在互联网中的唯一标识符,用于设备间的寻址和通信。
  • 版本分类:① IPv4:32 位,采用点分十进制格式(如 192.168.1.1),地址空间约 42 亿个,已面临地址耗尽问题;② IPv6:128 位,采用冒分十六进制格式(如 2001:0db8:85a3:0000:0000:8a2e:0370:7334),地址空间极大,彻底解决地址短缺问题。
  • 地址类型:IPv4 分为 A、B、C、D、E 类地址,其中 A、B、C 类为单播地址,D 类为多播地址,E 类为保留地址;IPv6 简化了地址分类,支持单播、多播、任播地址。
(3)IPv4 与 IPv6 的核心区别
对比维度 IPv4 IPv6
地址长度 32 位 128 位
地址格式 点分十进制(如 192.168.1.1) 冒分十六进制(如 2001:0db8::)
地址空间 约 42 亿个,已耗尽 极大(2^128),无耗尽风险
配置方式 静态配置或依赖 DHCP 支持无状态自动配置(SLAAC)
NAT 依赖 普遍依赖 NAT 共享公网地址 无需 NAT,直接分配公网地址
头部结构 复杂(20-60 字节),字段多 简化(40 字节固定头部),支持扩展头
辅助协议 ICMPv4(网络控制消息) ICMPv6(整合 ARP、NDP 功能)
(4)NAT 协议
  • 定义:网络地址转换协议,用于将局域网内的私有 IP 地址映射为互联网的公有 IP 地址。
  • 核心作用:① 缓解 IPv4 地址短缺问题,多个内网设备可共享一个公网 IP 访问互联网;② 隐藏内网拓扑结构,提高内部网络的安全性,外部设备无法直接访问内网设备。
  • 常见类型:静态 NAT(私有 IP 与公有 IP 一对一映射)、动态 NAT(私有 IP 从公有 IP 池动态分配)、端口地址转换(PAT,最常用,通过端口区分不同内网设备)。

ARP 协议详解

(1)ARP 协议的核心作用

ARP(地址解析协议)的核心作用是实现网络层 IP 地址与数据链路层 MAC 地址的映射转换。数据帧在局域网内传输时需依赖 MAC 地址定位目标设备,而应用层和网络层使用 IP 地址寻址,ARP 解决了两者之间的地址转换问题。

(2)ARP 协议的工作原理
  • 场景:主机 A 需向同一局域网内的主机 B 发送数据,已知主机 B 的 IP 地址,需获取其 MAC 地址。
  • 过程:① 主机 A 发送 ARP 请求报文(广播形式,目标 MAC 为 FF-FF-FF-FF-FF-FF),报文包含主机 A 的 IP+MAC 地址和主机 B 的 IP 地址;② 局域网内所有主机接收报文,仅主机 B 识别自身 IP 地址,回复 ARP 应答报文(单播形式),包含主机 B 的 MAC 地址;③ 主机 A 收到应答后,将主机 B 的 IP-MAC 映射存入 ARP 缓存表,后续通信直接使用该映射,无需重复查询。
(3)MAC 地址
  • 定义:媒体访问控制地址,是网络设备的物理地址,用于数据链路层标识设备,全球唯一。
  • 格式:6 字节(48 比特),采用十六进制表示,分为前 24 比特(厂商代码,由 IEEE 分配)和后 24 比特(设备序列号,由厂商分配),特殊广播地址为 FF-FF-FF-FF-FF-FF。
相关推荐
砚边数影2 小时前
DL4J框架入门(三):基础配置,计算后端(CPU/GPU)选型与优化
java·数据库·人工智能·ai·金仓数据库
华硕之声2 小时前
试着像猫一样生活
网络·数据·华硕
名字无法显示3412 小时前
Arthas 实战指南:结合 IDEA 的 Java 线上排查完整流程
java·intellij-idea
臭东西的学习笔记2 小时前
论文学习——酶动力学参数预测的机器学习模型研究进展
人工智能·学习·机器学习
qq_12498707532 小时前
基于Spring Boot的桶装水配送管理系统的设计与实现(源码+论文+部署+安装)
java·前端·spring boot·后端·spring·毕业设计·计算机毕业设计
上海云盾安全满满2 小时前
入侵防御系统与入侵检测系统的核心区别
网络·安全·web安全
季明洵2 小时前
二分搜索、移除元素、有序数组的平方、长度最小的子数组
java·数据结构·算法·leetcode
leiming62 小时前
C语言联合体union的用法(非常详细,附带示例)
java·python·算法
中议视控2 小时前
网络中央控制系统主机与音频综合管理平台的对接
网络·音视频