【Java】19 网络编程

2020-09-28 11:07:44 浏览数 (1)

时至今日,计算机网络缩短了人们之间的距离, 把"地球村"变成现实,网络应用己经成为计算机领域最广泛的应用。

1.1 软件架构

1.1.1 C/S 架构

  Client-Server(C/S)结构,即服务器-客户机。C/S结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。

1.1.2 B/S 架构

  B/S 架构即浏览器和服务器架构模式,是随着 Internet 技术的兴起,对 C/S 架构的一种变化或者改进的架构。在这种架构下,用户工作界面是通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现,形成所谓三层结构。B/S 架构是 WEB 兴起后的一种网络架构模式,WEB 浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。


1.2 网络通信

1.2.1 通信协议

  网络通信协议是一种网络通用语言,为连接不同操作系统和不同硬件体系结构的互联网络引提供通信支持,是一种网络通用语言。例如,网络中一个微机用户和一个大型主机的操作员进行通信,由于这两个数据终端所用字符集不同,因此操作员所输入的命令彼此不认识。为了能进行通信,规定每个终端都要将各自字符集中的字符先变换为标准字符集的字符后,才进入网络传送,到达目的终端之后,再变换为该终端字符集的字符。因此,网络通信协议也可以理解为网络上各台计算机之间进行交流的一种语言。

1.2.2 TCP/IP 协议

  TCP/IP 传输协议,即传输控制/网络协议,也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议。TCP/IP 传输协议对互联网中各部分进行通信的标准和方法进行了规定。TCP/IP 传输协议是严格来说是一个四层的体系结构: 应用层的主要协议有 Telnet、FTP、SMTP等,是用来接收来自传输层的数据或者按不同应用要求与方式将数据传输至传输层; 传输层的主要协议有UDP、TCP,是使用者使用平台和计算机信息网内部数据结合的通道,可以实现数据传输与数据共享; 网络层的主要协议有ICMP、IP、IGMP,主要负责网络中数据包的传送等; 网路接口层或数据链路层主要协议有ARP、RARP,主要功能是提供链路管理错误检测、对不同通信媒介有关信息细节问题进行有效处理等。

1.2.3 TCP 协议

  传输控制协议(Transmission Control Protocol)。TCP 协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。在 TCP 连接中必须要明确客户端与服务器端,由客户端向服务端发出连接请求,每次连接的创建都需要经过“三次握手”,以保证连接的可靠。

  • 第一次握手,客户端向服务器端发出连接请求,等待服务器确认。
  • 第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求。
  • 第三次握手,客户端再次向服务器端发送确认信息,确认连接。

完成三次握手,连接建立后,客户端和服务器就可以开始进行数据传输了。由于这种面向连接的特性, TCP 协议可以保证传输数据的安全,所以应用十分广泛,例如下载文件、浏览网页等。

1.2.4 UDP 协议

  用户数据报协议(User Datagram Protocol)。UDP 是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。   由于使用 UDP 协议消耗资源小(数据被限制在64kb以内),通信效率高,所以通常都会用于音频、视频和普通数据的传输例如视频会议都使用 UDP 协议,因为这种情况即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。但是在使用 UDP 协议传送数据时,由于 UDP 的面向无连接性,不能保证数据的完整性,因此在传输重要数据时不建议使用 UDP 协议。


1.3 网络编程三要素

1.3.1 协议

  协议即网络通信协议,例如:HTTP 协议。

1.3.2 IP

  IP 是 Internet Protocol(网际互连协议)的缩写,是 TCP/IP 体系中的网络层协议,也是构成互联网的基础。IP 规定网络上所有的设备都必须有一个独一无二的 IP 地址,就好比是邮件上都必须注明收件人地址,邮递员才能将邮件送到。同理,每个 IP 信息包都必须包含有目的设备的 IP 地址,信息包才可以正确地送到目的地。同一设备不可以拥有多个 IP 地址,所有使用 IP 的网络设备至少有一个唯一的 IP 地址。IP 可分为: IPv4:是一个 32 位的二进制数,通常被分为 4 个字节,表示成a.b.c.d的形式,例如192.168.65.100 。其中 a、b、c、d 都是 0~255 之间的十进制整数,那么最多可以表示 42 亿个。 IPv6:由于互联网的蓬勃发展,IP 地址的需求量愈来愈大,但是网络地址资源有限,使得 IP 的分配越发紧张。为了扩大地址空间,拟通过 IPv6 重新定义地址空间,采用 128 位地址长度,每 16 个字节一组,分成 8 组十六进制数,表示成ABCD:EF01:2345:6789:ABCD:EF01:2345:6789,号称可以为全世界的每一粒沙子编上一个网址,这样就解决了网络地址资源数量不够的问题。

1.3.3 端口

  "端口"是英文 port 的意译,可以认为是设备与外界通讯交流的出口。如果把 IP 地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有 65536(即:216)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从 0 ~ 65535(216-1)。其中,0 ~ 1023 之间的端口号用于一些知名的网络服务和应用,普通的应用程序需要使用 1024 以上的端口号。如果端口号被另外一个服务或应用所占用,会导致当前程序启动失败。

0 人点赞