# TCP/IP 网络分层模型

TIP

TCP/IP 协议总共有 四层,就像搭积木一样,每一层需要下层的支撑,同时又支撑着上层,任何一层被抽掉都 可能会导致整个协议栈坍塌

# 第一层->链接层

负责在以太网、WiFi 这样的底层网络上发送原始数据包,工作在网卡这 个层次,使用 MAC 地址来标记网络上的设备,所以有时候也叫 MAC 层

# 第二层->网际层

IP 协议就处在这一层。因为 IP 协议定义了“IP 地址”的概念,所以就可以在“链接层”的基础上,用 IP 地址取代 MAC 地址,把许许多多的局域网、广域网 连接成一个虚拟的巨大网络,在这个网络里找设备时只要把 IP 地址再“翻译”成 MAC 地址就可以了

# 第三层->传输层

这个层次协议的职责是保证数据在 IP 地址标记的两点之间“可 靠”地传输,是 TCP 协议工作的层次,另外还有它的一个“小伙伴”UDP。 TCP 是一个有状态的协议,需要先与对方建立连接然后才能发送数据,而且保证数据不丢失不重复。而 UDP 则比较简单,它无状态,不用事先建立连接就可以任意发送数据,但不保证数据一定会发到对方。两个协议 的另一个重要区别在于数据的形式。TCP 的数据是连续的“字节流”,有先后顺序,而 UDP 则是分散的小数 据包,是顺序发,乱序收

# 第四层->应用层

由于下面的三层把基础打得非常好,所以在这一层 就“百花齐放”了,有各种面向具体应用的协议。例如 Telnet、SSH、FTP、SMTP 等等,当然还有我们的 HTTP

TIP

MAC 层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段 (segment),HTTP 的传输单位则是消息或报文(message)。但这些名词并没有什么本质的区分,可以 统称为数据包

# OSI 网络分层模型

TIP

OSI (开放式系统互联通信参考模型)把网络分成了 七成

  1. 第一层:物理层,网络的物理形式,例如电缆、光纤、网卡、集线器等等;
  2. 第二层:数据链路层,它基本相当于 TCP/IP 的链接层;
  3. 第三层:网络层,相当于 TCP/IP 里的网际层;
  4. 第四层:传输层,相当于 TCP/IP 里的传输层;
  5. 第五层:会话层,维护网络中的连接状态,即保持会话和同步;
  6. 第六层:表示层,把数据转换为合适、可理解的语法和语义;
  7. 第七层:应用层,面向具体的应用传输数据。

# TCP/IP 和 OSI 对应关系

  1. 第一层:物理层,TCP/IP 里无对应;
  2. 第二层:数据链路层,对应 TCP/IP 的链接层;
  3. 第三层:网络层,对应 TCP/IP 的网际层;
  4. 第四层:传输层,对应 TCP/IP 的传输层;
  5. 第五、六、七层:统一对应到 TCP/IP 的应用层。

# 小知识

TIP

在数据传输的过程中 先是域名通过 DNS 解析为 IP, IP 再解析为 MAC 最后才能链接到具体的服务器