MAC寻址与IP寻址

两者是协议上的区分,MAC地址是网卡的物理地址,是提供二层交换机转发数据的,交换机会在自己的内部形成一个MAC地址表,然后根据这个表转发数据包;再者,如果说网络规模大一点的话,机器数量多,交换机就要有足够的MAC地址表来建立转发数据表的MAC表,这个表是通过广播包来收集到的,很容易形成广播风暴,影响网络性能。

利用ip地址进行广域网的数据包之间路由,有以下几点:

ip是三层协议即网络层,它有限的隔离广播包,使得一个很大的广域网分割成许多小的局域网,这样做有利于提高网络的稳定性,同样利用ip来做寻址转发,也会在路由器上形成一个路由表跟前面所说的MAC表类似,但是要比MAC地址表稳定!

从原理上来说,由于MAC地址实际只是在局域网内有效,虽然说不同设备MAC要求是唯一的,但由于每经过一个路由网段,报文里的源和目的MAC都要做更改(源和目的IP则一直不变),所以实际上就算不同网段中,存在相同的MAC地址,也是没影响的。只要同一个网段MAC地址不重复即可。

这个问题 个人理解是这样的:如果在网络的世界里每台电脑都有一个独一无二的门牌号,在发送接收数据的时候我们只需要写源门牌号和目的门牌号就行了。如果网络规模比较小这个方案还没什么问题,当网络渐渐增大 这样的门牌号太多,中间的网络设备不能记下所有的门牌号在哪了。我们需要用另外一种方式更加有区域性地规划网络,这样就出现了IP地址和子网掩码(有类无类的问题我们就不讨论了)。但是以前的门牌号在小型网络里寻址依然有效!所以被保留了,但是门牌号变成了本地有效。

随着当时互联网的发展,IP地址的分配没有按照区域规划,导致现在世界骨干网上IP路由表数目很多。

简单的来说是IP将网络世界划分成了很多小块,A块,B块,C块,D块…….。当你要找一个人的时候先通过他的IP地址找到他属于那块,当你到达他所在的块时,用他的门牌号(MAC地址)找到他本人。

简单来讲,比如你网购用快递,快递员收件之后,会在他们自己的各个中转站传递,然而到了你家所在城市的中转站之后,不能再传给中转站,而是要找你家的门牌号。Mac就是你家的门牌号,IP就是他们的中转站号。

MAC地址是硬件层的东西,唯一标示一块网卡,是物理层面的概念,在数据通信中,由于局域网算是多主多从的物理结构,寻址是必须的,而tcp/ip协议栈按我理解是一种逻辑上的概念,在局域网上没有选路,当然使用硬件上的寻址机制,ip只是为了是数据分组能够跨域局域网,实现网络互连而设计的

IP地址实现网络互联,MAC地址实现机器互联

所以为什么不用ip也实现机器互联,让局域网也工作在三层?

  • 去掉ip地址,路由器(交换机)需要学习每个mac地址,内存会非常庞大。而ip地址在划分子网后,可以用一个网关的ip地址来代表一个子网,逐级选路。

MAC地址只能被二层所识别,而用户是处在第七层的,所以,必须通过IP来实现用户与其用户之间的通信

局域网为什么不使用IP地址而使用MAC地址寻址

此观点不正确。

局域网在网络层也是需要ip层寻址的,比如判断目标地址和本机是否同一网段,进而决定把数据包发给路由器还是直接发送给目标主机。在数据链路层当然使用mac寻址,它是实现ip层的基础。在ip层和数据链路层有arp协议衔接。应该说在网络层ip寻址,数据链路层mac寻址。

对于192.168.0.0到192.168.0.255这个网络来说,(32位的二进制地址1100 0000 . 1010 1000 . 0000 0000 . 0000 0000)

  1. 可用的主机范围192.168.0.1-192.168.0.254
  2. 网络地址为192.168.0.0(Network IP)
  3. 广播地址192.168.0.255(Broadcast IP)(C类地址网络地址占用24位,最后8位为主机地址。将主机地址位全部置为1,即为广播地址)
  4. 网段内的主机可以通过网卡对网卡传递数据
  5. 192.168.0.1和192.168.0.2的主机无需使用Router传递数据包(两主机为同一网段,所以不需要路由器通信)
  6. 192在192.x.x.x-223.x.x.x这个范围内所以属于C类地址
请问 192.168.0.0/16 代表的是什么?

IP 是由四组8 bits 的数字所组成的;由于原本是二进制的方式来计算的,为了适应人类的思考方式,所以经过十进制的表示之后,自然就是由0 ~ 255 啰

ipv4 是 32 位的, 192.168.0.0 转化为 32 位的二进制地址即是: 11000000 10101000 00000000 00000000 ,/16 代表其 32 位的前 16 位是固定的,只能改变( 32-16=) 16 位地址,则 ip 范围是:

11000000 10101000 00000000 00000000 - 11000000 10101000 11111111 11111111

转化过来就是:

192.168.0.0 - 192.168.255.255

对应的网关是: 255.255.0.0

在主机上我看到这个会认为访问这个范围内的地址都不会发送到默认路由器

在路由器上看到这个我会认为是一个网络条目

/16 是掩码位;前16 也代表子网掩码 255.255.0.0

192.168.0.0/24 表示前24位固定,只能改变8位地址,则ip范围为192.168.0.0 - 192.168.0.255

172.16.0.0 的二进制 10101100.00010000.0000000.00000000

