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协议的更多相关文章

  1. [TCP/IP] 网络层-ARP协议

    ARP协议可以将网络层地址到任意物理地址转换,从IP地址到MAC地址转换 MAC地址:物理地址,网卡厂家要确保MAC地址全球唯一,48位2进制,显示是12位16进制 1.查看我自己的ip,我自己的的i ...

  2. TCP/IP 5层协议簇/协议栈

    TCP/IP 5层协议簇/协议栈 数据/PDU 应用层 PC.防火墙 数据段/段Fragment 传输层 防火墙 报文/包/IP包packet 网络层 路由器 帧Frame 数据链路层 交换机.网卡 ...

  3. http与https与socket tcp/IP与UDP 协议等

    网络由下往上分为:   物理层--                       数据链路层-- 网络层--                       IP协议 传输层--               ...

  4. TCP/IP 和HTTP 协议基础知识

    来源:http://www.myhack58.com/Article/60/63/2014/50072.htm 相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过 ...

  5. TCP/IP及http协议 SOAP REST

    TCP/IP及http协议: TCP/IP协议主要解决数据如何在网络中传输, 而HTTP是应用层协议,主要解决如何包装数据 SOAP:简单对象访问协议(Simple Object Access Pro ...

  6. TCP/IP协议栈 ARP和RARP协议

    上几章中我们提到以太网协议中,在以太网首部中一个帧类型的字段,它可以表示为IP ARP RARP协议. 这里说一下ARP 和RARP协议. 首先看ARP协议: 要想网络中的数据包准确到达某个主机,最后 ...

  7. TCP/IP和HTTP协议代理

    TCP/IP协议族 TCP/IP(传输控制协议/网际协议)是用于计算机通信的一个协议族. TCP/IP协议族包括诸如Internet协议(IP).地址解析协议(ARP).互联网控制信息协议(ICMP) ...

  8. OSI,TCP/IP,五层协议的体系结构,以及各层协议

    OSI分层 (7层):物理层.数据链路层.网络层.传输层.会话层.表示层.应用层. TCP/IP分层(4层):网络接口层. 网际层.运输层. 应用层. 五层协议 (5层):物理层.数据链路层.网络层. ...

  9. TCP/IP 笔记 - 地址解析协议

    地址解析协议(ARP)提供了一种在IPv4地址和各种网络技术使用的硬件地址之间的映射.ARP仅用于IPv4,IPv6使用邻居发现协议,它被合并入ICMPv6.地址解析是发现两个地址之间的映射关系的过程 ...

随机推荐

  1. MySQL chartset

    -- # https://dev.mysql.com/doc/refman/8.0/en/charset-database.html -- create database aixinyz; -- 默認 ...

  2. √n求单值欧拉函数

    基本定理: 首先看一下核心代码: 核心代码 原理解析: 当初我看不懂这段代码,主要有这么几个问题: 1.定理里面不是一开始写了一个n*xxx么?为什么代码里没有*n? 2.ans不是*(prime[i ...

  3. 图的遍历(bfs+dfs)模板

    bfs #include<iostream> #include<queue> #include<cstdio> using namespace std; queue ...

  4. python中收集函数的解包问题

    收集参数的解包问题 - 把参数放入list或者字典中,直接把list/dict中的值放入收集参数中- 语法:参照案例 # 收集参数的问题 def stu(*args): print("=&q ...

  5. 【代码笔记】Web-HTML-布局

    一, 效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  6. IDEA项目搭建九——MybatisPlus多数据库实现

    一.简介 MybatisPlus中引用多数据库时,传统的配置就失效了,需要单独写配置来实现,下面就说一下具体应该如何操作 二.引入MybatisPlus多数据源配置 还是先看一下我的项目结构,Mode ...

  7. Jmeter进阶篇之监控服务器cpu,内存

    对于Jmeter,可以不再赘述,因为介绍得也够多了. 那么相信有部分同学已经尝试着自主去学习如果使用Jmeter对服务器进行压力测试了. 但是可能也会发现,Jmeter好像监控不了服务器的cpu已经内 ...

  8. 遇到npm报错read ECONNRESET怎么办

    遇到npm 像弱智一样报错怎么办 read ECONNRESET This is most likely not a problem with npm itselft 'proxy' config i ...

  9. 平板电脑安装Ubuntu教程

    平板电脑安装Ubuntu教程-以V975w为例,Z3735系列CPU通用 最近尝试在昂达V975w平板电脑和intel stick中安装ubuntu,经过分析,发现存在一个非常大的坑.但因为这个坑,此 ...

  10. 命令行选项 - Mozilla 产品与私有技术 | MDN - Google Chrome

    命令行选项 在本文章中 语法规则 使用命令行选项 示例 用户配置档 -CreateProfile profile_name -CreateProfile "profile_name prof ...