从发送请求到建立安全连接的逐步解读
一、引言
在互联网时代,我们每天都在与各种电子设备、应用程序进行交互,无论是浏览网页、在线购物,还是使用社交媒体,都需要通过发送请求和接收响应来完成。
在这个过程中,建立一个安全连接是至关重要的。
本文将详细解读从发送请求到建立安全连接的整个过程,以及网络拓扑结构在这一过程中所扮演的角色。
二、发送请求
1. 用户发起请求:用户在应用程序或浏览器中输入URL或其他请求信息,点击“提交”或“访问”等按钮,从而发起一个请求。
2. 应用程序/浏览器处理请求:应用程序或浏览器接收到用户输入的信息后,会对请求进行初步处理,如检查输入数据的合法性、生成请求报文等。
三、网络拓扑结构
在发送请求和建立安全连接的过程中,网络拓扑结构起到了关键的作用。
网络拓扑结构是指网络中的设备(如计算机、路由器、交换机等)和连接这些设备的线路(如有线、无线等)所构成的几何形状。
常见的网络拓扑结构包括星型、树型、网状、环型等。
在互联网应用中,通常采用星型或网状拓扑结构。
在星型拓扑结构中,所有设备都连接到一个中心设备上,如服务器或路由器。
在发送请求时,用户的设备(客户端)会向服务器发送请求,服务器处理请求后再将响应发送回客户端。
这种拓扑结构简单易管理,适用于大多数互联网应用。
而在网状拓扑结构中,设备之间通过多个连接相互通信,没有明确的中心设备。
这种拓扑结构具有较高的灵活性和可扩展性,适用于大型网络。
四、建立安全连接
1. DNS查询:当用户在浏览器中输入URL后,浏览器会向DNS服务器发起查询,以获取目标服务器的IP地址。
2. TCP三次握手:浏览器在获取IP地址后,会与服务器进行TCP三次握手,以建立TCP连接。这三次握手的过程是:服务器发送同步信号给客户端,客户端回应并携带自己的同步信号,最后服务器确认客户端的同步信号并确认连接建立。
3. HTTPS协议:为了确保数据传输的安全性,现代网络大多采用HTTPS协议进行通信。HTTPS是HTTP的安全版本,通过在HTTP下加入SSL/TLS协议来实现数据的加密传输。在建立TCP连接后,客户端和服务器会进行SSL/TLS握手,协商加密方法和密钥,以确保数据在传输过程中的安全性。
4. 响应处理:服务器在收到请求后,会处理请求并生成响应。响应会通过已建立的TCP连接传回客户端,客户端在接收到响应后进行解析和展示。
五、总结
从发送请求到建立安全连接的过程涉及到用户操作、应用程序/浏览器处理、网络拓扑结构、DNS查询、TCP三次握手、HTTPS协议等多个环节。
在这个过程中,网络拓扑结构起到了连接设备和线路的作用,确保请求能够发送到目标服务器并接收响应。
同时,为了确保数据传输的安全性,还需要采用HTTPS等加密协议进行通信。
通过对这一过程的深入了解,我们可以更好地理解和使用互联网应用,确保网络安全和数据安全。
TCP/IP三次握手是如何实现的
在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状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的概念:未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(syn=j)开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包。 这些条目所标识的连接在服务器处于Syn_RECV状态,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态。 Backlog参数:表示未连接队列的最大容纳数目。 SYN-ACK 重传次数 服务器发送完SYN-ACK包,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户确认包,进行第二次重传,如果重传次数超过系统规定的最大重传次数,系统将该连接信息从半连接队列中删除。 注意,每次重传等待的时间不一定相同。 半连接存活时间:是指半连接队列的条目存活的最长时间,也即服务从收到SYN包到确认这个报文无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。 有时我们也称半连接存活时间为Timeout时间、SYN_RECV存活时间。
户内布放网线需要认证吗? 就是现在光纤到户后,光猫以后的用户网络布线需要认证测试吗?
这个说严格电属于弱电工程一部分,如果是自己家里,后面自己接个无线路由器就好了,有线无线都搞定,不用这么麻烦。
请问游戏公司的MQ是什么职位啊
IBM WebSphere MQ 简介和概述在开始之前,让我们先来确定使用 WebSphere MQ 解决的业务问题的种类,并了解 WebSphere MQ 如何能够帮助您满足业务要求。 问题:自动化孤岛在大多数业务中,业务的信息技术 (IT) 基础结构中存在许多不同的技术。 系统由这些来自许多供应商的不同的技术组成,并且具有不同的硬件平台、编程语言、操作系统和通信链路。 通常,连接不同的系统非常复杂并且可能代价高昂,所以许多系统之间都相互隔离。 目前,越来越多的业务还需要以电子的方式与其客户和供应商进行通信,而这些客户和供应商可能比该业务本身使用了更多不同的技术。 因此,需要某种简便的、廉价的和可靠的机制用来连接这些异类的系统(“自动化孤岛”),以便在内部和外部对业务的 IT 基础结构进行集成。 解决方案:WebSphere MQ通过提供一种程序到程序的通信方式,WebSphere MQ 非常适合于上面所描述的环境。 图 1 显示了这种通信方式的基本机制。 图 1. 程序到程序的通信程序 A 准备好一条消息,并将其放入队列。 然后,程序 B 从该队列中获取消息,并对其进行处理。 这两个程序都使用一种应用程序编程接口 (API) 与该队列进行交互。 WebSphere MQ API 称为消息队列接口 (MQI)。 任何一个程序都无需了解对方的存在,并且这两个程序无需同时执行。 如果程序 A 在程序 B 尚未执行的时候将一条消息放入队列,那么该队列将存储这条消息,直到程序 B 开始执行并准备处理这条消息。 类似地,当程序 B 从队列中检索消息时,程序 A 可能已经不再处于执行状态。 应用程序设计使用 WebSphere MQ 提供的基本通信机制,可以进行同步和异步的应用程序设计。 在同步的应用程序设计中,如图 2 所示,假定同时执行这两个应用程序。 程序 A 向队列 1 发送一条消息并等待应答。 程序 B 检索得到该消息,并对它进行处理,然后将应答消息发送到队列 2 中,以便程序 A 进行检索。 在使用 WebSphere MQ 设计应用程序时,通常每个程序使用不同的队列向其他程序发送消息。 虽然这不是必需的,但这样可以提供更简单的应用程序设计和编程逻辑。 另外请记住,这里假定两个程序同时执行。 如果当程序 A 发送消息时,程序 B 没有执行,那么程序 A 将阻塞,直到程序 B 启动并对消息进行处理。 这是同步应用程序通信中的设计问题。 图 2. 同步应用程序设计在异步应用程序设计中,如图 3 所示,程序 A 再次将消息放到队列 1,以便程序 B 对其进行处理,但现在,程序 C 与程序 A 进行异步地操作,它检索消息并对其进行处理。 通常,程序 A 和程序 C 是相同应用程序中的不同部分。 图 3. 异步应用程序设计对于 WebSphere MQ 来说,异步设计是一种非常合适的模型。 程序 A 将消息放到队列中,并继续执行,即使程序 B 并不对这些消息进行处理,也是如此。 在这种情况下,队列将存储这些消息,直到程序 B 重新启动。 这种模型有一种变种,即程序 A 将一条或多条消息放到队列中,并继续进行其他的处理,然后返回来检索和处理应答消息。 程序之间的这种通信方式称为消息传递。 它与其他通信方式(如对话式的通信或调用和返回通信)的不同之处在于,进行通信的程序之间具有时间独立性。 程序接收消息作为输入,并输出其结果作为消息,而不需要同时运行发送或接收程序。 队列管理器和 MQIWebSphere MQ 中的队列由队列管理器 所拥有并进行管理。 队列管理器还为应用程序提供了 MQI API,允许它们访问队列以及其中包含的消息。 MQI 在 WebSphere MQ 支持的所有平台中保持一致,并对应用程序隐藏了队列管理器的实现细节。 MQI 中有 8 种主要的调用:MQCONN——连接到队列管理器MQCONNX——使用连接选项连接到队列管理器MQDISC——断开与队列管理器的连接MQOPEN——打开队列以便进行访问MQCLOSE——关闭访问的队列MQPUT——将一条消息放入队列MQGET——从队列中获取一条消息MQPUT1——打开队列,放入一条消息,然后关闭该队列MQI 中有 5 种次要的调用:MQBEGIN——开始一个工作单元MQCMIT——提交一个工作单元MQBACK——回滚一个工作单元MQINQ——查询 WebSphere MQ 对象(队列是一种 WebSphere MQ 对象,队列管理器是另一种对象)的属性MQSET——设置 WebSphere MQ 对象的属性消息WebSphere MQ 中的消息包含两个部分:WebSphere MQ 使用的 Header 和应用程序数据。 图 4 显示了一条 WebSphere MQ 消息。 图 4. WebSphere MQ 消息应用程序数据可以包含任何字节序列。 它是使用 WebSphere MQ 与其他应用程序进行通信的应用程序所私有的,并且对 WebSphere MQ 没有什么意义。 对于应用程序数据的内容没有任何限制,但不同的平台所允许的消息的最大长度有所不同。 在大多数系统中,最大长度为 100MB,但有些系统的最大长度为 4MB。 消息中可能包含各种各样的 Header,但所有的消息都包含一个称为消息描述符 (MQMD) 的 Header。 其中包含了关于该消息的控制信息,队列管理器和接收应用程序将使用到这些控制信息。 稍后将提供关于 MQMD 和其他 Header 的更详细的信息。 本地和远程队列队列管理器可以位于相同或不同的计算机上,它们可以彼此通信,并在不同队列管理器的队列之间传递消息。 队列管理器为消息提供了可靠的传递。 例如,当应用程序将消息放入到队列中时,队列管理器将确保消息的存储是安全的、可恢复的,并向接收应用程序传递一次且仅传递一次,即使必须将消息传递到另一个队列管理器所拥有的队列,也是如此。 当应用程序打开队列时,应用程序所连接的队列管理器将确定该队列是队列管理器所拥有的本地 队列,还是由另一个队列管理器所拥有的远程 队列。 对于本地队列,直接将消息放入到该队列。 如果队列是远程的,那么队列管理器将消息放到一个称为传输 队列的特殊队列。 然后,消息通道代理 (MCA) 从传输队列中获取消息,并将其通过网络发送到接收端的 MCA。 接收 MCA 将该消息放到目标 队列。 在将消息放到目标队列中之后,便将其从传输队列中删除。 消息流在队列管理器之间可以是双向的,如图 5 中所示。 图 5. 发送消息如果接收 MCA 不能将该消息放到目标队列中,那么将根据消息描述符中的选项对其进行处理。 可能将其放到死信 队列,也可能将其返回给发送者,甚至将其丢弃。 通过这种在队列管理器之间传递消息的能力,WebSphere MQ 提供了两种重要的优点:应用程序开发人员不需要了解网络的详细信息。 MCA 可以使用各种网络和通信协议与其他的 MCA 相互通信,并且甚至可以在一段时间之后更改所使用的协议。 但是,应用程序开发人员仅需要了解与队列管理器通信所需的 MQI 调用。 仅需要建立更少的通信链路。 许多应用程序使用一个队列管理器,它们可以与使用另一个队列管理器的应用程序通信,但是在一对 MCA 之间只需要一条通信链路。 设计可能性现在您已经比较清楚地了解了 WebSphere MQ 的工作方式,即使仅仅是在概略的层次上,下面让我们来看看在使用 WebSphere MQ 设计系统时,应用程序设计的可能性。 并行处理要完成总体的业务事务,应用程序可能需要执行多项任务。 例如,旅行社可能需要预定航班、预订酒店房间和预订出租车。 使用 WebSphere MQ,可以将请求消息放到为航班预定系统、酒店预订系统和轿车出租应用程序提供服务的 3 个队列中。 每个应用程序都可以与其他两个应用程序并行地执行自己的任务,然后将应答消息放到旅行社应用程序提供的队列中。 在收到这 3 个应答之后,旅行社应用程序可以生成综合的旅行路线。 这种并行处理的方式可以极大地提高整体性能。 客户端/服务器处理另一种应用程序设计方案是客户端/服务器处理。 在这种情况下,一台服务器仅使用一个队列接收来自多个客户端应用程序的消息。 每个请求消息的消息描述符可以指定一个应答队列。 在服务器完成对消息的处理之后,它将应答消息发送到消息描述符中指定的应答队列,这样可以使得每个客户端应用程序相对于其他客户端应用程序独立地接收到其应答消息。 消息描述符中还有一个包含消息标识符的字段。 应答消息的消息描述符可以包含对应的请求消息的标识符。 这样做使得客户端应用程序可以在应答消息和以前发送的请求消息之间进行关联。 要使用客户端/服务器处理来提高应用程序的性能和可靠性,可以使用多个服务器应用程序实例为同一个请求队列服务。 触发WebSphere MQ 可以在消息放入到队列中以及某些条件满足时,启动一个应用程序。 这称为触发。 下面是触发的工作方式:程序将消息放入到支持触发的队列中。 如果触发的条件满足,则发生触发事件。 队列管理器检查应用程序队列所引用的进程对象。 该进程对象指定了需要启动的应用程序。 队列管理器创建包含关于进程对象和队列的信息的触发消息。 将该触发消息放到启动队列。 由一个称为触发监视器 的程序负责检索消息,并启动合适的应用程序,将触发消息的信息传递给这个应用程序。 当第一次将消息放到队列中时、当队列中包含的消息达到某个数目时、或者每次将消息放到队列中时,都可能发生触发事件,尽管最后这种情况通常不推荐使用。 数据完整性有些应用程序使用会话式的程序到程序的通信方式,以使用两段式提交协议来支持分布式工作单元的实现,如图 6 中所示。 图 6. 同步分布式工作单元这种功能仅在下面的情况下需要使用,业务要求在任何时刻都必须非常精确地维护两个分布式数据库之间的一致性。 在实际中,这种类型的需求很少出现。 当这种需求的确存在时,单个分布工作单元可能使用许多资源,并且变得非常复杂,尤其是当涉及到许多处理时。 WebSphere MQ 提供了一种更简单的解决方案,使得多个工作单元可以异步执行,如图 7 中所示。 图 7. 异步分布式工作单元第一个应用程序写入数据库,将包含对其他系统中的第二个数据库进行更新所需数据的消息放到队列中,然后提交对这两种资源的更改。 因为该队列是远程的,所以消息仅进入第一个工作单元的传输队列。 第二个工作单元包含发送 MCA 从传输队列中获取该消息,并将其发送给接收 MCA,而后者负责将该消息放到目标队列。 在第三个工作单元中,第二个应用程序从目标队列中获取该消息,并使用该消息中包含的数据对数据库进行更新。 工作单元 1 和 3 的事务完整性,加上工作单元 2 中由 WebSphere MQ 提供的消息的一次且仅一次的可靠传递,从而确保了整个业务事务的完整性。 安全性WebSphere MQ 中的安全特性包括:队列管理器可检查某个用户是否经过授权可以提交管理队列管理器的命令。 队列管理器可检查某个用户或应用程序是否经过授权可以在指定的操作中访问 WebSphere MQ 资源,如队列。 在允许 MCA 之间进行消息通信之前,MCA 可以对合作伙伴 MCA 进行身份验证。 可以在 MCA 发送消息之前对其进行加密,然后在接收到该消息之后再对其进行解密。 消息描述符可以包含用户 ID 和关于消息发出者的其他信息。 这种信息称为消息上下文,它可以用来对消息进行身份验证,并检查该消息的发送者是否经过授权可以访问接收系统中的 WebSphere MQ 资源。 WebSphere MQ 客户端WebSphere MQ 客户端可以安装在没有运行队列管理器的系统中。 客户端可以将在同一系统中运行的应用程序作为 WebSphere MQ 客户端,以连接到运行于另一个系统中的队列管理器,并向该队列管理器发出 MQI 调用。 这种应用程序称为 WebSphere MQ 客户端应用程序,而这种队列管理器称为服务器队列管理器。 图 8 显示了这种配置。 图 8. 客户端和服务器之间的链接WebSphere MQ 客户端应用程序和服务器队列管理器使用 MQI 通道 实现彼此之间的通信。 当客户端应用程序发出 MQCONN 或 MQCONNX 调用时启动 MQI 通道,当客户端应用程序发出 MQDISC 调用时结束该通道。 要使 WebSphere MQ 客户端进行有效地处理,需要快速的和可靠的同步通信连接。 WebSphere MQ Framework用户和软件供应商可以使用已定义的接口来扩展或替换队列管理器功能。 WebSphere MQ Framework 提供了这样的接口。 WebSphere 允许对各种功能进行修改,以便:提供选择是否使用 WebSphere MQ 所提供的组件、或对其进行替换、或使用其他的组件对其进行扩充的灵活性。 允许独立的软件供应商通过提供其他新技术所使用的组件,从而参与其中,无需对 WebSphere MQ 内部的内容进行更改。 允许 WebSphere MQ 更快地利用各种新技术,从而更迅速地提供相关产品。 WebSphere MQ Framework 中的组件包括:触发监视器接口 (TMI)消息通道接口 (MCI)名称服务接口 (NSI)安全支持接口 (SEI)数据转换接口 (DCI)
