网络基础、Socket、TCP 编程、UDP 编程

网络

概念:两台或多台设备通过一定物理设备连接起来构成了网络。
根据网络的覆盖范围不同,对网络进行分类:

  • 局域网:覆盖范围最小,仅仅覆盖一个教室或一个机房;
  • 城域网:覆盖范围较大,可以覆盖一个城市;
  • 广域网:覆盖范围最大,可以覆盖全国,甚至全球,万维网是广域网的代表;

image.png

网络通信

  • 两台设备之间通过网络实现数据传输;
  • 网络通信:将数据通过网络从一台设备传输到另一台设备;
  • java.net 包下提供了一系列的类或接口,供程序员使用,完成网络通信;

image.png

IP 地址

  • 概念:用于标识网络中的每台计算机;
  • IPv4 地址的表示形式:点分十进制 xxx.xxx.xxx.xxx
  • IP 地址的组成 = 网络地址 + 主机地址,比如:192.168.16.69
  • IPv6 是互联网工程任务组设计的用于替代 IPv4 的下一代 IP 协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址;
  • 由于 IPv4 最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展。IPv6 的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍;

域名

  • 概念:将 IP 地址映射成域名
  • 好处:为了方便记忆,解决记忆 IP 的困难

端口号

  • 概念:用于标识计算机上某个特定的网络程序
  • 表示形式:以整数形式,范围 0 ~ 65535
  • 0 ~ 1024 已经被占用,比如 ssh 22,ftp 21,smtp 25,https 80
  • 常见的网络程序端口号:
    • tomcat:8080
    • mysql:3306
    • oracle:1521
    • sqlserver:1433

image.png

网络通信协议

TCP / IP (transmission control protocol / Internet protocol)中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是 Internet 最基本的协议、Internet 国际互联网的基础。简单地说,就是由网络层的 IP 协议和传输层的 TCP 协议组成的。
image.png
image.png

TCP 和 UDP

TCP协议:

  • 使用 TCP 协议前,需先建立 TCP 连接,形成传输数据通道;
  • 传输前,采用“三次握手”方式,是可靠的;
  • TCP 协议进行通信的两个应用进程:客户端、服务端
  • 在连接中可进行大数据量的传输;
  • 传输完毕,需释放已建立的连接,效率低

UDP 协议:

  • 将数据、源、目的封装成数据包,不需要建立连接;
  • 每个数据报的大小限制在 64K 以内;
  • 因无需连接,故事不可靠的;
  • 发送数据结束时无需释放资源(因为不是面向连接的),速度快
  • 举例:发短信

Socket

  • 套接字(socket)开发网络应用程序被广泛采用,以至于称为事实上的标准;
  • 通信的两端都要有 Socket ,是两台机器间通信的端点;
  • 网络通信其实就是 Socket 间的通信;
  • Socket 允许程序把网络连接当成一个流,数据在两个 Socket 间通过 IO 传输;
  • 一般主动发起通信的应用程序属客户端,等待通信请求的为服务端;

image.png