0%

计算机网络系列(四):网络层

1. IP 协议的定义和作用 ★★★

  • 概念
    • IP 协议(Internet Protocol)又称互联网协议,是支持网间互联的数据包协议。该协议工作在网络层,主要目的就是为了提高网络的可扩展性
    • 和传输层相比,IP 协议提供一种无连接/不可靠、尽力而为的数据包传输服务,其与 TCP 协议(传输控制协议)一起构成了 TCP/IP 协议族的核心
  • 作用
    • 寻址和路由:在 IP 数据包中会携带源 IP 地址目的 IP 地址来标识该数据包的源主机目的主机。IP 数据报在传输过程中,每个中间节点(IP 网关、路由器)只根据网络地址进行转发,如果中间节点是路由器,则路由器会根据路由表选择合适的路径。IP 协议根据路由选择协议提供的路由信息对 IP 数据报进行转发,直至抵达目的主机
    • 分段与重组:IP 数据包在传输过程中可能会经过不同的网络,在不同的网络中数据包的最大长度限制是不同的,IP 协议通过给每个 IP 数据包分配一个标识符以及分段与组装的相关信息,使得数据包在不同的网络中能够传输,被分段后的 IP 数据包可以独立地在网络中进行转发,在到达目的主机后由目的主机完成重组工作,恢复出原来的 IP 数据包

2. 域名和 IP 的关系,一个 IP 可以对应多个域名吗 ★★

  • IP 在同一个网络中是唯一的,用来标识每一个网络上的设备,其相当于一个人的身份证号
  • 域名在同一个网络中也是唯一的,就像一个人的名字、绰号
  • 一个域名只能对应一个 IP 地址,是一对一的关系;而一个 IP 却可以对应多个域名,是一对多的关系

3. IPv4 地址不够如何解决 ★★★

  • DHCP动态主机配置协议。动态分配 IP 地址,只给接入网络的设备分配 IP 地址,因此同一个 MAC 地址的设备,每次接入互联网时,得到的 IP 地址不一定是相同的,该协议使得空闲的 IP 地址可以得到充分利用
  • CIDR无类别域间路由。CIDR 消除了传统的 A 类、B 类、C 类地址以及划分子网的概念,因而更加有效地分配 IPv4 的地址空间,但无法从根本上解决地址耗尽问题
  • NAT网络地址转换协议。属于不同局域网的主机可以使用相同的 IP 地址,从而一定程度上缓解了 IP 资源枯竭的问题。然而主机在局域网中使用的 IP 地址是不能在公网中使用的,当局域网主机想要与公网进行通信时,NAT 方法可以将该主机 IP 地址转换成全球 IP 地址。该协议能够有效解决 IP 地址不足的问题
  • IPv6:作为接替 IPv4 的下一代互联网协议,其可以实现 2 的 128 次方个地址,该协议能够从根本上解决 IPv4 地址不够用的问题

4. 路由器的分组转发流程 ★★★

  1. 从 IP 数据包中提取出目的主机的 IP 地址,找到其所在的网络
  2. 判断目的 IP 地址所在的网络是否与本地路由器直接相连,如果是,则不需要经过其它路由器直接交付,否则执行 3
  3. 检查路由表中是否有目的 IP 地址的特定主机路由。如果有,则按照路由表传送到下一跳路由器中,否则执行 4
  4. 逐条检查路由表,若找到匹配路由,则按照路由表转发到下一跳路由器中,否则执行 5
  5. 若路由表中设置有默认路由,则按照默认路由转发到默认路由器中,否则执行步骤 6
  6. 无法找到合适路由,向源主机报错

5. 路由器和交换机的区别 ★★★★

  • 交换机:交换机用于局域网,利用主机的物理地址(MAC 地址)确定数据转发的目的地址,它工作于数据链路层
  • 路由器:路由器通过数据包中的目的 IP 地址识别不同的网络从而确定数据转发的目的地址,网络号是唯一的。路由器根据路由选择协议路由表信息从而确定数据的转发路径,直到到达目的网络,它工作于网络层

6. ICMP 协议概念/作用 ★★

  • ICMP(Internet Control Message Protocol)是因特网控制报文协议,主要是实现 IP 协议中未实现的部分功能,是一种网络层协议
  • 该协议并不传输数据,只传输控制信息来辅助网络层通信。其主要的功能是验证网络是否畅通(确认接收方是否成功接收到 IP 数据包)以及辅助 IP 协议实现可靠传输(若发生 IP 丢包,ICMP 会通知发送方 IP 数据包被丢弃的原因,之后发送方会进行相应的处理)

7. ICMP 的应用 ★

  • PingPing(Packet Internet Groper),即因特网包探测器,是一种工作在网络层的服务命令,主要用于测试网络连接量。本地主机通过向目的主机发送 ICMP Echo 请求报文,目的主机收到之后会发送 Echo 响应报文,Ping 会根据时间和成功响应的次数估算出数据包往返时间以及丢包率从而推断网络是否通畅运行是否正常等
  • TraceRoute:TraceRoute 是 ICMP 的另一个应用,其主要用来跟踪一个分组从源点耗费最少 TTL 到达目的地的路径。TraceRoute 通过逐渐增大 TTL 值并重复发送数据包来实现其功能。首先,TraceRoute 会发送一个 TTL 为 1 的 IP 数据报到目的地,当路径上的第一个路由器收到这个数据报时,它将 TTL 的值减 1,此时 TTL = 0,所以路由器会将这个数据报丢掉,并返回一个差错报告报文,之后源主机会接着发送一个 TTL 为 2 的数据报,并重复此过程,直到数据报能够刚好到达目的主机。此时 TTL = 0,因此目的主机要向源主机发送 ICMP 重点不可达差错报告报文,之后源主机便知道了到达目的主机所经过的路由器 IP 地址以及到达每个路由器的往返时间

8. 两台电脑连接起来后 ping 不通,可能的原因 ★★★

  • 首先看网络是否连接正常,检查网卡驱动是否正确安装
  • 局域网设置问题,检查 IP 地址是否设置正确
  • 检查是否被防火墙阻拦(有些设置中防火墙会对 ICMP 报文进行过滤),如果是的话,尝试关闭防火墙
  • 检查是否被第三方软件拦截
  • 两台设备间的网络延迟是否过大(例如路由设置不合理),导致 ICMP 报文无法在规定的时间内收到

9. ARP 地址解析协议的原理和地址解析过程 ★★★★

  • 原理

    • ARP(Address Resolution Protocol) 是地址解析协议的缩写,该协议提供根据 IP 地址获取物理地址的功能,它工作在第二层,是一个数据链路层协议,其在本层和物理层进行联系,同时向上层提供服务
    • 当通过以太网发送 IP 数据包时,需要先封装 32 位的 IP 地址和 48 位 MAC 地址。在局域网中两台主机进行通信时需要依靠各自的物理地址进行标识,但由于发送方只知道目标 IP 地址,不知道其 MAC 地址,因此需要使用地址解析协议
  • 过程

    1. 首先,每个主机都会在自己的 ARP 缓冲区建立一个 ARP 列表,以表示 IP 地址和 MAC 地址之间的对应关系
    2. 当源主机要发送数据时,首先检查 ARP 列表中是否有 IP 地址对应的目的主机 MAC 地址,如果存在,则可以直接发送数据,否则就向同一子网的所有主机发送 ARP 数据包。该数据包包括的内容有源主机的 IP 地址和 MAC 地址,以及目的主机的 IP 地址
    3. 当本网络中的所有主机收到 ARP 数据包时,首先检查数据包中的目的 IP 地址是否是自己的 IP 地址,如果不是,则忽略该数据包;如果是,则首先从数据包中取出源主机的 IP 和 MAC 地址写入到 ARP 列表中,如果已经存在,则覆盖,然后将自己的 MAC 地址写入 ARP 响应包中,告诉源主机自己是它想要找的 MAC 地址
    4. 源主机收到 ARP 响应包后,将目的主机的 IP 和 MAC 地址写入 ARP 列表,并利用此信息发送数据。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败

10. 网络地址转换 NAT ★★

  • 概念

    • NAT(Network Address Translation),即网络地址转换,它是一种把内部私有网络地址转换成公有网络 IP 地址的技术
    • 该技术不仅能解决 IP 地址不足的问题,而且还能隐藏和保护网络内部主机,从而避免来自外部网络的攻击
  • 实现方式

    • 静态转换:内部私有 IP 地址和公有 IP 地址是一对一的关系,并且不会发生改变。通过静态转换,可以实现外部网络对内部网络特定设备的访问,这种方式原理简单,但当某一公有 IP 地址被占用时,跟这个 IP 地址绑定的内部主机将无法访问 Internet
    • 动态转换:采用动态转换的方式时,私有 IP 地址每次转换成的公有 IP 地址不是唯一的。当私有 IP 地址被授权访问 Internet 时会被随机转换成一个合法的公有 IP 地址。当 ISP 通过的合法 IP 地址数量略少于网络内部计算机数量时,可以采用这种方式
    • 端口多路复用:该方式将外出数据包的源端口进行端口转换,通过端口多路复用的方式,实现内部网络所有主机共享一个合法的外部 IP 地址进行 Internet 访问,从而最大限度地节约 IP 地址资源。同时,该方案可以隐藏内部网络中的主机,从而有效避免来自 Internet 的攻击

11. TTL 是什么,有什么作用 ★★

  • 概念TTL 是指生存时间,它表示了数据包在网络中的时间。每经过一个路由器后 TTL 就减一,这样 TTL 最终会减为 0,当 TTL 为 0 时,则将数据包丢弃
  • 作用:通过设置 TTL 可以避免这两个路由器之间形成环导致数据包在环路上死转的情况,由于有了 TTL,当 TTL 为 0 时,数据包就会被丢弃

12. 运输层协议和网络层协议的区别 ★★★

  • 网络层协议负责提供主机间的逻辑通信
  • 运输层协议负责提供进程间的逻辑通信
-------------------- 本文结束感谢您的阅读 --------------------