# 网络复习题

> 原文：<https://github.com/angrave/SystemProgramming/wiki/Networking-Review-Questions>

## 话题

*   IPv4 与 IPv6
*   TCP 与 UDP
*   基于数据包丢失/连接
*   获取地址信息
*   DNS
*   TCP 客户端调用
*   TCP 服务器调用
*   关掉
*   recvfrom 的
*   epoll vs select
*   RPC

## 问题

*   什么是 IPv4？ IPv6 的？它们之间有什么区别？
*   什么是 TCP？ UDP？给我两者的优点和缺点。我什么时候使用一个而不是另一个？
*   哪个协议连接较少，哪个是连接？
*   什么是 DNS？ DNS 采用的路由是什么？
*   套接字做什么？
*   设置 TCP 客户端的调用是什么？
*   设置 TCP 服务器的调用是什么？
*   套接字关闭和关闭有什么区别？
*   什么时候可以使用`read`和`write`？ `recvfrom`和`sendto`怎么样？
*   `epoll`相对于`select`有什么优势？ `select`相对于`epoll`怎么样？
*   什么是远程过程调用？我应该什么时候使用它？
*   什么是编组/解组？为什么 HTTP _ 不是 _ 是 RPC？