Javase复习系列——网络编程

cho1.基本问题

  1. 网络编程是什么?
    Java中网络连接的建立、网络数据传输问题的解决方案。
  2. 什么是通信协议?
    网络通信中的一些约定,保证计算机之间能够进行通信。通信协议规定了速率、传输代码、代码结构、传输控制步骤、出错控制等。
  3. URL的组成
    <传输协议>://<主机名>:<端口号>/<文件名>#片段名?参数名=参数值&参数名=参数值
  4. 域名是什么?
    由于IP不容易记忆,因此使用域名表示某个IP,最终也会转化为IP地址的形式。

cho2.套接字

URL、RUI、URN的区别

参考链接URL, URI, URN三者区别
大概了解即可,想要深入了解的话,可以看看计网方面的书

套接字的基本构成

套接字 = IP + 端口号

  • IP:可以唯一标识因特网中的一台计算机。可以看做因特网中,计算机的身份证号。
  • 端口号:可以唯一标识一台计算机中的一个进程。一台计算机上运行着许多进程,每个进程占用一个端口号。
  • 套接字就是包含了IP地址和端口号的Socket类。

域名解析过程

Javase复习系列——网络编程
计算机需要访问一个网址时,首先拿到的一般是域名,需要解析成IP地址再进行访问。

第1步:
计算机先在本地的hosts文件中查找。若未找到,则进入第2步;若找到,则直接进入第4步。
第2步:
计算机将域名发送给DNS(域名解析器),DNS在自己的“清单”中查找有无对应IP。
第3步:
DNS将找到的IP发送回本机。
第4步:
本机对目标网址进行访问。

cho3.TCP/IP协议

TCP/IP协议模型

Javase复习系列——网络编程
每一层只与邻近的层有联系。

“三次握手”与“四次挥手”

Javase复习系列——网络编程

  1. 建立连接的“三次握手”
  2. 释放连接的“四次挥手”
    参考链接“三次握手”与“四次挥手”的详细解释(附图解与动画)

cho4.数据传输

网络传输的本质

Javase复习系列——网络编程

  1. 简单来说,就是通过网络,一方发送数据,一方接收数据。
  2. 数据可能是字符、也可能是字节;数据的大小也可能很大。因此,需要将所有数据拆包,并转成二进制数据发送。
  3. 接收的数据要保证完整性,还有恢复发送时的格式等。因此,接收端需要将数据进行包的组装,与格式的恢复。

TCP/UDP协议

  1. TCP协议流程
    Javase复习系列——网络编程
  2. UDP协议流程
    Javase复习系列——网络编程
  3. TCP协议与UDP协议的区别
TCP UDP
建立TCP连接,采用“三次握手”方式 不需要建立连接,数据封装为包
TCP应用于客户端与服务端 可以广播发送(即发给多个端)
可进行大数据量传输 数据报大小<=64K
数据传输结束,释放连接,采用“四次挥手”方式 只发送,不管是否收到

cho5.常用方法

InetAddress

Javase复习系列——网络编程

DatagramSocket

Javase复习系列——网络编程

URL

Javase复习系列——网络编程

DatagramPacket

Javase复习系列——网络编程

Socket

Javase复习系列——网络编程