连接管理
TCP是面向连接的,三次握手和四次挥手都是为了保证本次数据传送的可靠性,这里不做赘述
如果想了解具体的三次握手和四次挥手,请戳这里->TCP三次握手四次挥手详解
序号
保证数据段的按序到达
- TCP是面向字节流的,它对每一个字节都进行了编号,比如发送端发送了一个1~80字节的数据,接收端拿到数据段以后,就会回复一个ack为81的确认,表明81字节之前的数据都成功接收到了。
- 接收端也是根据序号来对收到的数据进行排序,如果中间有某个数据报丢了,则之后的数据报还是会接受,但是不会对发送端返回之后的确认,而是会重复发送对丢失处之前数据的确认,保证发送端会对丢失数据段进行重发
- TCP规定,若确认号 = N,则表明:到序号 N - 1为止的所有数据都已正确收到。
- 建立连接时,双方发送的SYN报文和ACK报文段都是不能携带数据的,但是会消耗一个序号,这个序号通常是随机值。
- 建立连接后,比如发送端发送1~80字节的数据,则它的序号就是1,之后所发的报文段是从80开始的,下一个报文段序号就是81.
- TCP规定,首部中序号字段值是本报文段所发送数据的第一个字节的序号。
确认应答机制
TCP中对发送的每一个字节都进行了编号,也就是序列号,接收端收到一个数据段后,便会对该数据段进行确认,并回应一个ACK报