【网络】网络总结


一、网卡和网关?

1、网卡(NIC)

网卡也叫网络适配器,是主机(或其他网络结点)进行网络传输所使用的物理设备,它可以将数据转化为电信号发送(也可逆向接收)至网络;

  • 网卡是一种计算机硬件;

  • 为做区分,每个网卡在生产时就被厂商赋予一个全球唯一的MAC地址(48位);

  • 一台计算机可以有多个网卡;

    比如笔记本中一般有PCI网卡、WireLess无线网卡、蓝牙

  • 路由器的每个端口具有 MAC 地址,同时还具有 IP 地址,因此可以将路由器看作是一种网卡;

2、网关(Gateway)

网关又称网间连接器、协议转换器,这是一个高度抽象的词汇,可以理解为进入某个网络的“入口”,也可以理解为“下一跳服务器”,源于IP网络;

在发送IP数据包时,网关定义了针对特定的网络目的地址,数据包发送到的下一跳服务器。如果是本地计算机直接连接到的网络,网关通常是本地计算机对应的网络接口,但是此时接口必须和网关一致;如果是远程网络或默认路由,网关通常是本地计算机所连接到的网络上的某个服务器或路由器。

  • 每台计算机和路由器均有网关设备。在计算机/路由器中,存在IP路由表

    路由表存储了本地计算机可以到达的网络目的地址范围和如何到达的路由信息。路由表是TCP/IP通信的基础,本地计算机上的任何TCP/IP通信都受到路由表的控制。

  • 通过路由表,计算机/路由器可以将网络数据包中的目的IP进行掩码匹配,找到下一跳的路由地址;而路由表中一般存在一个网关地址,用来跨网络数据传输;

  • 一台计算机不管有几个网卡,一般其网关地址只能有一个,因为默认网关(default gateway)只能是一个;
    关于配置多个网关
    路由表与默认网关

3、MAC和ARP?

  • 一层网口(网卡)或三层网口(路由器端口)都有一个 MAC 地址;

  • MAC地址作为数据链路设备的地址标识符,用来在以太网中一个局域网的相邻结点通过MAC地址进行匹配,而不是IP地址;

    以太网使用的头部是MAC头部(添加在IP头部之前),含有发送方MAC地址和接收方目标MAC地址,用于两点之间的传输;

    注意这里的发送放、接收方是数据链路层相邻两结点的MAC地址,而不是源IP、目的IP设备所对应的MAC地址;

  • 为什么以太网要通过MAC地址查询下一跳设备而不是通过IP地址?

    由于大多设备采用了DHCP(动态主机配置协议),服务器来自动给网络中的计算机分配IP地址、子网掩码和默认网关,即每台设备的IP是动态分配的;

    一旦网络的默认网关发生了变化时,只要更改了DHCP服务器中默认网关的设置,那么网络中所有的计算机均获得了新的默认网关的IP地址,因此只通过相邻设备的IP,是无法精确查找所需的设备;

  • 发送方MAC地址就是当前发送设备自己的MAC地址,那么接收方的MAC地址发送时如何确定?

    这里就用到了ARP协议,每台机器都会保存一个ARP缓存表,记录了相邻设备(同一个子网下)的IP地址和MAC地址的对应关系;

    若ARP缓存表无法查到下一跳IP所对应的MAC地址,ARP协议就会在以太网中以广播的形式,向以太网中所有的设备发出询问;

  • 在网络包传输的过程中,源 IP 和目标 IP 始终是不会变的,一直变化的是 MAC 地址,因为需要 MAC 地址在以太网内进行两个设备之间的包传输。

4、问题

有了MAC地址为什么还需要IP地址?

  • MAC地址就像身份证一样,它只唯一的标志一个网络接口,并没有被设计为具有寻址功能;
  • IP地址是基于网络层的IP协议,让使用不同硬件的异构网络能够进行通信;
  • 将IP地址和MAC地址分离,使得网络地址的管理更加的灵活,使得逻辑地址和物理地址充分解耦;

    如果一个以太网卡坏了,可以被更换,而无须取得一个新的IP地址;
    如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡;

有了IP地址为什么还需要Mac地址?

  • 并非每个主机都一个公网IP,很多主机都是使用的内网IP,依据NAT对外访问;
  • 应用DHCP(动态主机配置协议),IP地址是动态变化的;

    比如说这个主机刚刚是这个IP,忽然断网了,被分配给另一个IP了,那么数据就会被传输给另外一个主机了


二、交换机和路由器?

1、交换机

交换机属数据链路层设备,可以识别数据帧中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中;

  • 交换机是基于以太网设计的,俗称二层网络设备,交换机的端口不具有 MAC 地址;

    二层交换机工作于OSI模型的第2层(数据链路层),故而称为二层交换机;

  • 交换机的 MAC 地址表主要包含两个信息:

    一个是设备的 MAC 地址,另一个是该设备连接在交换机的哪个端口上。

    若地址表中找不到指定的 MAC 地址,交换机无法判断应该把包转发到哪个端口,只能将包转发到除了源端口之外的所有端口上,无论该设备连接在哪个端口上都能收到这个包。

2、路由器

路由器属于网络层设备,当收到数据包时,会通过路由表查询IP并转发目标,再由相应的MAC端口作为发送方将以太网包发送出去。

  • 路由器是基于 IP 设计的,俗称三层网络设备,路由器的各个端口都具有 MAC 地址和 IP 地址;
  • 可以将路由器看作为拥有网卡的交换机;

    路由器的每个端口具有 MAC 地址,因此它就能够成为以太网的发送方和接收方;
    路由器的每个端口具有 IP 地址,因此它能够跨网络传输数据;

在这里插入图片描述

3、路由器和交换机的区别

  • 交换机工作在OSI的第二层(数据链路层),用于组建局域网;
  • 路由器工作在OSI的第三层(网络层),用于连接互联网;

  • 交换机没有MAC地址,内部通过MAC表进行MAC地址寻址,实现局域网内数据的收发;
  • 路由器的每个端口都有MAC地址和IP地址,通过路由表进行IP地址寻址,可以实现跨网数据收发;

  • 路由器可以为局域网内的设备自动分配IP,而交换机不可以;
  • 交换机最大的目的是将载有信息的网络包尽可能完整的、高效的转发到目的地;

  • 路由器更多是负责在不同网络间传输报文,通过路由表来决定最佳转发路径;而交换机只能处理同一网络下的数据传输;
  • 路由器提供了防火墙的服务:路由器仅仅转发特定地址的数据包,不传送不支持路由协议的数据包传送和未知目标网络数据包的传送,从而可以防止广播风暴;

交换机和路由器


4、路由器如何找到下一跳地址?

  • 当路由器的某个接口收到一个包时,路由器会读取包中相应目标的逻辑地址的网络部分,然后在路由表中进行查找;

  • 如果在路由表中找到了目标地址的路由条目,则把包转发到路由器的相应接口;

    若路由表的多行目标地址都可以匹配,那么首先选择网络号比特数最长的那条记录;
    若匹配多个网络号长度相同的记录,那么优先选择跃点数最小的记录;

  • 如果在路由表中没有找到目标地址的路由条目,那么,如果路由器配置了默认路由,就根据默认路由的配置转发到路由器的相应接口;

  • 如果路由器中没有配置默认路由,则将该包丢弃,并返回不可达信息;

路由表是如何建立的?


三、键入网址到网页显示,期间发生了什么?


四、Linux系统是如何收发网络包的?


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值