java知识点-网络编程概述与网络通信协议

151 阅读2分钟

这是我参与更文挑战的第4天,活动详情查看: 更文挑战

网络编程概述

IP和端口号

一定的规则(网络通信协议):

  • OSI参考模型:七层
  • TCP/IP参考模型:四层

网络通信协议

  • IP地址:InterAddress
  • 分类:IPV4 (四个字节)和 IPV6 (十六个字节)

网络通信的两个问题:

一、如何准确的定位主机以及机上特定的应用

二、找到主机后如何可靠高效地进行数据传输

通信要素一:IP和端口号

IP的理解

  1. IP:唯一标识Internet上的计算机(通信实体)
  2. 在Java中使用InterAddress类代表IP
  3. IP分类:IPV4 和 IPV6;万维网和局域网
  4. 域名:www.baidu.com
  5. 本地回路地址:127.0.0.1 对应 localhost
  • InetAddress类:此类代表一个具体的IP地址

  • 如何实例化InetAddress的两个方法:getByName(String host)、getLocalHost()

  • 两个常用方法:getHostName()/getHostAddress()

端口号:

不同进程有不同的端口,规定为一个16位的整数0~65535 端口分为公认端口、注册端口、动态/私有端口

端口和IP地址的组合得出的一个网络套接字:Socket

通信要素二:提供网络通信协议

分型模型

image.png

TCP协议

TCP三次握手、四次挥手 释放已建立的连接,效率低

UDP协议

无需释放资源,开销小,速度快

实现TCP的网络编程

URL网络编程

  1. URL:统一资源定位符,对应着互联网的某一资源地址
  2. 格式:协议 主机名 端口号 资源地址 参数列表

Ip对应类的对象:InetAddress

  • Ip对应类的对象:InetAddress
  • 两个实例化的方法:InetAddress.getByName(String host)/InetAddress.getLocalHost()
  • 两个常用的方法:getHostName(),getHostAdress()。

传输层的TCP协议和UDP协议的主要区别

  • TCP:可靠的数据传输(三次握手);进行大数据量的传输;效率低
  • UDP:不可靠;以数据报形式发送,数据包限定为64k;效率更高。

URL

对象序列化机制的理解

  • 序列化过程
  • 反序列化过程

实现序列化条件

  1. 实现接口:Serializable 标识接口
  2. 对象所在的类提供常量:序列版本号
  3. 要求对象的属性也是可序列化的。(基本数据类型本身是可序列化的)