协议分层

TCP/IP网络分层模型

image-20221111113415041

链路层

负责在以太网、WiFi 这样的底层网络上发送原始数据 包,工作在网卡这个层次,使用 MAC 地址来标记网络上的设备。【负责物理层次上的互连,节点之间的通信传输。

网络层

IP 协议处在这一层。因为 IP 协议定义了“IP 地址”的概念,所以就可以在“链接层”的基础上,用 IP 地址取代 MAC 地址,把许许多多的局域网、广域网连接成一个虚拟的巨大网络,在这个网络里找设 备时只要把 IP 地址再“翻译”成 MAC 地址就可以了。【将数据传输到目的地址。目标地址可以是由多个网络通过路由器连接而成的某一个地址。因此这一层主要负责寻址和路由选择。

传输层

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

应用层

有各种面向具体应用的协议。例如 Telnet、SSH、FTP、 SMTP 等等,当然还有我们的 HTTP。【为应用程序提供服务并规定应用程序中通信相关的细节。包括文件传输,电子邮件,远程登陆(虚拟终端)等协议。

MAC 层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位 是段(segment),HTTP 的传输单位则是消息或报文(message)。

OSI七层网络模型

image-20221111115708396

1.物理层

负责0,1比特流(0,1序列)与电压高低,光的闪灭之间的互换。

2.链路层

负责物理层次上的互连,节点之间的通信传输。

3.网络层

将数据传输到目的地址。目标地址可以是由多个网络通过路由器连接而成的某一个地址。因此这一层主要负责寻址和路由选择。

4.传输层

起着可靠传输的作用。只在通信双方的节点上进行处理,而无需再路由器上处理。

5.会话层

负责建立和断开通信连接(数据流动的逻辑通路),以及数据的分割等数据控制相关的管理。

6.表示层

将应用处理的信息转换为适合网络传输的格式,或将来自下一次层次的数据转换为上层能够处理的格式,因此它主要负责数据格式的转。

具体来说,就是将设备固有的数据格式转换为网络标准传输格式,不同设备对同一比特流解释的结果可能不同,因此,使他们保持一致使这一层的主要作用。

7.应用层

为应用程序提供服务并规定应用程序中通信相关的细节。包括文件传输,电子邮件,远程登陆(虚拟终端)等协议。

模型对应

模型对应

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

四层负载均衡与七层负载均衡

所谓的“四层负载均衡”就是指工作在传输层上,基于 TCP/IP 协议的特性,例如 IP 地 址、端口号等实现对后端服务器的负载均衡。

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

数据传递

数据传递

这里为简单起见,假定两台主机通过一台路由器连接起来。

假定主机1的应用进程AP 1 向主机2的应用进程AP 2 传送数据。AP 1 先将其数据交给本主机的第5层(应用层)。第5层加上必要的控制信息H 5 就变成了下一层的数据单元。第4层(运输层)收到这个数据单元后,加上本层的控制信息H 4 ,再交给第3层(网络层),成为第3层的数据单元。依此类推。不过到了第2层(数据链路层)后,控制信息被分成两部分,分别加到本层数据单元的首部(H 2 )和尾部(T 2 );而第1层(物理层)由于是比特流的传送,所以不再加上控制信息。请注意,传送比特流时应从首部开始传送。

当这一串的比特流离开主机1经网络的物理媒体传送到路由器时,就从路由器的第1层依次上升到第3层。每一层都根据控制信息进行必要的操作,然后将控制信息剥去,将该层剩下的数据单元上交给更高的一层。当分组上升到了第3层时,就根据首部中的目的地址查找路由器中的转发表,找出转发分组的接口,然后往下传送到第2层,加上新的首部和尾部后,再到最下面的第1层,然后在物理媒体上把每一个比特发送出去。

当这一串的比特流离开路由器到达目的站主机2时,就从主机2的第1层按照上面讲过的方式,依次上升到第5层。最后,把应用进程AP 1 发送的数据交给目的站的应用进程AP 2 。

二层转发与三层路由

二层转发
  1. 提取数据报的源MAC地址,查询MAC转发表(也就是L2FDB),如果找到就直接发送到对应端口。
  2. 对于表中不包含的地址,通过广播发送,也就是发送到所有端口。
  3. 使用地址自学习(根据源MAC地址学习)和老化机制(定时机制)来维护MAC转发表的信息,二层转发一般不会更改数据包内容。
三层路由
  1. 从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N。
  2. 若N就是与此路由器直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由器,直接把数据报交付目的主机(这里包括把目的主机地址D转换为具体的硬件地址,把数据报封装为MAC帧,再发送此帧);否则就是间接交付,执行(3).
  3. 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4).
  4. 若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器:否则,执行(5)。
  5. 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;)否则,执行(6)。
  6. 报告转发分组出错。

交换机可以分隔冲突域,路由器可以分隔广播域,集线器不可以隔离冲突域和广播域。


zhaobuqi
1 声望1 粉丝

« 上一篇
内存分配与GC
下一篇 »
HTTP报文结构