2.2 连接服务器

2.2.1 连接是什么意思

  1. 连接实际上是通信双方交换控制信息,在套接字中记录这些必要信息并准备数据收发的一连串操作,比如客户端将自己的IP地址和端口号告知服务器的过程。
  2. 执行收据收发操作需要一块用来临时存储收发数据的内存空间,这块空间称为缓冲区,它也是在连接操作的过程中分配的。

2.2.2 负责保存控制信息的头部

  1. 控制信息大体可分为两类。
  2. 第一类是客户端和服务器连接时交换的控制信息,这些信息在数据收发、断开连接等整个通信过程中都需要,TCP协议对此进行了定义。主要包括:收发方端口号、发送数据的顺序编号、接收数据的顺序编号ACK、数据偏移量、保留字段、控制位(URG ACK PSH RST SYN FIN)、窗口、检验和、紧急指针、可选字段。
  3. 另外一类,就是保存在套接字中,用来控制协议栈操作的信息(套接字内存空间中的信息)。

2.2.3 连接操作的实际过程

  1. 客户端先创建一个包含表示开始数据收发操作的控制信息的头部,头部控制位的SYN比特设置为1,还要设置适当的序号和窗口大小。
  2. 服务端收到数据后,在套接字写入相应的信息,将状态改为正在连接。然后返回响应,需要设置SYN和ACK。
  3. 客户端收到响应,如果SYN为1表示连接成功,这时向套接字中写入服务器的IP地址、端口号等信息,然后客户端发送确认收到响应的包,ACK设置为1。当服务器收到这个包后,连接操作才算完成。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容