把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息。数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据信息。

1.IP协议
IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输。要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达以后的处理机制--这被认为是上层协议--TCP或UDP要做的事情。所以这也就出现了TCP是一个可靠的协议,而UDP就没有那么可靠的区别。这是后话,暂且不提

1.1.IP协议头
如图所示

挨个解释它是教科书的活计,我感兴趣的只是那八位的TTL字段,还记得这个字段是做什么的么?这个字段规定该数据包在穿过多少个路由之后才会被抛弃(这里就体现出来IP协议包的不可靠性,它不保证数据被送达),某个ip数据包每穿过一个路由器,该数据包的TTL数值就会减少1,当该数据包的TTL成为零,它就会被自动抛弃。这个字段的最大值也就是255,也就是说一个协议包也就在路由器里面穿行255次就会被抛弃了,根据系统的不同,这个数字也不一样,一般是32或者是64,Tracerouter这个工具就是用这个原理工作的,tranceroute的-m选项要求最大值是255,也就是因为这个TTL在IP协议里面只有8bit。

现在的ip版本号是4,所以也称作IPv4。现在还有IPv6,而且运用也越来越广泛了。

1.2.IP路由选择
当一个IP数据包准备好了的时候,IP数据包(或者说是路由器)是如何将数据包送到目的地的呢?它是怎么选择一个合适的路径来"送货"的呢?

最特殊的情况是目的主机和主机直连,那么主机根本不用寻找路由,直接把数据传递过去就可以了。至于是怎么直接传递的,这就要靠ARP协议了,后面会讲到。

稍微一般一点的情况是,主机通过若干个路由器(router)和目的主机连接。那么路由器就要通过ip包的信息来为ip包寻找到一个合适的目标来进行传递,比如合适的主机,或者合适的路由。路由器或者主机将会用如下的方式来处理某一个IP数据包

如果IP数据包的TTL(生命周期)以到,则该IP数据包就被抛弃。
搜索路由表,优先搜索匹配主机,如果能找到和IP地址完全一致的目标主机,则将该包发向目标主机
搜索路由表,如果匹配主机失败,则匹配同子网的路由器,这需要“子网掩码(1.3.)”的协助。如果找到路由器,则将该包发向路由器。
搜索路由表,如果匹配同子网路由器失败,则匹配同网号(第一章有讲解)路由器,如果找到路由器,则将该包发向路由器。
搜索陆游表,如果以上都失败了,就搜索默认路由,如果默认路由存在,则发包
如果都失败了,就丢掉这个包。

这再一次证明了,ip包是不可靠的。因为它不保证送达。

1.3.子网寻址
IP地址的定义是网络号+主机号。但是现在所有的主机都要求子网编址,也就是说,把主机号在细分成子网号+主机号。最终一个IP地址就成为 网络号码+子网号+主机号。例如一个B类地址:210.30.109.134。一般情况下,这个IP地址的红色部分就是网络号,而蓝色部分就是子网号,绿色部分就是主机号。至于有多少位代表子网号这个问题上,这没有一个硬性的规定,取而代之的则是子网掩码,校园网相信大多数人都用过,在校园网的设定里面有一个255.255.255.0的东西,这就是子网掩码。子网掩码是由32bit的二进制数字序列,形式为是一连串的1和一连串的0,例如:255.255.255.0(二进制就是11111111.11111111.11111111.00000000)对于刚才的那个B类地址,因为210.30是网络号,那么后面的109.134就是子网号和主机号的组合,又因为子网掩码只有后八bit为0,所以主机号就是IP地址的后八个bit,就是134,而剩下的就是子网号码--109。

2. ARP协议
还记得数据链路层的以太网的协议中,每一个数据包都有一个MAC地址头么?我们知道每一块以太网卡都有一个MAC地址,这个地址是唯一的,那么IP包是如何知道这个MAC地址的?这就是ARP协议的工作。

ARP(地址解析)协议是一种解析协议,本来主机是完全不知道这个IP对应的是哪个主机的哪个接口,当主机要发送一个IP包的时候,会首先查一下自己的ARP高速缓存(就是一个IP-MAC地址对应表缓存),如果查询的IP-MAC值对不存在,那么主机就向网络发送一个ARP协议广播包,这个广播包里面就有待查询的IP地址,而直接收到这份广播的包的所有主机都会查询自己的IP地址,如果收到广播包的某一个主机发现自己符合条件,那么就准备好一个包含自己的MAC地址的ARP包传送给发送ARP广播的主机,而广播主机拿到ARP包后会更新自己的ARP缓存(就是存放IP-MAC对应表的地方)。发送广播的主机就会用新的ARP缓存数据准备好数据链路层的的数据包发送工作。

一个典型的arp缓存信息如下,在任意一个系统里面用“arp -a”命令:

Interface: 192.168.11.3 --- 0x2

Internet Address      Physical Address      Type

192.168.11.1          00-0d-0b-43-a0-2f     dynamic

192.168.11.2          00-01-4a-03-5b-ea     dynamic

都会得到这样的结果。

这样的高速缓存是有时限的,一般是20分钟(伯克利系统的衍生系统)。

