计算机网络基础知识(TCP的三次握手与四次挥手)

OSI七层协议:
自底而上:

  • 物理层:

A向B发送比特流,B进行接收。主要定义了物理设备的标准:如网线的类型,光纤接口类型,各种传输介质的传输速 率等。主要作用是传输比特流:即所谓的01二进制数据,转换为电流强弱,到达目的地之后再转换为10,01的机器码。
数模转换与模数转换。

  • 数据链路层:

交换机工作在这一层。交换机对帧解码,把数据发送到正确的接收方。

  • 网络层:

将网络地址翻译为对应的物理地址,选择最佳路径。控制子网的运行,如逻辑编址、分组传输、路由选择。

  • 传输层:

接收上一层的数据,必要时进行分割,并将这些数据交给网络层,且保证这些数据段有效到达对端。

  • 会话层:

不同机器上的用户之间建立及管理会话。

  • 表示层

信息的语法语义以及他们的关联,如加密解密、转换翻译、压缩解压缩。

  • 应用层

![TCP/IP](https://img-blog.csdnimg.cn/2019021514415476.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3ODczNDg0,size_16,color_FFFFFF,t_70

传输控制协议TCP简介:
1.面向连接的、可靠的、基于字节流的传输层通讯协议。
2.将应用层的数据流分割成报文段并发送给目标节点的TCP层
3.数据包都有序号,对方收到则发送ACK确认,未收到则重传。
4.使用校验和来校验数据在传输过程中是否有误。

TCP flags
URG:紧急指针标志
ACK:确认序号标志
PSH:push标志
RST:重置连接标志
SYN:同步序号,用于建立连接过程
FIN:finish标志,用于释放连接

  • TCP三次握手:

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接

第一次握手:建立连接时,客户端发送SYN包【syn=j】到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到SYN包,必须确认客户的SYN【ack=j+1】,同时自己也发送一个SYN包【syn=k】,即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK【ack=k+1】,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

为什么需要三次握手才能建立起连接:
为了初始化Sequence Number的初始值。

首次握手的隐患-----SYN超时:
Server收到Client的SYN,回复SYN-ACK的时候未收到ACK确认;
Server不断重试直至超时,Linux默认等待63秒(1+2+4+8+16+32)才断开连接

针对SYN Flood的保护措施:
SYN队列满后,通过tcp-syncookies参数回发SYN Cookie
若为正常连接则Client会回发SYN Cookie,直至建立连接。

建立连接后,Client出现故障怎么办?
保活机制:
1.向对方发送保活探测报文,如果未收到响应则继续发送
2.尝试次数达到保活探测数仍未收到响应则中断连接。

  • TCP的四次挥手

“挥手”是为了终止连接。

第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态

第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态

第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态

第四次挥手:Client收到FIN之后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。

  • 为什么会有TIME_WAIT状态:(2MSL)

原因:确保有足够的时间让对方收到ACK包
避免新旧连接混淆

  • 为什么需要四次挥手才能断开连接?

因为全双工,发送方和接收方都需要FIN报文和ACK报文。

  • 服务器出现大量CLOSE_WAIT状态的原因?

对方关闭socket连接,我方忙于读或写,没有及时关闭连接
解决:1.检查代码,特别是释放资源的代码。2.检查配置,特别是处理请求的线程配置。

猜你喜欢

转载自blog.csdn.net/qq_37873484/article/details/87362915
今日推荐