如需转载请联系:fengxw6@mail2.sysu.edu.cn 未经许可,禁止转载,私人笔记,码字不易,望理解。 ---Sun Yat-sen University 冯兴伟

  本节主要就讲网络层的各种IP服务协议。

  1. ARP

  英文全程Address Resolution Protocol,地址解析协议。

  我们知道局域网中发送的是数据帧,数据帧的格式之前也已经学过,知道目的主机的MAC地址才可以发送数据帧,

  那这个目标MAC地址是如何获得的呢?就是ARP协议来获得的。

  ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址。

  下面给个形象的例子:ARP报文是主机发送出来的,在该主机只知道对方的IP地址且想知道对方的MAC地址时,它以广播的方式将ARP请求发送到自己所在网段的各个节点。当有主机响应时,回发的报文是单播发送。

  

   如果查询对象不在同一个局域网,那怎么办呢?

    所以出现了ARP代理(Proxy ARP)

   如下图:路由器收到ARP Request时,若发现查询的目的IP地址在不同子网,路由器会扮演代理的ARP的角色,用路由器自己的接口MAC地址代为回答,告诉查询者它所要做的MAC地址。

  

  为什么要有ARP代理?路由器的一个重要功能是把局域网广播包限制在该网内,不让扩散,否则会造成网络风暴。ARP Request是个广播包,它询问的对象若在同一个局域网内,就会回答。

  2. RARP

  英文全称Reverse Address Resolution Protocol,反向地址解析协议。

  反向地址解析协议将局域网中的某个主机的物理地址转换成IP地址。该协议广泛用于获取无盘工作站的IP地址。

  如下图:局域网中有一台主机只知道物理地址不知道IP地址,那么其可以用RARP协议发出征求自身IP地址的广播请求,然后RARP服务器回答。

  

  3. BOOTP

  英文全称Bootstrap Protocol,引导程序协议,为DHCP协议前身。

  BOOTP主要用于无盘工作站的局域网中,让无盘工作站可以从一个中心服务器上获得IP地址,该协议可以动态的为无盘工作站分配IP地址,无需管理员去设置静态IP地址。直接看图,很好理解:

  

  4. DHCP

  Dynamic Host Configuration Protocol,动态主机配置协议。

  用于主机在加入网络时动态租用IP地址。

  下面主要结合图讲解DHCP的工作过程:

  (1). 当DHCP客户端第一次登录网络时,即客户端上没有任何IP地址数据时,会通过发送一个DHCP discover数据包,

  数据包包含主机名以及MAC地址等信息,因其还不知道自己处于哪个网络中,所以DHCP discover数据包封装的源地址为

  0.0.0.0,目的地址为255.255.255.255,再加上其他信息,向网络进行广播。

  (2).  当DHCP 服务器监听到客户端发出的DHCP discover广播后,服务器会从还没有租用出去的IP地址中,选择最前的

  闲置IP地址,连同其他信息,封装成一个DHCP offer数据包(包含IP地址,子网掩码,租期,DNS等等信息),DHCP offer

  仍然是以广播的方式进行通讯,同时服务器为客户端保留其提供的IP地址,不会为其他客户端分配次IP地址。

  (3).  如果客户端收到网络中多台DHCP服务器的响应,一般会从中挑选最先到达的DHCP offer,并向网络发送一个DHCP

  request数据包(包含接受租用的IP地址,提供IP地址的服务器地址等信息),告诉网络中所有的DHCP服务器,它将接受哪一

  台服务器提供的IP地址,所有其他的DHCP服务器撤销它们的提供以便将IP地址提供给下一次IP租用请求。此时,由于还没有得到

  DHCP Server的最后确认,客户端仍然使用0.0.0.0为源IP地址,255.255.255.255为目标地址进行广播。

  (4). 当DHCP Server接收到客户端的DHCP REQUEST之后,会广播返回给客户端一个DHCP ack消息包,表明已经接受客户端

  的选择,并将这一IP地址的合法租用以及其他的配置信息都放入该广播包发给客户机。

  5. HSRP

  英文全称Hot Standby Router Protocol,热备份路由协议。思科的专有协议。

  HSRP允许多台路由器共享虚拟IP和MAC地址,把多台路由器组成一个“热备份组”,形成一个虚拟路由器。

  这个组内只有一个路由器是Active(活动)的,并由它来转发数据包,如果活动路由器发生了故障,备份路由器将成为活动路由器。从网络内的主机来看,网关并没有改变。

  HSRP的部分重要特性如下:

  (1). Virtual IP address and virtual MAC active on the Master router.

     Standby routers listen for Hellos from the Active router, defaulting to a 3-second hello interval and 10-second dead interval.

  (2). HSRP路由器利用Hello包来互相监听各自的存在。当路由器长时间没有接收到Hello包时,就认为活动路由器故障,

      备份路由器就会成为活动路由器。HSRP协议利用优先级决定哪个路由器成为活动路由器。如果一个路由器的优先级

     比其它路由器的优先级高,则该路由器成为活动路由器。路由器的默认优先级是100(优先级范围是1-255)。

  (3). 支持端口追踪机制,端口追踪使得Active路由器发现其端口失效或链路出问题后,会把自己的优先级减掉一个预先设定好的值,比如最开始active是120,

       而standby为100,那么当active的端口链路失效后,假设预设值为30,active那台路由器会减掉设置好的30,变成90,此时standby上100>90,故备份

     路由器成为active路由器。

  (4). 在一个接口上设置多个热备份组,会启动负载均衡策略。

  放两个图:

  一个热备份组:

  

  两个热备份组带负载均衡:

  

  关于HSRP有注意的点是:

  

  虚拟IP地址和组内路由器的接口IP地址应在一个局域网内的相同子网中。

  虚拟IP地址必须和组内路由器的接口IP地址不同。

  6. VRRP

  英文全称:Virtual Router Redundancy Protocol,虚拟路由冗余协议。思科专利。

  和HSRP的一样的,差别如下:

  VRRP uses a multicast virtual MAC address (0000.5E00.01xx, where xx is the hex VRRP group number).

  VRRP uses the IOS object tracking feature, rather than its own internal tracking mechanism, to track interface states for failover purposes.

  VRRP defaults to use pre-emption, but HSRP defaults to not use pre-emption. Both can be configured to either use pre-emption or not.

  The VRRP term Master means the same thing as the HSRP term Active.

  In VRRP, the VRRP group IP address is the interface IP address of one of the VRRP routers.

