网络协议

底层网络协议

ARP(地址解析协议)

基本功能为透过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。在每台安装有TCP/IP协议的电脑或路由器里都有一个ARP缓存表,表里的IP地址与MAC地址是一对应的。

当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到就知道目标MAC地址为(00-BB-00-62-C2-02),直接把目标MAC地址写入帧里面发送就可;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个 广播(ARP request),目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.38.11的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应(ARP response):“192.168.38.11的MAC地址是(00-BB-00-62-C2-02)”。这样,主机A就知道主机B的MAC地址,它就可以向主机B发送信息。同时它还更新自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可。ARP缓存表采用老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。

当发送主机和目的主机不在同一个局域网中时,即便知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的MAC地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为ARP代理(ARP Proxy)。

ICMP(互联网控制消息协议)

用于TCP/IP网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈,通过这些信息,令管理者可以对所发生的问题作出诊断,然后采取适当的措施解决。它与传输协议最大的不同:它一般不用于在两点间传输数据,而常常 用于返回的错误信息或是分析路由

ICMP控制的内容包括但不仅限于:echo响应(ping)、目标网络不可达、目标端口不可达、禁止访问的网络、拥塞控制、重定向、TTL超时…

路由选择协议

路由选择协议分为:静态的和动态的。Internet中使用的是动态路由选择协议,在Internet的概念中,将整个互联网划分为许多个小的自治系统(AS)。AS的最主要的特征:一个AS对其他AS表现出的是一个单一 和一致的路由选择策略

由于AS的存在,路由选择协议又分为两种: - 内部网关协议(IGP):即在一个AS内部使用的路由选择协议,而这与互联网中其他AS选用什么路由协议无关。比如:OSPF - 外部网关协议(EGP):若源主机和目的主机不再同一个AS中,就需要使用一种协议将路由选择信息传递到另一个AS中,这就是EGP。比如:BGP。

OSPF(开放式最短路径优先)

OSPF属于内部网关协议(IGP)的一种,使用Dijkstra提出的最短路径算法

OSPF提出了“区域(Area)”的概念,一个网络可以由单一区域或者多个区域组成。其中,一个特别的区域被称为骨干区域(Backbone Area),该区域是整个OSPF网络的核心区域,并且所有其他的区域都与之直接连接。所有的内部路由都通过骨干区域传递到其他非骨干区域。所有的区域都必须直接连接到骨干区域,如果不能创建直接连接,那么可以通过虚拟链路(Virtual-link)和骨干区域创建虚拟连接。

划分区域的优点: - 将洪泛法的范围限制在一个区域中。 - 减少每个区域内部路由信息交换的通信量。

  • OSPF使用的是分布式链路状态协议,使用 洪泛法向该路由器所有的相邻路由器发送信息。最终整个区域的所有路由器都得到一个这个信息的副本。这个副本就是 链路状态数据库(LSDB)用来保存当前网络拓扑结构,路由器上属于同一区域的链路状态数据库是相同的(属于多个区域的路由器会为每个区域维护一份链路状态数据库)。
  • OSPF使用 “代价(Cost)”作为路由度量。
  • 只有当链路发生变化时才会更新信息。

如果同一个目的网络有多条路径,OSPF协议可以进行 负载均衡

BGP(边界网关协议)

由于BGP是工作在AS之间的协议,并且各个AS的情况复杂,所以 BGP只是力求找到一个可以到达目的网络且比较好的路由,而并不是寻找一条最佳路由。每一个AS都应该有一个“BGP发言人“,一般来说,两个BGP发言人是通过一个共享网络连接在一起的,BGP发言人往往是BGP边界路由,但也可以不是。

一个BGP发言人与其他AS的BGP发言人要交换路由信息,首先要建立TCP连接,然后在此连接上交换BGP报文以建立BGP会话。当BGP发言人交换了路由信息后,就构造自治系统连通图,最后通过该图来进行路由选择。

DHCP(动态主机设置协议)

DHCP是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:

  • 用于内部网络或网络服务供应商自动分配IP地址给用户
  • 用于内部网络管理员作为对所有电脑作中央管理的手段

动态主机设置协议(DHCP)是一种使网络管理员能够集中管理和自动分配IP网络地址的通信协议。在IP网络中,每个连接Internet的设备都需要分配唯一的IP地址。DHCP使网络管理员能从中心结点监控和分配IP地址。当某台计算机移到网络中的其它位置时,能自动收到新的IP地址。

DHCP使用了 租约 的概念,或称为计算机IP地址的有效期。租用时间是不定的,主要取决于用户在某地连接Internet需要多久,这对于教育行业和其它用户频繁改变的环境是很实用的。通过较短的租期,DHCP能够在一个计算机比可用IP地址多的环境中动态地重新配置网络。DHCP支持为计算机分配静态地址,如需要永久性IP地址的Web服务器。

NAT(地址转换协议)

NAT是一种 在IP封包通过路由器或防火墙时重写来源IP地址或目的IP地址的技术。这种技术被普遍使用在有多台主机但只通过一个公有IP地址访问因特网的私有网络中。