【详解】TCP

TCP是传输层协议,提供可靠的字节流服务,它将大块的数据分割为一个个报文段来管理。

1.TCP的报文段结构

图片转自 如故

在这里插入图片描述

目前我们只需要知道TCP报文段有如下内容:

源端口号和目的端口号:这个不用说,表明该TCP报文来自哪,要去哪。

序号和确认号:这是报文段首部最重要两个字段,也是TCP可靠数据传输的关键部分,下面详细讲。

6比特的标志字段:ACK用于确认是否收到,RST、SYN、FIN用于连接的简历和拆除。PSH和URG暂时不需要了解。

16位窗口大小:该字段用于流量控制,也就是指示接收方愿意接受的字节数量,用来控制发送方的发送速率。

数据:字面意思,传送的具体数据。

序号和确认号

前面提到,TCP是提供可靠的字节流服务,它将数据看成有序的字节流,而一个报文段的序号就是该报文段首字节的字节流编号。举例来说,A向B传送一个5000字节的数据,假设TCP将其每个字节编号,并分成五个报文段,那么第一个报文段的序号就是0,第二个报文段的序号就是1000,第三个2000,以此类推。这些序号都将被填写到TCP报文头部的序号字段中。

下面是确认号,我们知道TCP是全双工的,也就是双方都可以发送和接收数据。举例来说,A向B发送了0–999的数据,B收到该数据后,它也有数据需要发送到A,那么B发送出去的报文段中,确认号就填1000,该确认号就是A下次发送数据需要填的序号,想象一下:A的第二个报文段序号是不是1000?

2.TCP的连接(三次握手与四次挥手)

1.三次握手

其中大写的ACK是标志位,小写的ack是确认号,小写的seq是序号

1.1三次握手(Three-way Handshake

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值