Java网络编程从入门到精通(1):Internet地址概述

简介: 本文为原创,如需转载,请注明作者和出处,谢谢! 所有连入Internet的终端设备(包括计算机、PDA、打印机以及其他的电子设备)都有一个唯一的索引,这个索引被称为IP地址。
本文为原创,如需转载,请注明作者和出处,谢谢!

所有连入Internet的终端设备(包括计算机、PDA、打印机以及其他的电子设备)都有一个唯一的索引,这个索引被称为IP地址。现在Internet上的IP地址大多由四个字节组成,这种IP地址叫做IPv4。除了这种由四个字节组成的IP,在Internet上还存在一种IP,这种IP16个字节组成,叫做IPv6IPv4IPv6后面的数字是Internet协议(Internet ProtocolIP)的版本号。

IPv4地址的一般表现形式为:X.X.X.X。其中X0255的整数。这四个整数用“.”隔开。从理论上说,IPv4地址可以表示232次幂,也就是4,294,967,296IP地址,但由于要排除一些具有特殊意义的IP(如0.0.0.0127.0.0.1224.0.0.1255.255.255.255等),因此,IPv4地址可自由分配的IP数量要小于它所能表示的IP地址数量。

为了便于管理,人为地将IPv4划分为A类、B类和CIP地址。

  • AIP地址

范围:0.0.0.0 –– 127.255.255.255,标准的子网掩码是255.0.0.0

  • BIP地址

范围:128.0.0.0 –– 191.255.255.255,标准的子网掩码是255.255.0.0

  • CIP地址

范围:192.0.0.0 –– 223.255.255.255,标准的子网掩码是255.255.255.0

从上面的描述可看出,第一个字节在0127之间的是AIP地址,在128191之间的是BIP地址,而在192223之间的是CIP地址。如果两个IP地址分别和它们的子网掩码进行按位与后得到的值是一样的,就说明这两个IP在同一个网段。下面是两个CIP地址IP1IP2和它们的子网掩码。

IP1192.168.18.10    子网掩码: 255.255.255.0

IP2192.168.18.20    子网掩码: 255.255.255.0

这两个IP和它们的子网掩码按位与后,得到的值都是192.168.18.0。因此,IP1IP2在同一个网段。当用户使用ModemADSL Modem上网后,临时分配给本机的IP一般都是C类地址,也就是说,第一个字节都会在192223之间。

上面给出的IP地址和子网掩码只是标准的形式。用户也可以根据自己的需要使用其他的IP和子网掩码,如IP地址设为10.0.0.1,子网掩码设为255.255.255.128。但为了便于分类和管理,在局域网中设置IP地址时,建议按着标准的分类来设置。

IPv6地址由16个字节组成,共分为8段。每一段由16个字节组成,并用4个十六进制数表示,段与段之间用“:”隔开。如A34E:DD3D:1234:4400:A123:B231:A111:DDAA是一个标准的IPv6地址。IPv6在两种情况下可以简写:

1.       0开头的段可省略0。如A34E:003D:0004:4400:A123:B231:A111:DDAA可简写为A34E: 3D: 4:4400:A123:B231:A111:DDAA

2. 连续出现0的多个段可使用“::”来代替多个为0的段。如A34E:0000:0000:0000:A123:B231:0:DDAA可简写为A34E::A123:B231:0:DDAA。在使用这种简写方式时,“::”只能出现一次,如果出现多次,IPv6地址将会产生歧义。

IPv4IPv6混合的网络中,IPv6地址的后四个字节可以被写成IPv4的地址格式。如A34E::A123:B231:A111:DDAA可以写成A34E::A123:B231:161.17.221.170。当访问网络资源的计算机使用的是IPv4的地址时,系统会自动使用IPv6的后四个字节作为IPv4的地址。

无论是IPv4地址,还是IPv6地址,都是很难记忆的。因此,为了使这些地址便于记忆,Internet的设计师们发明了DNSDomain Name System,域名系统)。DNSIP地址和域名(一个容易记忆的字符串,如microsoft)联系在一起,当计算机通过域名访问Internet资源时,系统首先通过DNS得到域名对应的IP地址,再通过IP地址访问Internet资源。在这个过程中,IP地址对用户是完全透明的。如果一个域名对应了多个IP地址,DNS从这些IP地址中随机选取一个返回。

域名可以分为不同的层次,如常见的有顶层域名、顶级域名、二级域名和三级域名。

  • 顶层域名

