开篇:
为了更好的学习!
资料来自 Unix Network Programming
图片来自网络
1. TCP 三路握手
a. 服务器必须准备好接受外来的链接。这通常通过调用socket、bind和listen这三个函数来完成,我们称之为被动打开。
b. 客户通过调用connect发起主动打开。这导致客户TCP发送一个SYN(同步)分节,它告诉服务器客户将在链接中发送的数据的初始序列号。
通常SYN分节不携带数据,其所在IP数据报只含有一个IP首部、一个TCP首部及可能有的TCP选项。
c. 服务器必须确认(ACK)客户的SYN,同时自己也得发送一个SYN分节,它含有服务器将在同一链接中发送的数据的初始序列号。服务器在单个分节
中发送SYN和对客户SYN的ACK。
d. 客户必须确认服务器的SYN。
2. 基本TCP客户/服务器程序的套接字函数