TCP

Posted ne-liqian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP相关的知识,希望对你有一定的参考价值。

1.TCP握手

  TCP的根本目的是传输数据,而在正式传输之前需要同步一些信息,握手就是这些信息的同步过程,只有保证信息同步完成了(标志就是两端都确认对方收到了自己的SYN报文),才能开始交互数据。

  [1]A向B发送SYN,A向B同步本端的连接信息(seq、MSS、SACK选项等等)。

  [2]B向A发送SYN ACK,SYN表示B向A同步本端的连接信息(seq、MSS、SACK选项等等),ACK表示对A的SYN的确认。

  [3]A向B发送ACK,对B的SYN的确认。(A发送出去后便进入到establish状态,而B需要成功收到ACK后进入establish状态)

  握手完成的标志就是两端都确认对方收到了自己的SYN报文而进入establish状态,如果A确认B收到了自己的SYN报文(A收到SYN ACK),则A进入到establish状态,如果B确认A收到了自己的SYN报文(B收到ACK),则B进入到establish状态。

  如果一端不能确认对端收到了自己的SYN报文,则不能进入到establish状态,而是通过重传方式确认对端收到了自己的SYN报文。

  另外解释为什么不是两次握手,其实握手的目的是为了正式传输数据之前同步信息,如果是前两次握手消息并不能保证信息确认同步完成(B向A发送了SYN ACK后不能直接进入establish状态,因为B不能保证A收到了自己的SYN报文)。

  

 

以上是关于TCP的主要内容,如果未能解决你的问题,请参考以下文章

什么是TCP/ IP协议?

net.tcp协议共享tcp端口的功能

分析tcp协议原理

TCP和UDP的区别

TCP协议---TCP粘包黏包

tcp和udp有啥区别,tcp和udp各有啥优缺点