Java 网络编程:基本软件架构、网络通信的三要素、协议

基本软件架构

通信一定是基于软件结构实现的

  1. C/S结构:全称为Client/Server结构, 是指客户端和服务器结构。
    常见程序有QQ、迅雷,IDEA等软件。
  2. B/S结构:全称为Browser/Server结构, 是指浏览器和服务器结构。
    常见浏览器有谷歌、火狐等。
    (开发中的重点,基于网页设计界面,界面效果可以更丰富:Java web开发)

两种架构各有优势,但是无论哪种架构,都离不开网络的支持。
网络编程,就是在一定的协议下,实现两台计算机的通信的技术。


网络通信的三要素

  1. 协议
    协议:计算机网络客户端与服务端通信必须事先约定和彼此遵守的通信规则。
    HTTP,FTP,TCP可靠传输,UDP,SSH,SMTP。
  2. IP地址
    互联网协议地址(Internet Protocol Address) ,俗称IP。
    IP地址用来给一个网络中的计算机设备做唯一的编号。
  • IPv4:4个字节,32位组成。
    如:192.168.67.87
    分为:局域网,城域网,广域网(公网)
    局域网:公司内部用。
    公网:可以在任何地方访问。

  • IPv6:可以实现为所有设备分配IP,128位

打开cmd
ipconfig :查看本机的IP

ping :检查本机与某个IP指定的机器是否联通,或者说是检测对方是否在线。
ping 空格 IP地址

ping 220.181.57.216
ping www.baidu.com

注意:特殊的IP地址

本机IP地址(本地回环IP)
127.0.0.1 == localhost
  1. 端口
    端口号就可以唯一标识设备中的进程(应用程序)
    端口号:
    用2个字节表示的整数,它的取值范围是0~65535。
    0~1023之间的端口号用于一些知名的网络服务和应用。
    普通的应用程序需要使用1024以上的端口号。
    如果端口号被另外一个服务或应用所占用,会导致当前程序启动失败。报出端口被占用异常。

利用"协议"+“IP地址”+"端口号"三元组合,就可以标识网络中的进程了,那么进程间的通信就可以利用这个标识与其它进程进行交互。


协议

  • 网络通信协议:
    通信协议是对计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进行通信。

  • 应用层:
    应用程序(ee,微信,浏览器),可能用到的协议(HTTP, FTP, SMTP)通 常程序员只需要关心这一层

  • 传输层:
    TCP/IP协议 或 UDP协议

TCP/IP协议:传输控制协议(Transmission Control Protocol) 
TCP协议是面向连接的安全的可靠的传输通信协议。
1. 在通信之前必须确定对方在线并且连接成功才可以通信。
2. 例如下载文件、浏览网页等(可靠传输)。
三次握手:
TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠。
 - 第一次握手,客户端向服务器端发出连接请求,等待服务器确认。
 - 第二次握手,服务器端向客户端回送一个响应, 通知客户端收到了连接请求。
 - 第三次握手,客户端再次向服务器端发送确认信息,确认连接。
UDP:用户数据报协议(User Datagram Protocol)。
UDP协议是一个面向无连接的不可靠传输的协议。
1. 直接发消息给对方,不管对方是否在线,发消息后也不需要确认。
2. 无线(视频会议,通话),性能好,丢失一些数据。
  • 网络层:
    IP协议
    封装自己的IP和对方的IP和端口
  • 数据链路层
    进入到硬件 (网)
  • 物理层

你可能感兴趣的:(Java)