TCP/IP协议---ARP协议
ARP协议
以下就默认在以太网类型的网络。
这个协议的作用是通过ip地址(32bit)找到硬件地址(48bit)。
顺便提一下:在一个局域网里,大家常见的设备交换机,交换机上的主机在互相通信时,实际用的就是硬件(MAC)地址,它并不管谁的ip。因此说交换机是链路层上的设备,而不是ip层上的设备。
举一个ftp到一个主机的例子:

知道主机的IP地址并不能让内核发送一帧数据给机。内核(如以太网驱动程序)必须知道目的端的硬件地址才能发送数据。ARP的功能是在32bit的
IP地址和采用不同网络技术的硬件地址之间提供动态映射。
ARP的数据帧格式:

以太网首部和28字节的ARP请求/应答。稍微了解下~
- 以太网首部:
1). 6个字节的以太网目的地址(请求的时候是广播类型全1),arp请求一般不会跨路由,在一个网段中广播,每个主机都会收到这个数据帧,被问谁有这个目的ip的硬件地址。
2). 6个字节的以太网源端地址
3). 2个字节的帧类型。对于arp请求/应答来说是固定的。
- 28字节的arp请求/应答:
1). 2个字节的硬件类型:硬件类型字段表示硬件地址的类型。它的值为1即表示以太网地址。表示也可以映射其它种类的硬件地址。
2). 2个字节的协议类型:它的值为0x0800即表示IP地址。表示arp可以解析IP地址以外的地址。
3). 1个字节的硬件地址长度&1个字节的协议地址长度。比如以太网硬件地址就是6个长度,协议地址就是4个长度
4). 2个字节的操作op类型:是arp请求还是应答,rarp的请求还是应答
5). 接下来是4个地址。和以太网首部有点重叠。
然则并非每次网络传输都要来一次arp请求,虽然是几毫秒。由于ip和硬件地址变化的频率不那么频繁,因此高效来讲,每个主机上是有大约20分钟的arp高速缓存的。这在机器上运行命令arp -a,就可以看到缓存的ip和硬件地址映射。如果没有的话,尝试去ping一个局域网主机,然后再arp -a就可以看到这个被ping的机器ip和mac了~ 顺便说下删除一个缓存可以命令arp -d ip地址...
RARP协议: 稍做了解~
具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址。但是无盘机,X终端或无盘工作站,则需要采用其他方法来获得IP地址。 络上的每个系统都具有唯一的硬件地址,它是由网络接口生产厂家配置的。无盘系统的RARP实现过程是从接口卡上读取唯一的硬件地址,然后发送一份RARP请求(一帧在网络上广播的数据),请求某个主机响应该无盘系统的IP地址(在RARP应答中)。
在概念上这个过程是很简单的,但是实现起来常常比ARP要困难。
-
TCP/IP协议---ARP协议的更多相关文章
- [TCP/IP] 网络层-ARP协议
ARP协议可以将网络层地址到任意物理地址转换,从IP地址到MAC地址转换 MAC地址:物理地址,网卡厂家要确保MAC地址全球唯一,48位2进制,显示是12位16进制 1.查看我自己的ip,我自己的的i ...
- TCP/IP 5层协议簇/协议栈
TCP/IP 5层协议簇/协议栈 数据/PDU 应用层 PC.防火墙 数据段/段Fragment 传输层 防火墙 报文/包/IP包packet 网络层 路由器 帧Frame 数据链路层 交换机.网卡 ...
- http与https与socket tcp/IP与UDP 协议等
网络由下往上分为: 物理层-- 数据链路层-- 网络层-- IP协议 传输层-- ...
- TCP/IP 和HTTP 协议基础知识
来源:http://www.myhack58.com/Article/60/63/2014/50072.htm 相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过 ...
- TCP/IP及http协议 SOAP REST
TCP/IP及http协议: TCP/IP协议主要解决数据如何在网络中传输, 而HTTP是应用层协议,主要解决如何包装数据 SOAP:简单对象访问协议(Simple Object Access Pro ...
- TCP/IP协议栈 ARP和RARP协议
上几章中我们提到以太网协议中,在以太网首部中一个帧类型的字段,它可以表示为IP ARP RARP协议. 这里说一下ARP 和RARP协议. 首先看ARP协议: 要想网络中的数据包准确到达某个主机,最后 ...
- TCP/IP和HTTP协议代理
TCP/IP协议族 TCP/IP(传输控制协议/网际协议)是用于计算机通信的一个协议族. TCP/IP协议族包括诸如Internet协议(IP).地址解析协议(ARP).互联网控制信息协议(ICMP) ...
- OSI,TCP/IP,五层协议的体系结构,以及各层协议
OSI分层 (7层):物理层.数据链路层.网络层.传输层.会话层.表示层.应用层. TCP/IP分层(4层):网络接口层. 网际层.运输层. 应用层. 五层协议 (5层):物理层.数据链路层.网络层. ...
- TCP/IP 笔记 - 地址解析协议
地址解析协议(ARP)提供了一种在IPv4地址和各种网络技术使用的硬件地址之间的映射.ARP仅用于IPv4,IPv6使用邻居发现协议,它被合并入ICMPv6.地址解析是发现两个地址之间的映射关系的过程 ...
随机推荐
- 关于python访问字典的方法
def stu( **kwargs): # 在函数体内对于kwargs的使用不用带星号 print("大家好,我为大家简单自我介绍以下:") print(type(kwargs)) ...
- 2017-10-10 都市传说: "部分"中文出现乱码
知乎原链, 作者亦本人 事情起源于项目另一开发者在中文Windows下构建时遇到的部分中文出现乱码问题. 当时很不解的是, 为什么会只有部分出现乱码. 第一感觉是, 如果编码转换不正确, 要么全乱码, ...
- Runtime和Process
private void runByshcommand(String command) { try { System.out.println("开始执行命令....."); Pro ...
- html中用href 实现点击链接弹出文件下载对话框
浏览器支持能够打开的格式,他都会默认直接在线打开(比如word或图片),不支持的格式,他就会弹出下载提示.最好是做成.rar格式.xlsx的文件.浏览器自带下载功能. <body> < ...
- python自动化开发-5b
python的常用模块(续) time和datetime模块 time模块和datetime模块举例 例子:获取当前时间 import datetime,time now = time.strftim ...
- Android常用数据类型转换
String转int.float.double.byte[].bitmap Int i = Integer.parseInt(str); Float f = Float.parseFloat(str) ...
- oracle中给某个用户某张表的权限设置
今天碰到需要给数据库上某一个用户,开通其中2张表的查询权限,方法如下: grant select on bas_checkcycle to jdc;这个是整个语句. 语句分析: grant selec ...
- linux中crw brw lrw等等文件属性是什么
今天在查看 /dev/fuse 文件的属性的时候,看到了crw_ 权限位,一时反应不过来: [root@localhost ~]# ll /dev/fuse crw-rw-rw-. root root ...
- Python基础知识:函数
1.定义函数和调用函数 #定义函数def def greet_user(username): '''简单的问候语''' print('Hello,%s!'%username) greet_user(' ...
- Centos7系统详细的启动流程
熟悉系统启动流程对于我们学习Linux系统是非常有帮助的,虽然基础,但能帮助我们更加理解Linux系统的工作机制.以下将以CentOS发行版为例来介绍Linux系统的启动流程,因为在CentOS 5. ...