《趣谈网路协议》笔记

基础

  1. 概览
  2. 只要是在网络上跑的包,都是完整的。可以有下层没上层,绝对不可能有上层没下层。
  3. IP 是地址,有定位功能;MAC 是身份证,无定位功能,从硬件角度,保证不同的网卡有不同的标识,通信范围局限在一个子网。
  4. 在 IP 地址的后面有个 scope,对于 eth0 这张网卡来讲,是 global,说明这张网卡是可以对外的,可以接收来自各个地方的包。对于 lo 来讲,是 host,说明这张网卡仅仅可以供本机相互通信。
  5. DHCP 协议主要是用来给客户租用 IP 地址,和房产中介很像,要商谈、签约、续租,广播还不能“抢单”;DHCP 协议能给客户推荐“装修队”PXE,能够安装操作系统,这个在云计算领域大有用处。

底层网络协议

  1. MAC 层是用来解决多路访问的堵车问题的;
  2. ARP 是通过广播的方式来寻找目标 MAC 地址的,广播完之后记住一段时间,这个叫作缓存;
  3. 交换机是有 MAC 地址学习能力的,结果记录在转发表。
  4. 如果 MAC 层定义了本地局域网的传输行为,IP 层定义了整个网络端到端的传输行为,这两层基本定义了这样的基因:网络传输是以包为单位的,二层叫帧,网络层叫包,传输层叫段。我们笼统地称为包。包单独传输,自行选路,在不同的设备封装解封装,不保证到达。基于这个基因,生下来的孩子 UDP 完全继承了这些特性,几乎没有自己的思想。

    TCP

  5. 三次握手
  6. 四次挥手 等待的时间设为 2MSL,MSL 是 Maximum Segment Lifetime,报文最大生存时间
  7. TCP 协议使用的也是同样的模式。为了保证顺序性,每一个包都有一个 ID。在建立连接的时候,会商定起始的 ID 是什么,然后按照 ID 一个个发送。为了保证不丢包,对于发送的包都要进行应答,但是这个应答也不是一个一个来的,而是会应答某个之前的 ID,表示都收到了,这种模式称为累计确认或者累计应答(cumulative acknowledgment)。
  8. 发送端缓存:
  9. 接收端缓存