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

IP地址:

  IP地址就是给互联网上的每一台主机或路由器的每一个接口分配一个在全世界范围内是唯一的32位的标识符,IP地址的结构使我们可以在互联网上很方便的进行寻址。为了便于寻址和层次化地构造网络,IP地址被分为A、B、C、D、E五类,商业应用中只用到A、B、C三类。IP协议(Internet Protocol)又称互联网协议,是支持网间互连的数据报协议,它与TCP协议(传输控制协议)一起构成了TCP/IP协议族的核心。它提供网间连接的完善功能,包括IP数据报规定互连网络范围内的IP地址格式。 Internet 上,为了实现连接到互联网上的结点之间的通信,  必须为每个结点(入网的计算机)分配一个地址,并且应当保证这个地址是全网唯一的,这便是IP地址。目前的IP地址(IPv4:IP第4版本)由32个二进制位表示,每8位二进制数为一个整数, 中间由小数点间隔,如159.226.41.98,整个IP地址空间有4组8位二进制数,由表示主机所在的网络的地址(类似部队的编号)以及主机在该网络中的标识(如同士兵  在该部队的编号)共同组成。为了便于寻址和层次化的构造网络,IP地址被分为A、B、C、D、E五类,  商业应用中只用到A、B、C三类。  * A类地址:A类地址的网络标识由第一组8位二进制数表示,网络中的主机标识占3组8位二进制数,A类地址的特点是网络标识的第一位二进制数取值必须为“0”。不难算出,A类地址允许有126个网段,每个网络大约允许有1670万台主机,通常分配给拥 有大量主机的网络(如主干网)。 * B类地址:B类地址的网络标识由前两组8位二进制数表示,网络中的主机标识占两组8位二进制数,B类地址的特点是网络标识的前两位二进制数取值必须为“10”。 B类地址允许有16384个网段,每个网络允许有65533台主机,适用于结点比较多的网络  (如区域网)。  * C类地址:C类地址的网络标识由前3组8位二进制数表示,  网络中主机标识占1组8位二进制数,  C类地址的特点是网络标识的前3位二进制数取值必须为“110”。  具有C类地址的网络允许有254台主机,适用于结点比较少的网络(如校园网)。 为了便于记忆,通常习惯采用4个十进制数来表示一个IP地址,十进制数之间采用句点“.”予以分隔。 这种IP地址的表示方法也被称为点分十进制法。如以这种方式表示, A类网络的IP地址范围为1.0.0.1-127.255.255.254; B类网络的IP地址范围为:128.1.0.1-191.255.255.254; C类网络的IP地址范围为:192.0.1.1-223.255.255.254。  由于网络地址紧张、主机地址相对过剩,采取子网掩码的方式来指定网段号。 TCP/IP协议与低层的数据链路层和物理层无关,这也是TCP/IP的重要特点。正因为如此 ,它能广泛地支持由低两层协议构成的物理网络结构。目前已使用TCP/IP连接成洲际网、全国网与跨地区网。(注意:这种将网络进行分类的方法现在已经过时了)

MAC地址:

  MAC地址是固化在适配器(网卡)中的地址,所以是主机的物理地址,每一个适配器都有一个唯一的MAC地址,MAC地址由48位二进制位组成。

ARP协议:

  ARP协议的用途是为了从网络层使用的IP地址,解析出在数据链路层使用的硬件地址(MAC地址)。

  需要明白:在网络层及网络层以上我们使用的是IP地址,在链路层及物理层我们使用的是MAC地址。目前使用的IP地址的版本是IPV4,它由32位组成,MAC地址一般由48位组成。

  ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。解决这个问题的方法是在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表。

  当主机A要向本局域网上的某台主机B发生IP数据报时,就先在其ARP高速缓存中查看有无主机B的ip地址,如果有,就在ARP高速缓存中查出其对应的硬件地址,再把这个硬件地址写入MAC帧中,然后通过局域网把该MAC帧发往此硬件地址;如果没有,找到主机B的硬件地址需要经过以下过程:

  a:主机A的ARP进程在本局域网上广播发送一个ARP请求分组。请求内容:“我的IP地址是209.0.0.5,硬件地址是 00-00-C0-15-AD-18,我想知道ip地址为 209.0.0.6的主机的硬件地址”

  b:在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组

  c:主机B的IP地址与ARP请求分组中要查询的IP地址一致,就收下这个ARP请求分组,并向主机A发送ARP响应分组,同时这个ARP响应分组中写入自己的硬件地址。由于其余的所有主机的IP地址都与ARP请求分组中要查询的ip地址不一致,因此都不理睬这个ARP请求分组。响应内容:“我的ip地址是209.0.0.6,我的硬件地址是08-00-2B-00-EE-0A”。

  d:主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射。