IP,MAC的更多相关文章

  1. esp8266 免费wifi强推广告神器(4) 发现当前WIFI下的用户数目,IP,MAC请求http信息 在用户请求跳转后跳转

    需求: 1 获取当前连接客户端的HTTP请求各种信息 方法 get  http 请求路径  例如  /index.html   /    /pic.jpg 请求版本   HTTP/1.0     HT ...

  2. C#获取路由器外网IP,MAC地址

    C#实现的获取路由器MAC地址,路由器外网地址.对于要获取路由器MAC地址,一定需要知道路由器web管理系统的用户名和密码.至于获取路由器的外网IP地址,可以不需要知道路由器web管理系统的用户名和密 ...

  3. 图解HTTP,TCP,IP,MAC的关系

    入门 用户发了一个HTTP的请求,想要访问我们网站的首页,这个HTTP请求被放在一个TCP报文中,再被放到一个IP数据报中,最终的目的地就是我们的115.39.19.22. 进阶 IP数据报其实是通过 ...

  4. linux系统下获取IP,MAC,子网掩码,网关

    获取IP和子网掩码 int getLocalInfo(char IP[],char Mask[]) { int fd; int interfaceNum = 0; struct ifreq buf[1 ...

  5. 通过js获取计算机内网ip,计算机名,mac地址

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  6. 我家用的网络IP地址给定,MAC绑定,我买了个无线路由器,请问怎么设定能让我的电脑和手机都能上网

    我家用的网络IP地址给定,MAC绑定,我买了个无线路由器,请问怎么设定能让我的电脑和手机都能上网   房东给的IP地址是:192.168.1.5 255.255.255.0 192.168.1.1 2 ...

  7. IP头,TCP头,UDP头,MAC帧头定义(转)

    源:IP头,TCP头,UDP头,MAC帧头定义 一.MAC帧头定义 /*数据帧定义,头14个字节,尾4个字节*/ typedef struct _MAC_FRAME_HEADER { ]; //目的m ...

  8. IP,IP地址,mac地址

    IP地址与IP是两个不同的概念.单独讲IP,是指IP协议 IP地址分为三类:单播地址(目的为单个主机):多播地址(目的端为同一组的所有主机):广播地址(目的端为网络上所有给定的主机) ip地址由网络和 ...

  9. Linux C 网络编程 - 获取本地 ip 地址,mac,通过域名获取对应的 ip

    获取本地 ip 地址,mac,通过域名获取对应的 ip, 是网络编程可能遇到的比较常见的操作了,所以总结如下(封装了3个函数), 直接上代码: #include <stdio.h> #in ...

随机推荐

  1. mysql查询不重复的行内容,不重复的记录数.count,distinct

    有这么一个表 记录了id, p_id, p_name , p_content , p_time 1  343        aaa            aaaaaa   2012-09-01 2   ...

  2. php的精度计算问题(bcadd和bcsub)

    一.前言 我们在进行php开发的时候经常会遇到浮点型的问题,特别是涉及金额的部分,常常需要进行加减运算.当小数点的位数比较多的时候,往往容易犯一些很低级的错误.这里记录一下php的精度计算和封装的小d ...

  3. 技术人如何利用 github+Jekyll ,搭建一个独立免费的技术博客

    上次有人留言说,技术博客是程序员的标配,但据我所知绝大部分技术同学到现在仍然没有自己的技术博客.原因有很多,有的是懒的写,有的是怕写不好,还有的是一直想憋个大招,幻想做到完美再发出来,结果一直胎死腹中 ...

  4. nyoj 64-鸡兔同笼 (解二元一次方程)

    64-鸡兔同笼 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:26 submit:58 题目描述: 已知鸡和兔的总数量为n,总腿数为m.输入n和m, ...

  5. nyoj 477-A+B Problem III (fabs() <= 0.00001)

    477-A+B Problem III 内存限制:64MB 时间限制:1000ms 特判: No 通过数:18 提交数:34 难度:1 题目描述: 求A+B是否与C相等. 输入描述: T组测试数据. ...

  6. Jmeter---第一天配置中文环境、安装jmeter插件

    一:安装就不在赘述,百度有很多优秀的文章.接下来开始我自己的学习笔记 二:设置JMETER,切换中文环境. 首先打开jmeter的安装目录,找到bin文件目录中的jmeter.propertie 打开 ...

  7. SpringBoot源码学习系列之SpringMVC自动配置

    目录 1.ContentNegotiatingViewResolver 2.静态资源 3.自动注册 Converter, GenericConverter, and Formatter beans. ...

  8. TypeError: Cannot read property '_t' of undefined (VUE + ElementUI + i18n)

    在使用vue的ElementUI库,在多语言时报错: TypeError: Cannot read property '_t' of undefined 错误是在点菜单栏时随机抛出的,F12抓不到,只 ...

  9. 【论文阅读】Binary Multi-View Clustering

    文章地址:https://ieeexplore.ieee.org/document/8387526 出自:IEEE Trans. on Pattern Analysis and Machine Int ...

  10. [从今天开始修炼数据结构]线性表及其实现以及实现有Itertor的ArrayList和LinkedList

    一.线性表 1,什么是线性表 线性表就是零个或多个数据元素的有限序列.线性表中的每个元素只能有零个或一个前驱元素,零个或一个后继元素.在较复杂的线性表中,一个数据元素可以由若干个数据项组成.比如牵手排 ...