IP服务-计算机网络的更多相关文章

  1. 简单 TCP/IP 服务功能

    本主题使用每台 Windows 计算机上提供的 Echo 和 Quote of the Day 服务.在所有 Windows 版本中都提供了简单 TCP/IP 服务功能.该功能会提供了以下服务:Cha ...

  2. ITU-T Technical Paper: IP服务性能模型

    本文翻译自ITU-T的Technical Paper:<How to increase QoS/QoE of IP-based platform(s) to regionally agreed ...

  3. IP服务-8-WCCP

    WCCP(网页缓存通信协议) 内容引擎负责将频繁访问的数据收集到本地,通常是HTTP流量,当主机访问相同页面时,可以直接通过内容引擎为主机提供相应内容,而无需通过WAN进行访问.WCCP与网页代理并不 ...

  4. IP服务-3-DHCP

    DHCP代表了动态IP地址分配的下一阶段.DHCP建立在BOOTP协议格式的基础上,专注于动态分配多种信息,以及为未来的扩展提供灵活的消息结构,并且无需预先定义每个客户端的MAC地址.DHCP提供的功 ...

  5. django-返回客户端外网ip服务

    在服务器应用初始化的时候,比如salt-minion,需要在配置文件里说明自己的id,一般用ip. 如果都在一个内网里,从ip命令里获取就行了. 但现在的企业后台环境更加复杂,很多都是跨机房.有物理机 ...

  6. IP地址-计算机网络

    如需转载请联系:fengxw6@mail2.sysu.edu.cn 未经许可,禁止转载. ---Sun Yat-sen University 冯兴伟 1.  MAC地址和IP地址都是全局的(全球分配) ...

  7. IP服务-7-系统日志

    默认情况下.Cisco路由器和交换机并不在NVRAM (非易失性内存)中记录事件:工程师可以使用命令logging buffered改变设备的这一默认行为.并且还可以使用额外参数来设定日志缓存的大小. ...

  8. IP服务-5-网络时间协议

    NTP版本3(RFC1305)允许IP主机向一个通用的时钟源同步它们的日期和时间. 从设计上来说,大多数路由器和交换机都使用NTP客户端模式,根据NTP服务器所提供的时间来调整自己的时钟.NTP定义了 ...

  9. IP服务-4-HSRP,VRRP和GLBP

    HSRP(热备份路由器协议).VRRP(虚拟路由器冗余协议)和GLBP(网关负载均衡协议) 当主机只知道一个IP地址能够用来访问子网外部时,可能会出现一些问题,这些协议正好解决了这一隐患. HSRP允 ...

