传输层协议有哪些(消息队列的使用场景)

2022-08-13 11:35:16 发布:网友投稿
热度:86

传输层介绍:

从通信和信息处理的角度来看,传输层为其上的应用层提供通信服务。属于沟通导向部分的最高层次,也是用户效能的最低层次。传输层位于网络层之上。它将在不同主机上的进程之间运行,并提供逻辑通信。网络层提供主机之间的逻辑通信。显然,即使网络层协议不可靠,传输层也能为应用提供可靠的服务。

传输层的效率:

1)传输层的供应和应用程序进程之间的逻辑通信。与网络层不同,网络层提供主机之间的逻辑通信。从网络层来看,通信的双方是两台主机,这两台主机的IP地址在IP数据报的报头中给出,但两台主机之间的通信实际上是应用过程中两台主机之间的通信应用。进程之间的通信也称为端到端逻辑通信。这里的“逻辑通信”是指传输层之间的通信看似是沿着度数方向传输数据,但实际上两个传输层在度数方向上并没有物理连接。

2)重用和共享。复用是指发送方的不同应用进程可以应用相同的传输层协议来传输数据。共享是指接收方的传输层在剥离报文的报头后,能够准确地将数据传递给目标应用进程。

3)传输层也需要检查收到的报文是否有错误,而网络层只审核IP数据报的报头,不检查数据部分是否有错误。

4)提供两种不同的传输协议,即面向连接的TCP和无连接的udp,但网络层无法同时实现这两种协议。

描述

UDP协议

UDP的优点:

1)UDP不需要建立收敛,所以UDP不会引入建立收敛的时延。想象一下,如果DNS运行在TCP上而不是UDP上,DNS的速度会慢很多。使用HTTP TCP代替UDP,因为可靠性对于基于文本数据的网页至关重要。

2)无连接。TCP需要在终端系统中保持连接状态。这种连接情况包括接收和发送缓冲区、拥塞、掌握、参数和序列号以及确认的参数。Udp不保护连接状态,也不跟踪这些参数,所以一些专用的应用服务器在应用UDP时一般可以支持更多的移动客户端。

3)低包头开销PCB有20B包头开销,而V只有8B开销。

4)应用层可以更好地掌握要发送的数据和发送时间。UDP没有拥塞控制,所以网络中的拥塞不会影响主机的发送有效性。一些实时应用请求以稳定的速度发送,可以容忍一些数据的丢失,但不允许大的时延,而UDP正好满足了这些应用的需求。

5)UDP常用于一次传输数据较少的网络应用,如DNS SNMP。它还将提供尽最大努力的交付,但不能保证可靠的交付。但这并不意味着应用程序对数据的请求不可靠。因此,所有保护传输可靠性的工作都必须由应用层的用户来完成。UDP是面向发送者的消息。UDP将应用层移交的消息传递给IP,不添加它们,不合并或拆分它们,但保持这些消息的边界。

TCP协议(这个很重要,请仔细阅读!!!!)

TCP的特点:

1)TCB是基于不可靠IP层的可靠数据传输协议。重要的是解决可靠、有序、不丢失、不重复传输的问题。

2)TCP是一种面向连接的传输层协议。

3)每个TCP连接只能有两个端点,每个TCP连接只能是点对点的。

4)TCP提供全双工通信,允许双方的应用进程随时发送数据。TCP连接的两端都有发送缓冲区和吸收缓冲区,用于临时存储双向通信数据。

5)TCP是面向字节流的,尽管应用程序和TCP之间的交互是一次一个数据块。然而,TCP只将应用程序提交的数据视为一系列非结构化的字节流。

TCP连接管理

1)TCP是一种面向融合的协议,所以每次TCP融合都有三个阶段:通过融合杠杆进行数据传输和融合释放。对TCP汇聚的管理是为了使传输汇聚的建立和释放正常工作。在建立TCP收敛的过程中,需要解决以下三个问题。为了让每一方都知道对方的存在,需要允许对方协商一些参数,比如最大窗口值是否应该通过窗口扩展选项、时间误差选项和服务质量来分配。

2)TCP将收敛视为最根本的抽象。每个TCP收敛都有两个端点。TCP汇聚的端点不是主机、主机的IP地址、应用进程或传输层的协议端口。TCP连接的端口称为套接字或套接字。端口拼接成IP地址,构成一组字节,每个IPTCP连接由通信两端的两个端点唯一标识,肯定了TCP连接的建立。使用客户端或服务器方法,自动发起连接建立的应用进程称为客户端,被动期待连接建立的应用进程称为服务器。

建立TCP(三次握手):

第一步,客户端的TCP向服务器的TCP发送连接请求消息段。这个特殊的消息段不包含应用层数据,报头中的SYN标志位设置为1。此外,客户机会随机选择一个起始序列号。

其次,服务器的TCP收到连接请求消息段后,向客户端发送确认是否同意建立连接的消息,并为TCP连接分配TCP缓存和变量。在确认段中,SYN ACK(确认帧)位全部设置为1(说明现在有效),确认号字段的值为X 1,服务器随机发生初始序列号确认段不同的情况,不包括应用层数据。

第三步,当客户端收到确认消息段时,也要给服务器确认,并给链接分配缓存和变量。该段的确认标志位设置为1。这个片段可以携带数据。如果不携带数据,则不会消耗序列号。

成功执行上述三个步骤后,建立TCP连接,然后可以传输应用层数据。TCP提供全双工接入,因此双方的应用进程可以随时发送数据。另外,值得注意的是,服务器的资源是在第二次握手完成时分配的,而客户端的资源是在三次握手完成时分配的,这使得服务器容易受到SYN泛洪攻击。

