一、TCP协议
- TCP是面向连接的、可靠的进程到进程通信的协议
- TCP提供全双工服务(数据在同一时间双向传输)
- TCP报文段
TCP将若干个字节构成一个分组,叫报文段(Segment)
TCP报文段封装在IP数据包中
TCP的报文段关键字段 - seq:序号:当TCP从进程接收数据字节时,对每一个字节进行编号,编号不一定从0开始,一般会产生一个随机数作为第一个字节的编号,当字节都被编上号后, TCP就给每个报文段指派一个序号,序号就是该报文段中第一个字节的编号,当数据到达目的地后,接收端会按照这个序号把数据重新排列,保证数据的正确性
- Ack:确认序号:对发送端的确认信息,用它来告诉发送端这个序号之前的数据段都已经收到,如确认号是x,就是表示前X-1个数据段都已经收到
- 首部长度:一般20-60字节
- 控制位: URG ACK PSH RST SYN FIN,共6个,每一个标志位表示一个控制功能,
TCP的连接、传输和断开都受这六个控制位的指挥 - 1.URG:紧急指针标志,为1时表示紧急指针有效,为0则忽略紧急指针。
- 2.ACK:确认序号标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。
- 3.PSH: push标志,为1表示是带有push标志的数据,指示接收方在接收到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队。
- 4.RST:重置连接标志,用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请求。
- 5.SYN:同步序号,