第16章:随堂复习与企业真题(网络编程)
一、随堂复习
1. 网络编程概述
- 计算机网络:略
- 网络编程的目的:直接或间接地通过网络协议与其它计算机实现数据交换,进行通讯。
- 需要解决的三个问题:
- 问题1:如何准确地定位网络上一台或多台主机
- 问题2:如何定位主机上的特定的应用
- 问题3:找到主机后,如何可靠、高效地进行数据传输
2. 要素1:IP地址
- 使用具体的一个ip地址对应具体的一个互联网上的主机
- IP分类:
- 角度一:IPv4、IPv6
- 角度二:公网地址、私网地址(或局域网)
- 使用InetAddress类表示IP地址
- 实例化:getByName(String host) 、getLocalHost()
- 常用方法:getHostName() 、getHostAddress()
3. 要素2:端口号
- 用于区分同一台主机上的不同的进程
- 不同的进程分配不同的端口号
- 范围:0-65535
4. 要素3:网络通信协议
- 这里有两套参考模型
- OSI参考模型:模型过于理想化,未能在因特网上进行广泛推广
- TCP/IP参考模型(或TCP/IP协议):事实上的国际标准。
- 在传输层中涉及到两个协议:TCP、UDP。二者的对比
- TCP:可靠的连接(发送数据前,需要三次握手、四次挥手),进行大数据量的传输,效率低。
- UDP:不可靠的连接(发送前,不需要确认对方是否在)、使用数据报传输(限制在64kb以内)、效率高。
- TCP的三次握手、四次挥手(了解)
5. TCP网络编程
例题1:客户端发送内容给服务端,服务端将内容打印到控制台上。
例题2:客户端发送文件给服务端,服务端将文件保存在本地。
例题3:从客户端发送文件给服务端,服务端保存到本地。并返回“发送成功”给客户端。并关闭相应的连接。
6. UDP网络编程
简单的理解UDP的数据传输。
7. URL编程
-
Java后台:将写好的Java程序部署在Tomcat服务器。启动Tomcat服务器。
-
前台:使用浏览器进行访问。需要使用url。(HTML+CSS+JavaScript)
-
URL的作用:定位互联网上某一资源的地址。
-
URL的格式:
http://192.168.21.107:8080/examples/abcd.jpg?name=Tom ---> "万事万物皆对象"
应用层协议 ip地址 端口号 资源地址 参数列表
- 使用URL实现数据的下载(了解)
二、企业真题
1. TCP协议和UDP协议的区别(华**为)
1.什么是TCP?
TCP (Transmission Control Protocol)传输控制协议
2.什么是UDP?
UDP(User Datagram Protocol)用户数据报协议
(1)TCP 面向连接(如打电话要先拨号建立连接)提供可靠的服务。可靠指:通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;
相当于:打电话,我已经确定了对面的人是我要找的那个人了,我可以把信息传输了对的人了,所以是可靠的。
UDP 是无连接的,即发送数据之前不需要建立连接,UDP 尽最大努力交付,即不保证可靠交付。例如:发送QQ信息,对方是离线状态,我只管发信息过去,不管离线的人是不是收到了。我只管我发成功了。不可靠是指:在这次发送中,有可能会丢数据包。就算是丢了,也不会再重新发送。如果是TCP:丢包时重发,对次序乱掉的分包进行顺序控制。
(2)UDP 具有较好的实时性,工作效率比 TCP 高,适用于对高速传输和实时性有较高的通信或广播通信。
解释:
实时性:在规定时间内系统的反应能力。
因为TCP需要建立连接,需要消耗时间,所以UD工作效率高,对于高速传输来说,UDP的效率更高。
与TCP相比,UDP它以更快的速度传输数据。该协议相对不太可靠。因此,用于传输音频和视频文件等数据。
(3)TCP 连接只能是一对一的,UDP 支持一对一,一对多,多对一和多对多的交互通信。
解释:打电话就是TCP协议,每次只能给一个人打电话。UDP就像是QQ发送信息,可以一对多的给别人发消息。
(4)TCP是面向字节流,把数据看成一连串无结构的字节流,UDP 是面向报文的一次交付一个完整的报文,报文不可分割,报文是 UDP 数据报处理的最小单位。
(5)TCP 和 UDP 都可以检查错误,但只有 TCP 可以纠正错误,因为它同时具有拥塞和流量控制。
(6)TCP只能进行点对点的数据传输,不支持多播和广播传输方式。
2. 简单说说TCP协议的三次握手与四次挥手机制 (*科软)
三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号并为后面的可靠性传送做准备。
三次握手刚开始时客户端处于Closed的状态,服务端主动监听某个端口,处于Listen状态,此时进行三次握手的过程: