TCP/IP学习笔记(一)
TCP/IP学习笔记(一)
1.三次握手和四次挥手
三次握手:
第一次握手:客户端向服务端发送建立连接请求,标志位为SYN(报文段首部请求标志位),此时SYN=1,seq=x(seq是随机的起始***),服务器被动打开。
第二次握手:服务器收到了客户端的连接请求后要确认请求,发送ACK(确认标志位)=1,SYN(请求标志位)=1,seq=y(服务器随机分配的***),ack(对方下一个报文段的数据第一个字节的序号)=x+1(ack=seq+1)。
第三次握手:客户端收到后确认***ACK=1,SYN=0,ack=y+1,seq=x+1(***设置为客户端发送的***加一)。
三次握手成功建立一个TCP连接。
四次挥手:
第一次挥手:客户端向服务端发送关闭连接请求,同时停止数据发送,发送FIN(终止标志位)=1,seq=a(a=last.seq+1),TCP是双全工的,第一次挥手只是客户端单方面停止发送数据。
第二次挥手:服务端收到了客户端发送的关闭请求,向客户端发送确认信息,发送ACK=1,seq=b(b=last.seq);ack=a+1;告诉客户端我知道了。
第三次挥手:服务端已经没有数据要发送了,发送一个关闭请求给客户端,发送FIN=1,ACK=1,seq=c(last.seq);ack=a+1。
第四次挥手:客户端收到了服务端释放连接的关闭请求,确认标志位后发送ACK=1,seq=a+1,ack=c+1。
四次挥手成功关闭一个TCP连接。
可抓包进一步分析:
三次握手建立连接后,发送http协议的一个ajax网页请求,处理完成后,再四次挥手结束TCP连接。
(PS:新人一枚,嵌入式的,还在学习,写的东西有错误和不足的地方,欢迎各位大佬指正。)