计算机网络的一些基础概念

hub switch router gateway NAT NAPT


网络的基本结构如下

  • hub 工作在osi模型的第一层物理层,不具有任何处理数据包的能力,仅仅把一个端口收到的数据包,广播到所有的其他端口。
  • switch 工作在osi模型的第二层(也有三层的交换机),不能识别ip地址,能识别mac地址。根据数据包的mac地址进行定向转发。相比hub减少了网络流量。
  • router 工作在第三层,主要处理ip地址的转换,也包括mac地址的查询。

上述三个概念有对应的物理实体,后面的gateway NAT NAPT,一般是逻辑结果没有具体的实体,一般在和路由集成在一起。

hub和switch的工作过程

上面flash的来源,点击上图中的learning flooding菜单回有相应的动画演示。

从上图可以看出交换机通过自己的端口号和对应端口接入的终端的mac地址对应表进行了定向的数据转发。

gateway

单一的主机会具有ip地址,网关 子网掩码等重要信息

主机在向外发送数据时,会首先把要发送到的地址和自己的地址分别和子网掩码进行与运算。

  • 如果两个结果相同则说明两个机器位于同一子网,发出数据包的目的地址和mac地址(arp缓存)不用变化,直接存入数据包中即可。
  • 如果与的结果不同说明两台机器位于不同的网段,这时需要通过网关转发了,具体做法是生成的数据包中目的ip地址不变,目的mac地址为网关的mac地址,这样数据包会被网关转发到外部。

NAT

上面gateway的图中做网关的主机同时也是NAT主机,NAT会把私有地址网段共用一个或多个共有ip地址。 NAT的详细介绍

Basic NAT方式

NAPT方式---要进行NAT处理 NAT网关路由器维护一个IP端口映射表——NAT表,表项格式如下: 私有IP:私有IP使用的端口 <==> NAT网关的公用IP:NAT网关临时分配的端口

router

1、数据包从二层交换到三层路由流程   

(1)源主机在发起通信之前,将自己的IP地址与目的主机的IP地址进行比较,如果源主机判断目的主机与自己位于不同网段时,它需要通过网关来递交报文的,所以它首先需要通过一个ARP请求报文获取网关的MAC地址(在源主机不知道网关MAC地址的情形下),即源主机先发送ARP请求帧以获取网关IP地址对应的MAC地址。

(2)网关在收到源主机发来的ARP请求报文后以一个ARP应答报文进行回应,在应答报文中的“源MAC地址”就包含了网关的MAC地址。

(3)在得到网关的ARP应答后,源主机再用网关MAC地址作为报文的“目的MAC地址”,以源主机的IP地址作为报文的“源IP地址”,以目的主机的IP地址作为“目的IP地址”,先把发送给目的主机的数据发给网关。

(4)网关在收到源主机发送给目的主机的数据后,由于查看得知源主机和目的主机的IP地址不在同一网段,于是把数据报上传到三层交换引擎(ASIC芯片),在里面查看有无目的主机的三层转发表。

(5)如果在三层硬件转发表中没有找到目的主机的对应表项,则向CPU请求查看软件路由表,如果有目的主机所在网段的路由表项,则还需要得到目的主机的MAC地址,因为数据包在链路层是要经过帧封装的。于是三层交换机CPU向目的主机所在网段发送一个ARP广播请求包,以获得目的主机MAC地址。

(6)交换机获得目的主机MAC地址后,向ARP表中添加对应的表项,并转发由源主机到达目的主机的灵气包。同时三层交换机三层引擎会结合路由表生成目的主机的三层硬件转发表。    以后到达目的主机的数据包就可以直接利用三层硬件转发表中的转发表项进行数据交换,不用再查看CPU中的路由表了。

2、 路由表   

路由器在接收到数据时,要对其传输路径进行选择。为了实现这一目标,路由器需要维护一个称为“路由表”的数据结构。路由表包含若干条目,供路由器选路时查询数据传输路径。路由表中的一个条目至少要包含:

  1. 数据的目的地址(通常是目的主机所在网络的地址)。
  2. 下一跳路由器(即从本路由器出发按所给路径到给定目的地所要通过的下一个路由器)的地址。
  3. 相应的网络接口。
  4. 一般情况下还应该有标志位等内容。

由于Internet规模太大,分布范围太广,所以路由表中对应每一个目的网络都有一个条目是不可能的;同样,也不可能采用一个全局的路由算法或协议。因此,Internet将整个网络划分为若干个相对自治的局部系统,即自治系统。自治系统可以定义为同一机构下管理的路由器和网络的集合。一个自治系统内部还可以再划分几个小的路由域,也称作区域。


Copyright © FengGuangtu 2017