076.JAVA网络编程_网络三要素_IP地址&端口&协议


博主的 Github 地址


1. IP 地址

1.1. IP 的概述

  • IP 是 Internet Protocol(网际互连协议)的缩写,
    是 TCP/IP 体系中的网络层协议.

  • IP 是网络之间信息传送的协议, 可将IP信息包从源设备
    (例如用户的计算机)传送到目的设备(例如某部门的服务器)

  • IP 规定网络上所有的设备都必须有一个唯一的 IP 地址,
    而且 IP 信息包中除了包含用来定位源设备的 IP 地址外,
    每个 IP 信息包都必须还包含有目的设备的 IP 地址,
    信息包才可以正确地送到目的地.

1.1.1. IP 的版本
  • IP 分为两个版本, IPv4 和 IPv6.
  • IPv4 地址是 32 位的, IPv6 是 128 位的.
1.1.2. IP 地址编址方案
  • IP 地址编址方案将 IP 地址空间分为 A/B/C/D/E 五类,
    其中 A/B/C 是基本类, D/E 作为多传播和保留使用.

  • A 类: 10.0.0.0 ~ 10.255.255.255

  • B 类: 172.16.0.0 ~ 172.31.255.255

  • C 类: 192.168.0.0 ~ 192.168.255.255

1.2. InetAddress 类

  • 在 JAVA 中, 使用 InetAddress 类进行表示 IP 地址.

  • 该类的构造器不向外公开, 因此需要调用静态方法来返回该类的变量.

1.2.1. 常用方法
  • static InetAddress getByName(String host)

    • 作用:
      在给定主机名的情况下确定主机的 IP 地址.
      返回的是一个 InetAddress 对象.
    • 备注:
      该方法是静态方法, 需要由类名进行调用.
  • String getHostAddress()

    • 作用:
      返回 IP 地址字符串.
  • String getHostName()

    • 作用:
      获取此 IP 地址的主机名.
  • static InetAddress getLocalHost()

    • 作用:
      返回本地主机.
  • boolean isReachable(int timeout)

    • 作用:
      在指定的毫秒数内测试该地址是否能响应, 是否可连接访问
1.2.2. 表示本机的方式
  • 方式 1: 用本机 IP 表示
  • 方式 2: 以 127.0.0.1 这个地址表示
  • 方式 3: 以 localhost 这个名称表示

2. 端口

2.1. 端口(port)的概述

  • “端口"是英文 port 的意译, 可以认为是设备与外界通讯交流的出口.
2.1.1. 端口按照性质分类:
  • 虚拟端口:
    指计算机内部或交换机路由器内的端口, 不可见.
    例如计算机中的 80 端口、21 端口、23 端口等.
  • 物理端口:
    又称为接口, 是可见端口, 例如计算机背板的 RJ45 网口,
    交换机路由器集线器等 RJ45 端口. 电话使用 RJ11 插口也属于物理端口的范畴.
2.1.2. IP 端口:
  • 如果把 IP 地址比作一间房子, 端口就是出入房子的门.
  • 真正的房子只有几个门, 但是一个 IP 地址的端口最多可以有 65536(即: 2^16)个!
  • 端口是通过端口号来标记的, 端口号只有整数, 范围是从 0 ~ 65535(2^16 - 1).
2.1.3. 端口按端口号分类
  • 公认端口(WellKnownPorts):
    从 0 到 1023, 它们紧密绑定(binding)于一些服务. 通常这些端口的通讯明确表明
    某种服务的协议. 例如: 80端口实际上总是HTTP通讯.

  • 注册端口(RegisteredPorts):
    从 1024 到 49151. 它们松散地绑定于一些服务. 也就是说有许多服务绑定于这些端口,
    这些端口同样用于许多其它目的. 例如: 许多系统处理动态端口从 1024 左右开始.

  • 动态和或私有端口(Dynamicand/orPrivatePorts):
    从 49152 到 65535. 理论上,不应为服务分配这些端口.
    实际上, 机器通常从1024起分配动态端口. 但也有例外: SUN 的 RPC 端口从 32768 开始.

2.1.4. 使用端口的注意事项
  • 在同一台电脑中端口不能重复, 若重复, 则报错端口冲突.
  • 如果我们需要自定义端口号, 建议使用 10000 以上的.
  • 检测端口是否被占用可以用软件进行查看每个进程所占用的端口号是什么.

3. 协议

3.1. 协议的概述

  • 协议(protocol), 网络协议的简称, 网络协议是通信计算机双方必须共同遵从的一组约定.
  • 如怎么样建立连接, 怎么样互相识别等. 只有遵守这个约定, 计算机之间才能相互通信交流.
  • 它的三要素是: 语法, 语义, 时序.
3.1.1. 协议的三要素
  • 网络协议, 也可简称协议, 通常由三要素组成:

    • 语法: 即数据与控制信息的结构或格式;
    • 语义: 即需要发出何种控制信息, 完成何种动作以及做出何种响应;
    • 时序(同步): 即事件实现顺序的详细说明.
3.1.2. 常见的一些协议
  • http -- 超文本传输协议资源
  • https -- 用安全套接字层传送的超文本传输协议
  • ftp -- 文件传输协议
  • mailto -- 电子邮件地址
  • file -- 当地电脑或网上分享的文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值