公开学习文档

公开学习文档


网络基本概念

<h2>RTT</h2> <p>数据包在 2 端之间往返一个来回的时间</p> <h2>MTU</h2> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=7de225c00be80ae2d799cc4f70dd1677&amp;amp;file=file.png" alt="" /></p> <p>总结: 如果 IP MTU = 1500 以太帧 MTU = 1500 + 14 = 1514,很经典的数字 再加上 CRC 部分:1514 + 4 = 1518</p> <p>超过 MTU 会怎样? IP 协议层会分包,而有的设备则直接丢掉。</p> <p>&gt; 参考文档:<a href="https://info.support.huawei.com/info-finder/encyclopedia/zh/MTU.html">https://info.support.huawei.com/info-finder/encyclopedia/zh/MTU.html</a></p> <h2>邻居表</h2> <p>邻居:同一个局域网下的主机。邻居之间仅隔一跳的距离。能直接通信的,也只有邻居。 邻居表:即 ARP 缓存表,记录 IP 和 MAC 的关系。其中的 IP 是同一局域网下的主机 IP(即邻居)。网关设备也属于同一局域网下。</p> <p>更新时机: 1、上层要发送数据时,如表中没有项,则发出 ARP 广播请求(特别说明一下:在等待应答的过程中,数据包是被缓存下来的,缓存过多的话,会被丢掉) 2、收到 ARP 响应时更新,即使响应不是发给自己的? 3、免费 ARP 主动更新</p> <p>流程位置: 1、在给网口添加 IP 时,系统会自动添加一条路由项,设置网口所在局域网路由为直接转发(路由目标地址为 0.0.0.0):</p> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=6aa51f5fa699420168ec5fe487d9c966&amp;amp;file=file.png" alt="" /></p> <p>2、当有数据包发送,先在 IP 层查路由获取下一跳,这里查出来要么是具体网关,要么是 0.0.0.0(即在同一局域网上)。如果是网关,则 ARP 查询网关 IP 的 MAC;如果是 0.0.0.0 则查的是数据包的目标 IP 的 MAC。</p> <h2>MSS</h2> <p>TCP 协议里的概念,其目的是为了尽量避免在 IP 层进行分包,提高性能。 在 TCP 连接里,只在 SYN 和 SYN+ACK 的包里带有 MSS 信息。 MSS 指定了 TCP 数据段中数据部分的最大字节数。 一般来说,以太网的 MTU 为 1500,则 TCP 的 MSS 初始化值通常为 1500 - 20 - 20 = 1460。经过协商后,最终 MSS 会取双方最小的那个。</p> <p>在 GSO 场景下: 发送的数据包会很大,但 MSS 还是记录为小的?</p> <p>问题: MSS 会动态调整吗?本身不会动态调整,但如果探测到 MTU 变化,肯定会影响真正的 MSS(即可能比协商的 MSS 更小)</p> <h2>其它</h2> <p>&gt; 参考文档:<a href="https://mp.weixin.qq.com/s/ZWgZatLUmhERovCX59Buzg">https://mp.weixin.qq.com/s/ZWgZatLUmhERovCX59Buzg</a></p> <h2>其它</h2> <p>用 <code>ss -i</code> 命令可以查看连接的 cwnd 信息。</p>

页面列表

ITEM_HTML