# 分层

# 物理层

# TCP/IP 分层

TCP/IP 协议,分为四层,应用层(HTTP)、传输层(TCP/UDP)、网络层(IP)、链路层(MAC)。每层负责的内容各部相同,但是每个层级之前的沟通/交流,要确保符合规范,这样就可以实现,无论在哪个层级内部有调整,只要保证传输到其他层级的数据格式是正确的就可以。

负责在以太网、WiFi 这样的底层网络上发送原始数据包,工作在网卡这一层,使用 MAC 地址来标记网络上的设备,有时也叫做 MAC 层。链路层在物理层提供服务的基础上,向网络层提供服务,最基础的服务是将来自网络层的数据可靠地传输到相邻街电的目标及网络层。

TIP

MAC 地址,也称为局域网的地址,可以唯一标识一个网卡,同时也就表示了此网卡对应的设备。

# 网络层/网际层(Internet Layer)

IP 协议属于这一层,因为 IP 协议定义了 IP 地址的概念,所以就可以在链接层的基础上,用 IP 地址代替 MAC 地址,把许许多多的局域网广域网连接成一个巨大的网络,在这个网络里找设备时,只需要把 IP 地址转换成 MAC 地址就可以了。

# 传输层

保证数据在两个 IP 之间可靠的传输。TCP、UDP 属于这一层。

  • TCP,有状态的协议,需要建立与对方的连接后才能发送数据(三次握手),而且保证数据完整、不重复。数据是连续的字节流

  • UDP,无状态协议,不用建立连接即可发送数据,但是不保证能够发送成功,发送的数据是小数据包,顺序发,乱序收。

# 应用层(Application Layer)

离用户最近的一层。常见的有 HTTP、SSH、FTP、SMTP 等。

TIP

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

# OSI 网络分层模型

开放式系统互联通信参考模型(open system interconnection reference Model),总共分为七层。

  1. 应用层(application Layer)面向具体的应用 传输数据。
  2. 表示层(presentation Layer)把数据装换为合适、可理解的语法和语义。
  3. 会话层(session Layer)维护网络中的链接状态,即保持会话和同步。
  4. 传输层(transport Layer) 相当于 TCP/IP 中的传输层。
  5. 网络层(network Layer)相当于 TCP/IP 中的网络层。
  6. 链路层(data link Layer),相当于 TCP/IP 中的链接层
  7. 物理层(physical Layer),网络的物理形式,例如光纤、电缆、网卡等。

# 负载均衡

# 四层负载均衡

是指工作在传输层,基于 TCP/IP 协议的特性,实现对后端服务器的负载均衡。

# 七层负载均衡

是指工作在应用层上,看到的是 HTTP 协议,解析 HTTP 报文里的 URI,主机名,资源类型等数据,再用适当的策略转发给后端服务器。

浏览器工作原理与实践