传输控制协议,运行在传输层,面向连接的可靠的协议
三次握手的目的是为了建立连接(整个过程是由内核实现的)
第一次握手:客户端向服务器发送一个请求(告诉服务器我想跟你建立连接),此时发送一个SYN包(同步序列号)和一个ISN(初始化序列号,随机生成的,不能设置为固定值,因为这样容易被攻击者猜出后续序列号,从而遭到攻击)
此时,服务器端可以确认客户端的发送能力和自己的接收能力都是正常的
第二次握手:服务器向客户端发送一个ACK包(表示发来的数据已确认接收无误),ACK=ISN+1,还有一个服务器端自己的ISN
此时,客户端可以确认服务器端的接收能力和发送能力、自己的接收和发送能力正常
第三次握手,客户端向服务器发送ACK包,ACK=服务器ISN+1
此时,服务器端可以确认客户端的接收能力、自己的发送能力正常
三次握手结束之后,可以正常发送数据了
模拟一下:
1、开启抓包命令(只抓经过接口ens33并且端口为80的包):
-nn表示地址和端口号都以数字显示,而不是以*或者localhost显示
2、模拟与百度建立一个连接
3、查看抓到的包