所谓IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。并且每台机器的 IP 在全世界是唯一的。按照TCP/IP协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。例如一个采用二进制形式的IP地址是“00001010000000000000000000000001”,换算成十进制的形式,中间使用符号“.”分开,上面的IP地址可以表示为“10.0.0.1”。IP地址的这种表示法叫做“点分十进制表示法”。
在逻辑上,IP 地址分为网络号和主机号,依据网络号位数的不同,可以将IP 地址分为以下几类:
除以上划分方式以外,还有无分类编址:
无分类编址:即不按照ABC类规则,自动规定网络号,无分类编址格式为:IP地址/网络号示例:128.168.0.11/20表示的IP地址为128.168.0.11,其网络号占20位,因此主机号占32-20=12位,
也可以划分子网。
什么是子网?子网(Subnet)是网络中的一个部分,它是通过将一个较大的网络划分为若干较小的网络来实现提高网络性能和便于管理。IP地址是由网络部分和主机部分组成。子网通过改变IP地址中网络部分和主机部分之间的边界来划分不同的子网。通俗一点来说,如果把IP地址比作公司的员工,那子网就类似公司的部门,通过划分不同部门(子网)来实现更好对员工(IP)的管理。
什么是子网掩码?它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。通俗一点,子网掩码就是定义划分子网的方式。
子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示;右边是主机位,用二进制数字“0”表示。
例如:“192.168.1.1”和子网掩码为“255.255.255.0”的二进制对照。其中,“1”有24个,代表与此相对应的IP地址左边24位是网络号;“0”有8个,代表与此相对应的IP地址右边8位是主机号。
1. 子网掩码是“255.255.255.0”的网络:最后面一个数字可以在0~255范围内任意变化,因此可以提供256个IP地址。但是实际可用的IP地址数量是256-2,即254个,因为主机号不能全是“0”或全是“1”。
2. 子网掩码是“255.255.0.0”的网络:后面两个数字可以在0~255范围内任意变化,可以提供2552个IP地址。但是实际可用的IP地址数量是2552-2,即65023个。
通过设置不同的子网掩码,可以改变网络地址和主机地址的边界,从而实现不同规模的子网划分。
进一步理解划分不同络地址和主机地址的作用是什么?
网络地址的作用:
标识网络:网络地址用于标识互联网上的一个特定网络。这使得路由器能够确定数据包应该被发送到哪个网络。
路由选择:网络地址是路由器进行路由选择的基础。路由器根据网络地址将数据包转发到正确的目的地。
网络层次结构:通过划分网络地址,可以创建一个分层的网络结构,这有助于减少路由表的大小,提高路由效率。
主机地址的作用:
标识设备:主机地址用于在同一个网络内部标识不同的设备或主机。
通信定位:在数据包传输过程中,主机地址确保数据能够准确地发送到目标设备。
划分网络地址和主机地址的具体作用:
地址分配:通过划分,可以为不同的网络和主机分配唯一的IP地址,确保每台设备都能在全球互联网上被唯一识别。
网络隔离:网络地址和主机地址的划分允许创建子网,这有助于隔离网络流量,提高网络安全性。
广播域控制:划分网络地址有助于控制广播域的大小。在一个较小的网络(子网)中,广播不会跨越整个网络,从而减少广播风暴的可能性。
资源管理:网络管理员可以根据需要为不同的部门或服务分配不同的网络地址,这样可以更有效地管理网络资源。
性能优化:通过合理划分网络地址和主机地址,可以减少不必要的网络流量,提高网络的整体性能。
灵活性和扩展性:划分网络地址提供了更大的灵活性,使得网络可以根据需求的变化进行扩展或重新配置。
网关(Gateway)又称网间连接器、协议转换器。从一个网络向另一个网络发送信息,必须经过一道“关口”,这道关口就是网关。计算机的网关(Gateway)就是到其他网段的出口,也就是路由器接口IP地址。路由器接口使用的IP地址可以是本网段中任何一个地址,不过通常使用该网段的第一个可用的地址或最后一个可用的地址,这是为了尽可能避免和本网段中的主机地址冲突。
比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。网络B向网络A转发数据包的过程也是如此。所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。
默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。
DNS:域名系统(Domain Name System)。在 Internet 上,域名与 IP 地址之间是一 一对应的,域名虽然便于人们记忆,但机器之间只能互相识别 IP 地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS 服务器就是进行域名解析的服务器 。
很多人遇到过这个问题: 电脑连上网能上微信,但是不能打开网页。就是因为DNS服务器出了问题。因为微信不需要有 DNS (微信QQ 只是一个客户端程序,用不到 DNS),只有浏览网页(需输入网址时)才用到 DNS。
IP地址,标示你电脑的身份!子网掩码,可以标示子网划分的情况,所属子网。默认网关,数据包默认选择的出口!一般是你的路由器地址!DNS服务器,把网站的域名转换成计算机能看懂的IP地址!简单来说,子网掩码 就是判断两个IP地址,是不是在同一个网段(或称子网),在同一网段的两个地址,可以直接通信。不管是通过IP地址也好,还是通过“计算机名”,都是可以的。如果两个IP地址,不在同一网段,这时候,要想通过IP地址访问另一网段的计算机(也是IP地址),就需要网关地址。
如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536(即:2^16)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(2^16-1)。
在Internet上,各主机间通过TCP/IP协议发送和接收数据包,各个数据包根据其目的主机的ip地址来进行互联网络中的路由选择,把数据包顺利的传送到目的主机。大多数操作系统都支持多程序(进程)同时运行,那么目的主机应该把接收到的数据包传送给众多同时运行的进程中的哪一个呢?显然这个问题有待解决,端口机制便由此被引入进来。
本地操作系统会给那些有需求的进程分配协议端口(protocol port,即我们常说的端口),每个协议端口由一个正整数标识,如:80,139,445,等等。当目的主机接收到数据包后,将根据报文首部的目的端口号,把数据发送到相应端口,而与此端口相对应的那个进程将会领取数据并等待下一组数据的到来。说到这里,端口的概念似乎仍然抽象,那么继续跟我来,别走开。
端口其实就是队,操作系统为各个进程分配了不同的队,数据包按照目的端口被推入相应的队中,等待被进程取用,在极特殊的情况下,这个队也是有可能溢出的,不过操作系统允许各进程指定和调整自己的队的大小。
不光接受数据包的进程需要开启它自己的端口,发送数据包的进程也需要开启端口,这样,数据包中将会标识有源端口,以便接受方能顺利地回传数据包到这个端口。
端口详解
每种网络的服务功能都不相同,因此有必要将不同的封包送给不同的服务来处理,当你的主机同时开启了FTP与WWW服务时,别人送来的资料封包,就会依照 TCP 上面的 port 号码来给 FTP 这个服务或者是 WWW 这个服务来处理。
· 每一个 TCP 连接都必须由一端(通常为 client )发起请求,这个 port 通常是随机选择大于 1024 以上(因为0-1023一般被用作知名服务器的端口,被预定,如FTP、HTTP、SMTP等)的 port 号来进行!其 TCP封包会将(且只将) SYN旗标设定起来!这是整个联机的第一个封包;
· 如果另一端(通常为 Server ) 接受这个请求的话(特殊的服务需要以特殊的 port 来进行,例如 FTP 的 port 21 ),则会向请求端送回整个联机的第二个封包!其上除了 SYN旗标之外同时还将 ACK 旗标也设定起来,并同时在本机端建立资源以待联机之需;
· 然后,请求端获得服务端第一个响应封包之后,必须再响应对方一个确认封包,此时封包只带 ACK旗标(事实上,后继联机中的所有封包都必须带有 ACK 旗标);
· 只有当服务端收到请求端的确认( ACK )封包(也就是整个联机的第三个封包)之后,两端的联机才能正式建立。这就是所谓的 TCP 联机的'三次握手( Three-Way Handshake )'的原理。
经过三向交握之后,你的 client 端的 port 通常是高于 1024 的随机取得的 port,至于主机端则视当时的服务是开启哪一个 port 而定,例如 WWW 选择 80 而 FTP 则以 21 为正常的联机信道!
总而言之,我们这里所说的端口,不是计算机硬件的I/O端口,而是软件形式上的概念。根据提供服务类型的不同,端口分为两种,一种是TCP端口,一种是UDP端口。计算机之间相互通信的时候,分为两种方式:一种是发送信息以后,可以确认信息是否到达,也就是有应答的方式,这种方式大多采用TCP协议;一种是发送以后就不管了,不去确认信息是否到达,这种方式大多采用UDP协议。对应这两种协议的服务提供的端口,也就分为TCP端口和UDP端口。
那么,如果攻击者使用软件扫描目标计算机,得到目标计算机打开的端口,也就了解了目标计算机提供了哪些服务。我们都知道,提供服务就一定有服务软件的漏洞,根据这些,攻击者可以达到对目标计算机的初步了解。如果计算机的端口打开太多,而管理者不知道,那么,有两种情况:一种是提供了服务而管理者没有注意,比如安装IIS的时候,软件就会自动增加很多服务,而管理员可能没有注意到;一种是服务器被攻击者安装木马,通过特殊的端口进行通信。这两种情况都是很危险的,说到底,就是管理员不了解服务器提供的服务,减小了系统安全系数。
按照端口号的大小分类,可分为如下几类:
(1)公认端口(WellKnownPorts):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。
(2)注册端口(RegisteredPorts):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。
(3)动态和/或私有端口(Dynamicand/orPrivatePorts):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。
参考文章:
参考文章: