ip地址使用在网络层以上,是一个逻辑地址,物理地址是数据链路层和物理层使用的

在发送数据的时候,数据是从上层往下层发送的,通过tcp报文-》ip数据报-》mac数据帧

IP地址放在数据报的首部,硬件地址放在mac帧的首部,在里面有几点注意

1:在ip层抽象的互联网上只能看到ip数据报。

2:在局域网的链路层只能看到MAC帧

3:虽然ip数据报首部有目的ip地址,但是路由器只根据目的地址的ip网络号进行选者

4:ip层抽象的互联网层屏蔽了下面的复杂的细节,所以在网络层上我们只对统一的ip地址研究原地址和目的地址就可以了

ARP解析协议:

我们在进行通信的时候,需要知道相互的硬件地址,但是我们只知道源ip和目的ip,怎么才能进行相互通信呢,这就需要了ARP地址解析协议,通过arp可以通过ip找到对应的硬件地址,rarp逆地址解析协议可以通过硬件地址找到ip地址

ARP的原理就是在主机ARP高速缓存中存储着一个ip地址到硬件地址的映射表,每一个主机都有arp高速缓存,

当主机A向主机B发送ip数据报的时候,他先查看本地arp缓存是否有主机b的mac地址,如果有,则将硬件地址写入mac帧,并通过局域网将mac帧发送到硬件地址去,如果找不到,那么主机A自动运行ARP,通过下面的方法找到mac地址

(1)主机A在局域网发送一个广播ARP请求,说我的ip是什么,我的硬件是什么,我要找到ip多少的

(2)本局域网所有主机都能收到,发现不是针对自己的,就丢弃,如果主机B收到了,发现是在寻找自己,那么就收下这个ARP请求分组,并向主机A发送一个响应分组,并在这个ARP响应分组写入自己的硬件地址,说我的ip是什么,我的硬件地址是什么,注意请求分组是广播,响应分组是单播

(3)在这个过程中,主机A收到主机B的响应分组,把B的硬件地址写入自己的ARP高速缓冲中,主机B也将A的硬件地址写入自己的高速缓存中

(4)ARP把缓冲中的每一个映射地址都设置了一个生存时间,过了这个时间,就会删除,并重新发送一个广播获得mac地址。因为如果主机b的mac地址改变了,可能会发送给错误的mac主机

优点:如果不使用ARP高速缓冲,那么任何一个主机进行通信的时候,都需要发送一次广播,这样会使网络的通信量增加很大,但是他解决的是同一个局域网的主机和路由,不能跨路由器,如果跨的话,需要多次解析,(不断的通过各个路由器),

注意:这个过程是自动进行的,主机的用户对这种解析并不知道

IP地址和硬件地址 ARP协议的更多相关文章

  1. 在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统? 网络层协议 MAC帧、IP数据报、TCP报文 关系 IP地址与硬件地址 链路层与网络层

    小结: 1. 网络层两种服务 虚电路服务 virtual circuit  电信网 网络层负责可靠交付 数据报服务  网络层不负责可靠交付 提供灵活的.无连接的.尽最大努力交付的数据报服务 不提供服务 ...

  2. JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用

    JAVA之旅(三十二)--JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例, ...

  3. 01、WireShark——ARP 协议包分析

     1. 什么是ARP ARP(Address Resolution Protocol)协议,即地址解析协议.该协议的功能就是将 IP 地 址解析成 MAC 地址. ARP(Address Resolu ...

  4. WireShark——ARP 协议包分析

     1. 什么是ARP ARP(Address Resolution Protocol)协议,即地址解析协议.该协议的功能就是将 IP 地 址解析成 MAC 地址. ARP(Address Resolu ...

  5. 图解ARP协议

    前置知识:MAC地址 在说到ARP协议之前,需要了解MAC地址,在OSI七层模型中,第三层是网络层,要解决的是下一跳机制确定的设备位置,具体来说就是网卡地址,MAC地址用于在网络中唯一标示一个网卡,一 ...

  6. ARP协议与ARP攻击入门

    一 ARP协议 ARP协议是一个年代相当"久远"的网络协议.ARP协议制定于1982年11月,英文全称:Address Resolution Protocol,即"地址解 ...

  7. 图解ARP协议(四)代理ARP原理与实践(“善意的欺骗”)

    一.代理ARP概述 我:当电脑要访问互联网上的服务器,目标MAC是什么? 很多小伙伴在刚学习网络协议的时候,经常这样直接回应:不就是服务器的MAC嘛! 这时我会反问:那电脑怎么拿到这个服务器的MAC地 ...

  8. IP地址、MAC地址、ARP地址解析协议

    互联网中一台主机要和另一台主机实现通信首先需要知道彼此在互联网中的位置,主机在互联网中的位置是通过ip地址标记的,当找到ip地址后,再通过端口号标识运行在主机中的进程从而实现通信. IP地址: IP地 ...

  9. TCP/IP协议---ARP协议

    ARP协议 以下就默认在以太网类型的网络. 这个协议的作用是通过ip地址(32bit)找到硬件地址(48bit).顺便提一下:在一个局域网里,大家常见的设备交换机,交换机上的主机在互相通信时,实际用的 ...

随机推荐

  1. mysql 之SQL语句--NSERT SELECT ON DUPLICATE KEY UPDATE的写法

    Table source CREATE TABLE `source` ( `key` int(11) NOT NULL AUTO_INCREMENT, `data` int(11) DEFAULT N ...

  2. iOS开发系统版本适配(未完待续。。。)

    1.iOS9引入了新特性App Transport Security (ATS).新特性要求App内访问的网络必须使用HTTPS协议:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL.采用T ...

  3. Qt下libusb-win32的使用方法(转)

    源:Qt下libusb-win32的使用方法 之前一直找不到适合WIN7下的Tiny6410的USB下载软件,正好这几天开始学习USB,所以打算自己写一个专门用于Tiny6410的WIN7下的USB下 ...

  4. 安卓 异步线程更新Ui

    异步跟新UI: 1.handler+Thread(runnable):如果handler和Thread都写在了一个Java文件中,就不说了,如果runnable定义在了一个单独的类文件中,可以通过在构 ...

  5. java实现——035第一个只出现一次的字符

    import java.util.Hashtable; public class T035 { public static void main(String[] args) { FirstNotRep ...

  6. asp.net 二级域名session共享

    1.自定义类 namespace SessionShare{ public class CrossDomainCookie : IHttpModule { private string m_RootD ...

  7. android 通过wifi 热点实现手机摄像头数据共享(转)

    原文地址:http://blog.csdn.net/sinat_35845281/article/details/52674946 最近想搞一个新奇的玩意儿~~~ 最近一直在在学习通过两个Androi ...

  8. java系列--JSON数据的处理

    http://blog.csdn.net/qh_java/article/details/38610599 http://www.cnblogs.com/lanxuezaipiao/archive/2 ...

  9. My数据库和Ms数据库的区别

    mssql 是微软的那个 SQL Server,运行于windows2000,2003等平台 mysql 是由瑞典mySQL AB 公司开发,目前属于Oracle旗下公司.可运行在windows平台. ...

  10. 用while判读循环语句1+1/2!+1/3!+...1/20!的和阶乘的计算方法 式:n!=n*(n-1)!

    package com.chongrui.test; /* *用while判读循环语句1+1/2!+1/3!+...1/20!的和 *使用BigDecimal类完成大数字与高精度运算 公式:n!=n* ...