ARP协议:

前面讲了网络层的寻址是通过IP地址来做的。其实一个数据包寻址包含两个部分:1 IP寻址。2 ARP寻址。 ARP寻址是用在数据链路层上的。我们上网的电脑都有网卡。那么在数据链路层的进行传递的时候,是没有IP的概念,都是通过找到对端设备的硬件地址,也就是网卡地址来做传输。这个硬件地址标准称为MAC地址。寻找对方MAC地址的过程就是ARP寻址。

如何来查找自己设备的MAC地址呢,windows下用ipconfig /all. Linux下用ifconfig的命令就可以查到

Windows:

linux:

MAC地址的报文格式如下:MAC地址总共48个bit=6个字节

其中以太网目的地址以及以太网源地址就是源测和目的侧的MAC地址。我们来看下ARP寻址的过程。我们先用arp –a查看下192.168.0.5这台设备缓存了了哪些MAC地址。通过下面可以看到只有192.168.0.1的MAC地址。并没有192.168.0.8的地址

我们从192.168.0.5来ping下192.168.0.8。得到交互流程如下。

1 首先是一个ARP广播报文,由192.168.0.5发出,可以看到带的广播报文是who has 192.168.0.8 tell 192.168.0.5

2 随后192.168.0.8回复 192.168.0.8 is at 00:0c:29:de:df:87

3 找到MAC地址后,随后就是ping报文

来看下ARP的寻呼报文。在以太网头部中带有源MAC地址和目的地址,此时ARP寻呼的目的地址是全1.也就是255.255.255.255。带的是广播地址。寻呼所有的主机

在ARP报文中带有源和目的IP地址以及本端的MAC地址

继续看下192.168.0.8的应答报文:收到第一步的寻呼后,192.168.0.8知道了谁在寻呼他,因此在响应报文中的目的地址自然就填写了192.168.0.5并且带上了192.168.0.5的MAC地址

至此,ARP寻址已完成。192.168.0.8和192.168.0.5都已经学到了对端的MAC地址。arp –a查看可以看到192.168.0.8的MAC地址

TCP/IP协议之ARP寻址的更多相关文章

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

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

  2. TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议【转】

    转自:http://blog.csdn.net/goodboy1881/article/details/668556 把这三个协议放到一起学习是因为这三个协议处于同一层(网际层),ARP协议用来找到目 ...

  3. TCP/IP 协议 —— ARP

    通过 ARP 广播获得对方的 MAC 地址: 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议. 1. 特点 ARP ...

  4. OSI七层模型详解 TCP/IP协议

      总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转 ...

  5. TCP/IP协议(一)网络基础知识

    参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述).OSI参考模型.网络概念的本质.网络构建的设备等 ...

  6. TCP/IP协议基础(转)

    转自 http://www.chinaunix.net 作者:Bernardus160  发表于:2003-12-03 17:33:15 TCP/IP协议基础 -------------------- ...

  7. Android网络编程系列 一 TCP/IP协议族之网际层

    这篇借鉴的文章主要是用于后续文章知识点的扩散,在此特作备份和扩散学习交流. 网际层包括:IP.ICMP.IGMP 以及处在网际层实际工作在链路层的 ARP 和 RARP等等协议. 1.IP协议 互联网 ...

  8. OSI 七层模型和 TCP/IP 协议比较

      OSI (Open System Interconnection), 开放式系统互联参考模型.从下到上七层模型功能及其代表协议: 物理层(Physical) :规定了激活.维持.关闭通信端点之间的 ...

  9. 嵌入式linux的网络编程(1)--TCP/IP协议概述

    嵌入式linux的网络编程(1)--TCP/IP协议概述 1.OSI参考模型及TCP/IP参考模型 通信协议用于协调不同网络设备之间的信息交换,它们建立了设备之间互相识别的信息机制.大家一定都听说过著 ...

随机推荐

  1. 深入理解 JavaScript Function

    1.Function Arguments JavaScript 函数的参数 类型可以是 复杂类型如  Object or Array 和简单类型 String Integer null undefin ...

  2. How To Install Oracle Forms 12c On Windows 7

    Below is the step by step guide to install Oracle Forms 12c on Windows 7. To install Oracle Forms 12 ...

  3. 启动mongodb报错问题

    [root@zk-datanode-02 mongodb]# bin/mongod -f config/mongo.cnf &[1] 30549[root@zk-datanode-02 mon ...

  4. 135 - ZOJ Monthly, August 2014

    135 - ZOJ Monthly, August 2014 A:构造问题,推断序列奇偶性.非常easy发现最小值不是1就是0.最大值不是n就是n - 1,注意细节去构造就可以 E:dp.dp[i][ ...

  5. vue相关知识

    1.看https://www.bilibili.com/video/av27969216/?p=54,看他的就够了 https://juejin.im/post/5a5bc8c36fb9a01ca26 ...

  6. SAS学习经验总结分享:篇二—input语句

    SAS编程语言中input语句的应用         SAS数据步的建立离不开input语句,在读入外部数据或cards语句后面的数据块时需要通过input语句定义变量.下面介绍input语句定义变量 ...

  7. Java 线程第三版 第五章 极简同步技巧 读书笔记

    一.能避免同步吗? 取得锁会由于下面原因导致成本非常高:     取得由竞争的锁须要在虚拟机的层面上执行很多其它的程序代码.     要取得有竞争锁的线程总是必须等到锁被释放后. 1. 寄存器的效应 ...

  8. apache common包 CollectionUtils 使用 详解

    集合判断:  例1: 判断集合是否为空: CollectionUtils.isEmpty(null): true CollectionUtils.isEmpty(new ArrayList()): t ...

  9. modelsim-altera IP核仿真

    modelsim 仿真fifo时出现 Instantiation of 'scfifo' failed. The design unit was not found. 2012-07-21 13:27 ...

  10. eclipse不能添加tomcat

    有时候原来能新建server,删掉后就不能新建了 1.退出eclipse 2.到[工程目录下 workspace ]/.metadata/.plugins/org.eclipse.core.runti ...