通信原理

HTTPS原理和CA证书申请

我怕爱的太早我们不能终老 提交于 2019-11-27 15:58:52
众所周知,WEB服务存在http和https两种通信方式,http默认采用80作为通讯端口,对于传输采用 不加密 的方式,https默认采用443,对于传输的数据进行 加密传输 目前主流的网站基本上开始默认采用HTTPS作为通信方式,一切的考虑都基于对安全的要求,那么如何对自己的网站配置HTTPS通信,是本文着重介绍的 本文的主要内容包括:https加密传输的原理、如何申请https所用的CA证书,如何配置WEB服务支持https 1、https原理通俗讲解 https=http+ssl,顾名思义,https是在http的基础上加上了SSL保护壳,信息的加密过程就是在SSL中完成的 首先我们先不谈https,先从一个简单的通讯原理图讲起: http通信原理 客户端发送一句client hello给服务器端,服务器端返回一句serverhello给客户端,鉴于本文讨论是https的加密主题,我们只讨论信息传输的加密问题 实现客户端和服务端发送的信息client hello 和server hello,即使中间的包被窃取了,也无法解密传输的内容 http:client hello和server hello在通讯的过程中,以明文的形式进行传输,采用wireshark抓包的效果如下图: 有没有感觉这个的信息传输是完全暴露在互联网上面,你请求的所有信息都可以被窥测到,是不是感觉心一凉

Spark消息通信原理(二)——Spark启动消息通信

