TCP/IP协议族学习(二):链路层及ARP、RARP协议

一、链路层

1、链路层作用

在TCP协议族中,链路层主要有三个目的
  • 为网络层IP模块发送和接受IP数据报。
  • 为ARP模块发送ARP请求和接受ARP应答。
  • 为RARP发送RARP请求和接受RARP应答。

2、链路层协议

TCP/IP支持多种不同的链路层协议,这取决于不同的组网方式,如以太网,令牌环网,FDDI(光线分布式数据接口),RS-232串行线路等。其中以太网是最常用的局域网组网方式。

以太网封装格式


目的地址和源地址(各6字节):48bit的硬件地址,即我们常说的计算机的MAC地址,比如:68:a5:fb:94:32:fb。
帧类型(2字节):表示后面的数据类型,比如:0x0800:IP数据报;0x0806:ARP请求/应答;0x8035:RARP请求/应答。
目的地址,源地址以及类型被称为以太网帧头。
以太网帧的数据部分要求最少要有46字节,如数据小于46字节,要在尾部填充字节。

3、环回网络接口

大多数的产品都支持环回网络接口,以允许运行在同一台主机上的客户程序和服务器程序通过TCP/IP进行通信,使用预留的A类网络号127,系统一般把127.0.0.1作为环回网络接口,并命名为localhost。发送给主机本身IP地址的IP数据报一般不出现在相应的网络上。

4、最大传输单元MTU

如上图可以看出,以太网对数据帧的长度有限制,其最大值为1500,链路层的这个特性称作MTU,即最大传输单元。不同类型的网络大多数都有一个上限。如IP层要传输的数据报的长度比链路层的MTU还要大,那么IP层就要对数据报进行分片。
Linux下,使用netstat -i命令可打印出网络接口的MTU。

5、路径MTU

如果两台主机之间的通信要通过多个网络,由于每个网络的链路层的MTU有可能不同,两台主机通信路径中最小的MTU,即称作路径MTU。两台主机之间的路径MTU不一定是常数,它取决于当时说选择的路由;选路也不一定是对称的,从A到B的路由和从B到A的路由可能不同,因此路径MTU在两个方向上也不一定相同。

二、ARP协议

1、ARP协议介绍

当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据48bit的以太网地址来确定目的地接口的,而不是我们通常所说的IP地址,设备驱动程序也从不检查IP数据报中的目的地址。所以我们需要将上层指定IP地址转换为硬件地址。为此,TCP/IP协议族的地址解析为IP地址和数据链路层使用的硬件地址提供动态映射。
地址解析协议ARP:为IP地址到对应的硬件地址之间提供动态映射。
逆地址解析协议RARP:为无盘系统启动使用,需要系统管理员收到设置。

比如,我们执行以下命令时,实际的处理过程如下:
     % ftp bsdi
  1. 应用程序FTP客户端调用函数gethostname获取32bit的IP地址。
  2. FTP客户端使用IP地址请求TCP建立连接。
  3. TCP发送一个连接请求分段到远端主机,即给目的IP地址发送一份IP数据报。
  4. 该IP数据报被送到位于本地网络上的一台主机,或根据IP选路函数确定的位于本地网络的下一站路由器转发该IP数据报。
  5. 发送端主机必须把32bit的IP地址转换成48bit的以太网地址。
  6. ARP发送一份称作ARP请求的以太网数据帧(包括目的主机的IP地址)给以太网上的每个主机,该过程称为广播,意思是“如果你是这个IP地址的拥有者,请回答你的硬件地址”。
  7. 目的主机的ARP层收到这份广播报文后,识别出这是发送端在询问它的IP地址,于是发送一个ARP应答(包括IP地址及对应的硬件地址)。
  8. 收到ARP应答后,发送IP数据报到目的主机。

2、ARP高速缓存

     ARP高效运行的关键在于每个主机都有一个ARP高速缓存,存放最近Internet地址到硬件地址之间的映射记录,高速缓存中的每一项生存时间一般为20分钟。
     使用arp -a命令可检查ARP高速缓存。

3、ARP的分组格式

     ARP请求应答数据帧由14字节的以太网帧头以及28字节的ARP数据组成,每一帧必须加入填充字符以达到以太网的最小长度要求:60字节。
     
     
  • 以太网源地址和目的地址:目的地址全为1的特殊地址是广播地址,电缆上的所有以太网接口都要接受广播的数据帧。
  • 帧类型(2字节):表示后面数据的类型,对于ARP请求和应答都是0x0806,RARP请求和应答是0x8035。
  • 硬件类型:硬件地址的类型,值为1表示以太网地址。
  • 协议类型:表示要映射的协议地址类型,值为0x0800即表示IP地址,和IP数据报的以太网数据帧中的类型字段的值相同。
  • 硬件地址长度:以太网地址长度为6字节。
  • 协议地址长度:IP4地址长度为4字节。
  • op操作类型:1:ARP请求;2:ARP应答;3:RARP请求;4:RARP应答。

4、ARP请求的主机不存在的情况

     将重复多次进行ARP请求,大约75秒后放弃。

5、ARP代理

     如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求,这个过程称作委托ARP或ARP代理(Proxy ARP),这样可以欺骗发起ARP请求的发送端,使它误以为路由器就是目的主机。路由器的功能相当于目的主机的代理,把分组从其他主机转发给它(目的主机)。

6、免费ARP(gratuitous ARP)

     指主机发送ARP查找自己的IP地址,通常它发生在系统引导期间进行接口配置的时候。
  • 一个主机可以通过它来确定另一个主机是否设置了相同的IP地址。即主机发送ARP请求但不希望对此请求有一个回答。
  • 如果发送免费ARP的主机改变了硬件地址,其他主机收到该IP地址的ARP请求后,如果它已经在高速缓存中,就要用ARP请求中的发送端硬件地址对高速缓存进行更新。

7、ARP命令

  • -a:显示ARP高速缓存中的所有内容
  • -d:删除ARP缓存中的某一项内容
  • -s:增加高速缓存中的内容,对应于主机名的IP地址和以太网地址被增加到高速缓冲中。新增加内容是永久性的,无超时值,除非指定temp。
  • pub:位于命令行末尾的pub和-s选项一起,可以使系统起着主机ARP代理的作用。

三、RARP协议

     具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址,但是无盘机使用RARP请求实现从接口卡上读取唯一的硬件地址,发送一份RARP请求,请求某个主机响应该无盘系统的IP地址。
     RARP协议分组格式同ARP,只有帧类型以及操作类型不同。






参考资料:《TCP/IP协议 详解 卷1》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值