IP地址的分类系统(A类、B类、C类、D类和E类)用于简化互联网中的地址分配。每种地址类型有不同的用途和地址范围。让我们详细讨论每种类型的IP地址:
A类IP地址
- 网络号:前8位(第一个字节)
- 主机号:后24位(后三个字节)
- 第一个字节范围:0 - 127
- 默认子网掩码:255.0.0.0
- 可用网络数:126(1 - 126)
- 每个网络可用主机数:16,777,214(2^24 - 2)
详细范围:
- 0.0.0.0:保留地址,用于指定默认路由或特定网络。
- 10.0.0.0 - 10.255.255.255:私有网络,不在公共互联网中使用。
- 127.0.0.0 - 127.255.255.255:环回地址,用于本地计算机通信测试。
- 1.0.0.0 - 126.255.255.255:公共互联网可用地址。
B类IP地址
- 网络号:前16位(前两个字节)
- 主机号:后16位(后两个字节)
- 第一个字节范围:128 - 191
- 默认子网掩码:255.255.0.0
- 可用网络数:16,384(128.0.0.0 - 191.255.0.0)
- 每个网络可用主机数:65,534(2^16 - 2)
详细范围:
- 128.0.0.0 - 191.255.255.255:公共互联网可用地址。
- 172.16.0.0 - 172.31.255.255:私有网络,不在公共互联网中使用。
C类IP地址
- 网络号:前24位(前三个字节)
- 主机号:后8位(最后一个字节)
- 第一个字节范围:192 - 223
- 默认子网掩码:255.255.255.0
- 可用网络数:2,097,152(192.0.0.0 - 223.255.255.0)
- 每个网络可用主机数:254(2^8 - 2)
详细范围:
- 192.0.0.0 - 223.255.255.255:公共互联网可用地址。
- 192.168.0.0 - 192.168.255.255:私有网络,不在公共互联网中使用。
D类IP地址
- 用于组播(Multicast):发送数据到多个指定接收者
- 第一个字节范围:224 - 239
详细范围:
- 224.0.0.0 - 239.255.255.255:组播地址,用于一次性向多个设备发送数据包,不用于常规主机通信。
E类IP地址
- 保留地址:用于研究和实验
- 第一个字节范围:240 - 255
详细范围:
- 240.0.0.0 - 255.255.255.255:保留地址,不用于公共互联网。
总结
A类IP地址
- 用于大型网络
- 第一个字节范围:1 - 126
- 默认子网掩码:255.0.0.0
B类IP地址
- 用于中型网络
- 第一个字节范围:128 - 191
- 默认子网掩码:255.255.0.0
C类IP地址
- 用于小型网络
- 第一个字节范围:192 - 223
- 默认子网掩码:255.255.255.0
D类IP地址
- 用于组播
- 第一个字节范围:224 - 239
E类IP地址
- 保留用于实验和研究
- 第一个字节范围:240 - 255
私有地址和公共地址
- 私有地址:A类(10.0.0.0/8)、B类(172.16.0.0/12)、C类(192.168.0.0/16)
- 公共地址:分配给设备在全球互联网中使用
255.255.255.255
该ip时受限的广播地址。受限广播地址和一般广播地址的区别在于,受限广播地址只能用于本地网络,路由器不会转发以受限广播地址为目的地址的分组。是一个特殊的局部广播地址,用于网络中的所有设备。发送到这个地址的数据包会被发送到本地网络上的所有设备。
0.0.0.0
常用于寻找自己的IP地址,例如在我们的RARP,BOOTP和DHCP协议中,若某个未知IP地址的无盘机想要知道自己的IP地址,它就以255.255.255.255为目的地址,向本地范围(具体而言是被各个路由器屏蔽的范围内)的服务器发送IP请求分组。
回环地址
127.0.0.0/8被用作回环地址,回环地址表示本机的地址,常用于对本机的测试,用的最多的是127.0.0.1
A,B,C类私有地址
私有地址(private address)也叫专用地址,它们不会在全球使用,只具有本地意义。
A类私有地址:10.0.0.0/8,范围是:10.0.0.010.255.255.255172.31.255.255
B类私有地址:172.16.0.0/12,范围是:172.16.0.0
C类私有地址:192.168.0.0/16,范围是:192.168.0.0~192.168.255.255
子网掩码
子网掩码是一个用于网络配置的工具,它帮助计算机知道在一个IP地址中,哪些部分代表网络地址,哪些部分代表主机地址。通俗地说,子网掩码就像是一个“筛子”,通过它我们可以把IP地址分成网络部分和主机部分。
子网掩码用于确定一个IP地址中的网络部分和主机部分。网络地址标识网络本身,而主机地址标识网络中的一个具体设备。
网络地址:网络的“名字”
主机地址:网络中某个设备的“身份”
工作原理
子网掩码的每一个位与IP地址的对应位进行“按位与”运算,得到网络地址。
192.168.1.10 : 11000000.10101000.00000001.00001010
255.255.255.0 : 11111111.11111111.11111111.00000000
-------------------------------------------
网络地址 : 11000000.10101000.00000001.00000000
网络地址:192.168.1.0
从网络地址中,可以计算出子网中可用的主机IP地址范围
起始IP地址:网络地址 + 1 (192.168.1.1)
结束IP地址:广播地址 - 1 (192.168.1.254)
TCP的三次握手
第一次握手:客户端发起连接请求,发送 SYN 包。
第二次握手:服务器回应 SYN-ACK 包。
第三次握手:客户端确认连接,发送 ACK 包。
为什么要进行三次握手呢?
第一次握手: 客户端向服务器端发送报文
证明客户端的发送能力正常
第二次握手:服务器端接收到报文并向客户端发送报文
证明服务器端的接收能力、发送能力正常
第三次握手:客户端向服务器发送报文
证明客户端的接收能力正常
如果两次握手会出现什么情况呢?
在只有两次"握手"的情形下,假设Client想跟Server建立连接,但是却因为中途连接请求的数据报丢失了,故Client端不得不重新发送一遍;这个时候Server端仅收到一个连接请求,因此可以正常的建立连接。但是,有时候Client端重新发送请求不是因为数据报丢失了,而是有可能数据传输过程因为网络并发量很大在某结点被阻塞了,这种情形下Server端将先后收到2次请求,并持续等待两个Client请求向他发送数据...问题就在这里,Cient端实际上只有一次请求,而Server端却有2个响应,极端的情况可能由于Client端多次重新发送请求数据而导致Server端最后建立了N多个响应在等待,因而造成极大的资源浪费!所以,"三次握手"很有必要!
如果采用三次握手的话,就算那条失效的报文发送到服务器端,服务器端确认并向客户端发送报文,但此时客户端不会发出确认,由于客户端没有确认,由于服务器端没有接收到确认,就会知道客户端没有请求连接。
TCP的四次握手
客户端 服务器
| |
| --- FIN ----> | 1. 客户端发起连接关闭请求
| |
| <---- ACK ---- | 2. 服务器确认请求并准备关闭
| |
| <---- FIN ---- | 3. 服务器发起连接关闭请求
| |
| --- ACK ----> | 4. 客户端确认关闭请求,连接释放完成
| |
TCP 的四次挥手是确保双方在关闭连接时可以正确地释放所有资源并完成数据传输的过程。虽然它比三次握手多了一步,但这一步是为了保证双方都能安全地完成数据传输和关闭连接,避免在网络通信中出现未完成的数据传输或资源泄漏的问题。
四次挥手和三次握手的对比
三次握手(Three-Way Handshake):用于建立连接
SYN → SYN-ACK → ACK
四次挥手(Four-Way Handshake):用于关闭连接
FIN → ACK → FIN → ACK
UDP协议
UDP用户数据报协议,是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。
UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。
UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。
DNS协议
DNS是域名系统(DomainNameSystem)的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务,可以简单地理解为将URL转换为IP地址。域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一的IP地址,在Internet上域名与IP地址之间是一一对应的,DNS就是进行域名解析的服务器。DNS命名用于Internet等TCP/IP网络中,通过用户友好的名称查找计算机和服务。
NAT协议
是一种用于修改网络数据包中的 IP 地址信息的技术。它的主要功能是允许多个设备通过一个公共 IP 地址共享网络访问,同时提高网络安全性和减少 IP 地址的需求。
在 NAT 的工作中,设备的私有 IP 地址在与外部网络(如互联网)通信时,会被转换为公共 IP 地址。这个转换可以在路由器、网关或防火墙等网络设备上进行。
NAT网络地址转换(Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。原因很简单,NAT不仅完美地解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
DHCP协议
DHCP动态主机设置协议(Dynamic Host Configuration Protocol)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
一个网络连接的实例
1)客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。
2)在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。
3)客户端的网络层不用关系应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。
4)客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。