IP 协议简介

IP 协议位于 TCP/IP 协议的第三层——网络层。与传输层协议相比,网络层的责任是提供点到点(hop by hop)的服务,而传输层(TCP/UDP)则提供端到端(end to end)的服务。

IP 地址的分类

A类地址

B类地址

C类地址

D 类地址

广播与多播

广播和多播仅用于UDP(TCP是面向连接的)。

  • 广播

    一共有四种广播地址:

    1. 受限的广播

      受限的广播地址为255.255.255.255。该地址用于主机配置过程中IP数据报的目的地址,在任何情况下,router不转发目的地址为255.255.255.255的数据报,这样的数据报仅出现在本地网络中。

    2. 指向网络的广播

      指向网络的广播地址是主机号为全1的地址。A类网络广播地址为netid.255.255.255,其中netid为A类网络的网络号。

      一个router必须转发指向网络的广播,但它也必须有一个不进行转发的选择。

    3. 指向子网的广播

      指向子网的广播地址为主机号为全1且有特定子网号的地址。作为子网直接广播地址的IP地址需要了解子网的掩码。例如,router收到128.1.2.255的数据报,当B类网路128.1的子网掩码为255.255.255.0时,该地址就是指向子网的广播地址;但是如果子网掩码为255.255.254.0,该地址就不是指向子网的广播地址。

    4. 指向所有子网的广播

      指向所有子网的广播也需要了解目的网络的子网掩码,以便与指向网络的广播地址区分开来。指向所有子网的广播地址的子网号和主机号为全1.例如,如果子网掩码为255.255.255.0,那么128.1.255.255就是一个指向所有子网的广播地址。

      当前的看法是这种广播是陈旧过时的,更好的方式是使用多播而不是对所有子网的广播。

      广播示例:

      PING 192.168.0.255 (192.168.0.255): 56 data bytes
      64 bytes from 192.168.0.107: icmp_seq=0 ttl=64 time=0.199 ms
      64 bytes from 192.168.0.106: icmp_seq=0 ttl=64 time=45.357 ms
      64 bytes from 192.168.0.107: icmp_seq=1 ttl=64 time=0.203 ms
      64 bytes from 192.168.0.106: icmp_seq=1 ttl=64 time=269.475 ms
      64 bytes from 192.168.0.107: icmp_seq=2 ttl=64 time=0.102 ms
      64 bytes from 192.168.0.106: icmp_seq=2 ttl=64 time=189.881 ms

    可以看到的确收到了来自两个主机的答复,其中 192.168.0.107 是本机地址。

  • 多播

    多播又叫组播,使用D类地址,D类地址分配的28bit均用作多播组号而不再表示其他。

    多播组地址包括1110的最高4bit和多播组号。它们通常可以表示为点分十进制数,范围从224.0.0.0到239.255.255.255。

    多播的出现减少了对应用不感兴趣主机的处理负荷。

    多播的特点:

    • 允许一个或多个发送者(组播源)发送单一的数据包到多个接收者(一次的,同时的)的网络技术
    • 可以大大的节省网络带宽,因为无论有多少个目标地址,在整个网络的任何一条链路上只传送单一的数据包
    • 多播技术的核心就是针对如何节约网络资源的前提下保证服务质量。
  1. 多播示例:
  2. PING 224.0.0.1 (224.0.0.1): 56 data bytes
  3. 64 bytes from 192.168.0.107: icmp_seq=0 ttl=64 time=0.081 ms
  4. 64 bytes from 192.168.0.106: icmp_seq=0 ttl=64 time=123.081 ms
  5. 64 bytes from 192.168.0.107: icmp_seq=1 ttl=64 time=0.122 ms
  6. 64 bytes from 192.168.0.106: icmp_seq=1 ttl=64 time=67.312 ms
  7. 64 bytes from 192.168.0.107: icmp_seq=2 ttl=64 time=0.132 ms
  8. 64 bytes from 192.168.0.106: icmp_seq=2 ttl=64 time=447.073 ms
  9. 64 bytes from 192.168.0.107: icmp_seq=3 ttl=64 time=0.132 ms
  10. 64 bytes from 192.168.0.106: icmp_seq=3 ttl=64 time=188.800 ms

BGP

  • 边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议

  • BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议

  • BGP是一种外部网关协议(Exterior Gateway Protocol,EGP),与OSPF、RIP等内部网关协议(Interior Gateway Protocol,IGP)不同,BGP不在于发现和计算路由,而在于控制路由的传播和选择最佳路由

  • BGP使用TCP作为其传输层协议(端口号179),提高了协议的可靠性

  • BGP既不是纯粹的矢量距离协议,也不是纯粹的链路状态协议

  • BGP支持CIDR(Classless Inter-Domain Routing,无类别域间路由)

  • 路由更新时,BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息

  • BGP路由通过携带AS路径信息彻底解决路由环路问题

  • BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择

  • BGP易于扩展,能够适应网络新的发展

参考资料