TCP/IP (转载)

本文探讨了一系列关于TCP/IP协议及其相关技术的深入问题,包括TCP端口、URGPointer字段的应用、RST包的有效载荷、IPv6中的流字段、socket选项等。同时还涉及了PSH标志的作用、TCP时间戳与SYNCookie的工作原理、UDP校验和设置、TCP同时开放连接机制等。此外,还讨论了与拥塞控制和碎片处理相关的议题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

古老的问题

1)TCP 最小的端口号是多少?

2)TCP 帧中有一个叫做 URG Pointer 的字段,什么时候会用到该字段?

3)RST 包能有荷载么?

4)什么时候会用到 IPv6 里的“flow”字段?

5)socket中的 IP_FREEBIND 选项有什么用?

被遗忘奇葩问题

6)PSH 标志实际上有什么用?

7)TCP 时间戳和 SYN Cookie 是如何协同工作的?

8)“UDP” 包可以把校验和字段设置为0么?

9)TCP 的同时开放连接是如何工作的?真的能工作么?

碎片处理和拥塞控制

10)什么是愚笨窗口综合征(stupid window syndrome)?

11)TCP 头里的 CWE 和 ECE 标志有什么用?

12)IP 头里的 ID 字段是什么?ID 字段必须和 DF 比特位一起完成什么工作?为什么有些 IP 包的 ID 字段不是零并且设置了 DF?

新提议

13)SYN 包可以有荷载么?(提示:新RFC提案)

14)SYN+ACK 包可以有荷载么?

ICMP Path MTU

15)ICMP 包太大(packet-too-big )的消息会由路由器返回,并且荷载里包含了原始包的一部分。Linux 系统中可接受的最小荷载长度是多少?

16)当 ICMP包太大(packet-too-big )的消息被中间路由返回时会包含这个路由的源IP。但在实际操作中,我们经常可以看到 ICMP 消息的源 IP 与原始包的目的 IP 相同。为什么会这样?

Linux配置

17)Linux 有一个名为 “tcp_no_metrics_save” 的 sysctl 设置。它用于存储什么?存储多久?

18)Linux 使用了两个队列来处理到达的 TCP 连接:SYN 队列和接收队列。SYN 队列长度是多少?

19)如果 SYN 队列因变得很大而导致溢出,那么会发生什么?

路由相关

最后:

20)BGP bogons 是什么?为什么说它们现在只是个小问题?

21)TCP 有一个会添加 MD5 校验和到包中的扩展。该扩展什么时候起作用?

22)IPv4 和 IPv6 的校验和算法有什么区别?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值