精华内容
下载资源
问答
  • 端到端协议

    千次阅读 2016-04-24 10:32:36
    端到端协议 第五章从前几章研究的主机到主机的分组传递服务到转向进程到进程之间的通信信道,这正是网络体系结构中传输层(transport)的任务,由于它支持端点应用程序之间的通信,因此传输层协议有时也被称为端到端...

    端到端协议 第五章

    从前几章研究的主机到主机的分组传递服务到转向进程到进程之间的通信信道,这正是网络体系结构中传输层(transport)的任务,由于它支持端点应用程序之间的通信,因此传输层协议有时也被称为端到端(end to end)协议。

    因特网提供尽力而为(best-effort)的服务,为满足应用程序所需的高级服务,不同传输层协议用于不同的算法组合。代表性的4种有:一个简单的异步多路分解服务,一个可靠的字节流服务,一个请求/应答服务和一个用于实时应用的服务。

    5.1 简单的多路分解协议 (UDP)

    可能最简单的传输协议是把下层网络的主机到主机的传递服务扩展到进程到进程的通信服务。任何主机上都有可能运行多个进程,因此该洗衣至少需要增加一个多路分解功能,以便每台主机上的多个进程能够共享网络。除此之外,传输协议不再下层网络提供的服务增加任何其他功能。因特网提供的用户数据报协议(User Datagram Protocol),就是这样的传输协议。

    值得注意的是标识目的进程的地址形式(可以用操作系统赋予的进程标识符pid使进程之间直接地相互识别,但无法扩展至多个不同的系统),UDP采用的方式是使用一个称谓端口port的抽象定位器,使进程之间能够间接的相互识别。基本思想是源进程向端口发送消息而目的进程从端口接收消息。 <主机,端口>构成了UDP协议的多路分解密钥。

    如何相互知道进程端口号? 策略是服务器进程在一个知名端口well-known port接收消息,即知名端口只有一个。有时候,知名端口仅仅是通信的开始点:客户机和服务器用这个端口达成一致,并在另外一个端口进行后续的通信,以便释放知名端口给其他客户进程使用。

    一般来说一个端口是由一个消息队列实现的,当一个消息到达时,协议会把该消息加到队列的末尾,如果队列满了,消息会被丢弃。这里并没有让发送发减慢发送速度的流量控制机制。

    虽然UDP没有实现流量控制或可靠的/有序的传输,但它不仅仅是简单地把消息多路分解给某个应用进程,而是多做了工作,通过在首部中的校验和部分进行校验确保消息的正确性。

    5.2 可靠的字节流 Transmission Control Protocol

    TCP能保证可靠的,有序的字节流传输,它是全双工协议,也就是说每个TCP连接直接一对字节流,每个方向上一个字节流,他还有流量控制机制,另外,像UDP一样,TCP支持多路分解机制。此外,TCP也实现了一个高度调整的拥塞控制机制,这种机制的思想是控制TCP发送方发送数据的速度,其目的不是为了防止发送方发出的数据超出方的接收能力,而是防止发出方发出的数据超出网络的容量。

    流量控制与拥塞控制的区别 流量控制防止发送方发出的数据超出接收方的接收能力,拥塞控制防止过多的数据注入网络而造成交换机或链路超载。因此流量控制是一个端到端的问题,而拥塞控制则是主机如何同网络交互的问题。

    5.2.1 端到端的问题

    TCP的核心是滑动窗口算法。因为TCP是在整个因特网上而不是在一个点到点链路上运行,所以它们存在着很多重要的差别。 在连接建立阶段发生的事件之一,是双方建立某种共享状态使滑动窗口算法开始运行。连接断开阶段是必要的,因为只有这样双方主机才知道是释放这种状态的时候。

    TCP连接与点到点链路连接的区别

    1. 第二章描述的滑动窗口算法运行在总是连接两台计算机的一条物理链路上,但TCP仍然支持运行在因特网中任意两台计算机上的进程之间的逻辑连接。
    2. 尽管来连接两台相同的计算机的一条物理链路具有固定的RTT,但是TCP连接很可能具有差异很大的往返时延。
    3. 分组通过因特网时可能重排序,这在点到点链路上是不可能的,因为在链路一段先发送的分组一定先到达另一端。
    4. 连接点到点链路的计算机通常被设计成支持这种链路。流量控制问题
    5. 因为一个直连链路的发送方不能以超出链路带宽所允许的速率发送数据,而且只有一台主机向链路注入数据,所以它不可能不知道链路拥塞。但是TCP并不知道。

    在TCP中,下层IP网络被认为是不可靠的,而且会使传递消息错序,TCP在端到端的基础上利用滑动窗口算法提供可靠/有序的传送。

    5.2.2 报文段格式

    TCP是面向字节的协议,这就是说发送方向一个TCP连接写入字节,接收方从这个TCP连接读出字节。

    实际上,源主机上的TCP收集发送进程交付的字节,存储到缓冲区中,积累到足够的数量,将其一起放入一个大小适宜的分组,再发送给目的主机上的对等实体。目的主机上的TCP把这个分组的内容存入一个接收缓冲区,接收进程在空闲时从这个缓冲区读出字节。

    5.2.3 连接的建立和终止

    注意,尽管连接的建立是一个非对称的活动(一方执行被动打开而另一方执行主动打开),但是连接的断开则是对称的活动(每一方必须独立的关闭连接)。因此有可能一方已经完成了关闭连接,意味着它不再发生数据,但是另一方却仍保持双向连接的另一半为打开状态并且继续发生数据。

    三次握手

    TCP使用的建立和终止连接的算法称为”三次握手”(three-way handshake),指客户机和服务器之间要交换三次消息。

    算法的思想是双方需要商定一些参数,在打开一个TCP连接的时候,参数就是双方打算为各自的字节流使用的开始序号。首先,客户机(主动参与方)发送一个报文段给服务器(被动参与方),声明它将使用的初始序号(Flags = SYN,SequenceNum=x),服务器用一个报文段响应确认客户端的序号(Flags = ACK,Ack= x+1),同时声明自己的初始序号(Flags=SYN,SequenceNum=y),最后,客户机用第三个报文段响应,确认服务器的序号(Flags = ACK,Ack=y+1)。每一段的确认序号比发送来的序号大一的原因是Acknowledgment字段实际指出”希望接收的下一个序号”,从而隐含地确认前面所有的序号。前两个报文段都使用计时器,如果没有收到所希望的应答,就会重传报文段。

    TCP规范要求连接的每一方随机地选择一个初始序号,是为了防止同一个连接的两个实例过快地重复使用同一个序号,也就是说,仍旧有可能出现以前的连接实例的一个数据段干扰后来的连接实例的情况。

    状态转换

    初始都为closed,客户端主动打开并发送SYN信号,客户端进入SYN_SENT,服务器端被动打开进入LISTEN状态,之后当服务器端收到客户端发来的SYN,进入SYN_RCVD状态并发送SYN+ACK报文段响应,这个报文段到达客户端后,会使客户端进入ESTABLISHED状态并向服务器发送一个ACK报文段,当这个报文段到达后,服务器转移到ESTABLISHED。到此结束三次握手的状态转换。

    5.2.4 滑动窗口再讨论

    TCP窗口算法服务于这样三个目的

    1. 保证数据的可靠传递
    2. 确保数据的有序传递
    3. 增强发送方和接收方之间的流量控制。

    TCP与以前算法不同之处在于增加了流量控制功能,特别是TCP并不使用一个固定尺寸的滑动窗口,而是由接收方向发送方通知(advertise)它的窗口尺寸。这是通过TCP首部的AdvertisedWindow字段完成。接收方根据分配给连接用于缓存数据的内存数量,为AdvertisedWindow选择一个合适的值。

    可靠和有序的传输

    发送方的TCP维护一个发送缓冲区,该缓冲区用来存储那些已被发出但未被确认的数据和已被发送应用程序写入但未发出的数据。在接收方,TCP维护一个接收缓冲区,存放那些到达的错序数据和那些按正确顺序到达但应用进程无暇读出的数据。

    发送方缓冲区维护3个指针 LastByteAcked,LastByteWritten,LastByteSent

    同样,接收方缓冲区也维护着3个指针 LastByteRead,NextByteExpected,LastByteRcvd

    流量控制

    缓冲区具有有限的大小。接收方通过给发送方通知一个不大于他所能存储数据量的窗口,就能控制发送方的发送速率。 TCP只会当接收到报文段时发出一个报文段回应,这个响应包含AcknowledgmentAdvertisedWindow字段的最新值,即使这两个值自上次发送以来没有改变。问题就在于此,当窗口为0后,就不允许发送方发送任何数据,就意味着它没办法发现在将来的某个时刻通知窗口不再是0.接收方的TCP不会自发的发送不包含数据的报文段,他只在响应到达的报文段时发送他们。 TCP按如下方式处理这种情况,当窗口为0时,发送方仍然坚持不停的发送一个只有1字节的报文段。

    发送方周期性的发送探测报文段的原因是:TCP被设计成使接收方尽可能的简单,即他只响应从发送方发来的报文段,而它字节从不发起任何活动。我们称其为聪明的发送方/笨拙的接收方(smart sender/dumb receiver)规则。

    5.2.5 触发传输

    TCP有三种机制触发一个报文段的传输。

    1. TCP维护着一个变量,称为最大报文段长度(MSS),一旦TCP从发送进程收集到MSS个字节,它就发送一个报文段,通常把MSS设置为TCP能发送而且不造成本地IP分段的最大报文段长度,也就是说,MSS被设置成直接连接网络的MTU减去TCP和IP的首部的大小。
    2. 发送进程明确要求TCP发送一个报文段,特别是TCP支持push操作,发送进程调用这个操作能使TCP将缓冲区中所有未发送的字节发送出去,
    3. 定时器激活,结果报文段中包含当前缓冲区中所有需要被发送出去的字节,

    傻瓜窗口症状

    一味地利用任何可用窗口的策略会导致现在称作傻瓜窗口症状的情形。 所有问题又回到了:发送方决定什么时候才传输一个报文段?

    Nagle算法引入了一种完美的自计时(self-clocking)方案,其思想是只要TCP发出了数据,发送方终究会收到一个ACK,可以把这个ACK看成激活的定时器,触发传输更多的数据。 Nagle提供了一条决定何时传输数据的简单统一规则:如果窗口大小允许,就可以发出一个满载的报文段。如果当前没有处于传输中的报文段,也可以立即发出一个小报文段,但是如果有传输的报文段,发送方就必须等待有ACK到达才可传输下一个报文段。

    5.2.6 自适应重传

    由于TCP保证可靠的数据传输,所有如果在一定的时限内没有收到ACK,那么它就会重传每个报文段。TCP把这个超时设置成它期望的连接两端的RTT函数。选择一个合适的超时值并不容易。为了处理这个问题,TCP使用了一种自适应重传机制。

    原始算法

    维持一个RTT的平均运行值,并把超时值作为这个RTT的一个函数计算。

    Karn/Partridge算法

    原始算法有个明显的缺陷,问题是ACK实际上并不确认一次传送,它实际上确认数据的接收,无法确定收到的ACK是针对第一个报文段还是第二个重发的报文段。 解决办法相当简单,当TCP重传一个报文段时,停止计算RTT的样本值,它只为仅发送一次的报文段测量。同时对TCP重传机制做了一个小修整。每次TCP重传,它设置下次的超时值为上次的两倍。

    展开全文
  • 由于它支持端点应用程序之间的通信,因此,传输层协议有时也称为端到端协议。两种因素促成了端到端协议的形成,从其上层看,需要使用传输层服务的应用层进程有一些特殊的需求,下面列出了希望传输层能提供的一些常用...

    传输层的任务:进程到进程的通信。由于它支持端点应用程序之间的通信,因此,传输层协议有时也称为端到端协议。

    两种因素促成了端到端协议的形成,从其上层看,需要使用传输层服务的应用层进程有一些特殊的需求,下面列出了希望传输层能提供的一些常用的特性:

    1.确保消息成功传输。

    2.消息按序传输。

    3.最多传送每个消息的一个副本。

    4.支持任意大的消息。

    5.支持发送方与接收方之间的同步。

    6.允许接收方对发送方进行流量控制。

    7.支持每台主机上的多个应用程序。

    ......

    从其下层看,传输层协议赖以运行的下层网络所能提供的服务能力有某些限制。其中比较典型的下层网络可能会:

    1.丢弃消息。

    2.使消息乱序。

    3.传送一个消息的多个副本。

    4.限制消息的大小。

    5.在任意长延迟后才发送消息。

    这样的网络被称为是提供尽力而为的服务,因特网就是这样一个网络的一个实例。

    简单多路分解协议UDP:

    最简单的传输协议是把下层网络的主机到主机的传递服务扩展到进程到进程的通信服务,任何主机上都可能运行多个进程,因此该协议至少需要增加一个多路分解功能,以便每台主机上的多个进程能够共享网络,除此之外,传输协议不再向下层网络提供的尽力而为的服务增加任何其他功能。因特网提供的用户数据报协议(UDP)就是这样的传输协议。

    在这样的一个协议中,唯一值得注意的问题是用来标识目的进程的地址形式,使用一个称为端口的抽象的定位器,使进程之间能够间接地相互识别,基本思想是,源进程相端口发送消息而目的进程从端口接收消息。

    实现该多路分解功能的端到端协议的首部通常包含消息的发送方(源)和接收方(目的)的标识符(端口)。进程通过特定主机上的某个端口(即一个对)标识的。实际上,这个对构成了UDP协议的多路分解密钥。

    一个发送进程如何知道接收进程的端口号?服务器进程在一个知名端口接收消息,就是说,每个服务器进程在某个固定的广为公布的端口接收消息。

    可靠的字节流TCP:

    提供可靠的、面向连接的字节流服务。全双工协议,也就是说,每个TCP连接支持一对字节流,每个方向一个字节流,对这两个字节流中的每个流,它还包含一个流量控制机制,允许接收方限制发送方在给定时间内发送多少数据。另外,TCP支持多路分解机制,允许任何主机上的多个应用程序同时与它们各自的对等实体进行对话,此外,TCP也实现了一个经过高度调整的拥塞控制机制,这种机制的思想是控制TCP发送数据的速度,其目的不是为了防止发送方发出的数据超出接收方的接收能力,而是防止发送方发出的数据超出网络的容量。

    流量控制防止发送方发出的数据超出接收方的接收能力;拥塞控制防止过多的数据注入网络而造成交换机或链路超载。因此,流量控制是一个端到端的问题,而拥塞控制是主机如何同网络交互的问题。

    1.端到端的问题:

    TCP的核心是滑动窗口算法。

    (1)首先,TCP支持运行在因特网中任意两台计算机上的进程之间的逻辑连接,TCP需要有明确的连接建立阶段,使连接的双方同意相互交换数据。TCP也有一个明确的断开连接阶段,在连接建立阶段发生的事件之一,是双方建立某种共享状态使滑动窗口算法开始运行。连接断开阶段是必要的,因为只有这样双方主机才知道是释放这种状态的时候。

    (2)TCP连接很可能具有差异很大的往返时延。对于滑动窗口算法而言,意味着触发重传的超时机制必须具有适应性。

    (3)失序的分组多长时间能到达,换句话说,分组多晚才到达目的地。是不是会搅乱已排好序的分组。

    (4)流量控制。

    (5)拥塞控制。

    在TCP中,下层的IP网络被认为是不可靠的,而且会使传递消息错序;TCP在端到端的基础上利用滑动窗口算法提供可靠的/有序的传送。

    2.报文段的格式

    SrcPort和DstPort字段分别表示源端口和目的端口。这两个字段加上源IP地址和目的IP地址,组合成每个TCP连接的惟一标识。也就是说,TCP的多路分解密钥由四元组给出:

    DstIPAddr>

    注意,因为TCP连接有始有终,所以有可能在某一对端口间建立了一个连接,并用它发送和接收数据,然后关闭掉。接着在一段时间后,第二个连接又使用这同一对端口。我们有时把这种情况称为相同连接的两个不同实例。

    Acknowledgment,SequenceNum和AdvertisedWindow字段都在TCP的滑动窗口算法中使用。因为TCP是面向字节的协议,所以数据的每个字节都是有序号;SequenceNum字段包含报文段携带数据的第一个字节的序号。Acknowledgment和AdvertisedWindow向相反方向流动。

    6比特的Flags字段用来在TCP对等实体间传递控制信息。可能的标志位有SYN,FIN,RESET,PUSH,URG和ACK。

    ......

    3.连接的建立与终止

    建立连接:一方执行主动打开操作,而接受连接的一方执行被动打开操作。只有在连接建立阶段完成以后,双方才开始发送数据。同样的,当其中一方发送完数据,就会关闭一个方向的连接,这就使TCP开始一轮终止连接的消息,注意,尽管连接的建立是一个非对称的活动(一方执行被动打开而另一方执行主动打开),但是连接的断开则是对称的活动(每一方必须独立地关闭连接)。因此,有可能一方已经完成了关闭连接,意味着它不再发送数据,但是另一方却仍保持双向连接的另一半为打开状态并且继续发送数据。

    三次握手:

    算法的思想是双方需要商定一些参数,在打开一个TCP连接的时候,参数就是双方打算为各自的字节流使用的开始序号,通常,参数可以是每一方希望另一方了解的任何情况。首先,客户机(主动参与方)发送一个报文段给服务器(被动参与方),声明它将使用的初始序号(Flags

    = SYN, SequenceNum = x)。服务器用一个报文段响应,确认客户端的序号(Flags = ACK, Ack = x +

    1),同时声明自己的初始序号(Flags = SYN, SequenceNum =

    y),也就是说,第二个报文段的Flags字段的SYN和ACK位被置位,最后,客户机用第三个报文段响应,确认服务器的序号(Flags =

    ACK, Ack = y

    + 1)。每一端的确认序号比发送来的序号大1的原因是Acknowledgment字段实际指出希望接收的下一个序号,从而隐含地确认前面所有的序号。前两个报文段都使用计时器。

    状态转换图:

    滑动窗口再讨论:

    TCP的滑动窗口算法的变体,它服务于这样几个目的:(1)保证数据的可靠传递;(2)确保数据的有序传递;(3)增强发送方和接收方之间的流量控制。TCP使用一个固定尺寸的滑动窗口,而是由接收方向发送方通知它的窗口尺寸。这是通过使用TCP首部的AdvertisedWindow字段完成的,此后,发送方在任意给定时刻未被确认的字节数就不能超过AdvertisedWindow的值。接收方根据分配给连接用于缓存数据的内存数量,为AdvertisedWindow选择一个合适的值。其思想是不使发送方发送的数据超过接收方缓冲区的限度。

    可靠和有序的传输

    .......

    展开全文
  • 运输层上在端到端的源和目的主机之间,一方面可以提供面向连接的、可靠的数据传输服务,另一方面也可以提供无连接的、高效但不可靠的数据传输服务。 运输服务 通信子网中的节点上不包含运输层功能。 传输层与应用层...

    运输层是第一个端对端,即主机到主机的层次。

    运输层上在端到端的源和目的主机之间,一方面可以提供面向连接的、可靠的数据传输服务,另一方面也可以提供无连接的、高效但不可靠的数据传输服务。

    运输服务

    通信子网中的节点上不包含运输层功能。
    传输层与应用层的接口是端口地址。
    完成运输层功能的部件称为运输实体,由具备运输层相应功能的硬件或软件构成。

    严格地说,端到端通信说主机上的应用进程间的通信。

    运输层提供两种类型的服务:
    1⃣️面向连接的运输服务:是一种可靠的服务,整个连接生存期包括连接建立、数据传输和连接释放三个阶段。
    2⃣️无连接的运输服务。

    总体而言,OSI运输服务和网络服务十分相似,但是为什么还需要运输服务?这是因为,用户不能对通信子网加以控制,因而无法用更优的通信处理机制来解决网络层服务质量低劣的问题,更不能通过改进数据链路层纠错能力来改善它,解决这一问题的唯一办法就是在网络层之上增加一层运输层。运输层的存在使运输服务比网络服务更可靠,分组的丢失、残缺甚至网络复位都可以被运输层检测到,并采取相应的补救措施。

    服务质量QoS衡量标准:
    吞吐量:在一定时间内在一条运输连接上传输的用户数据的字节数,一般用每秒字节数表示(B/s)。在一条运输连接上,可以有两个方向的吞吐量。
    连接建立延迟、连接建立失败概率、传输延迟等也均是其衡量标准。

    各层及其对应的传输的数据形式:
    物理层➡️数据链路层➡️网络层➡️运输层
    比特流➡️ 帧 ➡️ 包 ➡️报文段

    寻址和复用

    当一个运输服务用户希望与另一个用户建立连接时,它必须说明与哪一个具体的远端用户相连,常用的方式是定义运输服务访问点TSAP。
    在TCP中,采用称为端口port的方法,其相应的编号称为端口号。
    类似的,IP地址被称为网络服务访问点NASP。
    IP地址和TCP端口号的结合在全网络上唯一地标识了一台主机上的一个应用进程。

    通过TASP地址编码加以区分,多个运输服务用户使用同一个运输协议和运输实体,实现多路复用。

    TCP

    TCP/IP体系结构中的运输层就是利用IP层提供的不可靠的服务来提供端到端的运输服务,它包括两个主要的运输协议,即面向连接的、可靠的的传输控制协议(TCP)和无连接的用户数据报协议(UDP)。

    TCP可靠,但它的代价较大,UDP不可靠,但它的传输效率较高。

    传输控制协议TCP的主要作用是在不可靠的网络服务上为应用层提供面向连接的、端到端的可靠字节流服务。

    TCP引入了套接字Socket的寻址机制,一个套接字的标识包括了两个部分,即主机的IP地址和一个16比特的端口号。端口号的取值范围为0~65535,而0~1023的端口号被称为众所周知的端口号,这些端口被保留给那些标准服务使用,如FTP的端口号为21,HTTP的端口号为80。

    TCP在数据传输时必须首先建立一条运输连接,数据传输完成后把连接释放掉。一条TCP连接是有发送实体套接字和接受实体套接字来唯一标识。

    TCP中双方通过TCP报文段来交换数据(TPDU)。一个TCP报文段由一个20字节的头部、一个可选部分和一个用户数据部分组成。整个报文段长度不超过IP分组长度65535字节,也不超过最大传输单元MTU,一般为几千字节。
    TCP中把一个TCP报文段携带的用户数据的大小限制为最大分段大小MSS,注意MSS时TCP报文段中用户数据的最大长度,不包括内部在内。MSS一般默认值为1500字节、536字节和512字节。

    TCP报文段各字段及其含义:
    源端口号(16比特)和目的端口号(16比特);
    顺序号(32比特):TCP报文段中携带的用户数据中第一个字节的编号;
    确认号(32比特):对之前的数据已可靠收到的确认,也用于表示下一个期望接受的字节的顺序号;
    数据偏移(4比特):TCP的头部长度,即TCP数据开始的位置;
    ACK:表明确认号字段有效,为0,则该TCP报文段不包括确认信息,确认号字段无效;
    PSH:要求立即发送数据,用于实现PUSH功能;
    SYN:用于建立TCP连接。一般SYN=1和ACK=0标识请求连接,SYN=1和ACK=1表示接受连接请求。
    ······

    TCP通过连接建立可以达到的目的:
    1⃣️使每一端知道另一端是否存在;
    2⃣️进行选项协商(如协议类、窗口大小、服务质量等);
    3⃣️为TCP实体分配资源(如缓冲区、连接表项等)。

    TCP连接建立是一个不对称的过程,即TCP连接的两方中一方处于被动方式,一方处于主动方式。

    TCP连接采用三次握手:
    1⃣️客户方发送特殊的TCP报文段给服务方,该段中可以不包含任何用户数据,只是把SYN标志置为1,ACK标志置为0,同时客户方选择一个初始顺序号x,放在顺序号字段。这个TCP报文段一般称为SYN段。
    2⃣️目的主机收到连接请求后,其TCP实体首先查看是否有进程在目的端口处监听,若无,发送RST=1的应答拒绝建立连接。若同意接受连接,服务方发送一个ACK=1,确认字段号=x+1,SYN=1,顺序号=y的TCP报文段。这个TCP报文段称为SYN,ACK段,方法是捎带确认。
    3⃣️客户方发送SYN=0,ACK=1的TCP报文段来确认对方的初始顺序号,连接建立。

    TCP释放连接采用四次握手:
    1⃣️某端首先关闭,成为主动关闭端,向另一端发送FIN,表示数据发送完毕。
    2⃣️接收到FIN的是被动关闭端,FIN由TCP确认,向主动关闭端发送ACK。
    3⃣️一段时间后向主动关闭端发送FIN。
    4⃣️主动关闭端确认FIN,并向被动关闭端发送ACK。两端关闭TCP。

    TCP发送实体维护一个发送缓冲区SendBuffer用于发送来自应用进程的数据,该缓冲区由三部分组成,即发送窗口、待发送的数据和空缓冲区。
    TCP接收实体维护一个接收窗口大小,这是接收实体向发送实体指出的目前剩余接收缓冲区大小,类似发送窗口,接收窗口可变。

    TCP传输的只是字节流,所以说TCP是面向字节流的服务,确认以字节为单位,而不以发送的报文段为单位。

    TCP可靠传输通过维护发送缓冲区和控制发送窗口的滑动窗口机制来实现。
    TCP流量控制是一种运输层端到端的对等流控,它也采取可靠传输中可变大小的滑动窗口机制来进行。只是现在控制者是接收实体,滑动窗口则是接收窗口。

    TCP拥塞控制

    TCP拥塞控制就是以端到端控制在发送源端实现的网络拥塞控制方法,即通过发送实体主动探知网络的容量状况,控制发送速度,主动承担防止网络网络拥塞的责任。

    TCP拥塞控制采用慢启动和拥塞避免的策略。拥塞窗口(反映网络容量)小于慢启动阈值(一般设置为一个较高的值)时进入慢启动阶段,拥塞窗口大于慢启动阈值进入拥塞避免阶段。

    慢启动阶段拥塞窗口随时间呈指数增加。
    拥塞避免阶段,每个RTT时间把拥塞窗口增加一个MSS,这样拥塞窗口随时间缓慢地呈线性增加,直到出现拥塞。

    TCP在超过一段时间(重传超时的时间)没有收到TCP报文段,就在重新开始传输数据时进入慢启动过程,也就是拥塞窗口为1个MSS。

    UDP和RTP

    UDP主要被应用在一种需要简单而高效传输数据的场合,比如实时多媒体数据传输。
    UDP是一种无连接方式的、不可靠的运输协议,也就是说不需要连接建立和连接释放,不支持流量控制、拥塞控制,UDP在传输过程中可能会丢失,可能会失序,可能会延迟等。其最大的优点是简单和快速。

    UDP只有8个字节的头部。基于UDP实现的域名服务DNS,只需要两条数据报就可以完成域名解析。

    RTP实时多媒体,又称实时流媒体,应用具有实时性和等时性特征。

    展开全文
  • 对等层的概念

    2021-07-02 00:23:07
    满意答案r6581665推荐于 2016.11.30采纳率:51%等级:9已帮助:3163人对等层(Peer Layers)是指在计算机网络协议层次中,将数据(即数据单元加上控制信息)直接(逻辑上)传递给对方的任何两个同样的层次。Internet网络...

    满意答案

    00e27ab806e4881f8254fe7ae8741834.png

    r6581665

    推荐于 2016.11.30

    00e27ab806e4881f8254fe7ae8741834.png

    采纳率:51%    等级:9

    已帮助:3163人

    对等层(Peer Layers)是指在计算机网络协议层次中,将数据(即数据单元加上控制信息)直接(逻辑上)传递给对方的任何两个同样的层次。

    Internet网络结构以TCP/IP协议层次模型为核心,

    共分四层结构:应用层、传输层、网际层和网络接口层。TCP/IP的体系结构与ISO的OSI七层参考模型的对应关系如图1-6所示。TCP/IP是Internet的核心,利用TCP/IP协议可以方便地实现各种网络的平滑、无缝连接。在TCP/IP四层模型中,作为最高层的应用层相当于OSI的5~7层,该层中包括了所有的高层协议,如常见的文件传输协议FTP(文件传输协议)、电子邮件SMTP,(简单邮件传送协议)、域名系统DNS(域名服务)、网络管理协议SNMP、访问WWW的超文本传输协议HTTP、远程终端访问协议TELNET等。

    TCP/IP的次高层为传输层,相当于OSI的传输层,该层负责在源主机和目的主机之间提供端到端的数据传输服务。这一层上主要定义了两个协议:面向连接的传输控制协议TCP和无连接的用户数据报协议UDP(UserDatagramProtocol)。

    TCP/IP的第二层相当于OSI的网络层,该层负责将报文(数据包)独立地从信源传送到信宿,主要解决路由选择、阻塞控制级网际互联问题。这一层上定义了网际协议(InternetProtocol,IP协议)、地址转换协议ARP(AddressResolutionProtocol)、反向地址转换协议RARP(ReverseARP)和网际控制报文协议ICMP(InternetCOIltrolMessageProtocol)等协议。

    TCP/IP的最低层为网络接口层,该层负责将IP分组封装成适合在物理网络上传输的帧格式并发送出去,或将从物理网络接收到的帧卸装并递交给高层。这一层与物理网络的具体实现有关,自身并无专用的协议。事实上,任何能传输IP报文的协议都可以运行。虽然该层一般不需要专门的TCP/IP协议,各物理网络可使用自己的数据链路层协议和物理层协议。

    00分享举报

    展开全文
  • 对等层实体通过协议来交换数据信息【PDU协议数据单元,是指对等层次之间传递的数据单位】,通过层间的接口访问下层所提供的服务;通过层间的接口再向上层提供更好的服务 递归地 服务和服务访问点 套接字Socket就是...
  • OSI/RM参考模型的对等传输原理
  • TCP协议解析

    2019-08-20 14:32:00
    TCP利用了IP路由这个简单的功能,因此TCP不必考虑选路,这又一个它被设计成端到端协议的原因。  既然IP已经能尽力让单独的数据报到达对端,那么TCP就可以在这种尽力而为的网络上实现其它的更加严格的控制功能。TCP...
  • 网络体系结构就是层、协议和服务构成的集合,具体来说就是为了使各种不同的计算机能够相互通信,将所有需要完成的工作进行分类,划分为明确的层次,并规定出相同层次进程之间的通信协议和上下层之间的接口服务。...
  • TCP/IP协议概述

    2020-02-27 10:45:00
    第一章 TCP/IP协议概述 1. 协议分层思想 1.1 首先提出的问题是为什么要进行分层: 分层就是将复杂的过程分解为多个简单的,功能相对单一的子过程。 分层的优点: 1.使过程清晰化 使复杂问题简单化 2.有利于发现问题...
  • 端到端的通信

    千次阅读 2014-08-13 10:07:28
    1、端到端的连接管理 一般可以通过三次握手协议来完成两端点的建立。计算机A传送一个请求一次连接的TPDU,序列号为x;计算机B回送一个确认该请求及其序列号的PDU,序列号为y;计算机A通过在第一个数据PDU中包含的...
  • 带你重新认识一下应用层协议

    千次阅读 2020-02-21 23:30:45
    网络应用是计算机网络存在的理由,一批早起的网络应用主要有电子邮件、远程访问、文件传输等,但是随着计算机网络的发展和人类无穷无尽的需求,越来越多的网络应用被开发出来,例如即时通讯和对等(P2P)文件共享,...
  • 而我们就把这种规则称为协议(protocol)。 文章相关视频讲解: C/C++ Linux服务器开发高级架构学习视频点击:C/C++Linux服务器开发高级架构师/Linux后台架构师-学习视频 底层原理到徒手实现 TCP/IP网络协议栈 ...
  • 一、TCP/IP协议产生背景 TCP/IP是伴随着互联网的发展而研发出来的,还是让我们从头说起吧 第二次世界大战结束,苏美两国各自发展了自己的势力范围,成为世界的两极。这两极不是在好好发展经济上竞争,而是在军备上...
  • 防火墙 | 网络协议

    千次阅读 热门讨论 2020-11-08 12:35:35
    网络协议 网络协议的概念 数据在“路”上行走的交通规则 ...对等层通讯 层与层水平之间是通信 层与层垂直之间是服务 协议为什么要分层? 提高效率,模块化方便管理 协议具体是怎么工作的? 封装与解封装
  • 然后,它与对等方建立端到端的加密连接,并进行协议握手。 用于序列化和消息验证。 安装 npm install libp2p-rpc --save 入门 在.proto文件中定义您的RPC协议。 签出以获取更多信息。 syntax = "proto3"; service ...
  • Diameter协议摘要

    千次阅读 2021-01-17 14:07:15
    协议概述Diameter协议主要为应用程序提供认证、鉴权、计费框架,即AAA,并支持本地AAA和漫游场景下的AAA。1.1. 特点介绍以前的AAA协议如RADIUS、TACACS主要是针对PPP服务和终端服务而设计的。随着网络技术的发展,...
  • 计算机网络分层协议及各层功能

    千次阅读 2020-08-23 01:43:00
    目录什么是协议协议分层协议分层模型TCP/IP协议各层功能报文,报文段,数据报,帧 什么是协议 我们先以人类活动来进行类比 例如,当你想要向某人询问一天的时间时,将怎样做? 图1-2中显示了一种典型的交互过程。...
  • TCP/IP是当前的因特网协议簇的总称,TCP和 IP是其中的两个最重要的协议。 RFC标准轨迹由3个成熟级构成:提案标准、草案标准和标准。 第二章 计算机网络与因特网体系结构 根据拓扑结构:计算机网络可以分为总线型...
  • 分布式的路由选择协议使网络有很好的生存性 分组交换的特点(缺点) 分组在各结点存储转发时需要排队,这就会造成一定的时延 分组必须携带的首部(里面有必不可少的控制信息)也造成了一定的开销 无法确保通信时...
  • I2P(不可见Internet协议)是通用的匿名网络层。 通过I2P进行的所有通信都是匿名的并且是端到端加密的,参与者不会透露其真实IP地址。 I2P客户端是用于构建和使用匿名I2P网络的软件。 此类网络通常用于匿名对等...
  • 第一节 计算机网络基本概念 计算机网络的概念: 计算机... 服务、接口、SAP、协议、、对等层、端到端层等概念 虚通信与物理通信过程; OSI参考模型各层功能 TCP/IP参考模型各层功能 第六节 计算机网络与英特网发展简史
  • 这里写自定义目录标题一、填空二、问答 一、填空 1、TCP选项-时间戳tsrecent的取值 “时间戳”选项用于估算RTT,长度为10字节, 除1字节的类型标识(取值为8)、1字节的“长度” 字段(值为10)夕...端到端是指对等实体
  • 计算机网络协议

    2021-06-29 00:49:01
    计算机网络协议(2008-11-24 15:11:06)标签:杂谈计算机网络的最大特点是通过不同的通信介质把不同厂家、不同操作系统的计算机和其他相关设备(例如打印机、传达室感器等)连接在一起,打破时间和空间的界限,共享软...
  • 端到端是传输层的说法,因为无论TCP还是UDP协议,都要负责把上层交付的数据从发送端传输到接收端,不论其中间跨越多少结点。只不过TCP比较可靠而UDP不可靠而已。所以称之为端到端,也就是从发送端到接收端。 2.从...
  • 应用层协议——原理

    千次阅读 2018-08-30 11:44:34
    应用层协议——原理  应用层协议的实现,只需要写出能够运行在不同的端系统(服务器、手机、电脑等)和通过网络彼此通信的程序。因为网络核心设备(路由器、交换机等,不包括端系统设备)并不在应用层上起作用,只...
  • 常常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是帧。 数据链路层不必考虑物理层如何实现比特传输的细节。甚至还可以更简单地设想好像是沿着两个数据链路层之间的水平方向把帧...
  • 网络协议基础知识

    千次阅读 2019-01-04 20:13:38
    一、 网络协议的定义 网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法、语义、时序。为了使数据在网络...
  • SSL协议

    2020-08-14 22:19:59
    SSL协议又叫安全套接层协议,是应用在传输层上的安全协议,使用TCP提供的一种可靠的端到端协议。 SSL协议包括: SSL记录协议 SSL握手协议 SSL密码交换协议 SSL警报协议 SSL中最重要的两个概念是SSL连接和SSL...
  • UDP、TCP协议详解

    2021-04-21 16:52:55
    在TCP/IP体系中,两个对等运输实体在通信时传送的数据单位,根据所使用的协议是TCP或UDP,分别称之为TCP报文段和UDP用户数据报。 用户数据报协议UDP 用户数据报协议UDP只在数据报服务之上增加了很少的一点功能,这...
  • 计算机网络中端到端与点到点的区别

    万次阅读 多人点赞 2018-09-17 11:19:43
    数据传输的可靠性是通过...因为无论tcp还是udp协议,都要负责把上层交付的数据从发送端传输到接收端,不论其中间跨越多少节点。只不过tcp比较可靠而udp不可靠而已。所以称之为端到端,也就是从发送端到接收端。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,872
精华内容 3,148
关键字:

对等的端到端的协议