释放TCP连接(第四次握手)

TCP连接中涉及的两个进程中的任何一个都可以终止连接。TCP连接释放的过程通常称为四次握手。

第一步,客户端计算关闭连接时,向TCP发送连接,释放报文段并停止发送数据,自动关闭连接报文段的TCP的FIN状态。设置为1,等于先前传输数据的最后一个字节的序列号。1 TCP是全双工的,可以想象一个TCP连接上有两条数据路径。发送FIN消息时,发送FIN的一端不能再发送数据,其中一条数据路径关闭,但另一端仍然可以发送数据。

第二步,服务器收到连接释放报文段后发送确认,该报文段的序号使V等于其之前传输的数据最后一个字节的序号加1。此时,从客户端到服务器的连接被释放。TCP连接处于半封闭状态,但如果服务器发送数据,客户端仍然需要吸收服务器到客户端的链路,并不是封闭的。

第三步,如果服务器没有数据发送给客户端,通知TCP释放连接,此时发出FIN=1的连接释放消息段。

第四步,客户端收到连接并释放报文段后,必须发送确认,然后确认报文段中的ACK字段设置为1。此时TCP连接还没有释放,时间期望定时器设置的时间必须经过,2MSL才能进入连接关闭状态。

TCP可靠传输

TCP的义务是基本上通过IP层不可靠的努力,为服务建立可靠的数据传输服务。TCP提供的可靠数据传输服务保证了接收方的进程,从缓冲区读取的字节流和发送方发送的字节流一样完整。TCP应用检查、序列号、确认和重传等机制来实现这一目标。TCP的验证机制与UDP验证相同。

有两件事会导致TCP重传超时和冗余确认。

超时:每次TCP发送一个消息段,它必须为这个消息段设置一个定时器。计时器设置的重传时间到期,但该段将在收到确认之前重传。

冗余确认:重传的问题是超时周期通常太长。简单来说,发送方通常可以在超时事件发生之前,通过关注所谓的冗余ACK来检测丢包。冗余确认是为了再次确认某个数据段的确认发送方之前已经收到了该数据段的确认。

TCP流量控制:

提供TCP流量控制服务是为了清除发送方溢出接收方缓冲区的可能性,所以可以说流量控制是一种速度匹配服务,简单来说就是。送的东西太多了。吸收太慢,无法匹配。传输层和数据链路层的流量控制的区别在于,传输层定义了端到端用户之间的流量控制,而数据链路层定义了中间两个对应节点的流量控制。此外,数据链路层滑动窗口协议的窗口大小不能动态改变,但传输层可以动态改变。

TCP拥塞控制:

拥塞控制是指防止过多的数据注入网络,使网络中的路由器或链路不会过载。当拥塞发生时,端点不知道拥塞的细节。对于通信连接的端点,拥塞往往表现为通信时延的增加。当然,拥堵控制和交通控制有相似之处。他们都通过控制发送者发送数据的速率来控制后果。

拥塞控制与流量控制的区别:拥塞控制是使网络能够承受现有网络负载的全局过程,涉及所有主机、所有路由器以及与网络传输性能下降相关的所有因素。相反,流量控制往往是掌握和吸收该点流量的导向。掌握发送方要做的永远是发送方发送数据的速度,这样接收方才能及时吸收。

先简单说一个掌握比赛的算法。很简单。请看图片。

这一章的总结很难:

1)为什么不握手两次来建立凝聚力?

这对于防止在两次握手突然被传输到服务器的情况下失败的连接请求消息段的失败是重要的。考虑以下情况:客户端A向服务器b发送TCP连接请求的第一个请求,消息在网络上的某个节点停留了很长时间,A认为超时后消息丢失,所以再次重传。收到消息后,B建立连接。数据传输后,双方断开连接,此时之前滞留在网络中的连接需要到达服务器B,B以为A再次发送连接请求。如果此时应用三次握手,那么B将向A返回一个确认消息段。由于这是一个无效的请求,A将忽略它,并且无法建立连接。如果采用两次握手,这种情况下,B认为传输连接已经建立,一直期待A传输数据,而A此时没有连接要求,所以忽略了,造成B的资源浪费。

2)为什么不用三次握手释放连接,发送最后一次握手消息期待2MSL?

原因有二:(面试问不完)

1)保证A发送的最后一个确认段可以到达b,如果A不期待2MSL,如果A返回的最后一个确认段丢失,将无法进入正常关闭状态,此时关闭将无法重传。

2)防止出现“无效连接请求报文段”a .发送完最后一个确认报文段后,2MSL可以保证在这个连续时间内发生的所有报文从网络中消失,导致的问题与下面描述的类似,无需两次握手即可建立连接。

服务器停止TCP连接的时间比客户端早,因为客户端在最后等待2MSL后就可以进入CLOSED状态(简称TCP closed状态)。

假设在一个互联网中,所有服务的传输都没有错误,所有节点都不会产生故障诗。在这种情况下,可靠交付TCP的功效是否过剩?

1)每个IP数据包都是独立路由的,因此到达目的主机时可能会出现故障。

2)由于路由计算的出现,IP包在互联网中盘旋,最后在包的头部生存时间的值降到零,包在中途丢失。

3)路由器突然有大量流量,导致路由器没有时间处理到达的数据包,所以丢弃了一些数据包。

这说明有必要依靠TCP可靠的传递效率,可以保证准确的消息被目标主机的目标进程吸收。

下一篇:传媒有哪些专业(南昌市朝阳中学传媒班学费)
上一篇:低于50万散户如何做空(散户如何做空a股)