Posts
秘秘秘秘秘密
Cancel

12.1. Introduction 12.1.1. ARQ and Retransmission 乱序、重复和丢失并不是 IP 层的内部状态,而是 IP 层服务模型在端系统处呈现的外在结果。IP 协议本身不维护分组之间的关系,因此无法感知顺序、唯一性或端到端意义上的丢失。IP 只负责逐包转发,也不试图消除这些现象,而是将它们完全留给上层协议处理。由于 IP 不保证顺序、唯一性和送达性,...

8.1. Introduction IP 协议本身 无法告知数据报是否送达,也 无法提供路径或延迟信息。为解决这些问题,ICMP(Internet Control Message Protocol) 与 IP 配合使用,提供 错误报告 和 控制信息,帮助 诊断网络问题 和 配置 IP 层。ICMP 使用 IP 传输,因此既不是传统的网络协议,也不是传输协议,而是位于两者之间的控制协议。 ...

这一章没什么好聊的, DHCP 用的少,后续再补充。主要关注 二层转发 & 三层转发即可。 特性 / 维度 二层广播 (L2 Broadcast) 三层广播 (L3 Broadcast) 主要协议层 数据链路层 (Layer 2) 网络层 (Layer 3) ...

Nginx 把所有 socket(包括 listen socket)都统一抽象成 ngx_connection_t。 Nginx 把所有 epoll/kqueue 事件都统一抽象成 ngx_event_t。 Nginx 把所有协议都统一抽象成 ngx_protocol_t。 Nginx 把所有模块都统一抽象成 ngx_module_t。 第一章:Nginx 网络模型与协...

概览 ① TLS握手流程 ② 证书体系 ③ Wireshark抓包 ④ OpenSSL API ⑤ HTTP over TLS 必须看的 TLS关键RFC 必须理解的 10个TLS包 OpenSSL 最重要的10个API 抓包时 必须观察的字段 1. TLS协议 1.1 概览 TLS 是干嘛的 TLS 解决 三个问题: 1 确认服务器身份 2 协商加密密钥 ...

C 语言中的三种未完全定义行为 C 语言为了在“性能、实现自由度和可移植性”之间取得平衡,并没有对所有程序行为做出完全严格的规定,而是引入了三种不同层级的行为:Implementation-defined、Unspecified 和 Undefined。它们看起来相似,但在工程实践中的含义和风险完全不同,理解它们的差异,是写出可靠 C 代码的基础。 Implementation-de...

16.1 Introduction 16.1 Introduction(拥塞控制的基本思想) TCP 的拥塞控制主要用于 大规模数据传输(bulk transfer)场景,其目标是防止网络因为发送流量过大而被压垮。基本策略是:当 TCP 认为网络可能出现拥塞时降低发送速率,而当网络恢复时再逐渐提高速率。 TCP 最初通过 流量控制(Flow Control) 来避免接收方被发送方压垮。...

15.1 Introduction TCP 不仅要支持大规模数据传输(bulk data transfer),还需要支持交互式通信(interactive communication)。这两类通信在网络行为上差异很大,因此 TCP 在设计上需要在 延迟(latency) 与 网络效率(efficiency) 之间进行权衡。 从网络流量统计来看,绝大多数 TCP 流量属于大规模数据传输,例...

14.1. Introduction 本章围绕 TCP 的超时与重传机制展开,重点介绍 TCP 如何在不可靠的 IP 网络之上通过重传来保证可靠传输。TCP 主要依靠两种方式判断丢包:基于重传超时(RTO)的定时器重传,以及基于 ACK 结构(包括重复 ACK 与 SACK 信息)的快速重传,其中快速重传通常比超时重传更高效。章节进一步说明了 RTO 如何基于 RTT 动态计算,以及乱序、...

13.1. Introduction TCP 连接不是“连上了”,而是两端进入一套复杂的状态机,并在建立阶段协商参数,之后通过序列号、ACK、窗口、重传、拥塞控制,把不可靠的 IP 网络抽象成可靠的字节流。 13.2. TCP Connection Establishment and Termination 1. TCP 连接的本质 1.1 4 元组定义 TCP 连接由以下 4...

Trending Tags