网络,我们每天都在接触,每天都在通过网络获取我们想要的信息。再进一步讲,我们利用我们的手机或者电脑,通过有线网或者Wi-Fi或者3G/4G网,连接到电信、联通、移动等运营商的网络,最终连到各大公司的网站服务器,获取我们想要的信息。

可见在网络中,涉及到的公司或企业之多,而每家公司或企业的设备类型之多、设备数量之多。为了唯一标识这些设备,我们引入了IP地址;为了解决这些设备的通信问题,我们引入了IP协议。

1 IP地址

在上文中,我们提到IP地址,也了解到IP地址是用来唯一标识不同的设备的,就像我们的手机号,不能重复。我们的手机号是11位十进制数字标识,那我们的IP地址呢?

IP地址使用32个bit的二进制数来表示I的,每8个bit一组,所以有4组,像这样

XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXXX = 1 or 0

1.1 IP地址的表示:点分十进制

如果用二进制来写的话,要写32个,岂不很烦。所以我们一般把这二进制,按照8个bit一组翻译成十进制数据。组与组之间用点号(.)区分,也就是我们常说的点分十进制表示IP地址,像192.168.1.9,47.95.47.253等等。

由于每一组二进制是8个bit,那么不难推算出每组十进制的取值访问是0---255,所以IP地址取值范围是0.0.0.0---255.255.255.255。

1.2 IP地址分类

我们知道了IP地址的范围是0.0.0.0--255.255.255.255,可以计算出来IP地址的个数为2^32,大概42亿个.。这么多IP地址,用途各不一样,互联网IP地址分配机构IANA对这42亿个IP地址按照用途分配如下。

分类 IP地址 作用
特殊地址 0.0.0.0 当设备没有IP地址,需要发送DHCP请求报文时,以此地址为源地址
广播地址 255.255.255.255 广播数据时,用此地址做目的地址,不过广播会被局限在一个网段内,不可能是整个互联网
私有地址

10.0.0.0 -- 10.255.255.255

172.16.0.0 -- 172.31.255.255

192.168.0.0 -- 192.168.255.255

用于每个公司或者机构内部通信,不会出现在互联网上
环回口地址 127.0.0.0 -- 127.255.255.255 用于测试网卡是否正常使用,不会出现在网络上,只会在设备内部
特殊地址

169.254.0.0 -- 169.254.255.255

当设备经过DHCP报文交互后,仍然没有拿到IP地址,则从此段地址内随机生成一个
组播地址 224.0.0.0 -- 239.255.255.255 当需要向一组设备发送数据时,用组播地址为目的地址,加入到该组播组的设备都会收到
公网地址 除上面以外的地址 这部分地址才是真正互联网上通信的地址,一般由运营商使用和再分配

1.3 子网掩码

上一级是从IP地址用途去分类的,在实际使用中,我们往往把IP地址划分成两个部分,网络号和主机号,而主机号又被划分成子网号和真正主机号,如下图所示。

从上图可知,我们32个bit的IP地址被划分成了网络号、子网号和主机号,为何要这么做呢?

打个比方我们的手机号总共11位,前面三位一般代表移动、联通、电信三家运营商,紧跟着的四位一般代表手机号归属地,最后四位代表归属地下具体用户.。同样的道理,我们的IP地址,前面的网络号和子网号代表具体网段,后面的主机号代表该网段内的设备。

那到底前面的多少个bit代表网段(或者子网)呢,这就需要我们的子网掩码上场了。 子网掩码也是32个bit,不过前面的是一连串的1,后面的都是0,并且也可以用点分十进制表示。例如前面10个bit全是1,那么后面为0的则是32-10=22个bit,如下所示。

二进制:    1111 1111. 1100 0000. 0000 0000. 0000 0000十进制:          255.       192.         0.         0

因此我们可以推算出子网掩码总共多少个,答案是33个。为何是33个呢,而不是像IP地址一样是2^32=42亿个?很简单,就是因为1或者0是连续的,而且前面连续的都是1,后面则是全0。前面连续为1的可能无非就是:0个连续1,、1个连续1、2个连续1、3个连续1 ..... 32个连续1。如下表,我们列举所有32个子网掩码的具体表示形式。

前面连续1的个数 子网掩码表示 举例 举例
0 0.0.0.0 192.168.1.1/0 192.168.1.1/0.0.0.0
1 128.0.0.0 192.168.1.1/1 192.168.1.1/128.0.0.0
2 192.0.0.0 192.168.1.1/2 192.168.1.1/192.0.0.0
3 224.0.0.0 192.168.1.1/3 192.168.1.1/224.0.0.0
........... ........... ........... ...........
29 255.255.255.248 192.168.1.1/29 192.168.1.1/255.255.255.248
30 255.255.255.252 192.168.1.1/30 192.168.1.1/255.255.255.252
31 255.255.255.254 192.168.1.1/31 192.168.1.1/255.255.255.254
32 255.255.255.255 192.168.1.1/32 192.168.1.1/255.255.255.255

