一、 IP地址的子网划分
https://www.cnblogs.com/joyware/p/17082458.html
1、
A类(8网络号+24主机号)、B类(16网络号+16主机号)、
C类(24网络号+8主机号)可以用于标识网络中的主机或路由器,
D类地址作为组广播地址,E类是地址保留。
A类网络号:
前缀长8位:0*******(首位固定1位),首字节:从00000000 = 0,到01111111 = 127;
即(0)->(127),子网数量2^7次方,
实际网络号:数字0和127有特殊用途,数字0用于本地宿主机,数字127用于内部回送函数测试,因此实际可用的A类网络号为1->126;
主机号:
从(0.0.0)->到(255.255.255),主机数量2^24次方;
实际主机号:2^24次方-2个。这是因为A类IP地址的主机号占据了后24位,其中全0和全1的地址被保留用于表示网络和广播地址。
=》A类IP地址范围(1.0.0.1)->到(126.255.255.254)。
B类网络号:
前缀长16位:10****** ********(首位固定2位),首字节:从10000000 = 128,到10111111 = 191;
即(128.0)->(191.255),子网数量2^14次方,
实际网络号:(128.0)->(191.255)不变,目前128.0可以分配。
主机号:
从(0.0)->到(255.255),主机数量2^16次方=65536;
但是,全0(0.0)和全1(255.255)的主机地址有特殊用途,不能分配给主机!
实际可用的主机数量2^16 -2 = 65534个;
一般用于中等规模网络。
C类网络号:
前缀长24位:110***** ******** ********(首位固定3位),首字节:从11000000 = 192,到11011111 = 223;
即(192.0.0)->(223.255.255),子网数量2^21次方,
主机号:
从(0)->到(255),主机数量2^8次方=256;
但是,实际全0(0.0)和全1(255.255)的主机地址有特殊用途,不能分配给主机!每个网络最多只能包含254台计算机。
C类IP地址范围192.0.0.1-223.255.255.254。
一般用于小型网络。
D类网络:
地址范围:224.0.0.1-239.255.255.254
是多播地址。该类IP地址的最前面为“1110”,所以地址的网络号取值于224~239之间。
一般用于多路广播用户 。
2、
在一个网络中引入子网,就是将主机标识进一步划分为子网号和主机号,
【通过灵活定义子网号的位数,可以控制每个子网的规模】。
例如,某大学的B类网络最多允许接入65534台计算机,现将子网号位数定为4,
则划分为16个子网,每个子网最多允许接入4094台计算机。
注意,子网划分会导致实际可分配IP地址数目减少。
例如,上面例子中子网[划分前]的可分配IP地址为65534,[划分后]的可分配IP地址为65504(4094×16),
减少了30个。但这点损失与子网划分所带来的巨大收益相比是微不足道的。
二、子网掩码
1、
判断两台机器是否在同一个子网内,需要用到子网掩码。
子网掩码与IP地址一样,也是一个32位的二进制数,但其网络号和子网号部分全为1,主机号部分全为0。
例如,上面例子的子网掩码为11111111 11111111 11110000 00000000,即255.255.240.0。
判断两个IP地址是不是在同一个子网内,只要判断这两个IP地址与子网掩码做逻辑“与”的结果是否相同即可。
例如,在上面的例子中,设IP地址A、B、C分别为190.78.240.1、190.78.250.1、190.78.230.1。
将A、B、C分别转换为二进制表示形式:
10111110 01001110 11110000 00000001
10111110 01001110 11111010 00000001
10111110 01001110 11100110 00000001
与子网掩码
11111111 11111111 11110000 00000000
逻辑“与”的结果分别为:
10111110 01001110 11110000 00000000
10111110 01001110 11110000 00000000
10111110 01001110 11100000 00000000
因此IP地址190.78.240.1与190.78.250.1在一个子网内,而IP地址190.78.240.1与190.78.230.1不在一个子网内;
2、子网掩码的概念及作用
①、子网掩码(Subnet Mask)又叫网络掩码、地址掩码,【必须结合IP地址一起对应使用】。
②、只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。
③、子网掩码和IP地址做“与”运算,分离出IP地址中的网络地址和主机地址,用于判断该IP地址是在本地网络上,还是在远程网络网上;
④、子网掩码还用于将网络进一步划分为若干子网,以避免主机过多而拥堵或过少而IP浪费。
3、子网掩码的组成
①、同IP地址一样,子网掩码是由长度为32位二进制数组成的一个地址。
②、子网掩码32位与IP地址32位相对应,IP地址如果某位是网络地址,则子网掩码为1,否则为0。
③、举个例子:如:11111111.11111111.11111111.00000000,
表明掩码对应的IP的前24位标识网络号,后8位标识主机号,即为C类网络;
注:左边连续的1的个数代表网络号的长度,(使用时必须是连续的,理论上也可以不连续),
右边连续的0的个数代表主机号的长度。
4、子网掩码的表示方法
①、点分十进制 表示法
二进制转换十进制,每8位用点号隔开
例如:子网掩码二进制11111111.11111111.11111111.00000000,表示为255.255.255.0
②、CIDR斜线记法
IP地址/n
例1:192.168.1.100/24,其子网掩码表示为255.255.255.0,二进制表示为11111111.11111111.11111111.00000000
例2:172.16.198.12/20,其子网掩码表示为255.255.240.0,二进制表示为11111111.11111111.11110000.00000000
不难发现,例1中(/24)表示共有24个1,例2中(/20)表示共有20个1,所以n是这么来的。运营商ISP常用这样的方法给客户分配IP地址。
注:n为1到32的数字,表示子网掩码中【网络号的长度】,通过n的个数确定子网的主机数=2^(32-n)-2
(-2的原因:主机位全为0时表示本网络的网络地址,主机位全为1时表示本网络的广播地址,这是两个特殊地址)。
5、为什么要使用子网掩码?
前面说道,子网掩码可以分离出IP地址中的网络地址和主机地址,那为什么要分离呢?因为两台主机要通信,首先要判断是否处于同一网段,即网络地址是否相同。如果相同,那么可以把数据包直接发送到目标主机,否则就需要路由网关将数据包转发送到目的地。
可以这么简单的理解:A主机要与B主机通信,A和B各自的IP地址与A主机的子网掩码进行And与运算,看得出的结果:
1、结果如果相同,则说明这两台主机是处于同一个网段,这样A可以通过ARP广播发现B的MAC地址,B也可以发现A的MAC地址来实现正常通信。
2、如果结果不同,ARP广播会在本地网关终结,这时候A会把发给B的数据包先发给本地网关,网关再根据B主机的IP地址来查询路由表,再将数据包继续传递转发,最终送达到目的地B。
计算机的网关(Gateway)就是到其他网段的出口,也就是路由器接口IP地址。路由器接口使用的IP地址可以是本网段中任何一个地址,不过通常使用该网段的第一个可用的地址或最后一个可用的地址,这是为了尽可能避免和本网段中的主机地址冲突。
在如下拓扑图示例中,A与B,C与D,都可以直接相互通信(都是属于各自同一网段,不用经过路由器),但是A与C,A与D,B与C,B与D它们之间不属于同一网段,所以它们通信是要经过本地网关,然后路由器根据对方IP地址,在路由表中查找恰好有匹配到对方IP地址的直连路由,于是从另一边网关接口转发出去实现互连。
6、子网掩码的分类
①、缺省子网掩码
也叫默认子网掩码,即未划分子网,对应的网络号的位都置 1 ,主机号都置 0 。
未做子网划分的IP地址:网络号+主机号
A类网络缺省子网掩码: 255.0.0.0,用CIDR表示为/8
B类网络缺省子网掩码: 255.255.0.0,用CIDR表示为/16
C类网络缺省子网掩码: 255.255.255.0,用CIDR表示为/24
②、自定义子网掩码
将一个网络划分子网后,把原本的主机号位置的一部分给了子网号,余下的才是给了子网的主机号。其形式如下:
做子网划分后的IP地址:网络号+子网号+子网主机号
举个例子:
如:192.168.1.100/25,其子网掩码表示:255.255.255.128
意思就是将192.168.1.0这个网段的主机位的最高1位划分为了子网。
7、子网掩码和IP地址的关系
子网掩码是用来判断任意两台主机的IP地址是否属于同一网络的依据,就是拿双方主机的IP地址和自己主机的子网掩码做与运算,如结果为同一网络,就可以直接通信。
And按位与运算:
与运算是计算机中一种基本的逻辑运算方式,符号表示为&,也可以表示为 and。
参加运算的两个数据,按二进制位进行“与”运算。
运算规则:0&0=0;0&1=0;1&0=0;1&1=1;
即:两位同时为“1”,结果才为“1”,否则为0
如何根据IP地址和子网掩码,计算网络地址:
①、将IP地址与子网掩码转换成二进制数。
②、将二进制形式的 IP 地址与子网掩码做“与”运算。
③、将得出的结果转化为十进制,便得到网络地址。
如下图:
网络地址计算小技巧:IP地址和子网掩码做与运算,把IP地址的主机位直接归0,就快速得到网络地址。所以只要一看到IP地址和子网掩码,就能马上确认网络地址。
三、MAC地址
1、数据链路层 MAC地址
MAC地址(Media Access Control Address)直译为媒体存取控制地址,
也称为局域网地址(LAN Address)、以太网地址(Ethernet Address)、硬件地址(Hardware Address)或物理地址(Physical Address)。
每个网卡都有一个MAC地址。MAC地址是媒体访问控制地址(Media Access Control Address)的缩写,用于在网络中唯一标识一个网卡。每个网络设备在制造时都会被烧录上一个唯一的MAC地址,以确保在网络中的唯一性。
MAC地址用于在网络中唯一标识一个网卡。如果一个设备拥有多个网卡,每个网卡都会有一个唯一的MAC地址。
MAC地址在OSI模型的第二层数据链路层中使用,而IP地址则在第三层网络层中使用。
MAC地址采用12位十六进制数表示,共6个字节(48位),每个字节由2个十六进制数字表示,例如:00-1A-2B-3C-4D-5E。
前三个字节由IEEE的注册管理机构分配给不同厂家,后三个字节由厂家自行指派给每个适配器接口。
https://blog.csdn.net/yangyin1998/article/details/140791938
2、
四、端口号
1、为什么要用端口号,作用/意义?
所谓的端口,就好像是门牌号一样,客户端可以通过IP地址找到对应的服务器端,但是服务器端是有很多的端口的,每个应用程序对应一个端口号,通过类似门牌号的端口号,客户端才能真正的访问到该服务器。
端口号是用于标识在一台设备上运行的不同网络应用程序或服务的数字标识符。它是一个16位的数字,可以是0到65535之间的任意值。当一个应用程序或服务需要通过网络进行通信时,它会打开一个特定的端口,并侦听该端口上的连接。这个侦听过程称为绑定(binding)。当其他设备或应用程序尝试连接到此端口时,操作系统会将连接转发给已经绑定到该端口的应用程序进程。
因此,可以说端口号和进程之间存在一对一的映射关系。一个特定的端口号通常与一个特定的进程或应用程序相关联。而且,一个端口号只能与绑定一个进程。当网络通信发生时,数据包会通过端口号被正确地路由至相应的进程,以确保通信的正确进行。
同一台设备上的不同进程可以绑定不同的端口号。这样就使得多个应用程序能够同时进行网络通信,而无需担心冲突。每个进程可以通过独立的端口号进行区分和识别,从而实现并发的网络通信。
2、下面是两个示例来详细解释端口号:
HTTP通信使用的端口号是80。 当您在浏览器中输入网址并访问一个网站时,浏览器会与服务器进行HTTP通信。在这个过程中,浏览器将通过端口号80发送请求,以与服务器上运行的Web服务器进行通信。Web服务器接收到请求后,会将相应的网页内容返回给浏览器,并通过端口号80将响应发送回浏览器。因此,端口号80在这种情况下用于标识HTTP通信。
FTP通信使用的端口号是21。 当您使用FTP客户端与远程服务器进行文件传输时,通常使用的端口号为21。FTP客户端通过端口号21与FTP服务器建立连接,并发送指令来上传、下载或删除文件。端口号21被FTP协议保留,用于标识FTP通信。
每个端口号都有特定的作用和用途,例如常见的端口号有:
FTP:21(20)*FTP(文件传输协议)
21连接;20传输数据
TELNET:23*:TELNET(远程登录)
SMTP:25* SMTP(电子邮件传输协议)
POP3(邮局协议版本3):110
DNS:53*:DNS(域名系统)
TFTP:69:TFTP(简单文件传输协议)
HTTP:80*:HTTP(超文本传输协议)
SNMP:161:SNMP(简单网络管理协议)
HTTPS:443*:HTTPS(超文本传输安全协议)
五、路由器(网络层)
原文链接:https://blog.csdn.net/m0_73243771/article/details/141026629