如何简单了解TCP

一:大家都知道“三次握手”,至少跟程序沾边的都听说过。对,这就是TCP 协议的很重要的一个知识点。
1.通常大家都知道:发送请求,确认你发送的请求被收到,发送确认被收到的确认。
这就是简单的TCP“三次握手”的解释。更过趣味的解释
2.全双工协议。TCP协议就是全双工协议的,全双工指的是,发送方同时也可以是接收方,即“发送和接受是同时进行的”。
3.TCP报头格式。
二:TCP是用于传输的
1.TCP并没有建立一个如网线一样实质的通道,它只是在两台设备间做了一种协议——你可以发送了,我能接受了。
2.既然是发送的数据包,那么这个包上就像快递要写上谁寄出的(Source Port),寄给谁(Destination Port).什么东西(Sequence Number),希望要的好评内容(Acknowledgment Number)。
3.还有六个神秘的“密码”信息,就好象碟战剧中,敌方截获了信息,但是有几个关键的数字不知道什么意思,没办法进一步**这封信的目的一样,这六个关键的信息起到了关键的作用:
URG:有些需要马上处理的紧急数据。
ACK:Acknowledgment Number是有效的。
FIN:结束请求,表示我发送完我的数据了。
SYN:用来建立连接。当ACK=0,SYN=1,表示请求建立连接。连接被响应时SYN= 1,ACK=1。
RST:复位。
PSH:把数据立刻Push给应用,不要在缓冲区中停留。
如何简单了解TCP
知道上面那些,我们可以画“三次握手”了。
Client发出请求,SYN=1、AKG=0、Sequence Number=x(没有意义,只是标志)。
Server收到请求后,首先它也是需要给对方发送请求并发送数据SYN=1、Sequence Number=y(上面有提到过,这是全双工协议),还需要确认我收到了AKG=x+1(你再给我发一个x+1)。
Client收到请求。发送Sequence Number = y+1.
请求被建立,总的来说就是我跟你发起连接请求,你也跟我发起连接请求,发起请求都需要一次数据验证(Sequence Number)如何简单了解TCP