Network protocol_网络协议_7/4层_三次握手/四次挥手

OSI标准7层计算机网络协议

P2P协议以及UDP协议位于7层协议的那一层

层级Value意义
7应用层TELNET,HTTP,FTP,NFS,SMTP为应用程序提供服务
6表示层加密,ASCII数据格式化、数据加密和代码转换
5会话层RPC,SQL建立、管理和维护会话
4传输层TCP,UDP,SPX建立、管理和维护端口到端口的连接
3网络层IP,IPXIP选址及路由选择
2数据链路层ATM,FDDI提供介质访问和链路管理
1物理层Rj45,802.3以二进制数据形式在物理媒体上传输数据

TCP/IP4层协议

层级Value意义
4应用层ARP/RARPHTTP/FTP负责处理特定的应用程序细节.
3传输层TCP/UDP主要为两台主机上的应用提供端到端的通信.
2网络层IP处理分组在网络中的活动,比如分组的选路.
1网络接口与链路层包括操作系统中的设备驱动程序、计算机中对应的网络接口卡.
HTTP(超文本传输协议)
socket是一个通讯模型不是协议
在这里插入图片描述

HTTP GET/POST/PUT/PATCH/DELETE语义上有什么区别,哪些操作是幂等的?幂等在实际业务中有什么意义?怎么实现幂等?

幂等: 请求多次返回的结果一样 abs(a) = abs(abs(a)) 绝对值求多少次结果都一样
GET 安全幂等的
POST 不安全不幂等的
DELETE 不安全幂等的

三次握手

在这里插入图片描述
在这里插入图片描述

首次握手隐患–SYN超时

问题起因
Server收到Client的SYN, 回复SYN-ACK的时候未接收到ACK确认
Server不断重试直至超时, Linux默认等待63秒才断开连接
针对SYN Flood的保护措施
SYN队列满后, 通过tcp_syncookie参数回发SYN Cookie
若为正常连接则Client会发回SYN Cookie, 直接建立连接

建立连接后, Client出现故障怎么办

保活机制
向对方发送保活探测报文,如果未收到响应则继续发送
尝试次数到达保活探测数仍未收到响应则中断连接

四次挥手

在这里插入图片描述
在这里插入图片描述

为什么会有CLOSED_WAIT状态

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

服务器出现大量CLOSED_WAIT的原因

对方关闭socket连接,我方忙于读或写,没有及时关闭连接
检查代码,特别是释放资源代码
检查配置

netstas -n | awk '/^tcp/{++S[$NF]}END{for(a in S) print a,S[a]}'
TIME_WAIT 1507
CLOSED_WAIT 588
FIN_WAT2 5
ESTABLISHED 413

说一下什么是tcp的2MSL?

主动发送fin关闭的一方,在4次挥手最后一次要等待一段时间我们称这段时间为2MSL
TIME_WAIT状态的存在有两个理由:
1.让4次挥手关闭流程更加可靠
2.防止丢包后对后续新建的正常连接的传输造成破坏

为什么客户端在TIME-WAIT状态必须等待2MSL的时间?

1、为了保证客户端发送的最后一个ACK报文段能够达到服务器。 这个ACK报文段可能丢失,因而使处在LAST-ACK状态的服务器收不到确认。服务器会超时重传FIN+ACK报文段,客户端就能在2MSL时间内收到这个重传的FIN+ACK报文段,接着客户端重传一次确认,重启计时器。最好,客户端和服务器都正常进入到CLOSED状态。如果客户端在TIME-WAIT状态不等待一段时间,而是再发送完ACK报文后立即释放连接,那么就无法收到服务器重传的FIN+ACK报文段,因而也不会再发送一次确认报文。这样,服务器就无法按照正常步骤进入CLOSED状态。
2、防止已失效的连接请求报文段出现在本连接中。客户端在发送完最后一个ACK确认报文段后,再经过时间2MSL,就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段。

HTTP请求方法都有什么

根据HTTP标准,HTTP请求可以使用多种请求方法。
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
1、 GET 请求指定的页面信息,并返回实体主体。
2、HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
3、POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在
请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
4、PUT 从客户端向服务器传送的数据取代指定的文档的内容。
5、DELETE 请求服务器删除指定的页面。
6、CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
7、OPTIONS 允许客户端查看服务器的性能。
8、TRACE 回显服务器收到的请求,主要用于测试或诊断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海啦啦喽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值