网络通信的基本概念

一、IP 地址 (InetAddress)

1、概念

  IP 地址(Internet Protocal Address)是指互联网协议地址,又译为网际协议地址。

2、 作用

  IP地址是IP协议提供的一种统一的地址格式,为互联网上每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单来说,IP地址就是用来定位主机的网络地址

3、分类及格式

1、分类方式1:PV4 和 IPV6

  1. IPV4:是一个32位的二进制数,通常被分割为“4个8位的二进制数”(也就是4个字节)。大概42 亿, 30亿都在北美,亚洲 4 亿。,2011 年初已经用尽 。通常用点分十进制的方式来表示,即a.b.c.d(a,b,c,d都是0~255之间的十进制数),如:100.4.5.6。
  2. IPV6: 128 位( 16 个字节), 写 成 8 个无符号整数,每个整数用四个十六进制位表示,数之间用冒号(:)分开,如: 3ffe:3201:1401:1280:c8ff:fe4d:db39:1984

2、 分类方式2:公网地址和 私有地址

  1. 公网地址:万维网使用
  2. 私有地址:局域网使用)

3、组成

 IP 地址分为两部分,网络号和主机号。

  1. 网络号标识网段,保证相互连接的两个网段具有不同的标识。
  2. 主机号标识主机,同一网段内,主机具有相同的网络号,但是必须有不同的主机号。

 通过合理的网络号和主机号,就可以保证相互连接的两个网络中,每台主机的IP地址都是唯一的

3、 特殊的 IP 地址

  • 将IP地址中的主机号全部设为0,就会变成网络号,代表整个局域网。
  • 将IP地址中的主机号全部设为1,就会变成广播地址,用于给同一链路中相互连接的所有主机发送数据包。
  • 127.*的IP地址用于本机环回(look back)测试,通常为127.0.0.1。本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于开发网络同心度程序(网络编程),常见的开发方式就是本机到本机的网络通信。
  • 192.168.开头的就是私有址址 ,范围即为 192.168.0.0 ~192.168.255.255 ,专门为组织机构内部使用。

二、端口号

1、概念

  I在网络通信中,IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。简单说:端口号用于定位主机中的进程。
在这里插入图片描述

2、格式

  端口号被规定为一个16位的整数,范围:0~65535 。在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据。

3、注意事项

  1. 不同的进程有不同的端口号
  2. 两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号。
  3. 端口号与 IP 地址的组合得出一个网络套 接字: Socket

4、端口分类:

  1. 公认端口: 0~1023 。被预先定义的服务通信占用 (如:HTTP占用端口80,FTP 占用端口21,Telnet占用端 口23)
  2. 注册端口: 1024~ 40151。分配给用户进程或者应用程序。(如:Tomact 占用端口8080,MySQL 占用端口3306,Oracle 占用端口 1521 等)
  3. 动态端口: 49152~65535。

5、常见的知名端口

  • 22,一般是给 SSH 使用

  • 21,一般是给 HTP 使用

  • 23,一般是给 telnet 使用

  • 443,一般是给HTTPS 使用

三、InetAddress类

  1. Internet 上的主机有两种方式表示地址
    1. 域名: www.baidu.com
    2. IP地址: 202.108.35.210
  2. InetAddress 类主要表示 IP 地址 ,两个子类:Inet4Address 、 Inet6Address 。
  3. InetAddress 类对象含有一个 Internet 主机地址的域名和IP地址:www.baidu.com 和 202.108.35.210
  4. 域名容易记忆,当在连接网络时输入一个主机的域名后,域名服务器 (DNS)负责将域名转化成 IP 地址,这样才能和主机建立连接。 ---------域名解析
    在这里插入图片描述
  5. InetAddress 类没有提供公共的构造器,而是提供 了如下几个静态方法来获取InetAddress 实例:
    1. public static InetAddress getLocalHost()
    2. public static InetAddress getByName(String host)
  6. InetAddress 提供了如下几个常用 的 方法:
    1. public String getHostAddress():返回 IP 地址字符串(以文本表现形式)。
    2. public String getHostName() :获取此 IP 地址的主机名。
    3. public boolean isReachable(int timeout):测试是否可以达到该地址。
  7. 举例
public class InetDaaressTest {
    public static void main(String[] args) throws UnknownHostException {
        InetAddress address = InetAddress.getByName("www.baidu.com");
        System.out.println(address);
        // 获取 InetAddress 对象所含的域名
        System.out.println(address.getHostName());
        // 获取 InetAddress 对象所含的 IP 地址
        System.out.println(address.getHostAddress());
        System.out.println();
        // 获取本机的域名和 IP 地址
        InetAddress address1 = InetAddress.getLocalHost();
        System.out.println(address1);
    }
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值