先放一张图了解tcp 和http的关系安全
http属于应用层,而tcp属于传输层 http是基于tcp的tcp
有几个字段须要重点介绍下:
(1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。(顺序码)
(2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。(确认码)
(3)标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义以下:
(A)URG:紧急指针(urgent pointer)有效。
(B)ACK:确认序号有效。
(C)PSH:接收方应该尽快将这个报文交给应用层。
(D)RST:重置链接。
(E)SYN:发起一个新链接。
(F)FIN:释放一个链接。
须要注意的是:
(A)不要将确认序号Ack与标志位中的ACK搞混了。
(B)确认方Ack=发起方Req+1,两端配对。 指针
第一次握手:主机A发送 位码syn=1 和seq number=xxxx 的一个随机数 到主机B 表明要请求创建链接blog
第二次握手:主机B 接受到请求 向主机A发送数据包 ack=number+1(接收到的seq+1 表明确认收到主机A所发送的请求)而且本身也发送一个位码syn=1 和seq number=xxxx随机数
第三次握手:主机A 接收到 确认序号 验证确认序号是否有效 ,并向主机B 发送 确认序号 ack=number+1 发送完后 创建链接请求
TCP的特色 灵活性 安全性 可操做性 可靠性 适用性im
为何说TPC协议安全可靠 不会出点丢失数据的状况?数据
正是由于三次握手的特性协议