萝らか妹 提交于 2019-11-27 05:04:26
Spark启动过程中,主要是进行Master和Worker之间的通信。 首先,由Worker节点向Master发送注册信息,然后,Master处理完毕,返回注册成功或者失败消息,如果注册成功,Worker会定时发送心跳给Master。 具体过程如下: 当master节点启动后,随之启动各worker节点,worker启动时会创建RpcEnv,以及EndPoint终端,并向master发送注册worker的消息RegisterWorker。(上一篇文章也提到过,先启动master,再启动worker,因为worker的数量根据实际任务来决定) (1)worker节点向master节点请求注册 在worker中有一个tryRegisterAllMasters方法,里面会创建一个注册线程池(因为一个worker可能需要注册到多个master中,如HA环境),将注册请求放进线程池中,通过线程池启动注册线程(即并发的进行注册请求)。tryRegisterAllMasters部分源码: private def tryRegisterAllMasters():Array[JFuture[_]] = { masterRpcAddress.map{ masterAddress => registerMasterThreadPool.submit(new Runnable{ override def

Spark消息通信原理(一)——Spark消息通信架构

[亡魂溺海] 提交于 2019-11-27 05:00:33
在Spark中定义了通信框架的接口,这些接口中调用了Netty的具体方法(在spark2.x前,使用的是Akka)。各接口和实现类的关系如下图所示。 将终端(EndPoint)注册到Rpc环境中: 在各个模块中,如DriverEndPoint、ClientEndPoint、Master、Worker等,会先使用RpcEnv的静态方法创建RpcEnv实例,然后实例化终端,由于终端都是继承与ThreadSafeEpcEndPoint,即创建的终端实例属于线程安全的,接着调用RpcEnv的启动终端方法setupEndPoint,将终端和其应用的引用注册到RpcEnv中。换句话说,其他对象只要获取终端引用,就可以与其进行通信。 以master.scala为例,startRpcEnvAndEndPoint方法中,启动消息通信框架的源码: def startRpcEnvAndEndPoint(host:String, port:Int, webUiPort:Int, conf:SparkConf):(RpcEnv, Int, Option[Int]) = { val securityMgr = new SecurityManager(conf) val rpcEnv = RpcEnv.create(SYSTEM_NAME, host, port, conf, securityMgr) val

网络通信原理

岁酱吖の 提交于 2019-11-26 17:08:59
本文参考:    http://www.cnblogs.com/linhaifeng/articles/5937962.html https://www.cnblogs.com/leiyiming/p/9358965.html 个人理解:   通信 = 连接(光缆,双绞线,无线电等)+传输数据   网络 = 介质+协议(通信规则标准)   互联网 = 一系列协议 本节导读 : CS架构 CS信息传输流程 网络模型 tcp/ip五层模型详解 socket介绍 网络通信流程 网络通信实现 一 CS架构   C指的是client(客户端软件),S指的是Server(服务端软件),我们用socket 就是为了C/S架构软件的开发,实现服务端软件与客户端软件基于网络通信。 二 CS信息传输流程   1、客户端软件产生数据,存放于客户端软件的内存中,然后调用接口将自己内存中的数据发送/拷贝给操作系统内存   2、客户端操作系统收到数据后,按照客户端软件指定的规则(即协议)、调用网卡发送数据   3、网络传输数据   4、服务端软件调用系统接口,想要将数据从操作系统内存拷贝到自己的内存中   5、服务端操作系统收到4的指令后,使用与客户端相同的规则(即协议)从网卡接收到数据,然后拷贝给服务端软件 三 网络模型   计算机与计算机之间要有统一的连接标准才能够进行通信,这个标准称之为互联网协议

网络通信原理

眉间皱痕 提交于 2019-11-26 16:56:40
本文参考:    http://www.cnblogs.com/linhaifeng/articles/5937962.html https://www.cnblogs.com/leiyiming/p/9358965.html 个人理解:   通信 = 连接(光缆,双绞线,无线电等)+传输数据   网络 = 介质+协议(通信规则标准)   互联网 = 一系列协议 本节导读 : CS架构 CS信息传输流程 网络模型 tcp/ip五层模型详解 socket介绍 网络通信流程 网络通信实现 一 CS架构   C指的是client(客户端软件),S指的是Server(服务端软件),我们用socket 就是为了C/S架构软件的开发,实现服务端软件与客户端软件基于网络通信。 二 CS信息传输流程   1、客户端软件产生数据,存放于客户端软件的内存中,然后调用接口将自己内存中的数据发送/拷贝给操作系统内存   2、客户端操作系统收到数据后,按照客户端软件指定的规则(即协议)、调用网卡发送数据   3、网络传输数据   4、服务端软件调用系统接口,想要将数据从操作系统内存拷贝到自己的内存中   5、服务端操作系统收到4的指令后,使用与客户端相同的规则(即协议)从网卡接收到数据,然后拷贝给服务端软件 三 网络模型   计算机与计算机之间要有统一的连接标准才能够进行通信,这个标准称之为互联网协议

Socket通信原理

孤街浪徒 提交于 2019-11-26 11:59:22
根据socket通信基本流程图,总结通信的基本步骤: 服务器端: 第一步:创建一个用于监听连接的Socket对像; 第二步:用指定的端口号和服务器的ip建立一个EndPoint对像; 第三步:用socket对像的Bind()方法绑定EndPoint; 第四步:用socket对像的Listen()方法开始监听; 第五步:接收到客户端的连接,用socket对像的Accept()方法创建一个新的用于和客户端进行通信的socket对像; 第六步:通信结束后一定记得关闭socket; 客户端: 第一步:建立一个Socket对像; 第二步:用指定的端口号和服务器的ip建立一个EndPoint对像; 第三步:用socket对像的Connect()方法以上面建立的EndPoint对像做为参数,向服务器发出连接请求; 第四步:如果连接成功,就用socket对像的Send()方法向服务器发送信息; 第五步:用socket对像的Receive()方法接受服务器发来的信息 ; 第六步:通信结束后一定记得关闭socket; 文章来源 小水阿哥 根据socket通信基本流程图,总结通信的基本步骤: 服务器端: 第一步:创建一个用于监听连接的Socket对像; 第二步:用指定的端口号和服务器的ip建立一个EndPoint对像; 第三步:用socket对像的Bind()方法绑定EndPoint; 第四步