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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 本文为原创,如需转载,请注明作者和出处,谢谢! 所有连入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或电子相册之类的网站都为每个用户分配一个三级域名。

目录
打赏
0
相关文章
|
4天前
|
【Java并发】【synchronized】适合初学者体质入门的synchronized
欢迎来到我的Java线程同步入门指南!我不是外包员工,梦想是写高端CRUD。2025年我正在沉淀中,博客更新速度加快,欢迎点赞、收藏、关注。 本文介绍Java中的`synchronized`关键字,适合初学者。`synchronized`用于确保多个线程访问共享资源时不会发生冲突,避免竞态条件、保证内存可见性、防止原子性破坏及协调多线程有序访问。
45 8
【Java并发】【synchronized】适合初学者体质入门的synchronized
|
4天前
|
《从头开始学java,一天一个知识点》之:数组入门:一维数组的定义与遍历
**你是否也经历过这些崩溃瞬间?** - 看了三天教程,连`i++`和`++i`的区别都说不清 - 面试时被追问"`a==b`和`equals()`的区别",大脑突然空白 - 写出的代码总是莫名报NPE,却不知道问题出在哪个运算符 这个系列就是为你打造的Java「速效救心丸」!我们承诺:每天1分钟,地铁通勤、午休间隙即可完成学习;直击痛点,只讲高频考点和实际开发中的「坑位」;拒绝臃肿,没有冗长概念堆砌,每篇都有可运行的代码标本。明日预告:《多维数组与常见操作》。 通过实例讲解数组的核心认知、趣味场景应用、企业级开发规范及优化技巧,帮助你快速掌握Java数组的精髓。
54 23
Java网络编程,多线程,IO流综合小项目一一ChatBoxes
**项目介绍**:本项目实现了一个基于TCP协议的C/S架构控制台聊天室,支持局域网内多客户端同时聊天。用户需注册并登录,用户名唯一,密码格式为字母开头加纯数字。登录后可实时聊天,服务端负责验证用户信息并转发消息。 **项目亮点**: - **C/S架构**:客户端与服务端通过TCP连接通信。 - **多线程**:采用多线程处理多个客户端的并发请求,确保实时交互。 - **IO流**:使用BufferedReader和BufferedWriter进行数据传输,确保高效稳定的通信。 - **线程安全**:通过同步代码块和锁机制保证共享数据的安全性。
58 23
课时2:Java简介(Java发展概述)
课时2:Java简介(Java发展概述) 摘要: 1. Java基础知识:介绍Java作为编程语言及其思想。 2. Java的发展历史:从1991年GREEN项目到1995年正式推出,历经网景公司、HotJava浏览器等关键节点。 3. Java的版本信息:涵盖从JDK 1.0到JDK 1.8的主要版本及特性,如Lambda表达式和模块化支持。
|
17天前
|
【Java并发】【线程池】带你从0-1入门线程池
欢迎来到我的技术博客!我是一名热爱编程的开发者,梦想是编写高端CRUD应用。2025年我正在沉淀中,博客更新速度加快,期待与你一起成长。 线程池是一种复用线程资源的机制,通过预先创建一定数量的线程并管理其生命周期,避免频繁创建/销毁线程带来的性能开销。它解决了线程创建成本高、资源耗尽风险、响应速度慢和任务执行缺乏管理等问题。
142 60
【Java并发】【线程池】带你从0-1入门线程池
JAVA网络IO之NIO/BIO
本文介绍了Java网络编程的基础与历史演进,重点阐述了IO和Socket的概念。Java的IO分为设备和接口两部分,通过流、字节、字符等方式实现与外部的交互。
Java网络编程封装
Java网络编程封装原理旨在隐藏底层通信细节,提供简洁、安全的高层接口。通过简化开发、提高安全性和增强可维护性,封装使开发者能更高效地进行网络应用开发。常见的封装层次包括套接字层(如Socket和ServerSocket类),以及更高层次的HTTP请求封装(如RestTemplate)。示例代码展示了如何使用RestTemplate简化HTTP请求的发送与处理,确保代码清晰易维护。
Java中的字符集编码入门-增补字符(转载)
本文探讨Java对Unicode的支持及其发展历程。文章详细解析了Unicode字符集的结构,包括基本多语言面(BMP)和增补字符的表示方法,以及UTF-16编码中surrogate pair的使用。同时介绍了代码点和代码单元的概念,并解释了UTF-8的编码规则及其兼容性。
118 60
单位网络监控软件:Java 技术驱动的高效网络监管体系构建
在数字化办公时代,构建基于Java技术的单位网络监控软件至关重要。该软件能精准监管单位网络活动,保障信息安全,提升工作效率。通过网络流量监测、访问控制及连接状态监控等模块,实现高效网络监管,确保网络稳定、安全、高效运行。
91 11

热门文章

最新文章