传输控制协议(TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,它适用于
对速度要求不高,但是对可靠性要求 较高的场景。以下为TCP协议头部示意图
由上图可知tcp含有六个标记位,其效果分别为:
urg---紧急标记位。激活时,紧急指针会被激活,会将紧急处理的数据放在最前面。可以知道从哪到哪时需要紧急处理的数据
ack---确认标记位。确认会激活确认序号
psh---push标记位。tcp存在缓存机制,若psh置1,会直接退回
rst---强制断开链接。ret置1之后,会强制断开双方链接。实例:当访问时,发送数据包给交换机,通过协议建立三次握手,然后向目标发送http请求报文,http存在host字段,在看见host字段之后进行本地匹配,若匹配成功,则会强制断开与目标网址的链接。
syn---请求标记位。置1,请求建立链接
fin---结束标记位。置1,断开链接,目标会回ack以断开链接
而TCP的三次握手和四次挥手正是依靠他们来实现的
TCP三次握手
以A,B之间数据传输为例,使用TCP时,A先向B发出请求通讯,syn置1,B回应确认通讯并发出请求通讯,ack置1,syn置1,随后A回应确认通讯,ack置1。A向B发出请求,B回应是建立A到B的通讯链接,B向A发出请求是建立B到A的通讯链接。最终建立A、B之间的链接关系。
TCP四次挥手
以A,B之间的数据传输为例,A先向B发出结束申请,fin置1,B回应确认申请ack置1,当B数据传输完之后B向A发出结束申请,fin置1,A回应确认申请ack置1。最终实现A、B链接断开的效果。