java网络编程面试题
1.TC P和 UDP 的区别
tcp:面向连接的传输控制协议,具有高可靠性,确保传输数据的正确性,有验证重发机制,因此不会出现丢失或者乱序。
upd:是无连接的数据报服务,不对数据报进行检查与修改,无须等待对方的应答,会出现分组丢失,重复,乱序,但具有较好的事实性,UPD段结构比TCP的段结构简单,因此网络开销也小。
2 tcp连接建立的时候三次握手,断开连接的4次握手的具体过程
1.建立连接采用的3次握手协议,具体是指:
* 第一次握手是客户端connect连接到server
* 第二次server accept(接收) client的请求之后,向client(客户)端发送一个消息,相当于说我都准备好了,你连接上我了
* 第三次就是client 向 server 发送的,就是对第二次握手消息的确认。之后,client和server就开始通讯了。
断开连接的四次握手,具体如下
* 断开连接的一端发送close请求是第一次握手
* 另外一端接收到断开的连接的请求之后需要对close进行确认,发送一个消息,这是第二次握手
* 发送完确认消息之后,还要向对端发送close消息,要关闭对对端的连接,这是第三次握手
* 而且最初发送断开连接的一端接收到消息之后,进入到一个很重要的状态,time_wait状态,这个状态也是面试官经常问道的问题,最后一次握手是最初发送断开连接的一端接收到消息之后。对消息的确认。
3 什么是同步?什么是异步?
同步:
如果有多个任务或者事件要发生,这些任务或者事件必须逐个地进行,一个事件或者任务的执行会导致整个流程的暂时等待,这些事件没有办法并发的执行。
异步:
如果有多个任务或者事件发生,这些事件都可以并发的执行,一个事件或者任务不会导致整个流程的暂时等待。
事实上同步和异步是一个非常广的概念,他们的重点在于多个任务和事件发生时,一个事件的发生或执行是否会导致整个流程的暂时等待,一般来说可以通过多线程的方式来实现异步,但是千万不要将多线程和异步画上符号,异步只是一个宏观上的模式,采用多线程来实现异步的一种手段,并且通过多进程也可以实现异步
同步和异步着重点在于多个任务的执行过程中一个任务的执行是否会导致整个流程的暂时等待。
原文地址:java网络编程面试题









网友评论