# 第 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 协议的区别(华 ** 为)
TCP(传输控制协议)和 UDP(用户数据报协议)是互联网中用于数据传输的两个主要的传输层协议。它们的区别如下:
连接方式:TCP 是基于连接的可靠协议,需要在通信前通过三次握手建立连接。而 UDP 不需要建立连接,可以直接发送数据包。
数据传输方式:TCP 是面向
字节流
的协议,将应用程序传来的数据拆分为小的数据段,并在确认收到所有数据后按照应用程序的要求进行重组。UDP 是面向数据报
的协议,把数据打包成数据报,一次发送,一次接收。可靠性:TCP 提供可靠性,利用
序号、确认应答、重传等机制
保证数据传输的可靠性。UDP 没有此类机制,传输数据时不保证可靠性。效率:TCP 比 UDP 慢,因为 TCP 有较多的开销用于
维护连接和保证可靠性
;UDP 比 TCP 快,因为不需要进行连接状态的维护及重传机制等操作。使用场景:TCP 适用于
对数据可靠性要求较高
的环境,例如文件传输、电子邮件和网页浏览。UDP 适用于实时性要求较高
而且丢失一些数据也没有太大的影响的环境,例如在线游戏和视频流媒体。
# 2. 简单说说 TCP 协议的三次握手与四次挥手机制 (* 科软)
TCP 协议的三次握手和四次挥手是 TCP 连接建立和断开过程中的重要步骤,分别如下:
三次握手:
a. 客户端向服务器发送 SYN 包(SYN=1,ACK=0),表示请求建立连接
;
b. 服务器收到客户端的 SYN 包后,回复一个 SYN 包(SYN=1,ACK=1),表示同意连接
,并通过 ACK 字段确认客户端的请求;
c. 客户端收到来自服务器的 SYN-ACK 包后,再回复一个 ACK 包(SYN=0,ACK=1),表示连接建立成功
。四次挥手:
a. 客户端向服务器发送 FIN 包(FIN=1,ACK=0),表示要关闭连接
;
b. 服务器收到客户端的 FIN 包后,回复一个 ACK 包(ACK=1),表示已经接收到关闭请求
;
c. 服务器回复一个 FIN 包(FIN=1,ACK=1),表示服务器已经准备好关闭连接
;
d. 客户端收到服务器的 FIN 包后,再回复一个 ACK 包(ACK=1),表示已经接受到关闭请求
。
这样,TCP 连接就成功地断开了。