本文分享自华为云社区《提升网络协议服务器的定位能力》,作者:张俭。近期,我再次涉足于协议服务器相关的工作领域,致力于定位并解决各种问题。简单总结一些心得给大家。如果想要定位出协议服务器的问题,那么这些能力可能至关重要。注:我这里比较偏向协议本身的问题,不涉及一些通用的网络问题(如网络吞吐量上不去、响应时间长等等)对CPU和内存的通用分析能力首先,网络协议服务器本质上也是一个应用程序。因此,需要具备一些关于CPU和内存的通用分析能力。PU/内存火焰图,内存dump分析,锁分析,以及远程调试(研发态手段)这些手段都要具备日志和网络连接的关联为了有效地定位网络问题,日志需要精确到毫秒级别。没有毫秒级
目录一、docker安全二、http与https的区别三、为什么要使用SSL证书?四、https证书认证的过程https单向认证的访问流程https双向认证的访问流程五、如何获取证书?六、实操获取证书并验证1、通过阿里云获取证书2、通过mkcert获取证书3、通过openssl获取证书一、docker安全docker容器使用安全注意点:尽量别做的事:尽量不用--privileged运行容器(授权容器root用户拥有宿主机的root权限)尽量不用--networkhost运行容器(使用host网络模式共享宿主机的网络命名空间)尽量不在容器中运行ssh服务尽量不把宿主机系统的关键敏感目录挂载到容器
OSPF:开放式最短路径优先协议也叫无类别链路状态IGP动态路由协议1.距离矢量协议: 运行距离矢量协议的路由器会周期性的泛洪自己的路由表,通过路由的交互,每台路由器从相邻的路由器学习到路由,并且加载进自己的路由表中,对于网络中的所有路由而言,路由器并不清楚网络的拓扑结构,只是简单的知道要去的往某个目的地的方向在哪,距离多远,这就是距离矢量协议的本质。2.链路状态协议:与距离矢量不同,链路状态协议通告的是链路状态信息,而不是路由器。运行链路状态协议的路由器之间会建立一个协议的邻居关系,然后彼此开始交互LSA(链路状态通告)。每台路由器都会产生LSA,路由器将接受到的LSA放入自己的LSDB
一,TCP连接三次握手(Three-WayHandshake)建立连接:第一次握手(SYN):客户端向服务器发送一个TCP报文,其中包含SYN(同步)标志位,以及客户端的初始序列号。这表示客户端请求建立连接,并希望开始通信。第二次握手(SYN+ACK):服务器接收到客户端的SYN报文后,会发送一个带有SYN和ACK(确认)标志位的报文,其中ACK用于确认客户端的请求,并同时向客户端发起自己的序列号。这表示服务器接受了连接请求,并同意建立连接。第三次握手(ACK):客户端接收到服务器的确认报文后,会发送一个带有ACK标志位的报文,用于确认服务器的接受。至此,连接建立完成,双方可以开始进行数据传输
目录1.引入2.OSI参考模型2.1.物理层2.2.数据链路层2.3.网络层2.4.传输层2.5.会话层2.6.表示层2.7.应用层3.数据的封装与解封装4.TCP/IP模型4.1.背景引入4.2.TCP/IP模型(4层)4.3.拓展1.引入 1)产生背景:客观网络的复杂性迫切要求有一个协议标准 2)层次结构:分层体系结构;每一层的目的是向上一层提供服务,而上一层不需要知道下一层是如何实现服务的 eg:董事长之间的通信过程 3)相关概念 功能与服务(接口) 分层 模块化或分而治之 协
一:HTTP响应1.1认识“状态码”(statuscode)状态码表示访问一个页面的结果.(是访问成功,还是失败,还是其他的一些情况…),以下为常见的状态码.1.1.1200OK这是一个最常见的状态码,表示访问成功.抓包抓到的大部分结果都是200HTTP/1.1200OKServer:nginxDate:Thu,10Jun202106:07:27GMTContent-Type:text/html;charset=utf-8Connection:keep-alive...注意:在抓包观察响应数据的时候,可能会看到压缩之后的数据,形如:网络传输中“带宽”是一个稀缺资源,为了传输效率更高往往会对数据
准备工作小程序后台设置用户隐私保护指引,需要等待审核通过:设置-基本设置-服务内容声明-用户隐私保护指引小程序的基础库版本从2.32.3开始支持,所以要选这之后的版本在app.json中加上这个设置“usePrivacyCheck”:true具体步骤可以参考官方给的开发文档,里面也有官方提供的demo文件。https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/原生小程序适配代码直接参考的官方给的demo3和demo4综合修改出的版本,通过组件的方式引用,所有相关处理逻辑全部放到了privacy组件内部,其
TCP三次握手简介:TCP是一种面向连接的单播协议,在发送数据前,通信双方必须在彼此间建立一条连接。所谓的“连接”,其实是客户端和服务器的内存里保存的一份关于对方的信息,如IP地址、端口号等。TCP可以看成是一种字节流,它会处理IP层或以下的层的丢包、重复以及错误问题。在连接的建立过程中,双方需要交换一些连接的参数。这些参数可以放在TCP头部。TCP提供了一种可靠、面向连接、字节流、传输层的服务,采用三次握手建立一个连接。采用四次挥手来关闭一个连接。三次握手的目的是保证双方互相之间建立了连接。三次握手发生在客户端连接的时候,当调用connect(),底层会通过TCP协议进行三次握手。TCP头部
👨🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习🌌上期文章:JAVASE进阶:高级写法——方法引用(Mybatis-Plus必学前置知识)📚订阅专栏:JAVASE进阶希望文章对你们有所帮助其实我认为javase中的File流、I/O流(字节流、字符流)等都是很重要的,但是内容很多就没有具体去做总结了,不过这里总结的网络编程中也会用到I/O流中的不少思想,大家可以边学习网络编程边了解I/O流编程,对于I/O流大家需要自行去系统学习或回顾。网络编程(编程实现TCP、UDP传输)网络编程介绍网络编程三要素三要素——IPipv4的一些细节InetAddress类的使用三要素——端口号三要
我正在使用MicrosoftCryptoAPI来处理SSL连接。与支持TLS1.0或更高版本的服务器通信时,一切正常,但当我尝试处理仅支持SSL3.0的服务器时InitializeSecurityContext()失败,错误代码为0x80090331(SEC_E_ALGORITHM_MISMATCH).我尝试使用作为pAuthData参数传递给AcquireCredentialsHandle()的SCHANNEL_CRED结构。特别是它有字段grbitEnabledProtocols应该控制支持的协议(protocol)集。当我设置grbitEnabledProtocols=SP_PR