Javase复习系列——网络编程
文章目录
cho1.
基本问题
- 网络编程是什么?
Java中网络连接的建立、网络数据传输问题的解决方案。 - 什么是通信协议?
网络通信中的一些约定,保证计算机之间能够进行通信。通信协议规定了速率、传输代码、代码结构、传输控制步骤、出错控制等。 - URL的组成
<传输协议>://<主机名>:<端口号>/<文件名>#片段名?参数名=参数值&参数名=参数值 - 域名是什么?
由于IP不容易记忆,因此使用域名表示某个IP,最终也会转化为IP地址的形式。
cho2.
套接字
URL、RUI、URN的区别
参考链接:URL, URI, URN三者区别
大概了解即可,想要深入了解的话,可以看看计网方面的书
套接字的基本构成
套接字 = IP + 端口号
- IP:可以唯一标识因特网中的一台计算机。可以看做因特网中,计算机的身份证号。
- 端口号:可以唯一标识一台计算机中的一个进程。一台计算机上运行着许多进程,每个进程占用一个端口号。
- 套接字就是包含了IP地址和端口号的Socket类。
域名解析过程
计算机需要访问一个网址时,首先拿到的一般是域名,需要解析成IP地址再进行访问。
第1步:
计算机先在本地的hosts文件中查找。若未找到,则进入第2步;若找到,则直接进入第4步。
第2步:
计算机将域名发送给DNS(域名解析器),DNS在自己的“清单”中查找有无对应IP。
第3步:
DNS将找到的IP发送回本机。
第4步:
本机对目标网址进行访问。
cho3.
TCP/IP协议
TCP/IP协议模型
每一层只与邻近的层有联系。
“三次握手”与“四次挥手”
- 建立连接的“三次握手”
- 释放连接的“四次挥手”
参考链接:“三次握手”与“四次挥手”的详细解释(附图解与动画)
cho4.
数据传输
网络传输的本质
- 简单来说,就是通过网络,一方发送数据,一方接收数据。
- 数据可能是字符、也可能是字节;数据的大小也可能很大。因此,需要将所有数据拆包,并转成二进制数据发送。
- 接收的数据要保证完整性,还有恢复发送时的格式等。因此,接收端需要将数据进行包的组装,与格式的恢复。
TCP/UDP协议
- TCP协议流程
- UDP协议流程
- TCP协议与UDP协议的区别
TCP | UDP |
---|---|
建立TCP连接,采用“三次握手”方式 | 不需要建立连接,数据封装为包 |
TCP应用于客户端与服务端 | 可以广播发送(即发给多个端) |
可进行大数据量传输 | 数据报大小<=64K |
数据传输结束,释放连接,采用“四次挥手”方式 | 只发送,不管是否收到 |