网络通信面试题集锦
-
TCP/IP协议栈层次结构
-
TCP三次握手需要知道的细节点
-
TCP四次挥手需要知道的细节点(CLOSE_WAIT、TIME_WAIT、MSL)
-
TCP与UDP的区别与适用场景
-
linux常见网络模型详解(select、poll与epoll)
-
epoll_event结构中的epoll_data_t的fd与ptr的使用场景
-
Windows常见的网络模型详解(select、WSAEventSelect、WSAAsyncSelect)
-
Windows上的完成端口模型(IOCP)
-
异步的connect函数如何编写
-
select函数可以检测网络异常吗?
-
epoll的水平模式和边缘模式
-
如何将socket设置成非阻塞的(创建时设置与创建完成后设置),非阻塞socket与阻塞的socket在收发数据上的区别
-
send/recv(read/write)返回值大于0、等于0、小于0的区别
-
如何编写正确的收数据代码与发数据代码
-
发送数据缓冲区与接收数据缓冲区如何设计
-
socket选项SO_SNDTIMEO和SO_RCVTIMEO
-
socket选项TCP_NODELAY
-
socket选项SO_REUSEADDR和SO_REUSEPORT(Windows平台与linux平台的区别)
-
socket选项SO_LINGER
-
shutdown与优雅关闭
-
socket选项SO_KEEPALIVE
-
关于错误码EINTR
-
如何解决tcp粘包问题
-
信号SIGPIPE与EPIPE错误码
-
gethostbyname阻塞与错误码获取问题
-
心跳包的设计技巧(保活心跳包与业务心跳包)
-
断线重连机制如何设计
-
如何检测对端已经关闭
-
如何清除无效的死链(端与端之间的线路故障)
-
定时器的不同实现及优缺点
-
http协议的具体格式
-
http head、get与post方法的细节
-
http代理、socks4代理与socks5代理如何编码实现
-
ping
-
telnet
关于以上问题的答案,有兴趣可以参考我的知乎live:https://www.zhihu.com/lives/922110858308485120
或者如果你有任何不明白的地方,可以加我微信 easy_coder 交流。