Raspberry 派创造智能的家庭实地项目 -- -- 基本工厂模式(口袋、技术指导、三者之间的差异和逻辑)

      最后更新:2021-11-11 15:16

      现场视察模式是国际标准化组织(标准化组织)建立的概念模式,为连接全世界各种计算机和网络提供了一个共同框架。
      它是否将计算机网络结构分成七个层次,每个层次?对于一个抽象的体面界面来说。理解OSI模式有助于理解互联网的真正工业标准-TCP/IP协议。
      Socket, tcp,有什么区别 为什么重要?
      TCP/IP 协议协议和套接字协议之间的区别

      以下图表旨在描述各种TCP/IPs和其他协议在最初的OSI模型中的位置:
      HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMP、WOS、ENRP是使用的一些层。
      6 指XDR、ASN.1、SMB、AFP和NCP等层。
      ASAP、TLS、SSH、ISO 8327/CCIT X.225、RPC、NetBIOS、ASP、Winsock和BSD区块属于五层。
      TCP、UDP、RTP、SCTP、SPX、ATP和IL是四个转让层。
      IP、IPCMP、IGMP、IPX、BGP、OSF、RIP、IGROP、EIGRP、ARP、RAP和X.25是三个网络级别。
      2 Ethernet、Ring、HDCLC、框架中继、ISDN、ATM、IEE 802.11、FDDI、PP是数据线的例子。
      电路、无线电、光纤和鸽子是物理层的例子。

      常见的应用层协议
      在这里插入图片描述

      I. TCP/IPP接口

      1.三次握手
      SYN: 同步序列号(安全号)
      确认字符是 ACK(确认字符)。
      在这里插入图片描述
      初始握手 : 客户端发送 syn (syn=j) 到服务器, 在服务器确认前进入 SYN_ SEND 状态 ;

      当服务器进入 SYN_RECV 状态时, 它会获得同步软件包, 并且必须验证客户端的 SYN (ack=j+1) 并发送 SYN 软件包( syn=k) 或 SYN+ACK 软件包 。

      第三手握:客户端获得服务器的 SYN+ACK 软件包, 并发送确认软件包 ACK (ack=k+1) (ack=k+1), 该软件包是完整的, 客户端和服务器进入已建立状态, 以完成三次手握 。

      在握手期间交换的袋子没有数据,在三次握手后,客户和服务器正式开始发送数据。 理想的情况是,在TCP连接建立之后,TCP连接将一直保持,直到通信方自愿结束连接。

      2.四次挥手
      在这里插入图片描述
      1) 客户发送连接发布信息并停止传输数据。从报告第一部分(FIN=1)中发布数据,其序列号为FIN=1(相当于先前发送数据的最后字节加1),当客户进入FIN-WAIT-1(终止等待1)时,客户输入FIN-WAIT-1(终止1),根据TCP,即使FIN条目不包括数据,它消耗了一个序列号。

      2) 服务器接收连接发布信息,发送确认信息,即 ACK=1,ack=u+1, 并携带自己的序列号后续编号,然后服务器进入 CLOSE-WAIT (Close Waiting) 状态。 TCP 服务器告诉高级应用程序程序,客户在半闭合时向服务器方向释放,即:没有数据可发送,但如果服务器提供数据,客户仍会接收。这个状态将持续一段时间,即在 CLOSE-WAIT 状态期间。

      3) 收到服务器的确认请求后,客户进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接发布信息(服务器发送的最后数据必须在此之前收到)。

      4) 服务器完成最后数据分发后,将连接发布信息发送给客户端FIN=1,ack=u+1,由于连接是半封闭的,服务器很可能传送更多数据,假设序列号是随后的,假设服务器此时进入LAST-ACK(最后确认)状态,等待客户确认。

      5) 收到服务器的连接发布信息后,客户必须发送确认文件,确认其序列号为AK=1,ack=w+1,而其序列号为AF=u+1,在此时客户进入时间-WAIT(时间等待),请注意,TCP连接目前尚未解除,直到2*MSL(最长报告期)到期,且客户已撤回适当的TCB,才会在CLOSED状态下。

      服务器一旦收到客户的确认,即处于封闭状态。同样,TCB的退出终止了TCP连接。从可以看出,服务器在客户之前终止了TCP连接。
      当必须进行关闭程序时,客户端必须向服务器发送 FIN 软件包,服务器必须接受 FIN 软件包,并向客户端发送 ACK 软件包,因为服务器必须处理其他客户端信息,在服务器处理完其他邮件后向客户端发送 FIN 和 ACK 软件包,确认客户端的接收,并将ACK 软件包发送到服务器,并四次分离连接。

      为什么你要握手三次,如果你有联系 握手三次,如果你没有联系,握手四次?
      A:由于 SYN 连接请求在Clitend 端的服务器端端收到后可直接发送到 SYN+ACK 服务器端收到后,SYN 连接请求可直接发送到 SYN+ACK 。 ACK 报告用于回应,而SYN 报告用于同步。 但是,当连接关闭时,当服务器端收到 FIN 信息时,SOCKET 可能不会立即关闭,因此只能回复一个 ACK 信息, Clitend 可以被告知“我收到了你的FIN 。

      如果已经建立了连接,但客户意外下降怎么办?
      TCP还包含一个实时计时器,很明显,如果客户失败了,服务器就不能永远等待,浪费资源。 服务器每次收到客户请求,通常在两个小时后,服务器都会重新设定计时器,如果2小时后没有收到客户的数据,服务器就会发出检测信息,每75秒后发送一次。

      三、三、组 织 问 问 题
      3.1.1 货包(包包)概念
      Socket( socket) 是支持 TCP/IP 协议的网络通信的基本操作模块, 是网络通信过程中端点的抽象表达, 包括网络通信所需的五种信息: 连接所使用的协议、 本地主机的IP 地址、 本地程序的协议端口、 远程主机的IP 地址 以及远程程序的协议端口 。

      当应用层通过传输层传输数据时,TCP发现难以同时向多个应用程序提供和分发服务。 多端TCP连接或多个应用程序可能需要通过同一传输层。
      TCP 协议端口发送数据。 许多计算机操作系统在应用程序和 TCP/IP 协议之间提供一个接口(口袋),以便区分各种应用程序和连接。
      为了能够提供数据传输合用同一地点服务,可以利用一个层,通过Socket接口,对不同应用程序或与传输层的网络连接的通信进行区分。

      3.2 接接连接
      Socket 连接需要至少一对字符串,一个在客户端上,称为客户端套件,一个在服务器上,称为服务器套件。

      连接程序包括三个步骤:服务器监听、客户请求和连接确认。

      服务器监听 : 服务器终端设置不是在寻找特定的客户端设置, 而是在等待连接, 实时监控网络, 并预测客户的连接请求 。

      客户端请求 : 指客户端同步请求连接, 其目标就是服务器的合成。 如果要将此项合并, 客户端同步必须先指定要连接的服务器, 并给出服务器配置的地址和端口号, 然后提交连接到服务器配置的连接请求 。

      连接确认 : 响应客户对服务器终端存储接收或接收的连接请求, 设置了一条新线索, 将服务器终端连接的描述传递给客户, 并在客户核实此描述后, 双方正式建立连接 。 另一方面, 服务器侧同步 继续被窃听并接收其他客户的连接请求 。

      TCP/IP连接四号
      您可以定义在连接 Socket 时使用的传输层协议, 而 Socket 可以支持多个传输层协议( TCP 或 UDP ), 在使用 TCP 协议连接时, 这是一种 TCP 连接 。

      Socket是TCP/IP协议(程序员一级)的封装和应用。 还可以认为TCP/IP协议是传输层协议,从根本上处理如何在网络中传输数据,HTTP是应用层协议,处理如何包装数据。

      “在发送数据时,我们可以简单地使用TPCP/IP协议,但是没有应用层,数据的实质内容无法确定,如果所传送的数据要有意义,就必须使用应用层协议,有许多应用,如HTTP、FTP、TELNET等,以及界定应用层协议本身。”

      我们所说的是一连串的TCP/IP协议,Socket本身不是协议,而是可以使用TCP/IP协议的API呼叫界面。Socket与TCP/IP协议没有必需的联系。Socket编程界面是开发的,目的是也可以将其转换成其他网络协议。Socket的存在只是为了使TCP/IP亭对程序员更简便,摘取TCP/IP协议,因此是我们所知道的一些最基本的功能界面,例如创建、倾听、合同、接受、传输、读写。

      “TCP/IP只是一个协议仓库,它与操作系统的操作机制一样,必须具体实施,同时提供外部操作接口。” 正如操作系统提供标准的编程接口,如Win32编程接口, TCP/IP还将提供程序员可用于网络开发的接口,如Soseket编程接口。

      事实上,传输层的TCP是基于网络层的IP协议,而应用层的HTTP是基于传输层的TCP协议,如上所述,Socket本身不是协议,而只是为TCP或UDP的编程提供一个接口,这应该较低。

      5, HTTP 套接连
      虽然Socket连接通常是TCP连接,但通信双方都可以在连接切断之前继续将数据内容传送到对方,但在实际的网络应用中,客户对服务器连接有时需要跨越许多中间节点,如路由器、网关、防火墙等。 大多数防火墙必然会长期终止不活动连接,导致连接连接断开,因此必须告诉网络通过交叉盘问进行连接。

      另一方面,HTTP连接采用“请求-回复”战略,这不仅要求在提出请求时建立连接,而且客户必须在服务器对数据作出答复之前向服务器提出请求。

      在许多情形下,服务器必须积极向客户传输数据,并使客户与服务器数据保持实时同步。此时,如果双方创建了Socket连接,服务器可以立即将数据传送给客户;如果双方建立了HTTP连接,服务器必须等到客户发出请求后才能将数据归还客户。因此,客户定期向服务器提出连接请求,不仅保持在线,而且如果服务器有最新数据,还要“询问”服务器“询问”,然后将数据传送给客户。

      at http 协议是一项申请级协议。

      提供比较:HTTP是提供某种类型的数据封装或演示的工具;Socket是提供网络通信能力的引擎。

      两台计算机之间的联系是两个港口之间的数据通信,提供数据的确切方式由HTTP FTP等若干应用级协议确定。

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类