网络协议笔记-网络层-ARP协议
【2-地址解析协议ARP】
【2.1-基本概念】
地址解析协议ARP的作用是根据主机的IP地址,找出该主机的硬件地址。
【2.2-为什么要使用ARP】
在数据传输过程中,网络层使用的IP地址,但是在实际传输的时候,数据是从网络的数据链路上传送数据帧的(就是数据链路层所做的工作,七层网络结构中,数据从上往下移动),所以最终还是需要使用网络的硬件地址。因为七层网络结构中每一层都是黑盒的,所以在讨论数据在网络层传输的时候,就忽略了对数据链路层的讨论。
【2.3-ARP的简要工作原理】
每一台主机都有一个ARP高速缓存表,用来存储主机所在局域网上所有主机和路由器的IP地址到硬件地址的映射表。当网络层传输数据时,指明数据的目的IP地址,然后通过目的IP地址在ARP高速缓存表中找到该主机的硬件地址,即目的主机的硬件地址,然后把网络层的IP数据报加上源硬件地址和目的硬件地址,封装成MAC帧(数据链路层的数据传输单位)在数据链路上进行数据传输。
【2.4-ARP怎么获取本网络其他主机的IP地址硬件地址的映射关系】
假设主机A要向本网络中的主机B发送IP数据报,首先主机A在自己的ARP高速缓存表中根据主机B的IP地址找对应的硬件地址,如果找到了,就这个硬件地址写到MAC帧,然后通过局域网把这个MAC帧发送到这个硬件地址。如果没有找到,主机A就向自己所在的局域网广播ARP请求分组,这个请求分组中的信息是这样的,“主机A的IP的地址,主机A的硬件地址,目的主机B的IP地址”;接着这个网络上的所有主机都收到这个请求,都各自检查请求中目的主机的IP地址是不是自己,如果不是,就不做任何响应,如果是,就先把主机A的IP地址和硬件地址的映射关系在自己的ARP高速缓存表中保存一下,然后向主机A发送单播响应信息,信息内容是这样的,“主机B(自己)的IP地址,主机B(自己)的硬件地址”;主机A收到主机B的单播响应信息之后,就把映射关系缓存在自己的ARP高速缓存表中,最后把主机B的硬件地址写到MAC帧中,通过局域网把MAC帧发送到主机B的硬件地址。
假设主机B的硬件地址换了,主机A中保存的映射关系不就变成错误的了吗? 解决办法就是,本机的ARP高速缓存表有个过期时间,一定时间内容会清空,重新更新这个高速缓存表。
当目的主机B和主机A不在同一个网络中怎么办?如果是这样,那么主机A的ARP高速缓存表中保存的就是两个网络之间的路由器的硬件地址,主机A根据路由器地址解析出路由器的硬件地址,然后把MAC帧发送给路由器,然后就不管了,由路由器再做ARP的解析去把数据最终发送到目的主机B的硬件地址去。个人理解也可以把这个路由器当成一个主机。
网络协议笔记-网络层-ARP协议的更多相关文章
- [TCP/IP] 网络层-ARP协议
ARP协议可以将网络层地址到任意物理地址转换,从IP地址到MAC地址转换 MAC地址:物理地址,网卡厂家要确保MAC地址全球唯一,48位2进制,显示是12位16进制 1.查看我自己的ip,我自己的的i ...
- Windows网络编程笔记4 -- Winsock 协议相关知识
Win32平台上的Winsock编程,Winsock是一个与协议无关的接口.以下协议是我们需要了解的: 网络协议的特征包括: 1. 面向消息 2. 面向连接和无线接 3. 可靠性和次序性 4. ...
- 网络爬虫笔记之http协议
http协议和https协议: HTTP协议:HyperText Transfer Protocol,超文本传输协议,是一种发布和接收HTML页面的方法.服务器端口号是80. HTTPS协议:是HTT ...
- 网络协议笔记-网络层-路由器的作用、IP地址
1-[路由器在网际互连中的作用] 1.1-[直接交付和间接交付] 直接交付:当主机A要向另一个主机B发送数据报时,要先检查目的主机B是否与源主机连接在同一个网络上.如果是,就将数据报直接交付给目的主机 ...
- 网络基础知识-TCP/IP协议各层详解
TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...
- arp协议分析&python编程实现arp欺骗抓图片
arp协议分析&python编程实现arp欺骗抓图片 序 学校tcp/ip协议分析课程老师布置的任务,要求分析一种网络协议并且研究安全问题并编程实现,于是我选择了研究arp协议,并且利用pyt ...
- 关于ARP协议
什么是arp协议: arp协议是地址解析协议,英文是address resolution protocol 通过IP地址可以获得mac地址 两个主机的通信归根到底是MAC地址之间的通信 在TCP/IP ...
- 什么是ARP协议?
ARP协议,全称“Address Resolution Protocol”,中文名是地址解析协议, 使用ARP协议可实现通过IP地址获得对应主机的物理地址(MAC地址). 在TCP/IP的网络环境下, ...
- 网络架构,七层协议,三次握手四次挥手,socket套接字简单编程
一.单机架构 应用领域: 植物大战僵尸 office 二.CS架构 应用领域: QQ 大型网络游戏 计算机发展初期用户去取数据,直接就去主机拿,从这里开始就分出了客户端和服务端. 客户端:用户安装的软 ...
随机推荐
- centos 7 配置 到多站点设置
背景 : 前面配置了 win2008 WAMP环境, 这次因为一些事情 新买了服务器 只有 win2003 和 win2012, 试着配置2012 WAMP环境 发现比 2008 缺的配置文件多很多 ...
- Django搭建博客网站(一)
Django搭建自己的博客网站(一) 简介 这个系列主要是通过使用Django这个python web框架实现一个简单的个人博客网站.对Django有疑问可以上Django官网查文档. 功能 后台管理 ...
- qt中的udp编程
UDP QUdpSocket ---> upd socket 1.创建 QUdpSocket *p = new QUdpSocket(); 2.最先接收数据一方 调用bind-> ip/p ...
- 训练 smallcorgi/Faster-RCNN_TF 模型(附ImageNet model百度云下载地址)
1. 下载训练.验证.测试数据和 VOCdevkit,下载地址: http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2 ...
- zabbix_server 挂了原因及解决方法(内存溢出)
14721:20170714:095330.028 [file:dbconfig.c,line:452] zbx_mem_malloc(): out of memory (requested 80 b ...
- .NET Core UI框架Avalonia
.NET Core UI框架Avalonia,Avalonia是一个基于WPF XAML的跨平台UI框架,并支持多种操作系统:Windows(.NET Framework,.NET Core),Lin ...
- Spring_Spring与AOP_AspectJ基于注解的AOP实现
一.AspectJ.Spring与AOP的关系 AspectJ是一个面向切面的框架,它扩展了Java语言.AspectJ定义了AOP语法,所以它有一个专门的编译器用来生成遵守Java字节编码规范的Cl ...
- Activiti中的log4j(slf4j)的配置
今天试了一下在Activiti中使用log4j来进行配置发现这个会出现问题,其实Activiti中的日志系统是采用的是slf4j而不是log4j 然后使用slf4j驱动log4j来做的 通过Proce ...
- C语言_简单的阶乘函数
include <stdio.h> long jc (int num); long jc2 (int num); int main() { long n; n = jc(); printf ...
- POJ - 1456 贪心+并查集
做法一:直接贪心,按照利润排序,然后直接尽量给每个活动安排到最晚的时间即可.时间复杂度O(n * d)当d都为10000时,很容易超时.由于这题数据比较水,所有贪心未超时. AC代码 #include ...