到现在为止,我们已经有了IP地址和子网掩码的基础,也清楚通过子网掩码,我们可以知道一个IP地址的子网编号、以及该子网内的主机编号。

例如 192.168.1.1/24。可算出子网内主机编号为192.168.1.0、192.168.1.1、192.168.1.2 .....192.168.1.254、192.168.1.255。

我们人为规定主机编号内第一个为子网的编号,如本例中的192.168.1.0。

主机编号内最后一个代表该子网内所有主机,如192.168.1.255。

其他的则为真正的主机,如192.168.1.1---192.168.1.254。

1.4 网段

在网络通信中,我们一般经常提到网段这个名词,到底啥意思呢?其实啊,网段就是我们前面提到的子网。给定一个IP地址和子网掩码,我们怎么知道这个IP地址属于哪个网段呢?下文举个例子来说明。

    例子1:判断 192.168.1.200/24属于哪个网段?

我们先把点分十进制的192.168.1.200转换成二进制【1100 0000. 1011 1000. 0000 0001. 1100 1000】,然后与24个连续的1【1111 1111. 1111 1111. 1111 1111. 0000 0000】进行逻辑与运算,最后转换成十进制即可。

  1100 0000. 1011 1000. 0000 0001. 1100 1000  192.168.1.200
& 1111 1111. 1111 1111. 1111 1111. 0000 0000  /24
=============================================1100 0000. 1011 1000. 0000 0001. 0000 0000
转换成十进制192.       168.        1.         0  /24

因此192.168.1.200/24对应的网段/子网为192.168.1.0/24。

    例子2:判断 192.168.1.200/26属于哪个网段?

我们先把点分十进制的192.168.1.200转换成二进制【1100 0000. 1011 1000. 0000 0001. 1100 1000】,然后与26个连续的1【1111 1111. 1111 1111. 1111 1111. 1100 0000】进行逻辑与运算,最后转换成十进制即可。

  1100 0000. 1011 1000. 0000 0001. 1100 1000  192.168.1.200
& 1111 1111. 1111 1111. 1111 1111. 1100 0000  /26
=============================================1100 0000. 1011 1000. 0000 0001. 1100 0000
转换成十进制192.       168.        1.       192  /26

因此192.168.1.200/26对应的网段/子网为192.168.1.192/26。

2 MAC地址

如果仔细观察每块网卡的属性,除了会看到IP地址外,还会发现MAC地址,这MAC地址是干嘛的呢?

先说MAC地址的格式, MAC地址是用48个bit的二进制表示的,8个bit一组、共有6组。为了方便书写,我们用冒分十六进制来表示。也就是组内用十六进制表示,组与组之间用冒号(:)分割。不难看出MAC地址的范围是00:00:00:00:00:00--ff:ff:ff:ff:ff:ff。

MAC地址是冒分十六进制表示的48个bit,其中前面24个bit(叫OUI)表示设备厂商,后面24个bit表示设备厂商制造的设备编号。因此每个设备厂商制造的设备都有一个唯一的编号,不会重复。另外要注意一点,在这48个bit第8个bit如果为1,则表示组播地址,为1则表示单播地址。

可见MAC地址也是用来唯一标识设备(网卡或者其他设备),MAC地址一般出厂的时候就已经在设备芯片内部写死了,不会更改。

3 有了IP地址,为何还有MAC地址

前文到了唯一标识网络中的设备有IP地址,还有MAC地址,这不冲突吗?

在这之前,我们得搞清楚我们平时所说的网络,,其实是指以太网,,由于使用者甚多,所以以太网就代表网络。严格来说以太网只是网络的一种,除了以太网,我们还有其他类型的网络,,比如Wi-FI、移动通信中的2G/3G/4G/5G、P2P网还有被淘汰的ATM等等.

这些网络为了标识不同的网络节点,都有自己一套地址体系。以太网就是用的MAC地址,Wi-Fi其实也是也是用MAC地址,其他类型的网络可不是MAC地址,具体的可以自行查阅相关资料。

我们的互联网,可是把这些不同类型的网络连接在一起,因此有必要重新弄套地址体系,要求所有连到互联网上的网络都得支持,要不然夸网络类型通信岂不乱套? 这套地址体系就是我们所说的IP地址。

打个比方,IP地址就像护照,全球统一格式;MAC地址就像我们国家的身份证,仅仅在我们国家有效。如果你只是在国内活动(以太网内通信),身份证(MAC地址)就可以了。 但你要出国(跨网络通信),那就得护照(IP地址)才行。

