首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >三次握手时客户端干了什么-从SYN-SENT到ESTABLISHED

三次握手时客户端干了什么-从SYN-SENT到ESTABLISHED

作者头像
用户7532291
发布2024-11-27 13:22:34
发布2024-11-27 13:22:34
1110
举报

之前介绍了tcp三次握手过程中服务端做的工作,这次给大家介绍下客户端做的工作、内核是怎么实现的。

__inet_stream_connect函数主要实现了以下几个功能:

  1. 首先判断socket对象的状态,当socket对象状态为SS_UNCONNECTED时才允许进行建连操作。
  2. 之后判断sock对象的状态,当sock对象状态为TCP_CLOSE时进行建连操作。(比如刚刚发出第一个SYN包,socket对象的状态为SS_UNCONNECTED、sock对象的状态为TCPF_SYN_SENT,此时不应该直接发SYN包) 。
  3. 调用tcp_v4_connect函数,发送建连请求,设置socket状态为SS_CONNECTING、返回码为EINPROGRESS。
  4. 根据是否设置了阻塞标志,用户态进程被阻塞等待或者直接收到EINPROGRESS返回码。

原文见以下链接:https://mp.weixin.qq.com/s/DAFBIZ_9Nzlmym_T5kgIJQ

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档