随机推荐

  1. Java enum枚举的使用方法

    一. 出现背景: 在JDK1.5之前,我们定义常量是这种:public static final String RED = "RED"; 在JDK1.5中增加了枚举类型,我们能够把 ...

  2. hdu2955 Robberies (01背包)

    转载请注明出处:http://blog.csdn.net/u012860063 题目链接:pid=2955">http://acm.hdu.edu.cn/showproblem.php ...

  3. 读刘未鹏老大《你应当怎样学习C++(以及编程)》

    标签(空格分隔): 三省吾身 原文地址:你应当怎样学习C++(以及编程) 本人反思自己这些年在学校学得稀里糊涂半灌水. 看到这篇文章,感觉收获不少.仿佛有指明自己道路的感觉,当然真正困难的还是坚持学习 ...

  4. apue学习笔记(第七章 进程环境)

    本章将了解进程的环境. main函数 C程序总是从main函数开始执行,main函数的原型是: int main(int argc,char *argv[]); 其中,argc是命令行参数的数目,ar ...

  5. shell循环,判断介绍,以及实例

    shell的循环主要有3种,for,while,until shell的分支判断主要有2种,if,case 一,for循环 #!/bin/bash for file in $(ls /tmp/test ...

  6. Leetcode Array 4 Median of Two Sorted Arrays

    做leetcode题目的第二天,我是按照分类来做的,做的第一类是Array类,碰见的第二道题目,也就是今天做的这个,题目难度为hard.题目不难理解,但是要求到了时间复杂度,就需要好好考虑使用一下算法 ...

  7. 【Selenium + Python】路径报错之OSError: [Errno 22] Invalid argument: './t/report/2018-03-23_11:03:12_report.html'

    现象: 此问题真的是太痛苦了,查了好多资料是说路径的问题,结果还是报错,后来一点点的排查才发现原来是!!!!!! 废话不多说上原来代码: if __name__ == '__main__': star ...

  8. Socket的UDP协议在erlang中的实现

    现在我们看看UDP协议(User Datagram Protocol,用户数据报协议).使用UDP,互联网上的机器之间可以互相发送小段的数据,叫做数据报.UDP数据报是不可靠的,这意味着如果客户端发送 ...

  9. Koa2+MySQL+VUE+ElementIUI搭建简单的后台管理小系统

    如题,前端入坑许久,还是写个小东西出来吧 想要搭建自己的一个后台管理,实现简单的增删改查,看起来很简单 其实是真的简单,没有想的那么难,我也就写了一个月吧, 当然是假的,其实也就每天一两个小时,花了大 ...

  10. ASP.NET动态网站制作(11)-- JQ(3)

    前言:这节课主要是讲CSS作业,然后继续讲jQuery. 内容: 1.css作业讲解. 2.jq设置元素样式:  (1)添加.删除css类别:$("div").addClass(& ...