- IP协议是用来查找地址的,对应者网际层;TCP协议是用来规范传输规则的,对应着传输层
- IP只负责找到地址,具体的传输工作交给TCP来完成
- TCP在传输之前会进行“三次握手”,传输完数据断开的时候要进行“四次挥手”
- 理解TCP中的两个序号和三个标志位:
- seq : sequence number的缩写,表示所传数据的序号。TCP传输时每一个字节都有一个序号,发送数据时会将数据的第一个序号发送给对方,接收方会按序号检查是否接收完整,如果没接收完整就需要重新发送,以此保证数据的完整性。
- ack : acknoledgement number的缩写,表示确认号。接收端用它来给发送端反馈已经成功接收到的数据信息,它的值为希望接收的下一个数据包的起始序号,也就是说ack值所代表的序号前面的数据已经成功接收到了。
- ACK : 确认位。只有ACK=1的时候ack才起作用。正常通信时ACK=1,第一次发送请求时因为没有需要确认接收的数据所以才为0.
- SYN : 同步位。用于在建立连接时同步序号。刚开始建立连接时并没有历史接收的数据,所以ack也就没办法设置,这时按照正常的机制就无法运行了,SYN的作用就是来解决这个问题的,当接收端接收到SYN=1的报文时就会直接将ack设置为接收到的seq + 1的值,注意这里的值并不是校验后设置的,而是根据SYN直接设置的,这样正常的机制就可以运行了,所以SYN叫同步位。需要注意,SYN会在前两次握手时都为1,这是因为通信的双方的ack都需要设置一个初始值。
- FIN : 终止位。用来在数据传输完毕后释放连接。
( 图。。略。。)