顶层域名可分为类型顶层域名和地域顶层域名。如www.microsoft.comwww.w3c.org中的comorg就是类型顶层域名,它们分别代表商业(com)和非盈利组织(org)。而www.dearbook.com.cn中的cn就是地域顶层域名,它表示了中国(cn)。主要的类型顶层域名有com(商业)edu(教育)gov(政府)int(国际组织)mil(美国军方)net(网络部门)、org(非盈利组织)。大多数国家都有自己的地域顶层域名,如中国(cn)、美国(us)、英国(uk)等。

  • 顶级域名

www.microsoft.com中的microsoft.com就是一个顶级域名。在Email地址的“@”后面跟的都是顶级域名,如abc@126.commymail@sina.com等。

  • 二级域名

blog.csdn.net就是顶级域名csdn.net的二级域名。有很多人认为www.csdn.net是顶级域名,其实这是一种误解。实际上www.csdn.net是顶级域名csdn.net的二级域名。www.csdn.netblog.csdn.net在本质上是一样的,只是我们已经习惯了使用www表示一个使用HTTPHTTPS协议的网址,因此,给人的误解就是www.csdn.net是一个顶级域名。

  •  三级域名

   如abc.photo.163.com就是二级域名photo.163.com的三级域名。有很多blog或电子相册之类的网站都为每个用户分配一个三级域名。

目录
相关文章
|
7月前
|
存储 Oracle Java
java零基础学习者入门课程
本课程为Java零基础入门教程,涵盖环境搭建、变量、运算符、条件循环、数组及面向对象基础,每讲配示例代码与实践建议,助你循序渐进掌握核心知识,轻松迈入Java编程世界。
654 0
|
9月前
|
JSON 移动开发 网络协议
Java网络编程:Socket通信与HTTP客户端
本文全面讲解Java网络编程,涵盖TCP与UDP协议区别、Socket编程、HTTP客户端开发及实战案例,助你掌握实时通信、文件传输、聊天应用等场景,附性能优化与面试高频问题解析。
|
9月前
|
安全 Java 数据库连接
2025 年最新 Java 学习路线图含实操指南助你高效入门 Java 编程掌握核心技能
2025年最新Java学习路线图,涵盖基础环境搭建、核心特性(如密封类、虚拟线程)、模块化开发、响应式编程、主流框架(Spring Boot 3、Spring Security 6)、数据库操作(JPA + Hibernate 6)及微服务实战,助你掌握企业级开发技能。
1132 3
|
8月前
|
Java
java入门代码示例
本文介绍Java入门基础,包含Hello World、变量类型、条件判断、循环及方法定义等核心语法示例,帮助初学者快速掌握Java编程基本结构与逻辑。
657 0
|
7月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
400 1
|
7月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
375 1
|
8月前
|
前端开发 Java 数据库连接
帮助新手快速上手的 JAVA 学习路线最详细版涵盖从入门到进阶的 JAVA 学习路线
本Java学习路线涵盖从基础语法、面向对象、异常处理到高级框架、微服务、JVM调优等内容,适合新手入门到进阶,助力掌握企业级开发技能,快速成为合格Java开发者。
1260 3
|
7月前
|
机器学习/深度学习 分布式计算 Java
Java与图神经网络:构建企业级知识图谱与智能推理系统
图神经网络(GNN)作为处理非欧几里得数据的前沿技术,正成为企业知识管理和智能推理的核心引擎。本文深入探讨如何在Java生态中构建基于GNN的知识图谱系统,涵盖从图数据建模、GNN模型集成、分布式图计算到实时推理的全流程。通过具体的代码实现和架构设计,展示如何将先进的图神经网络技术融入传统Java企业应用,为构建下一代智能决策系统提供完整解决方案。
650 0
|
9月前
|
NoSQL Java 关系型数据库
Java 从入门到进阶完整学习路线图规划与实战开发最佳实践指南
本文为Java开发者提供从入门到进阶的完整学习路线图,涵盖基础语法、面向对象、数据结构与算法、并发编程、JVM调优、主流框架(如Spring Boot)、数据库操作(MySQL、Redis)、微服务架构及云原生开发等内容,并结合实战案例与最佳实践,助力高效掌握Java核心技术。
1008 2
|
9月前
|
Java 测试技术 API
Java IO流(二):文件操作与NIO入门
本文详解Java NIO与传统IO的区别与优势,涵盖Path、Files类、Channel、Buffer、Selector等核心概念,深入讲解文件操作、目录遍历、NIO实战及性能优化技巧,适合处理大文件与高并发场景,助力高效IO编程与面试准备。