IP地址、MAC地址、ARP地址解析协议的更多相关文章

  1. 使用ARP获取局域网内设备IP和MAC地址

    根据Arp列表数据,查询本地设备在线状态 使用 arp -a 获得所有内网地址,首先看Mod对象 public struct MacIpPair { public string HostName; p ...

  2. 《TCP/IP详解 卷1:协议》第4章 ARP:地址解析协议

    4.1 引言 本章我们要讨论的问题是只对TCP/IP协议簇有意义的IP地址.数据链路如以太网或令牌环网都有自己的寻址机制(常常为48 bit地址),这是使用数据链路的任何网络层都必须遵从的.一个网络如 ...

  3. 怎么查询局域网内全部电脑IP和mac地址等信息?

    在局域网内查询在线主机的IP一般比较简单,但局域网内全部电脑的IP怎么才能够查到呢?查询到IP后我还要知道对方的一些详细信息(如MAC地址.电脑名称等)该怎么查询呢??? 工具/原料 Windows ...

  4. 怎么查询局域网内全部电脑IP和mac地址..

    在局域网内查询在线主机的IP一般比较简单,但局域网内全部电脑的IP怎么才能够查到呢?查询到IP后我还要知道对方的一些详细信息(如MAC地址.电脑名称等)该怎么查询呢??? 工具/原料 Windows ...

  5. 查询局域网内全部电脑IP和mac地址等信息

    怎么查询局域网内全部电脑IP和mac地址等信息_百度经验 https://jingyan.baidu.com/article/54b6b9c0348e432d583b47c1.html 枚举ping ...

  6. 通过IP获取MAC地址例子(应用层)

    博客地址:http://home.cnblogs.com/u/zengjianrong/ 由于某种需求,需要获取某个ip的mac地址,在应用层实现例子如下代码. 流程:1. 先遍历arp表,若存在对应 ...

  7. win10系统绑定本地IP和mac地址

    第一步:找到自己的IP和mac地址 1.按着win键+R键,输入cmd(大小写都一样) 2.命令: ipconfig   /all              #查看所有地址 然后按“回车键” 3.这样 ...

  8. 获得Unix/Linux系统中的IP、MAC地址等信息

    获得Unix/Linux系统中的IP.MAC地址等信息 中高级  |  2010-07-13 16:03  |  分类:①C语言. Unix/Linux. 网络编程 ②手册  |  4,471 次阅读 ...

  9. 获取平台所有接口的IP和MAC地址

    我们有时候会有获取网口的IP和MAC地址的需求.可以通过ioctl来获取. #include <sys/ioctl.h>#include <net/if.h>#include ...

随机推荐

  1. 【poj2774】Long Long Message

    用个分隔符将两个字符串连接起来,再用后缀数组求出height数组的值,找出一个height值最大并且i与i-1的sa值分别在两串字符中就好 #include<algorithm> #inc ...

  2. Robot Framework 怎样写好Test Case

    1.介绍 这是一个关于如何用Robot Framework写好Test Case的高层次的指导准则 怎样实际的与系统进行交互不在此文档范围内 最重要的准则是使测试用例尽可能的让熟悉此领域的人觉得简单易 ...

  3. CANopen——笔记

    1. c语言的typedef高级用法 typedef void (*post_sync_t)(CO_Data*); http://zhidao.baidu.com/link?url=_lDBGq_uk ...

  4. EJS基本使用

    基本使用 Render 渲染字符串 Compile编译字符串到模板函数(需调用才能生成html内容) <!DOCTYPE html> <html lang="en" ...

  5. 10.6 Graph Test

    一套图论的练习题,各个方面都有挺好的 第一第二题有一定难度(来源POI),第三第四题比较水 但我并没考好 T1 特工 szp T2 洞穴 zaw T3 最短路 line T4 最小差异值 dvalue

  6. POJ1228 Grandpa's Estate 稳定凸包

    POJ1228 转自http://www.cnblogs.com/xdruid/archive/2012/06/20/2555536.html   这道题算是很好的一道凸包的题吧,做完后会加深对凸包的 ...

  7. AIZU AOJ 2309 Vector Compression 最小树形图(朱—刘算法)

    题意简述:给定若干个相同维度的向量,寻找一种排序方法,使得所有向量的表示长度总和最低. 所谓表示长度为(Aj-r*Ai)^2,其中i<j  数据范围:向量总数和维度均小于100 思路:(1)首先 ...

  8. npm install 安装软件,出现 operation not permitted, mkdir 'C:\Program Files\nodejs\node_cache'

    问题如下图: 解决办法: 在开始菜单栏里打开cmd的时,右击选择“以管理员身份运行”.然后再在打开的cmd里运动install就没问题了. 这个问题应该是当时安装依赖时,我们是以管理员身份运行的:所以 ...

  9. redis 缓存应用

    第1章 部署与安装 wget http://download.redis.io/releases/redis-3.2.10.tar.gz tar xf redis-3.2.10.tar.gz cd r ...

  10. 构造 Codeforces Round #107 (Div. 2) B. Phone Numbers

    题目传送门 /* 构造:结构体排个序,写的有些啰嗦,主要想用用流,少些了判断条件WA好几次:( */ #include <cstdio> #include <algorithm> ...