java 网络编程面试题(以自己的话总结)
1.TCP、UDP的区别 TCP(transfer control protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 特点: 1.面向连接 2.点到点的通信 3.高可靠性:三次握手 4.占用系统资源多、效率低 生活案例:打电话 UDP(User DatagramProtocol)是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。 特点: 1.非面向连接,传输不可靠,可能丢失 2.发送不管对方是否准备好,接收方收到也不确认 3.可以广播发送 4.开销小 生活案例:发短信
2.TCP建立连接三次握手,断开连接四次握手具体过程 1.建立连接三次握手: 第一次握手是客户端连接到服务器端; 第二次握手是服务器端接收到请求后,向客服端发送一个信息; 第三次是客服端向服务器端发送的,是对第二次握手信息的确认。 之后客户端和服务器端就开始通讯。 2.断开连接四次握手 断开连接的一端发送close请求是第一次握手; 另外一端接收到断开连接的请求之后需要对close进行确认,发送一次信息,这是第二次握手; 发送了确认消息之后还要再发close消息,用来关闭连接,这是第三次握手; 最初发送close请求的一端接收到消息之后,进入time_wait状态,第四次握手是最初发送close请求的一端接收到消息之后,对消息的确认。
3.套接字Socket Socket是网络传输层供给应用层的编程接口,使用Socket编程可以开发客户机和服务器应用程序,可以在本地网络上进行通信,也可以通过Internet在全球范围内通信
4.IP地址和端口 IP地址用来标识一台计算机,端口用来区分计算机上的应用程序。 IP地址好比每个人的地址(门牌号),端口好比是房间号,必须同时指定IP地址和端口号才能够正确的发送数据。