重学计算机网络(二) - 曾记否,查IP地址
- 1.1.1.1 不是测试用的,原来一直没分配,现在被用来做一个DNS了,宣传是比谷歌等公司的DNA服务更保护用户隐私
- 255.255.255.255,代表有限广播,它的目标是网络中的所有主机
- 0.0.0.0,通常代表未知的源主机。当主机采用DHCP动态获取IP地址而无法获得合法IP地址时,会用IP地址0.0.0.0来表示源主机IP地址未知
- NID不能以数字127开头。NID 127被保留给内部回送函数,作为本机循环测试使用
例如,使用命令ping 127.0.0.1测试TCP/IP协议栈是否正确安装。在路由器中,同样支持循环测试地址的使用。
1 ip
1.1 ifconfig V.S ip addr
- Windows - ipconfig
- Linux上- ifconfig
还有— ip addr
net-tools起源于BSD,自2001年起,Linux社区已经对其停止维护,而iproute2旨在取代net-tools,并提供了一些新功能。一些Linux发行版已经停止支持net-tools,只支持iproute2。
net-tools通过procfs(/proc)和ioctl系统调用去访问和改变内核网络配置,而iproute2则通过netlink套接字接口与内核通讯。net-tools中工具的名字比较杂乱,而iproute2则相对整齐和直观,基本是ip命令加后面的子命令。
虽然取代意图很明显,但是这么多年过去了,net-tool依然还在被广泛使用,最好还是两套命令都掌握吧。
- ip addr
显示这台机器上所有的网卡,大部分的网卡都有一个IP地址。
IP地址是一个网卡在网络世界的通讯地址,相当于门牌号码
既然是门牌号,不能大家都一样,不然就会冲突。所以,有时候咱们的电脑弹出网络地址冲突,出现上不去网的情况,多半是IP地址冲突。
ip地址被点分隔为四个部分,每个部分8bit,总共32位。这样产生的IP地址的数量很快就不够用了。于是就有了IPv6,即inet6 fe80::…
这个有128位,现在看来是够的。
1.2 分类
32位IP地址被分为5类:
构成
A、B、 C类主要分为两部分:
- 前部分 - 网络号
- 后部分 - 主机号
可以理解成大家都是1单元1号,但我是Java小区的,而你是PHP小区的。
C网广播地址一般为: 192.XXX.XXX.255 ( 比如:192.168.1.255 )
A、B、C三类地址所能包含的主机的数量:
- C类地址能包含的最大主机数量实在太少了,只有254个。当年设计恐怕也没想到,现在估计一个网咖都不够用。
- B类地址能包含的最大主机数量又太多。6万多台机器放在一个网络下面,一般的企业基本达不到这个规模,闲着的地址就是浪费。
2 无类型域间选路(CIDR)
这打破了原来设计的几类地址的做法,将32位的IP地址分为:网络号+主机号。
10.100.122.2/24,这个IP地址中有一个斜杠,斜杠后面有个数字24,这种地址表示形式,就是CIDR。
24表示32位中前24位是网络号,后8位是主机号。
伴随着CIDR存在的
- 广播地址
10.100.122.255 若发送这个地址,则所有10.100.122网络里面的机器都可以收到 - 子网掩码
255.255.255.0
将子网掩码和IP地址进行AND计算,得到网络号
- 前面三个255,转成二进制都是1
1和任何数值取AND,都是原来数值,前三个数不变:10.100.122 - 后面一个0,转换成二进制是0
0和任何数值取AND,都是0,因而最后一个数变为0,合起来就是10.100.122.0
3 公/私有IP地址
日常工作,几乎不用划分A类、B类或者C类,很多人就忘记了这个分类,只记得CIDR
但是有一点还是要注意的,就是公有IP地址和私有IP地址
上面的表格。表格最右列是私有IP地址段
平时看到的数据中心里,办公室/家/学校的IP地址,一般都是私有IP地址段
因为这些地址允许组织内部的IT人员自己管理、分配,而且可重复
因此,你学校的某个私有IP地址段和我学校的可以是一样的。
这就像每个小区有自己的楼编号和门牌号,你们小区可以叫6栋,我们小区也叫6栋,没有任何问题
但是一旦出了小区,就需要使用公有IP地址。就像人民路888号,是国家统一分配的,不能两个小区都叫人民路888号。
公有IP地址有个组织统一分配,你需要去买
如果你搭建一个网站,给你学校的人使用,让你们学校的IT人员给你一个IP地址就行
但是假如你要做一个类似网易163这样的网站,就需要有公有IP地址,这样全世界的人才能访问。
表格中的192.168.0.x是最常用的私有IP地址
你家里有Wi-Fi,对应就会有一个IP地址。一般你家里地上网设备不会超过256个,所以/24基本就够了
有时候我们也能见到/16的CIDR,这两种是最常见的,也是最容易理解的。
不需要将十进制转换为二进制32位,就能明显看出192.168.0是网络号,后面是主机号
而整个网络里面的第一个地址192.168.0.1,往往就是你这个私有网络的出口地址
例如,你家里的电脑连接Wi-Fi,Wi-Fi路由器的地址就是192.168.0.1
而192.168.0.255就是广播地址。一旦发送这个地址,整个192.168.0网络里面的所有机器都能收到。
但是也不总都是这样的情况。因此,其他情况往往就会很难理解,还容易出错。
4 CIDR可不好算
16.158.165.91/22
这个CIDR,求该网络的第一个地址、子网掩码和广播地址。
首先声明16.158.165.1是错的!
/22不是8的整数倍,只能先变成二进制。
- 16.158的部分不会动,占了前16位
- 中间的165,二进制为10100101。除了前面的16位,还剩6位。所以,这8位中前6位是网络号,16.158.<101001>,而<01>.91是机器号。
第一个地址是16.158.<101001><00>.1,即16.158.164.1
子网掩码是255.255.<111111><00>.0,即255.255.252.0
广播地址为16.158.<101001><11>.255,即16.158.167.255。
IP : 192.168.124.7
子网掩码:255.255.255.192
网络地址:192.168.124.0
广播地址:192.168.124.63
255.255.255.192=》11111111.11111111.11111111.11000000
所以可划分网段:2^2=4个:
0~63 192.168.124.7属于该网段
64~127
128~191
192~255
所以广播地址为:192.168.124.63。所以广播地址最后一位不一定是 255。
广播通信问题
主机一:192.168.124.7 子网掩码 : 255.255.255.192
主机二: 192.168.124.100 子网掩码: 255.255.255.192
主机一广播地址: 192.168.124.63
主机二广播地址: 192.168.124.127
所以无法互相通信。
D类是组播地址
使用这一类地址,属于某个组的机器都能收到
这有点类似在公司里面大家都加入了一个邮件组。发送邮件,加入这个组的都能收到
在IP地址的后面有个scope
- 对于eth0这张网卡来讲,是global,说明这张网卡是可以对外的,可以接收来自各个地方的包
- 对于lo来讲,是host,说明仅可以供本机相互通信。
lo全称是loopback,又称环回接口,往往会被分配到127.0.0.1这个地址
这个地址用于本机通信,经过内核处理后直接返回,不会在任何网络中出现。
5 MAC地址
在IP地址的上一行是link/ether fa:16:3e:c7:79:75 brd ff:ff:ff:ff:ff:ff
这个被称为MAC地址
是一个网卡的物理地址,用十六进制,6个byte表示
MAC地址号称全局唯一,不会有两个网卡有相同的MAC地址,而且网卡自生产出来,就带着这个地址
很多人看到这里就会想,既然这样,整个互联网的通信,全部用MAC地址好了,只要知道了对方的MAC地址,就可以把信息传过去。
这样当然是不行的
一个网络包要从一个地方传到另一个地方,除了要有确定的地址,还需要有定位功能
而有门牌号码属性的IP地址,才是有远程定位功能
例如,你去XX市XX路XX号X楼X层找XX,你在路上问路,可能被问的人不知道X楼是哪个,但是可以给你指网商路怎么去
但是如果你问一个人,你知道这个身份证号的人在哪里吗?可想而知,没有人知道。
MAC地址更像是身份证,是一个唯一的标识
它的唯一性设计是为了组网的时候,不同的网卡放在一个网络里面的时候,可以不用担心冲突
从硬件角度,保证不同的网卡有不同的标识。
MAC地址是有一定定位功能的,只不过范围非常有限
你可以根据IP地址,找到XX市XX路XX号X楼X层,但是依然找不到我,你就可以靠吼了,大声喊身份证XXXX的是哪位?我听到了,我就会站起来说,是我啊
但是如果你在上海,到处喊身份证XXXX的是哪位,我不在现场,当然不会回答,因为我在杭州不在上海。
所以,MAC地址的通信范围比较小,局限在一个子网里面
例如,从192.168.0.2/24访问192.168.0.3/24是可以用MAC地址的
一旦跨子网,即从192.168.0.2/24到192.168.1.2/24,MAC地址就不行了,需要IP地址起作用了
6 网络设备的状态标识
<BROADCAST,MULTICAST,UP,LOWER_UP>
叫net_device flags,网络设备的状态标识
- UP
网卡处于启动的状态 - BROADCAST
网卡有广播地址,可以发送广播包 - MULTICAST
网卡可以发送多播包 - LOWER_UP
L1是启动的,也即网线插着呢 - MTU1500
最大传输单元MTU为1500,这是以太网的默认值。
网络包是层层封装的
MTU是二层MAC层的概念。MAC层有MAC的头,以太网规定连MAC头带正文合起来,不允许超过1500个字节。正文里面有IP的头、TCP的头、HTTP的头。如果放不下,就需要分片来传输。
- qdisc pfifo_fast (queueing discipline,排队规则)
内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的qdisc(排队规则)把数据包加入队列。
最简单的qdisc是pfifo,它不对进入的数据包做任何的处理,数据包采用先入先出的方式通过队列
pfifo_fast稍微复杂一些,它的队列包括三个波段(band)。在每个波段里面,使用先进先出规则。
三个波段(band)的优先级也不相同。band 0的优先级最高,band 2的最低。如果band 0里面有数据包,系统就不会处理band 1里面的数据包,band 1和band 2之间也是一样。
数据包是按照服务类型(Type of Service,TOS) 被分配到三个波段(band)里面的
TOS是IP头里面的一个字段,代表了当前的包是高优先级的,还是低优先级的。
7 总结
- IP是地址,有定位功能;MAC是身份证,无定位功能
- CIDR可以用来判断是不是本地人
- IP分公有IP、私有IP
重学计算机网络(二) - 曾记否,查IP地址相关推荐
- 如何查看网络计算机ip,怎么查ip地址 如何查看(局域网/互联网)本机ip地址
如何查看本机ip地址? 其实这个问题有点歧义,查看电脑ip可以理解成查看电脑在局域网里的ip设置,也可以理解成电脑在当前互联网中的ip地址.这2种区别大家一定要理解,那么本地IP地址与互联网中IP地址 ...
- 计算机ip地址在哪找,如何查ip地址,电脑ip地址在哪看
一:本机ip地址查询,首先介绍下,查看电脑在局域网里的ip地址 首先,右击"网上邻居",选择"属性"; 然后,在打开的窗口中找到"本地连接" ...
- IP反查网站,ip反查接口,旁站查询接口大全,通过IP查域名汇总,域名历史解析记录查询,IP地址查对应机房名称、地址,查IP地址的AS号码...
IP反查网站,ip反查接口,旁站查询接口大全,通过IP查域名汇总: http://bgp.he.net/,IP地址查对应机房:IP地址在 bgp.he.net 直接能查到IP所属机房或运营商的AS号. ...
- 计算机网络原理中子网掩码,自考 计算机网络原理 考点之IP地址与子网掩码的计算与划分...
自考 计算机网络原理 考点之IP地址与子网掩码的计算与划分 关于IP地址与子网掩码的学习心得 首先,不要管这个IP是A类还是B类还是C类,IP是哪一类对于解题是没有任何意义的,因为在很多题中B类掩码和 ...
- 【计算机网络】有了 IP 地址,为什么还要用 MAC 地址?
[计算机网络]有了 IP 地址,为什么还要用 MAC 地址? 简单的说就是ip是个框架,定义的时候有些东西并没有考虑到,以太网只定义1~2层(物理层.数据链路层),IP和TCP分别定义了3.4层(网络 ...
- 计算机网络(十)IP地址的基础知识
计算机网络(十)IP地址的基础知识 1.IP地址的定义 2.IP地址由网络和主机两部分标识组成 3.IP地址的分类 a.A类地址 b.B类地址 c.C类地址 d.D类地址 e.关于分配IP主机地址的注 ...
- android查ip地址,安卓手机查看IP地址的两种方法, 二、进入手机状态
安卓手机查看IP地址的两种方法, 二.进入手机状态 无论是电脑链接宽带上网还是手机链接wifi上网,当我们在链接网络后,会自动分配一个独立的IP地址,对于电脑端的上网IP地址我们可通过ipconfig ...
- 【重学计算机网络】DHCP IP的“孽缘“
和其他机器通讯,就需要一个通讯地址,要给网卡配置这样一个地址. 1 配置IP地址 可使用: ifconfig ip addr 设置后,用这俩命令,将网卡up一下,即可开始工作. 1.1 net-too ...
- 重学计算机网络(三) - DHCP IP的孽缘
和其他机器通讯,就需要一个通讯地址,要给网卡配置这么一个地址. 1 配置IP地址 可以使用ifconfig,也可以使用ip addr.设置好了以后,用这两个命令,将网卡up一下,就可以开始工作了. 1 ...
最新文章
- linux进入节点权限,一种基于索引节点的Linux访问权限控制方法与流程
- elementui datetimepicker 移动端_在 Gitee 收获 2.5K Star,前后端分离的 RuoYi 它来了
- 解决JRebel对myBatis Mapper 失效的问题
- Android设置布局位置五等分,五等分划分屏幕
- Spark的stage划分算法源码分析
- Socket之UDP客户端【Python】
- java过滤器经典案例_JAVA语言基础的经典案例:猜字母游戏
- html打印边距影响内容大小,关于web打印的问题,如何控制纸张大小和页边距
- 关于angularjs指令
- go web框架_干货分享:六个知名的Go语言web框架
- 概率论:p(x|theta)和p(x;theta)的区别
- python pickle模块详解
- c++坦克大战 代码免费复制(附源码)
- 金士顿DT100G3(16G) U盘修复
- 用talib实现基于emv的简易量化投资策略
- python爬取微博评论_python爬虫抓取新浪微博数据
- 飞书会议视频会议系统,会议场景全hold住
- 简单易懂的理解java开发中的 DO、BO、DTO、VO、AO都是什么✌
- js动态设置鼠标悬浮
- IEEE Access录用了一篇文章,目前在web of science中还检索不到,请问童鞋们该肿么办?
热门文章
- 山狮来临,Notes何往
- 警惕“黑洞效应”?汽车芯片的“扩张”和主机厂的“枷锁”
- 新版标准日本语初级_第六课
- 孟丽秋教授当选为慕尼黑工业大学第一副校长
- 静力触探CPT处理及表层声速异常处理记录
- Thinkphp 操作提示 ThinkPHP 3.2.0 { Fast Simple OOP PHP Framework } -- [ WE CAN DO IT JUST THINK ]
- 宇宙代码与磁子计算机,新认识!宇宙产生什么最强磁铁?比人类产生的最强磁场强一亿倍...
- antd design mobile +react 动态生成表单
- 第13章:直方图处理
- 浙江大学计算机科学与技术学院2014届本科生毕业典礼活动,北京邮电大学2014届本科生毕业典礼隆重举行...