写给非网工的CCNA教程(1)IP地址和MAC地址相关推荐

  1. 淘宝网及新浪网等几大官方IP查询API接口地址库的调用及使用方法教程

    淘宝对外提供共享的一个IP地址库API,更新也比较及时,非常适合我们日常的使用. 以下讨论的是和淘宝网 IP查询 地址库 调用 API 相关的淘宝网及新浪网等几大官方IP查询API接口地址库的调用及使 ...

  2. 华为linux改ip地址,ubuntu9.10校园网上网配置详细教程(华为h3c,mac地址绑定)

    写一下ubuntu9.10的校园网配置方法,便于以后参考,适用于学校静态ip地址绑定网卡mac地址的校园网 一.下载华为H3c linux版的客户端 点下面下载客户端的tar.gz包 下载 如果失效了 ...

  3. MFC 获取外网IP地址和MAC地址

    MAC地址获取: CString GetMacAddress(void) { //CString strIP,strGateWay,strSubnetMask; CString strMac; str ...

  4. 网工路由基础(2)路由选路原理

    往期回顾  网工路由基础(1)静态路由 欢迎关注微信公众号[厦门微思网络].www.xmws.cn专业IT认证培训19周年 主要课程:思科.华为.红帽.ORACLE.VMware.CISP.PMP等认 ...

  5. 网工常用Linux网络命令

    上篇文章介绍了windows常用的网络命令,这篇来介绍Linux的.当然由于云计算.容器技术的发展,Linux环境网络命令越来越多.越来越复杂,这里只介绍网工常用的几个命令,比如ifconfig.pi ...

  6. 超全计算机的基础知识,网工小白必看(下)

    四.网络层次划分 1.为了使不同计算机厂家生产的计算机能够相互通信,以便在更大的范围内建立计算机网络,国际标准化组织(ISO)在1978年提出了"开放系统互联参考模型",即著名的O ...

  7. 网工协议基础(5)ARP协议

    ARP 是什么? ARP(Address Resolution Protocol ) ,即地址解析协议,负责把目的主机的IP 地址解析成目的MAC地址. 当发送者 知道目的主机的IP地址之后, 就可以 ...

  8. 网工考试之linux

    网工考试之linux 最基本的,网络工程师考试中一定用得到; 1. ifconfig 可以使用ifconfig命令来配置并查看网络接口的配置情况. (1) 配置eth0的IP地址, 同时激活该设备. ...

  9. 局域网与城域网(1)(网工)

    1. 局域网体系与标准 局域网(LAN):有限区域(如办公楼或楼层)内的多台计算机通过传输介质互连,所组成的封闭网络.实现数据通信和资源共享的目的. 常用传输介质 双绞线.同轴电缆.光纤.无线等 典型 ...

  10. HCIP网工数通Datacom之网工拆分(1)理论和基础命令

    目录 1. OSI模型 2. TCP/IP模型 3. IP传输原理 4. 网关三要素: 5. DNS 6. wireshark 抓包 7. arp 简介 8. 二进制和十进制转换 9. ipv4地址 ...

最新文章

  1. .frm_.myd_myi转换为.sql导入mysql数据库_把.frm,.myd,myi转换为.sql导入数据库
  2. 如何将cv::Mat类型转换为imgui中的ImTextureID类型
  3. markdown 本地链接_五分钟快速入门Markdown
  4. php 导入excal,php导入excel php使用phpexcel导入excel文件
  5. JLNews新闻点评系统--君兰IT
  6. 印象笔记中可以使用html语言吗,印象笔记支持markdown啦
  7. ubuntu使用droidcam连接手机摄像头
  8. iOS H264编码及解码
  9. 2285列车时刻表_K2285火车时刻表里程表价格表
  10. C/C++实现百度API GET请求
  11. (四)激活函数与loss梯度
  12. 靶机渗透练习02-driftingblues2
  13. vue-devtools 各版本安装
  14. Unity3d实现扭动挤压浏览效果
  15. 永久免费VPS推荐:Evolution Host 最高可得4H/4G/80G/1G带宽
  16. 奶爸日记6 - 室内电子游戏
  17. mysql数据库管理人员_dba数据库管理员的职责是什么
  18. scau 9502 ARDF一个变量的问题
  19. 【JAVA】<深入理解>异常处理
  20. 《液晶显示器和液晶电视维修核心教程》——1.5 液晶显示器的拆装技巧

热门文章

  1. SpringCloud入门教程(全集)
  2. suse linux主机安全加固,suse linux操作系统安全加固
  3. java 开发中常用的字符串工具类,StringUtil
  4. 读书笔记-OpenCL编程指南 HelloWorld
  5. 使用 Python 多处理库处理 3D 数据
  6. doip 源码_DoIP—协议框架
  7. xv6实验课程--系统调用
  8. 机器学习之MCMC算法(转载)
  9. 如何macOS 上优雅的使用 Gaussian 09 与GaussView 6
  10. MySQL电影院管理系统_电影院售票管理系统