简介
- TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议。
- TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。并且,TCP/IP传输协议是保证网络数据信息及时、完整传输的两个重要的协议。TCP/IP传输协议是严格来说是一个四层的体系结构,应用层、传输层、网络层和数据链路层都包含其中。
TCP/IP五层协议
- IP数据报首部
标识:同一个分组相同的数字
标志:表示后面是否还有分片(MF 1 表示后面“还有分片”。MF 0 表示最后一个分片。)
片偏移:分出来的分组在原来报文处于什么位置(片偏移以8 个字节为偏移单位)。
- TCP首部
-
TCP协议:
序号:字节流的编号(第二个编号要根据第一个编号的长度)
确认号:期望收到对方下一个字节的序号
TCP/IP三次握手与四次挥手
SYN:建立连接标识
seq: 序列号
ACK:确认(响应)
ack: 确认号
TCP建立连接三次握手
-
第一次握手
客户端的TCP向服务器发出连接请求报文段,其首部中的同步位SYN= 1,并选择序号seq= x,表明传送数据时的第一个数据字节的序号是X。
-
第二次握手
服务器的TCP收到连接请求报文段后,如同意,则发回确认,服务器在确认报文段中应使SYN=1,使ACK=1,其确认号ack=x+1,自己选择的序号seq = y。
-
三次握手
客户端收到此报文段后向服务器给出确认,其ACK= 1,确认号ack=y+1,客户端的TCP通知上层应用进程,连接已经建立。
TCP连接释放四次挥手
FIN:连接释放标识
-
第一次挥手
数据传输结束后,通信的双方都可释放连接,现在客户端的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接,客户端把连接释放报文段首部的FIN= 1,其序号seq=u,等待服务器的确认。
-
第二次挥手
服务器发出确认,确认号ack=u+ 1,而这个报文段自己的序号seq= v,TCP服务器进程通知高层应用进程,从客户端到服务器这个方向的连接就释放了,TCP 连接处于半关闭状态,服务器若发送数据,客户端仍要接收。
-
第三次挥手
若服务器已经没有要向客户端发送的数据,其应用进程就通知TCP释放连接。
-
第四次挥手
客户端收到连接释放报文段后,必须发出确认,在确认报文段中ACK= 1,确认号ack= w+ 1,自己的序号seq= u+ 1,TCP连接必须经过时间2MSL后才真正释放掉。