好文档 - 专业文书写作范文服务资料分享网站

TCPIP第三层--网络层

天下 分享 时间: 加入收藏 我要投稿 点赞

都有一个MAC地址头么?我们知道每一块以太网卡都有一个MAC地址,这个地址是唯一的,那么IP包是如何知道这个MAC地址的?这就是ARP协议的工作。

在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址,而数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。因此在通讯前必须获得目的主机的硬件地址。ARP协议就起到这个作用。

工作原理:

1)每台主机都维护一个ARP缓存表,当源主机要发送一个IP包的时候,会首先查一下自己的ARP高速缓存(就是一个IP-MAC地址对应表缓存)。

2)如果查询的IP-MAC值对不存在,那么源主机就向网络发送一个ARP协议广播包,这个广播包里面就有待查询的IP地址,比如询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧首

部的硬件地址填FF:FF:FF:FF:FF:FF表示广播)。

3) 直接收到这份广播的包的所有主机都会查询自己的IP地址,如果收到广播包的某一个主机发现IP地址与本机相符,那么就准备好一个包含自己的MAC地址的ARP包传送给发送ARP广播的源主机,而广播源主机拿到ARP包后会更新自己的ARP缓存(就是存放IP-MAC对应表的地方)。

4)发送广播的主机就会用新的ARP缓存数据准备好数据链路层的的数据包发送工作。

每台主机都维护一个ARP缓存表,可以用arp -a命令查看。

[dev@writedb ~]$ arp -a

(192.168.1.145) at 24:1f:a0:c0:f7:bc [ether] on em1

(192.168.1.1) at 3c:8c:40:99:24:05 [ether] on em1

(192.168.1.137) at 3c:15:c2:ee:a8:b2 [ether] on em1

(192.168.1.122) at 28:b2:bd:4f:1e:ba [ether] on em1

缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址。想一想,为什么表项要有过期时间而不是一直有效?ARP数据报的格式如下所示:注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。硬件类型指链路层网络类型,1为以太网,协议类型指要转换的地址类型,0x0800为IP地址,后面两个地址长度对于以太网地址和IP地址分别为6和4(字节),op字段为1表示ARP请求,op字段为2表示ARP应答。3. IP地址与路由

IPv4的IP地址长度为4字节,通常采用点分十进制表示法(dotted decimal representation)例如0xc0a80002表示为192.168.0.2。Internet被各种路由器和网关设备分隔成很多网段,为了标识不同的网段,需要把32位的IP地址划分成网络号和主机号两部分,网络号相同的各主机位于同一网段,相互间可以直接通信,网络号不同的主机之间通信则需要通过路由器转发。

过去曾经提出一种划分网络号和主机号的方案,把所有IP地址分为五类,如下图所示:A类 0.0.0.0到127.255.255.255

B类 128.0.0.0到191.255.255.255

C类 192.0.0.0到223.255.255.255

D类 224.0.0.0到239.255.255.255

E类 240.0.0.0到247.255.255.255

一个A类网络可容纳的地址数量最大,一个B类网络的地址数量是65536,一个C类网络的地址数量是256。D类地址用作多播地址,E类地址保留未用。

随着Internet的飞速发展,这种划分方案的局限性很快显现出来,大多数组织都申请B类网络地址,导致B类地址很快就分配完了,而A类却浪费了大量地址。这种方式对网络的划分是flat的而不是层级结构(hierarchical)的,Internet上的每个路由器都必须掌握所有网络的信息,随着大量C类网络的出现,路由器需要检索的路由表越来越庞大,负担越来越重。

针对这种情况提出了新的划分方案,称为CIDR(Classless Interdomain Routing)。网络号和主机号的划分需要用一个额外的子网掩码(subnet mask)来表示,而不能由IP地址本身的数值决定,也就是说,网络号和主机号的划分与这个IP地址是A类、B类还是C类无关,因此称为Classless的。这样,多个子网就可以汇总(summarize)成一个Internet上的网络,例如,有8个站点都申请了C类网络,本来网络号是24位的,但是这8个站点通过同一个ISP(Internet

service provider)连到Internet上,它们网络号的高21位是相同的,只有低三位不同,这8个站点就可以汇总,在Internet上只需要一个路由表项,数据包通过Internet上的路由器到达ISP,然后在ISP这边再通过次级的路由器选路到某个站点。 下面举两个例子:

划分子网的例子1IP地址 140.252.20.68 8C FC 14 44

子网掩码

255.255.255.0 FF FF FF 00 网络号 140.252.20.0 8C FC 14 00

子网地址范围

140.252.20.0~140.252.20.255

TCPIP第三层--网络层

都有一个MAC地址头么?我们知道每一块以太网卡都有一个MAC地址,这个地址是唯一的,那么IP包是如何知道这个MAC地址的?这就是ARP协议的工作。在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址,而数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。因此在通讯前必须获得目的主机的
推荐度:
点击下载文档文档为doc格式
7wjlh0g5sd1oirv327pb3jk4h7sgsg00pr2
领取福利

微信扫码领取福利

微信扫码分享