TCP的三次握手,四次挥手及常见面试题详解

TCP的三次握手,四次挥手及常见面试题详解

一.引子

网络之间数据的传输离不开TCP和UDP协议,我们常用的微信就是基于UDP协议进行传输的。详细了解这两个协议对我们服务器的排错,以及安全防护可以起到不错的作用。笔者整理了下面的文档,希望对大家的学习有帮助。

二.TCP的三次握手和四次挥手

1…基本概念(两者区别及TCP头部)

1)TCP和UDP的区别:
TCP:Transmission Control Protocol 传输控制协议
UDP:User Datagram Protocol 用户数据报协议

2)TCP报文头部
16位源端口号,16位目标端口号
32位序号:seq
32位确认序号:ack
TCP的标志位

在这里插入图片描述

3) TCP的标志位
SYN(synchronous):建立联机
ACK(acknowledgement):确认
PSH(push):传送
FIN(finish):结束
RST(reset):重置
UGR(urgent):紧急

在这里插入图片描述

2.TCP的三次握手过程

C-S:发送SYN=1,seq=x
C端关闭━主动打开,S端关闭━被动打开
S-C:发送ACK=1,SYN=1,ack=x+1,seq=y
S端处于监听状态,C端处于同步已发送状态
C-S:发送ACK=1,ack=y+1,seq=x+1
C端建立连接,S端建立连接

在这里插入图片描述

三.TCP的四次挥手

C-S:FIN=1,seq=x
C建立连接状态━终止等待1,S端建立连接到━关闭等待
S-C:ACK=1,ack=x+1,seq=v
S关闭等待持续,C终止等待1━终止等待2
S-C:ACK=1,FIN=1,seq=y,ack=x+1
C端终止等待━时间等待,S最后确认
C-S:ACK=1,ack=y+1,seq=x+1
C端时间等待持续一会后关闭,S端关闭

在这里插入图片描述

三.运维常见面试题

1.为什么断开TCP四次挥手而连接是三次握手
断开连接时,可能有没有传输完的数据,保证数据的完整性。

2.为什么设置最大断开时间2MLS
C端发送ACK是1MLS时间,FIN是1MLS时间
如果S端收不到C端的最后一次ACK报文,S端会重新发送FIN和ACK的报文段。等待C端重新发送报文。
防止已失效的请求报文出现在本连接中。

3.如果传输断开会发生什么状况
s端有防控机制(每隔75秒发送探测报文,一连10个报文没有反应,则服务器端认为客户端出了问题,断开连接)

4.DDOS攻击如何防止
ddos攻击是握手时不进行第三次握手,本质上是比拼两者之间的网络资源,现在我们可以在本机防火墙规则里面写入一些简单命令让一些明显的ddos攻击失效,或者买一些云企业的云盾,方便快捷。

5.为什么是三次握手不是两次握手
保证数据保真有序(双向)
攻击形式以及发生的位置在第三次握手的时候

继OSI,TCP-IP,对等网络通信协议之后,再加上这篇TCP的三次握手和四次挥手,我们网络服务学习的地基便打牢了,接下来,我们拿着这两把武器,杀入网络服务的战场吧!!奥里给!!

#以上图片均来源于网络

猜你喜欢

转载自blog.csdn.net/weixin_47678667/article/details/109029322