tcp 传输机制的简单介绍

因为已经很久没有在学习tcp传输这块,这次简单的记录下来,提醒自己。
tcp 传输图 :
输入图片说明
主要以分析 tcp包中Sequence Number , ack 。通信的双方要互相通知对方自己的初始化的Sequence Number(缩写为ISN:Inital Sequence Number)全称Synchronize Sequence Numbers。

** seq: 序列号用于 对对数包的排序
ack : 用于确认对端发送的数据包**

这是用 wireshark 简单抓取的一份分析tcp的图:
输入图片说明
握手阶段:
(序列号相对)
client     server
   seq=0 ===>
   seq=0, ack=1 <===
   seq=1, ack=1 ===>   
完成后 client 通过ack 验证 对端 seq=1 的数据包; server 通过 ack 验证 对端 seq=1的数据包。

数据传输:
client      server
seq=1, ack=1, len=3 ==>
<=== seq=1,ack=4
seq=4, ack=1, len=3 ==>
<== seq=7,ack=1
在数据传输的过程, server 端的ack 根据len的长度而在变化, 所以一直变化的值是 client 的seq (对端的ack值) 和server 的ack 。 而 client 的ack 和server 的 seq 一直都是1 , 这也说明 ack 验证的是对端 seq。

4次结束连接: client     server
seq=7, ack=1 ====>
<== seq=1, ack=8
seq=8,ack=2 ===>
结束连接需要4次, 因为两端都需要 fin和 ack确认。 上述将server 的 seq 和ack 都放在一起,收到 fin标志时与 syn一样, ack对应需要+1 ,最终 client seq=8, ack=1和 server端的 ack=8, seq=1。

资料来源 TCP 的那些事儿(1)

转载于:https://my.oschina.net/longtian/blog/1583626

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值