Bootstrap

路由-网关及路由转发过程

0

网关:Gateway

  • 位于不同网络之间的主机需要通信,必须将数据包交给网关 (默认路由)
  • 网关是一台具备路由功能的设备(路由器、三层交换机、防火墙、服务器)
  • 网关地址与设备的接口地址是处于同个网络

0

主机经过与计算得出目的地址是否在同个网段:

同一个网段直接封装目的的MAC转发

不同网段封装网关的MAC,网关帮忙转发

数据包转发的过程中IP地址和MAC地址:

在同一个网段内的源MAC地址是不会变化,非同一个网段的源MAC地址会变化

    IP地址一般不会变化,除使用NAT技术

0

0

数据转发过程:

主机A访问HTTP服务器

 

0

0

目的端口号:80

0

封装源IP目的IP地址,并进行与计算

0

不在同一网段,交给网关

 

0

检查缓存表是否有网关的MAC,没有进行ARP请求

0

最终以光信号、电信号发送出去

0

网关收到,进行FCS帧校验检测,通过检测目的MAC地址是否是我

通过交给网络层

0

发现目的IP地址不是我,查找路由表

封装新的二层帧头和帧尾,并进行转发

0

路由器以服务器A的MAC地址作为目的MAC地址继续转发

服务器A收到,进行FCS检测,通过检测目的MAC是我的MAC,继续交给上层处理

0

检测目的IP地址是我,检测协议号为TCP,交给TCP

TCP检测目的端口交给HTTP

0

打开 浏览器,输入www.baidu.com ,回车

将会发生什么事情,哪些协议,顺序如何?

封装:

HTTP->TCP->ip (目的MAC地址未知,需要DNS解析)

DNS->UDP->ip (目标DNS服务器IP地址不同网段,寻找网关) ->Ethernet II (查看ARP缓存,不存在网关MAC)

ARP->Ethernet II(请求网关MAC)

网关经过路由找到DNS服务器

HTTP->TCP->ip->Ethernet

 

0

总结:

  • 数据在进行二层和三层封装之前,主机需要了解那哪些信息?

A:源MAC 目的MAC 源IP 目的IP

  • 当数据帧发送到非目的主机时,非目的主机将会进行什么处理?

A:检测FCS,通过检测MAC发现不是我的MAC丢弃

  • 传输层如何准确的将数据交给特定的应用?

A:根据目的端口

  • 当两台主机同时访问服务器的HTTP服务,该服务器如何区分数据属于哪个会话?

A: 同一网络时,检测目的IP地址和MAC地址

       不同网络时,检测目的端口号

;