后台开发面试-网络编程

1、tcp与udp的区别

2、udp调用connect有什么作用?

3、可靠UDP编程。(eg::KCP)

4、tcp连接中时序图,状态图。

5、TIME_WAIT状态

  tcp结束连接怎么握手,TIME_WAIT状态是什么,为什么会有TIME_WAIT状态?哪一方会有TIME_WAIT状态,如何避免TIME_WAIT状态占用资源(同理,CLOSE_WAIT)

6、tcp头多少字节?哪些字段?

7、拥塞控制和流量控制的区别?(Nagle算法,滑动窗口等等)

8、connect非阻塞编程如何实现?

9、如果select返回可读,结果只读到0字节,什么情况?

10、keepalive如何理解(tcp的,http的,应用层心跳heart-beat)

11、列举你所知道的tcp套接字选项,并说明其作用。

(SO_LINGER、SO_KEEPALIVE、SO_SENDBUF、SO_RECVBUF、SO_RESUEADDR、SO_REUSEPORT)

12、socket什么情况下可读/可写?

13、tcp socket什么情况下表示对端关闭

14、backlog的作用?

15、多进程监听同一个端口?

16、http

http1.0,http1.1,http2.0,https的区别? https的加密原理/请求过程?

17、CGI和FastCGI的区别?

18、http怎么实现的断点续传?

19、大规模连接上来,并发模型怎么设计

20、EWOULDBLOCK EAGAIN EINPROGRESS等errno的含义

21、epoll

epoll的内核实现;epoll和select的区别;epoll的LT和ET模式的区别;epoll的ET模式怎么编程判断读完(EAGAIN);手写epoll echo;

22、tcp连接异常情况(网线插拔,路由器重启,服务器宕机重启等)

23、什么情况下产生RST

24、半打开,半关闭,半连接

25、线程间同步/进程间通讯

26、多进程监听同一socket、惊群

猜你喜欢

转载自blog.csdn.net/qq_34863439/article/details/89093866