ip地址知识
我的可能多了点,希望你能看完:
IP地址与网络分类
(1)IP地址
不同的物理网络技术有不同的编址方式;不同物理网络中的主机,有不同的物理网络地址。网间技术是将不同物理网络技术统一起来的高层软件技术。网间技术采用一种全局通用的地址格式,为全网的每一网络和每一主机都分配一个网间地址,以此屏蔽物理网络地址的差异。IP协议提供一种全网间通用的地址格式,并在统一管理下进行地址分配,保证一个地址对应一台网间主机(包括网关),这样物理地址的差异被IP层所屏蔽。IP层所用到的地址叫做网间地址,又叫IP地址。它由网络号和主机号两部分组成,统一网络内的所有主机使用相同的网络号,主机号是唯一的。IP地址是一个32为的二进制数,分成4个字段,每个字段8位。
(2)三类主要的网络地址
我们知道,从LAN到WAN,不同种类网络规模相差很大,必须区别对待。因此按网络规模大小,将网络地址分为主要的三类,如下:
A类:
0 1 2 3 8 16 24
3 1 0网络号主机号
B类:1 0网络号主机号
C类:1 1 0网络号主机号
A类地址用于少量的(最多27个)主机数大于216的大型网,每个A类网络可容纳最多224台主机;B类地址用于主机数介于28~216之间数量不多不少的中型网,B类网络最多214个;C类地址用于每个网络只能容纳28台主机的大量小型网,C类网络最多221个。
除了以上A、B、C三个主类地址外,还有另外两类地址,如下:
D类:1 1 1 0多目地址
E类:1 1 1 1 0留待后用
其中多目地址(multicast address)是比广播地址稍弱的多点传送地址,用于支持多目传输技术。E类地址用于将来的扩展之用。
(3)TCP/IP规定网络地址
除了一般地标识一台主机外,还有几种具有特殊意义的特殊形式。
广播地址
TCP/IP规定,主机号全为“1”的网络地址用于广播之用,叫做广播地址。所谓广播,指同时向网上所有主机发送报文。
有限广播
前面提到的广播地址包含一个有效的网络号和主机号,技术上称为直接广播(directed boradcasting)地址。在网间网上的任何一点均可向其他任何网络进行直接广播,但直接广播有一个缺点,就是要知道信宿网络的网络号。
有时需要在本网络内部广播,但又不知道本网络网络号。TCP/IP规定,32比特全为“1”的网间网地址用于本网广播,该地址叫做有限广播地址(limited broadcast address)。
“0”地址
TCP/IP协议规定,各位全为“0”的网络号被解释成“本”网络。
回送地址
A类网络地址127是一个保留地址,用于网络软件测试以及本地机进程间通信,叫做回送地址(loopback address)。无论什么程序,一旦使用回送地址发送数据,协议软件立即返回之,不进行任何网络传输。
TCP/IP协议规定,一、含网络号127的分组不能出现在任何网络上;二、主机和网关不能为该地址广播任何寻径信息。由以上规定可以看出,主机号全“0”全“1”的地址在TCP/IP协议中有特殊含义,不能用作一台主机的有效地址。
二、子网掩码
(1)子网TCP/IP网间网技术产生于大型主流机环境中,它能发展到今天的规模是当初的设计者们始料未及的。网间网规模的迅速扩展对IP地址模式的威胁并不是它不能保证主机地址的唯一性,而是会带来两方面的负担:第一,巨大的网络地址管理开销;第二,网关寻径急剧膨胀。其中第二点尤为突出,寻径表的膨胀不仅会降低网关寻径效率(甚至可能使寻径表溢出,从而造成寻径故障),更重要的是将增加内外部路径刷新时的开销,从而加重网络负担。
因此,迫切需要寻求新的技术,以应付网间网规模增长带来的问题。仔细分析发现,网间网规模的增长在内部主要表现为网络地址的增减,因此解决问题的思路集中在:如何减少网络地址。于是IP网络地址的多重复用技术应运而生。
通过复用技术,使若干物理网络共享同一IP网络地址,无疑将减少网络地址数。
子网编址(subnet addressing)技术,又叫子网寻径(subnetrouting),英文简称subnetting,是最广泛使用的IP网络地址复用方式,目前已经标准化,并成为IP地址模式的一部分。
一般的,32位的IP地址分为两部分,即网络号和主机号,我们分别把他们叫做IP地址的“网间网部分”和“本地部分”。子网编址技术将本地部分进一步划分为“物理网络”部分和“主机”部分,如图:
网间网部分物理网络主机
网间网部分本地部分
其中“物理网络”用于标识同一IP网络地址下的不同物理网络,既是“子网”。
(2)子网掩码IP协议标准规定:每一个使用子网的网点都选择一个32位的位模式,若位模式中的某位置1,则对应IP地址中的某位为网络地址(包括网间网部分和物理网络号)中的一位;若位模式中的某位置0,则对应IP地址中的某位为主机地址中的一位。例如位模式:11111111 11111111 11111111 00000000中,前三个字节全1,代表对应IP地址中最高的三个字节为网络地址;后一个字节全0,代表对应IP地址中最后的一个字节为主机地址。这种位模式叫做子网模(subnet mask)或“子网掩码”。
为了使用的方便,常常使用“点分整数表示法”来表示一个IP地址和子网掩码,例如B类地址子网掩码(11111111 11111111 11111111 00000000)为:
255255250 IP协议关于子网掩码的定义提供一种有趣的灵活性,允许子网掩码中的“0”和“1”位不连续。但是,这样的子网掩码给分配主机地址和理解寻径表都带来一定困难,并且,极少的路由器支持在子网中使用低序或无序的位,因此在实际应用中通常各网点采用连续方式的子网掩码。像25525525564和255255255160等一类的子网掩码不推荐使用。
(3)子网掩码与IP地址子网掩码与IP地址结合使用,可以区分出一个网络地址的网络号和主机号。
例如:有一个C类地址为:
192.9.200.13其缺省的子网掩码为:
255.255.255.0则它的网络号和主机号可按如下方法得到:将IP地址192.9.200.13转换为二进制11000000 00001001 11001000 00001101
将子网掩码255.255.255.0转换为二进制11111111 11111111 11111111 00000000
将两个二进制数逻辑与(AND)运算后得出的结果即为网络部分11000000 00001001 11001000 00001101 AND 11111111 11111111 11111111 00000000 11000000 00001001 11001000 00000000结果为19292000,即网络号为19292000。
将子网掩码取反再与IP地址逻辑与(AND)后得到的结果即为主机部分11000000 00001001 11001000 00001101 AND 00000000 00000000 00000000 11111111 00000000 00000000 00000000 00001101结果为00013,即主机号为13。
(4)子网掩码与IP地址子网掩码与IP地址结合使用,可以区分出一个网络地址的网络号和主机号。
例如:有一个C类地址为:
192.9.200.13 其缺省的子网掩码为:
255.255.255.0 则它的网络号和主机号可按如下方法得到:
将IP地址192.9.200.13转换为二进制11000000 00001001 11001000 00001101
将子网掩码255.255.255.0转换为二进制11111111 11111111 11111111 00000000
将两个二进制数逻辑与(AND)运算后得出的结果即为网络部分11000000 00001001 11001000 00001101 AND 11111111 11111111 11111111 00000000 11000000 00001001 11001000 00000000结果为19292000,
即网络号为192.9.200.0。
将子网掩码取反再与IP地址逻辑与(AND)后得到的结果即为主机部分11000000 00001001 11001000 00001101 AND 00000000 00000000 00000000 11111111 00000000 00000000 00000000 00001101 结果为00013,即主机号为13。
三、子网划分与实例根据以上分析,建议按以下步骤和实例定义子网掩码。
1、将要划分的子网数目转换为2的m次方。如要分8个子网,8=23。
2、取上述要划分子网数的2的m次方的幂。如23,即m=3。
3、将上一步确定的幂m按高序占用主机地址m位后转换为十进制。如m为3 则是11100000,转换为十进制为224,即为最终确定的子网掩码。如果是C类网,则子网掩码为255255255224;如果是B类网,则子网掩码为2552552240;如果是C类网,则子网掩码为25522400。
在这里,子网个数与占用主机地址位数有如下等式成立:2m=n。其中,m表示占用主机地址的位数;n表示划分的子网个数。根据这些原则,将一个C类网络分成4个子网。若我们用的网络号为192.9.200,则该C类网内的主机IP地址就是19292001~1929200254(因为全“0”和全“1”的主机地址有特殊含义,不作为有效的IP地址),现将网络划分为4个部分,按照以上步骤:
4=22,取22的幂,即2,则二进制为11,占用主机地址的高序位即为11000000,转换为十进制为192。这样就可确定该子网掩码为:1929200192,4个子网的IP地址范围分别为:
二进制十进制
11000000 00001001 11001000 00000001 11000000 00001001 11001000 00111110 192.9.200.1
192.9.200.62
11000000 00001001 11001000 01000001 11000000 00001001 11001000 01111110 192.9.200.65
192.9.200.126
11000000 00001001 11001000 10000001 11000000 00001001 11001000 10111110 192.9.200.129
192.9.200.190
11000000 00001001 11001000 11000001 11000000 00001001 11001000 11111110 192.9.200.193
192.9.200.254
在此列出A、B、C三类网络子网数目与子网掩码的转换表,以供参考。
A类:
子网数目 占用位数 子网掩码 子网中主机数
2 1 255.128.0.0 8,388,606
4 2 255.192.0.0 4,194,302
8 3 255.224.0.0 2,097,150
16 4 255.240.0.0 1,048,574
32 5 255.248.0.0 524,286
64 6 255.252.0.0 262,142
128 7 255.254.0.0 131,070
128 8 255.255.0.0 65,534
B类:
子网数目 占用位数 子网掩码 子网中主机数
2 1 255.255.128.0 32,766
4 2 255.255.192.0 16,382
8 3 255.255.224.0 8,190
16 4 255.255.240.0 4,094
32 5 255.255.248.0 2,046
64 6 255.255.252.0 1,022
128 7 255.255.254.0 510
256 8 255.255.255.0 254
C类:
子网数目 占用位数 子网掩码 子网中主机数
2 1 255.255.255.128 126
4 2 255.255.255.192 62
8 3 255.255.255.224 30
16 4 255.255.255.240 14
32 5 255.255.255.248 6
64 6 255.255.255.252 2
子网掩码和ip地址的关系
子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。
最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。就这么简单。
请看以下示例:
运算演示之一:aa
I P 地址 19216801
子网掩码 2552552550
AND运算
转化为二进制进行运算:
I P 地址 11010000101010000000000000000001
子网掩码 11111111111111111111111100000000
AND运算
11000000101010000000000000000000
转化为十进制后为:19216800,运算演示之二:
I P 地址 1921680254,子网掩码 2552552550,AND运算
转化为二进制进行运算:
I P 地址:11010000101010000000000011111110
子网掩码:11111111111111111111111100000000
AND运算:11000000101010000000000000000000
转化为十进制后为:19216800
运算演示之三:
I P 地址 19216804,子网掩码 2552552550 ,AND运算,转化为二进制进行运算:
I P 地址 11010000101010000000000000000100
子网掩码 11111111111111111111111100000000
AND运算
11000000101010000000000000000000
转化为十进制后为:19216800
通过以上对三组计算机IP地址与子网掩码的AND运算后,我们可以看到它运算结果是一样的。均为19216800
所以计算机就会把这三台计算机视为是同一子网络,然后进行通讯的。我现在单位使用的代理服务器,内部网络就是这样规划的。
也许你又要问,这样的子网掩码究竟有多少了IP地址可以用呢?你可以这样算。
根据上面我们可以看出,局域网内部的ip地址是我们自己规定的(当然和其他的ip地址是一样的),这个是由子网掩码决定的通过对2552552550的分析。可得出:
前三位IP码由分配下来的数字就只能固定为1921680 所以就只剩下了最后的一位了,那么显而易见了,ip地址只能有(2的8次方-1),即256-1=255一般末位为0或者是255的都有其特殊的作用。
那么你可能要问了:如果我的子网掩码不是2552552550呢?你也可以这样做啊假设你的子网掩码是2552551280
那么你的局域网内的ip地址的前两位肯定是固定的了(什么,为什么是固定的?你看上边不就明白了吗?·#¥)
这样,你就可以按照下边的计算来看看同一个子网内到底能有多少台机器
1、十进制128 = 二进制1000 0000
2、IP码要和子网掩码进行AND运算
3、I P 地址 00010000010010011
子网掩码 11111111111111111000000000000000
AND运算00010000010010011000000000000000
转化为十进制后为:
16 73 128 0
4、可知我们内部网可用的IP地址为:00010000010010011000000000000000 到00010000010010011111111111111111
5、转化为十进制:
16731280 到 1673255255
6、0和255通常作为网络的内部特殊用途。通常不使用。
7、于是最后的结果如下:我们单位所有可用的IP地址为:
1921681281-192168128254
1921681291-192168129254
1921681421-192168142254
1921681431-192168143254
1921682541-192168254254
1921682551-192168255254
8、总数为(255-128+1)(254-1+1) =128 254 = 32512
FAINT!!!!@#!@把我们公司都买了还买不了这么多的机器呢!·¥!·#
9、看看的结果是否正确
(1)、设定IP地址为1921681281
Ping 192168129233通过测试
访http://192168129233可以显示出主页
(2)、设定IP地址为192168255254
Ping 192168129233通过测试
访http://192168129233可以显示出主页
10、结论
以上证明我们的结论是对的。
现在你就可以看你的子网中能有多少台机器了
255255255128
分解:1111111111111111111111111000000
所以你的内部网络的ip地址只能是xxxxxxxxxxxxxxxxxxxxxxxx0
到xxxxxxxxxxxxxxxxxxxxxxxx01111111
QQ代理IP设置方案:
1首先我们看一下,我们的地区信息是烟台,如图:
2然后我们退出QQ,重新回到登录界面,如图所示,点击设置按钮:
3在网络设置中设置类型为HTTP代理,在地址中填入代理的服务器IP为2211289189,在端口中填入80,点击测试按钮,如果成功的话,就点击确定按钮,如图:
4我们再次登录QQ,可以看到我们的地址信息已经发生改变了,如图:
阿里云服务器偶尔连接不上的问题出现在我做了一些TCP优化之后,出现了公司内网偶尔会出现连接不上服务器的问题,但是切换其他的网络就可以正常连接。
1,登陆服务器查看资源使用top,vmstat等命令查看了一番发现服务器各项指标都没有异常。于是将问题转向了网络层。
2,本地使用ping服务器外网ip正常返回,无丢包,延迟也正常。
3,登录服务器查看tcp相关数据。
发现在卡顿时有大量tcp syn包被丢弃,数值一直在增长。
在查阅资料并结合实际情况后,发现该服务器同时启用了 tcp_timestamps和tcp_tw_recycle参数。
后想起,之前同事为改善time_wait连接数过多问题曾改过该内核参数。
解决办法是,关闭tcp_tw_recycle:
再观察,发现服务已正常,偶尔连接不上的现象消失。
我们先来man一下这两个参数(man tcp):
cp_timestamp 是 RFC1323 定义的优化选项,主要用于 TCP 连接中 RTT(Round Trip Time) 的计算,开启 tcp_timestamp 有利于系统计算更加准确的 RTT,也就有利于 TCP 性能的提升。(默认开启)
关于tcp_timestamps详情请见: https://toolsietforg/pdf/rfc7323pdf
开启tcp_tw_recycle会启用tcp time_wait的快速回收,这个参数不建议在NAT环境中启用,它会引起相关问题。
tcp_tw_recycle是依赖tcp_timestamps参数的,在一般网络环境中,可能不会有问题,但是在NAT环境中,问题就来了。比如我遇到的这个情况,办公室的外网地址只有一个,所有人访问后台都会通过路由器做SNAT将内网地址映射为公网IP,由于服务端和客户端都启用了tcp_timestamps,因此TCP头部中增加时间戳信息,而在服务器看来,同一客户端的时间戳必然是线性增长的,但是,由于我的客户端网络环境是NAT,因此每台主机的时间戳都是有差异的,在启用tcp_tw_recycle后,一旦有客户端断开连接,服务器可能就会丢弃那些时间戳较小的客户端的SYN包,这也就导致了网站访问极不稳定。
主机A SIP:P1 (时间戳T0) ---> Server 主机A断开后
主机B SIP:P1 (时间戳T2) T2 < T0 ---> Server 丢弃
经过此次故障,告诫我们在处理线上问题时,不能盲目修改参数,一定要经过测试,确认无误后,再应用于生产环境。同时,也要加深对相关内核参数的认识和理解。
本文解决灵感来自于 https://blog51ctocom/hld1992/2285410
https://blogcsdnnet/chengm8/article/details/51668992
0条评论