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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
.cn 域名,1个 12个月
全局流量管理 GTM,标准版 1个月
简介:
所有连入Internet 的终端设备( 包括计算机、PDA 、打印机以及其他的电子设备) 都有一个唯一的索引,这个索引被称为IP 地址。现在Internet 上的IP 地址大多由四个字节组成,这种IP 地址叫做IPv4 。除了这种由四个字节组成的IP ,在Internet 上还存在一种IP ,这种IP 16 个字节组成,叫做IPv6 IPv4 IPv6 后面的数字是Internet 协议 (Internet Protocol IP) 的版本号。
IPv4 地址的一般表现形式为:X.X.X.X 。其中X 0 255 的整数。这四个整数用“.” 隔开。从理论上说,IPv4 地址可以表示2 32 次幂,也就是4,294,967,296 IP 地址,但由于要排除一些具有特殊意义的IP (如0.0.0.0 127.0.0.1 224.0.0.1 255.255.255.255 等),因此,IPv4 地址可自由分配的IP 数量要小于它所能表示的IP 地址数量。
为了便于管理,人为地将IPv4 划分为A 类、B 类和C IP 地址。
  • 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
从上面的描述可看出,第一个字节在0 127 之间的是A IP 地址,在128 191 之间的是B IP 地址,而在192 223 之间的是C IP 地址。如果两个IP 地址分别和它们的子网掩码进行按位与后得到的值是一样的,就说明这两个IP 在同一个网段。下面是两个C IP 地址IP1 IP2 和它们的子网掩码。
IP1 192.168.18.10     子网掩码:  255.255.255.0
IP2 192.168.18.20     子网掩码:  255.255.255.0
这两个IP 和它们的子网掩码按位与后,得到的值都是192.168.18.0 。因此,IP1 IP2 在同一个网段。当用户使用Modem ADSL Modem 上网后,临时分配给本机的IP 一般都是C 类地址,也就是说,第一个字节都会在192 223 之间。
上面给出的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:  3D4:4400:A123:B231:A111:DDAA
2.  连续出现0 的多个段可使用“::” 来代替多个为0 的段。如A34E: 0000: 0000: 0000:A123:B231:0:DDAA 可简写为A34E ::A123:B231:0:DDAA 。在使用这种简写方式时,“::” 只能出现一次,如果出现多次,IPv6 地址将会产生歧义。
IPv4 IPv6 混合的网络中,IPv6 地址的后四个字节可以被写成IPv4 的地址格式。如A34E::A123:B231:A111:DDAA 可以写成A34E::A123:B231:161.17.221.170 。当访问网络资源的计算机使用的是IPv4 的地址时,系统会自动使用IPv6 的后四个字节作为IPv4 的地址。
无论是IPv4 地址,还是IPv6 地址,都是很难记忆的。因此,为了使这些地址便于记忆,Internet 的设计师们发明了DNS Domain Name System ,域名系统)。DNS IP 地址和域名(一个容易记忆的字符串,如microsoft )联系在一起,当计算机通过域名访问Internet 资源时,系统首先通过DNS 得到域名对应的IP 地址,再通过IP 地址访问Internet 资源。在这个过程中,IP 地址对用户是完全透明的。如果一个域名对应了多个IP 地址,DNS 从这些IP 地址中随机选取一个返回。
域名可以分为不同的层次,如常见的有顶层域名、顶级域名、二级域名和三级域名。
  • 顶层域名