IP协议,ARP协议,RARP协议相关推荐

  1. TCP/IP学习笔记(3)----IP,ARP,RARP协议

    把这三个协议放到一起学习是因为这三个协议处于同一层(网络层协议),ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP ...

  2. 网络协议 -- ARP和RARP协议

    一.ARP协议 1.1 ARP协议介绍 ARP(Address Resolution Protocol)地址解析协议,位于TCP/IP协议栈中的链路层.当局域网内主机间(或者是主机与网关间)需要通信时 ...

  3. ARP和RARP协议工作原理

    ARP和RARP协议工作原理 MAC地址与IP地址是计算机网络通信中非常重要的两类地址,缺一不可.因为在OSI/RM网络层以上是通过IP地址进行寻址的,而在OSI/RM网络层以下则是通过MAC地址进行 ...

  4. IP、ARP、RARP、ICMP、IGMP(网络协议:网络层协议)

    面试和笔试中,如果记住下面这张图,基本就能解决网络协议中70%的问题.需要记住: OSI模型和TCP/IP模型每一层名称: 每一层对应有哪些协议,或者说给出该协议要知道对应那一层: 该协议是基于TCP ...

  5. 系列TCP/IP协议-ARP与RARP

    一.引言 在真实的网络上传输的数据帧不是IP地址来传的,是通过每一个网卡的特有的物理地址(MAC地址)来传输的.上层协议一般是只知道IP地址,不知道MAC地址的.因此需要有通过IP地址知道MAC地址的 ...

  6. 计算机网络rarp通过什么找ip,ARP与RARP协议

    在数据链路层中,用来标识节点的就是其MAC地址.它是局域网中进行网络通信的基础.但是在平常的网络通信操作中,都不是以MAC地址来指定目标节点的,而是以IP地址或NetBiOS名称.这样就存在一个IP地 ...

  7. ARP与RARP协议详解 (三)

    (参考文献)TCP/IP详解,卷1:协议 当一台主机把以太网数据帧发送到位于同一个局域网上的另一台主机时,是根据48bit的以太网地址来确定目的接口的.设备驱动程序重来不检查IP数据报中的目的地址.A ...

  8. ARP和RARP协议

    一. 什么是ARP ARP协议是"Address Resolution Protocol"(地址解析协议)的缩写.其作用是在以太网环境中,数据的传输所依懒的是MAC地址而非IP地址 ...

  9. ARP与RARP 协议

    目录 概述 以太网的传输机制 两者的基本关系 ARP 计算机A是如何得知B的MAC地址的呢? 地址解析协议 ARP的实现过程 ARP 高速缓存的作用 ARP协议注意到的问题 ARP代理 使用 ARP ...

  10. ARP与RARP协议原理解析

    ARP是地址解析协议,每台主机都有一个ARP缓存区,里边保存着同网络中IP地址到MAC地址的映射.他只能解析同一物理网络上的MAC地址. 下边举个例子来说明ARP协议的工作原理,假设A要向B发送数据, ...

最新文章

  1. 【OpenCV】图像/视频相似度测量PSNR( Peak signal-to-noise ratio) and SSIM,视频/图片转换
  2. 常用[js,css,jquery,html]
  3. resnet过拟合_重读经典:完全解析特征学习大杀器ResNet
  4. kdchxue讲解V9父栏目调用子栏目的办法
  5. vue aplayer 进度条无法拖动_用Vue做个Window玩
  6. linux 命令备份数据库,linux备份数据库命令
  7. 计算机智能化音乐制作,基于单片机的音乐发生器设计.docx
  8. lvgl8.2 分析画面刷新
  9. Wowza服务器系列(1):介绍
  10. MySQL 5.7 + Navicat 下载安装教程(附安装包)
  11. FH153C6常用一键开关机芯片 ON/OFF单键开关IC 美容仪电子开关IC
  12. 【easyui】之DataGrid数据显示
  13. 请教各位大虾:Delphi创建的ActiveForm上的SpeedButton在鼠标离开后没有重画为flat样式
  14. 怎么做网站XML地图讲解
  15. 值得收藏!史上最全WINDOWS安全工具锦集
  16. 三代基因组测序技术原理简介
  17. 毕业论文word排版常用小技巧——目录导航、参考文献引用……
  18. 电脑批量加入域控制器脚本
  19. 踏浪点神:5.21 恒指黄金原油早盘分析及最新资讯
  20. 【转】Java 专业词汇

热门文章

  1. [附源码]计算机毕业设计JAVAjsp图书管理系统论文
  2. Win7/10无法进系统提示bootsafe.sys出错,0xc0000359
  3. iOS本地缓存方案之YYCache源码解析
  4. 融合学习:跨文化交流的学习平台
  5. php 韩文乱码转换,Unicode字符编码之十进制韩文转为字符
  6. 周玉材料分析方法第三版pdf_材料分析方法 第3版 习题答案 作者 周玉 模拟试卷一及答案.doc...
  7. 2017网易游戏雷火盘古实习生招聘笔试真题
  8. 第15.39节、splitDockWidget和tabifyDockWidget嵌套布局QDockWidget的PyQt人机对话案例:笨笨机器人
  9. 【练习七 字符串编程题1. 全字母短句】
  10. 2.4.3 码分复用