获得徽章 0
Android 工程师 @字节跳动
Android 工程师 @字节跳动
Tcp 连接如何做到可靠?


TCP 是一种可靠的面向连接的协议,那它如何做到可靠?

要回答这个问题,需要先了解 TCP 的报文结构,如下所示


**其中序号跟确认序号是可靠传输的关键部分**。

序号是本报文段发送数据组的第一个字节的序号,在 tcp 传输的流中中,每一个字节一个序号,如果当前报文段的序号是300,该报文段包含100个字节,那么下一个报文段的序号应该是 400。

正是通过这个序号,保证了最终接受到所有报文后,可以进行有序的拼接。

## TCP 连接如何确定数据传输完成
其中的报文结构中还有一段控制位,有六个标志,ACK 跟 SYN 比较常见,主要用于建立 TCP 连接,也就是三次握手。

这里有一个控制位 FIN,也就是 finish 标志,如果是 表示发送方已经没有数据了,然后关闭本方数据流。

juejin.cn
展开
大侠咕咚于2020-12-22 09:32发布的图片
评论
Android 工程师 @字节跳动
下一页
个人成就
文章被点赞 663
文章被阅读 65,504
掘力值 2,142
收藏集
9
关注标签
15
加入于