1.1网络协议
七层(应用程,表示层,会话层,传输层,网络层,数据链路层,物理层)
1.2.1TCP的三次握手
TCP三次握手机制中的seq和ack的值到底是什么意思?
第一次(A--->B),SYN=1,seq=x
第二次(B--->A),SYN=1,ACK=1,seq=y,ack=x+1 //seq为什么是y,ack为什么是x+1?
第三次(A--->B),ACK=1,seq=x+1,ack=y+1 //seq为什么是x+1,ack为什么是y+1?
seq是序列号,这是为了连接以后传送数据用的,ack是对收到的数据包的确认,值是等待接收的数据包的序列号。
在第一次消息发送中,A随机选取一个序列号作为自己的初始序号发送给B;第二次消息B使用ack对A的数据包进行确认,因为已经收到了序列号为x的数据包,准备接收序列号为x+1的包,所以ack=x+1,同时B告诉A自己的初始序列号,就是seq=y;第三条消息A告诉B收到了B的确认消息并准备建立连接,因为第一次中到了x,所以此时A自己此条消息的序列号是x+1,所以seq=x+1,而ack=y+1是表示A正准备接收B序列号为y+1的数据包。
seq是数据包本身的序列号;ack是期望对方继续发送的那个数据包的序列号。
1.2.2四次挥手