1、项目中如何实现TCP的并发 答:多进程、多线程。通过时间片的轮转。在同一时间内进行多线程并行或者多进程并行。原理是让主线程进行通信,子线程进行接受或发送信息。 |
2、tcp通信过程中的三次握手 答:TCP协议三次握手的方式建立连接 |
3、四次挥手的过程 答:第一次挥手 (FIN):客户端向服务器发送FIN报文,表示客户端不再发送数据,但仍可以接收数据; |
4、tcp/IP协议分几层?tcp/IP是那一层? 答:四次:应用层、网络层、传输层,数据链路层 tcp在传输层,ip在网络层 |
5、UDP为什么丢包,怎样处理?丢包发生在那一层,为什么? 答:因为无连接、发生在网络层。在数据包的结束位置做标记,或者记录每个数据包的发送字节数,来让接收方分辨每个数据包。 |
6、tcp是同步还是异步谈谈对同步异步的理解? 同步;同步是指有序的,可预测的过程;异步指无序的,随机的过程。 |
7、什么是TCP的沾包现象,如何解决? 两个数据包发送的时间较近且比较小,有可能被接收端当作一个tcp段接收,因为接收方不知道每次要传输多少数据。解决办法:每次发送的时候要让接收方知道每个tcp段的大小多少。 |
8、组播和广播的区别? 答:组播需要接收端加入多播组,广播地址:网络号+255 组播地址:D类网络 |
9、阻塞I0和非阻塞I0的区别 答:阻塞io在文件没执行完继续等待终端的数据而不结束;非阻塞io在程序接收到数据后就直接结束。 |
10、并发和并行的区别? 并发:是对于单核处理器而言,同一时间段内,通过轮转时间片,运行多个进程。 并行:对于多核处理器或者多任务处理器,在同一时间,可以同时运行多个进程。 |