网络通信三要素:IP、端口和协议

时间:2024-04-09 09:30:51

IP:设备在网络中的地址,是唯一的标识

  • IP:全程”互联网协议地址“,是分配给上网设备的唯一标志

  • IP地址有两种形式:

    • IPv4:32位

    • IPv6:共128位。分成8段表示,每取四位编码成一个16进制位表示,数之间用:隔开

  • IP域名

  • 公网IP:是可以连接互联网的IP地址;

  • 内网IP:也叫局域网IP,只能组织机构内部使用。192.168是常见的局域网地址,范围为192.168.0.0--192.168.255.255

  • IP常用命令

    • ipconfig:查看本机IP地址

    • ping IP地址(域名):检查网络是否连通

  • InetAddress:代表IP地址

    • getByName(String host):通过主机名或IP地址字符串获取InetAddress对象。

      InetAddress address = InetAddress.getByName("www.example.com");
      
    • getLocalHost():获取本地主机的InetAddress对象。

      InetAddress localHost = InetAddress.getLocalHost();
      
    • getHostName():获取主机名。

      String hostname = address.getHostName();
      
    • getHostAddress():获取IP地址字符串

      String ipAddress = address.getHostAddress();
      
    • getCanonicalHostName():获取主机的规范化名称。

      String canonicalHostName = address.getCanonicalHostName();
      
    • isReachable(int timeout):检查主机是否可达,可以指定超时时间(以毫秒为单位)。

      boolean isReachable = address.isReachable(5000); // 5秒超时
      
      
    • getAllByName(String host):获取指定主机名的所有InetAddress对象数组。

      InetAddress[] addresses = InetAddress.getAllByName("www.example.com");
      

端口:应用程序在设备中唯一的标识标记正在计算机设备上运行的应用程序,被规定为一个16位的二进制,范围是0~65535

  • 周知端口:0~1023,被预先定义的知名应用占用(如:HTTP用80)

  • 注册端口:1024~49151,分配给用户进程或某些应用程序

  • 动态端口:49152~65535,之所以称为动态端口,是因为它一般不固定分配某种进程,而是动态分配

注端口号不能重复。

协议:连接和数据在网络中传输的规则

先来了解网络模型

  • OSI网络参考模型:全球网络互联标准

  • OSI网络参考模型:全球网络互联标准

传输层两个通信协议

  • UDP:用户数据报协议

    • 特点: 无连接、不可靠通信

    • 不事先建立连接,数据按照包发,一包数据包含:自己的IP、程序端口、目的地IP、程序端口和数据(限制在64KB内)

    • 发送方不管对方是否在线,数据在中间丢失也不管,如果接收方收到数据也不返回确认,故不可靠

  •  TCP:传输控制协

    • 特点:面向连接、可靠通信

    • TCP的最终目的:要保证在不可靠的信道上实现可靠的传输

    • TCP主要有三个步骤实现可靠传输:三次握手建立连接,传输数据进行确认,四次挥手断开连接

 在接下来的博客中我们将具体介绍UDP和TCP。