一、TCP协议格式
端口号: 表示数据来和去的进程
6位标志位:
URG: 紧急指针是否有效
ACK: 确认号是否有效
PSH: 提示接收端应用程序立刻从TCP缓冲区把数据读走
RST: 对方要求重新建立连接; 我们把携带RST标识的称为复位报文段
SYN: 请求建立连接; 我们把携带SYN标识的称为同步报文段
FIN: 通知对方, 本端要关闭了, 我们称携带FIN标识的为结束报文段
16位校验和:接收端校验不通过, 则认为数据有问题.
16位紧急指针: 标识哪部分数据是紧急数据;
二、TCP协议特点
1、有连接
2、可靠传输
3、面向字节流
二、TCP特点
1、确认应答
给数据按照字节进行编号,通过确认报文确定
2、超时重传
超时重传有两种可能。
第一种:A给B发的数据包丢失。
第二种:B回复A的应答包丢失。
如果A长时间没有收到B的应答包,就会重新发送一次。
超出一定的时间间隔,或者达到一定重传次数,会放弃重传。
如果是应答包丢了,说明A虽然没有收到B的回复,但B已经收到A的数据包,此时b会多次接受。
3、连接管理
建立连接:三次握手
断开连接:四次挥手
(1)为什么建立连接?
*确认对方发送或接收是否正常
*进行重要参数的协商
(2)三次握手如图:
此处SYN表示申请和对方建立连接。
(3)四次挥手如图
FIN结束报文段。
4、流量控制
如果发送端发的太快,缓冲区被打满, 端继续发送, 就会造成丢包, 继而引起丢包重传等等一系列连锁反应.因此TCP支持根据接收端的处理能力, 来决定发送端的发送速度. 这个机制就叫做流量控制;
5、拥塞控制
当前的网络状态就拥堵时. 贸然发送大量的数据, 会引起网络堵塞。 TCP先发少量的数据, 摸清当前的网络拥堵状态, 再逐渐决定按照多大的速度传输数据。