顶层域名可分为类型顶层域名和地域顶层域名。如www.microsoft. com www.w3c. org 中的com org 就是类型顶层域名,它们分别代表商业(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.com mymail@sina.com 等。
  • 二级域名
blog.csdn.net 就是顶级域名csdn.net 的二级域名。有很多人认为www.csdn.net 是顶级域名,其实这是一种误解。实际上www.csdn.net 是顶级域名csdn.net 的二级域名。www.csdn.net blog.csdn.net 在本质上是一样的,只是我们已经习惯了使用www 表示一个使用HTTP HTTPS 协议的网址,因此,给人的误解就是www.csdn.net 是一个顶级域名。
  •  三级域名
   如abc.photo.163.com 就是二级域名photo.163.com 的三级域名。有很多blog 或电子相册之类的网站都为每个用户分配一个三级域名。
 


 本文转自 androidguy 51CTO博客,原文链接:http://blog.51cto.com/androidguy/214820,如需转载请自行联系原作者

相关文章
|
21天前
|
Java 程序员
JAVA程序员的进阶之路:掌握URL与URLConnection,轻松玩转网络资源!
在Java编程中,网络资源的获取与处理至关重要。本文介绍了如何使用URL与URLConnection高效、准确地获取网络资源。首先,通过`java.net.URL`类定位网络资源;其次,利用`URLConnection`类实现资源的读取与写入。文章还提供了最佳实践,包括异常处理、连接池、超时设置和请求头与响应头的合理配置,帮助Java程序员提升技能,应对复杂网络编程场景。
47 9
|
21天前
|
人工智能 Java 物联网
JAVA网络编程的未来:URL与URLConnection的无限可能,你准备好了吗?
随着技术的发展和互联网的普及,JAVA网络编程迎来新的机遇。本文通过案例分析,探讨URL与URLConnection在智能API调用和实时数据流处理中的关键作用,展望其未来趋势和潜力。
40 7
|
8天前
|
消息中间件 编解码 网络协议
Netty从入门到精通:高性能网络编程的进阶之路
【11月更文挑战第17天】Netty是一个基于Java NIO(Non-blocking I/O)的高性能、异步事件驱动的网络应用框架。使用Netty,开发者可以快速、高效地开发可扩展的网络服务器和客户端程序。本文将带您从Netty的背景、业务场景、功能点、解决问题的关键、底层原理实现,到编写一个详细的Java示例,全面了解Netty,帮助您从入门到精通。
30 0
|
21天前
|
Java 开发者
JAVA高手必备:URL与URLConnection,解锁网络资源的终极秘籍!
在Java网络编程中,URL和URLConnection是两大关键技术,能够帮助开发者轻松处理网络资源。本文通过两个案例,深入解析了如何使用URL和URLConnection从网站抓取数据和发送POST请求上传数据,助力你成为真正的JAVA高手。
41 11
|
13天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
21天前
|
安全 Java API
深入探索Java网络编程中的HttpURLConnection:从基础到进阶
本文介绍了Java网络编程中HttpURLConnection的高级特性,包括灵活使用不同HTTP方法、处理重定向、管理Cookie、优化安全性以及处理大文件上传和下载。通过解答五个常见问题,帮助开发者提升网络编程的效率和安全性。
|
21天前
|
JSON 安全 算法
JAVA网络编程中的URL与URLConnection:那些你不知道的秘密!
在Java网络编程中,URL与URLConnection是连接网络资源的两大基石。本文通过问题解答形式,揭示了它们的深层秘密,包括特殊字符处理、请求头设置、响应体读取、支持的HTTP方法及性能优化技巧,帮助你掌握高效、安全的网络编程技能。
43 9
|
21天前
|
JSON Java API
JAVA网络编程新纪元:URL与URLConnection的神级运用,你真的会了吗?
本文深入探讨了Java网络编程中URL和URLConnection的高级应用,通过示例代码展示了如何解析URL、发送GET请求并读取响应内容。文章挑战了传统认知,帮助读者更好地理解和运用这两个基础组件,提升网络编程能力。
40 5
|
19天前
|
Java Spring
JAVA获取重定向地址URL的两种方法
【10月更文挑战第17天】本文介绍了两种在Java中获取HTTP响应头中的Location字段的方法:一种是使用HttpURLConnection,另一种是使用Spring的RestTemplate。通过设置连接超时和禁用自动重定向,确保请求按预期执行。此外,还提供了一个自定义的`NoRedirectSimpleClientHttpRequestFactory`类,用于禁用RestTemplate的自动重定向功能。
|
4月前
|
网络协议 安全 Java
Java中的网络编程:Socket编程详解
Java中的网络编程:Socket编程详解