您的位置:首页 > 理论基础 > 计算机网络

tcp 传输机制的简单介绍

2017-12-01 00:00 127 查看
摘要: 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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tcp