tcp简单传输过程分析

本文详细分析了TCP在Linux环境下建立连接的三步握手、数据传输过程以及断开连接的四步挥手。通过实例解释了每个步骤中客户端和服务端的状态变化,帮助加深对TCP协议的理解。
摘要由CSDN通过智能技术生成

简单的做一下tcp传输的过程分析(linux下),以加深自己的记忆,如有不足之处,希望各位道友能够指出,谢谢!

Tcp连接传输分三步:

  1. 三步握手建立连接
  2. 数据传输
  3. 四步挥手断开连接   





     

一、三步握手连接

  1. 在服务端已经完成bind listen等开启监听服务从而阻塞于accept()下(简单的情况),客户端connect()服务端:发送一个SYN数据包建立连接, 数据包IP头中包含SYN及一些常见的选项如MSS、Window size等,此时客户端:SYN_SENT;
  2. 服务端接收数据包后回应相应的ACK数据包,并在包中设置SYN位,也请求像对方建立链接,此时服务端:SYN——REVD;
  3. 客户端接收到服务端的数据包,状态:SYN_SENT---->ESTABLISHED, connect()返回,而后发送ACK回应包,表示接收到了服务端的SYN包。而后服务端接收到此包,状态:SYN_REVD--->ESTABLISHED, accept()返回,至此,连接成功建立。

二、数据传输

  1. 客户端writ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值