网络通信题目集锦¶
网络通信面试题集锦¶
- 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 交流。