TCP/IP协议族
-
数据链路层、网络层、传输层协议是在Linux内核中实现的。因此操作系统需要实现一组系统调用,使得应用程序能够访问这些协议提供的服务。实现这组系统调用的API就是Socket。
-
Socket提供两种功能:
- 将应用程序数据从用户缓冲区中复制到 TCP/UDP内核发送缓冲区,以交付内核来发送数据;或者是从内核 TCP/UDP接收缓冲区中复制数据到用户缓冲区,以读取数据。
- 应用程序以通过它们来修改内核中各层协议的某些头部信息或其他数据结构,从而精细地控制底层通信的行为
-
route命令可以查看路由表。
-
TCP是基于字节流:写操作次数和读操作次数之间没有关系。数据的发送与接受是没有边界的。
-
TCP状态转移的图得吃透:
-
TIME_WAIT状态,出现于客户端返回最后一个确认之后。主要原因有两个:
- 可靠地终止TCP连接,害怕这个ACK数据包丢失,服务端未关闭。