TCP和UDP详解

      最后更新:2022-05-12 00:14:25 手机定位技术交流文章

      概述

      计算机网络系统结构的实际水平、数据链层和网络层处理通过异构体网络连接主机时遇到的问题,导致主机与主机之间的通信。

      然而,实际上,在计算机网络上互动的真正因素是通信双方的过程。

      运输层的责任是提供直接通信服务,以便在单独的主机上运行应用程序。端对端协议是运输层协议的另一个名称。

      运输层保护高级别用户不受网络核心细节的影响,使申请过程仿佛两个运输层实体之间有端到端的逻辑通信联系。

      在运输一级,有两个主要协定:TCP和UDP。

      • TCP 它被称为《传输控制协议》 面向连接 ,因为在一个程序将数据传送到另一个程序之前,这两个程序必须握手,这是两个主机之间的逻辑联系,而不是实际握手。
      • UDP 它被称为用户数据表协议。 面向无连接 管理您提供的连接。 对于IP电话、视频会议、现场广播等实时应用程序来说,信息传输是有效的,即使发现一个破碎的包件,也不会重新传送。

      TCP详解

      TCP是一种以字节为基础的传输层通信议定书,具有连通性和可靠性。

      • 以链接为导向:连接必须是一对一,而不是像UDP协议一样同时向多个主机发送信息,即若干对;
      • TCP可确保信息传递到接收端,而不论网络连通性的变化。
      • 字节流中的信息为“ 无边界 ” 。因此,无论我们的函件多大,都可能被发送。今天的词是"秩序"无法弄清楚当“第一”信息没有收到时发生了什么事情。即使最初收到后方已经收到的字节,所以,你不能只是把它扔在应用程序上。同时,“重复的”报告立即删除。

      根据TCP议定书,转让控制议定书的目的是规范数据运输。

      先来看看它的报头

      让我们看看每个组成部分意味着什么,以及它是如何运作的。

      • 来源/目的地港口号显示数据来自哪个过程和进入哪个过程。
      • 32位序号:
      • 四位顶级部长: 指定 tcp 标题( 32 位) 中的 4 位字节数 。
      • 保留它,根据定义, 只是以防万一。
      • 6位标志位

      URG: 确定紧急指针的有效性

      识别来验证序列号的真实性, 我们引用这篇文章, 包括ACK标志作为确认部分。

      PSH: 用于通知接收程序, tcp 缓冲区的数据必须迅速读取 。

      RST: 重新连接请求: 带有RST标志的报告称为报告副本。

      SYN 同步序列编号(同步安全编号): 连接请求。 一个同步段落是包含 SYN 标识的文本 。

      FIN:告诉另一端,此端已准备关闭,带有FIN徽章的报告被称为最后一段。

      • 16位窗口大小:
      • 如果接收终端检查失败,数据被视为有害数据。 在这种情况下的核对总和不仅包括TCP的初始部分,而且还包括TCP的数据部分。
      • 16项紧急情况准则:哪些数据是紧急情况数据?
      • 选项和数据暂时忽略

      连接管理机制(3个握手、4个波浪)

      通常, tcp 需要三个握手和四个波来连接。

      那么,三次握手?什么是四次波浪?

      三次握手

      第一次:

      客户端 - - > 服务器 此时服务器知道了客户端要建立连接了

      第二次:

      客户端 < - - 服务器 此时客户端知道服务器收到连接请求了

      第三次:

      客户端 - - > 服务器 此时服务器知道客户端收到了自己的回应

      您可以假设客户端在到达时与服务器连接。

      再来看个图.

      最初,客户和服务器都处于CLOSE(关闭)状态。

      在现阶段,客户积极向服务器提交连接请求,服务器被动接受。

      1. TCP服务器程序首先构建了TCB传输控制区块(TCB为目前每个TCP连接提供控制值),并准备接收客户程序的连接请求,因此服务器进入了ListEN(收听)状态。

      2. TCP客户程序还产生一个传输控制区块(TCB),并向服务器发送连接请求。SYN=1号电文第一部分的同步符号此时,当选择初始序列号后序号 = x时,TCP客户程序处于SYN-SENT州(同步发送)。TCP称,数据不能通过SYN报告(SYN=1)传送。然而,必须吃掉序列号。

      3. TCP服务器收到请求后,如果连接被接受,即发出确认信息。当 TCP 服务器进程进入 SYN-RCVD (同步接收) 时, 确认 ACK=1, SYN=1, 确认序列号 x+1, 并为自己创建序列号后继 = y 。虽然本文无法传输数据,但它确实消耗了一个序列号。

      4 收到确认后,TCP客户程序向服务器确认。确认ACK=1,确认序列号y+1及其自己的序列号x+1。

      TCP 连接此时已建立,客户已进入已建立(连通)状态。 服务器收到客户确认后,服务器也处于已建立状态,双方都可以开始沟通。

      为什么不用两次?

      主要目标是防止意外向服务器发送断层连接请求。从而产生错误。如果用两个握手来建立联系,假设有这种情况客户启动了连接,但并未放弃连接。只是他们上网太久了TCP客户不能这样做,因为他们很晚才收到确认信息。我以为服务器错过了目前,该员额已重新发送到服务器上。此后,客户和服务器通过两次握手连接。传输数据,然后关闭连接。连接请求与目前留在后面的连接请求无效 。自网络打开以来,它已经到达服务器 。这本应该是一纸空文但是,由于两个握手程序,客户端和服务器将能够重新连接。这将导致可避免的错误和支出。

      即使无效电文发送了三次, 服务还是得到了无效电文, 并对确认作出了回应, 但客户将不再提交确认。 因为服务器没有收到确认, 已知客户并未寻求连接 。

      为什么不用四次?

      因为三次是充足的,四次是多余的。

      何为四次挥手

      数据发送后,双方可以断开联系。

      客户端和服务器目前都处于设定状态, 因此客户端主动断开, 服务器被动断开 。

      1. 客户程序发出连接发布信息并停止数据传输。

      释放数据报文首部,FIN=1,序号是后序号=u(等于先前交付数据的最后字节)加1。客户现已进入FIN-WAIT-1系统(终止延迟1号)。 TCP规定,金融情报处报告说,即使他们没有数据,也无法这样做。也要消耗一个序号。

      2 收到连接发布信息后,服务器发出确认信息,即ACK=1,核查序列号u+1,并携带自己的序列号后继序列号,服务端此时进入CLOSE-WAIT(近距离等待)条件。

      TCP服务器与高级别应用程序进行通信。客户被放行 并引导到服务器上。这是一个半封闭期。用户无进一步信息可发送 。然而,如果服务器提供数据,客户端依然要接受。目前的设想将持续一段时间。也就是说,CLOSE-WAIT状态的长度。

      3. 客户收到服务器的确认请求后,即进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接发布信息(但需收到服务器提供的最后数据)。

      4. 当服务器最终传输数据时,这篇文章是全球之声在线特稿的一部分。FIN=1,确认序号为v+1,由于在半关闭状态,服务器最有可能发送更多的数据 。如果当前序列号是后序号 = w,此时,服务器处于 LAST-ACK( 最后确认) 状态 。等待客户端的确认。

      5. 客户收到服务器连接释放后,必须发出确认,ACK=1,确认序号为w+1,u+1是他的序列号此时,时间-时间(等待)是客户的状态。并不是说TCP的连接还没有被放弃在通过2 *MSL(报告期最长期限)之后,当客户撤回相关TCB时,我们只是现在处于封闭状态。

      6 一旦收到客户的确认,服务器就将其状态改为封闭数据交换系统。同样,TCB的退出终止了TCP连接。从可以看出,服务器在客户之前终止TCP连接。

      再来看一张图.

      为什么前一位顾客还在等2 -MSL?

      MSL(Maximum Security Limited)报告在互联网上持续时间最长,此后将丢弃。 )TCP允许根据性能选择多个MSL值。

      第一,客户先前的 ACK 信息保证访问服务器。可以想象这份ACK报告是错的从服务器的角度来说我要求关闭一份FIN+ACK报告客户尚未答复。我本想请求你破解这个信息 但它永远无法到达那里因此,服务器将再次发送。客户可以在 2MSL 内接收再次发送的信息。接着给出回应报文,此外,将重新启动2MSL时限。

      第二,避免出现类似“三握手”中指定的“已失效连接请求”的外观。在客户发出最后确认信息后在这个2MSL时区在连接期间创建的任何文本信件将从网络中删除 。因此,对以前连接的要求将不出现在新的连接中。

      为什么在断开连接时 3次握手和4次波的交替?

      收到连接请求的 SYN 信息后,服务器在连接建立时向 ListEN 中的客户端发送 ACK 和 SYN 。

      而关闭连接时,在服务器接收了FIN的另一封信后这仅仅表明,相反一方可能不会发送数据,但仍然可以接收数据。另外,并非所有数据都是相互发送的。所以我们可以马上把它关掉我们还可以交流信息。除了向另一方发送FIN电文,要求立即关闭连接。因此,通常,ACK和FIN是单独发送的。从而导致多了一次。

      如果连接已经确定,但客户有问题呢?

      TCP有一个运行中的计时器。显然,如果客户不成功服务器不能再等待了 。白白浪费资源。每次服务器收到客户端请求, 定时器都会重置 。标准时间是两小时如果你在两小时内没有从客户那里得到数据,将收取费用。服务器将发送检测器消息 。其后每75分钟印发一次。如果一连串的十份检测报告没有反应 很难找到摆脱困境的方法服务器相信客户端失败 。接着就关闭连接。

      反应机制确认(ACK)

      TCP为每个字节指定了一个序号。

      每个ACK都有自己的序列号(背), 它告诉发件人我收到什么数据, 以及下次你从哪里开始。

      例如,如果客户向服务器提供1005字节的数据,服务器返回确认序列号为1003,表示服务器只收到1-1002数据。

      1003、1004和1005错过了它。

      客户此时将从1003重新发行。

      超时重传机制

      由于网络堵塞等原因,在主机A发送数据后,数据可能无法到达主机B。

      如果主机A在规定的时间内没有得到主机B的确认答复,将重复请求。

      但是,在确认ACK之前,主机A可能已经失去了它。

      在这种情况下,东道主B将获得大量重复数据。

      因此,TCP议定书必须确定包件是否重复并删除。

      使用上面列出的序列号来权衡现在很简单了

      超时时间如何确定?

      在最佳情况下,规定一个时限,以确保答复回到该时限之内。

      然而,这一时期的长短因网络环境而异。

      如果花费的时间太长,整个再传送效率就会受到影响;如果花费的时间太短,可能会经常发送重复的包裹。

      为了在每种情况下能够进行高性能交流,TCP不断计算这一最长超时。

      • 使用 Linux (以及 BSD Unix 和 Windows ), 确定每次回溯时间所用的时间是500 ms 的全乘以500 ms 。 如果重新发行, 它仍然没有响应, 等待 2 * 500 ms 重新传送。 等待 4500 ms 重新发送, 如果还没有收到 。 例如, 以索引的形式 。 TCP 认为网络是异常的, 或者在一次重新传送后终端主机有异常, 需要关闭连接 。

      滑动窗口

      我们最近检查了反应验证技术,对于提供的所有数据部分,为了确认答案,都需要使用ACK。在得到ACK后,发送下一个数据部分。

      这在业绩方面有很大的不利之处,特别是当数据流动时间较长时更是如此。

      那么,我们可以同时发送许多数据部分吗?

      例如这样:

      一个概念:窗口

      无需验证即可传输数据的最大值称为窗口大小。

      上述窗口大小为4,00字节(四段)。

      在交付前四段之前,不必等待任何 " ACK " 。

      获得初始的 ACK 确认回答后, 窗口返回到第 5678 段, 并继续传输数据..

      幻灯片窗口之所以命名,是因为它向后滑翔。

      要将这个幻灯片窗口保留在操作系统中,必须创建一个传输数据的缓冲器,以记录哪些数据尚未解答。

      只有在 " ACK " 核实数据反应之前,数据反应才能撤出缓冲区。

      如果袋子掉下来了,我们如何重新传送?

      此时此刻有两种会谈:

      第一,收到了包裹,但是对ACK的反应丢失了。

      在这种情况下,失去部分ACK并不是一个大问题, 因为验证通过后续ACK收到的数据包也是可行的。

      2, 数据包丢失

      当部分信息丢失时,发送者会像提醒发送者一样得到1001个这样的背包:“我要1001个”。

      如果发件人主机收到同一“ 1001” 三次的相同响应, 数据 1001 - 200 将重新发送 。

      接收器此时收到1001, 后回回至ACK 7001。

      由于以前曾收到2001-700个接收端,因此分配给接收端操作系统的接收端缓冲区。

      这一方法称为“高速再发射控制”(有时称为“快速再发射”)。

      流量控制

      接收器只能以一定速度处理数据。 如果发送者发送速度太快,接收端的缓冲器满满, 将会导致包件丢失, 并因此导致一系列连锁反应, 如包件被丢弃 。

      因此,TCP支持发件人相对于接收端处理能力的速度。

      流动控制是给这种技术命名的名称。

      在TCP的第一部分,接收器指定了在“窗口大小”字段中可能接收的缓冲的大小。

      通知发件人;

      窗口大小越大,网络输送量越大。

      当接收器意识到其缓冲剂已接近满载时,它会缩小窗口的大小,并向发送者发出通知。

      当发送者被告知此窗口的大小时, 它会降低自己的发送速度 。

      如果接收方完全满载,窗口将被重置为零。

      发送器此时将不再发送数据,但需要定期发送窗口检测数据段,以便接收器能够调整窗口的大小并将其发回发送者。

      那么,接收器如何将窗口的大小告知发件人?

      我们的 TCP 前端有一个16位数的窗口大小字段, 持有窗口大小信息 。

      TCP 最大窗口大小为 16 位数 65536。 65536 字节是 65536 字节?

      实际上,TCP最初的40字节包含一个窗口扩展因子M, 实际窗口大小是窗口字段移到M-bit左侧的值( 向左移动一等于2乘以2) 。

      拥塞控制

      尽管有一个大的滑冰窗口,但TCP能够有效和可靠地传送大量数据。

      但如果你马上传输大量数据 可能会引起一些问题

      当网络上有这么多机器时, 网络可能已经人满为患了。

      在不了解网络目前状况的情况下发送大量数据,很可能使情况恶化。

      因此,TCP包括一个缓慢的启动机制,它能够首先发送少量数据,以探索路线,确定目前的网络拥堵程度,然后决定传输数据的速度。

      这是对压缩窗口概念的介绍。

      在发送的起始处,定义压缩窗口大小为 1;

      当你收到ACK的回答时,你将它插进窗口。

      在发送数据包的同时,将压缩窗口的大小与接收器对主机的反馈进行比较,并使用较小的数字作为真正的发送窗口。

      与上面那些一样的螺旋形窗口的数量 正在以指数速率增长

      "缓慢的开始"只是: 缓慢的开始, 但它正在迅速扩张。

      为了避免增长过快,在这里引入了一个称为缓慢启动门槛的词,当压缩窗口大于这一门槛时,它会直线增长,而不是指数增长。

      当 TCP 启动时, 慢启动阈值等于最大窗口值 。

      每次你超过缓慢的起始阈值,就会减少一半,而冷凝窗口则返回一个。

      我们基本上在一段时间内使用少量的投放袋 启动再传输系统

      有很多空投袋, 我们认为是因为互联网堵塞。

      随着TCP对话的开始,互联网的性能将提高。

      随着网络的拥挤,吞吐量急剧下降。

      最后,TCP同意尽快相互发送数据,同时避免妥协,以免给网络带来太大的压力。

      UDP详解

      UDP缺乏全面控制机制,而是依靠IP提供“无连通”的通信服务。

      用户数据报告协议(UDP)是UDP的全名。 User Datagram Protocol),UDP 允许程序提供密封的 IP 数据包而不建立连接 。如果应用程序开发者在 TCP 上选择 UDP, 它则不是 TCP 。因此,申请等于直接处理知识产权。

      联合民主党协议的区别在于不相干、不可靠和以数据为导向的报告,整个程序与邮件程序类似,每次收到和发送数据时,都发送完整条款,不相干、不可靠和以数据为导向的报告,整个程序与邮件程序类似,每次收到和发送数据时都发送完整条款。

      • 不需要连接,因为知识产权和港口号在最后直接交付。
      • 不可信:没有确认机制,也没有再传送机制;如果由于网络故障无法相互传递本段,联合民主党协议层不会向应用层提供任何不正确的信息。
      • 数据换数据报告:无法灵活地规范读写数据的数量和数量。

      联合民主党协议非常直截了当,头部8字节(64比特),联合民主党头条格式如下:

      • 主要目标和来源是通知UDP协议,该协议使用何种程序来传递信息。
      • 套件长度 : 此参数将首部 UDP 和数据部件的长度总和保存下来 。
      • 校验和的目的是提供值得信赖的UDP头条标题和数据。

      TCP和UDP的区别

      1:连接

      • TCP是一个以连接为导向的传输层协议,首先将数据连接起来。
      • 就瞬间传输数据而言,UDP不需要连接。

      2:服务对象

      • TCP是一种双点服务,一对一运作,即只有两个目的的联系
      • 联合发展方案允许一对一、一对一和多对一互动通信。

      3:可靠性

      • TCP是一个可靠的数据传输协议,可以毫无错误、丢失、重复或延迟地传输数据。
      • 联合发展方案是一种最佳的交付方法,不能确保数据的一致交付。

      4: 选区管理、交通管理

      • TCP包含交通堵塞管理和流量控制方法,以确保数据运输安全。
      • 联合民主党不存在,即使网络极为拥挤,也不会影响联合民主党的交付率。

      5:首部开销

      • TCP的第一任部长将更长、更昂贵,第一部分不使用选项/词,长20字节,如果使用选项字段,将扩大。
      • 联合民主党是固定的,费用较低,初始部分只有8字节。

      TCP/UDP应用软件

      由于TCP是相连的,并保证可靠的数据传输,它经常被用于:

      • FTP 文件传输
      • HTTP / HTTPS

      由于UDP没有连接,它可随时提供数据,它自己的处理简单而有效;它经常用于:

      • 通信使用较少的程序,如DNS、SNMP等。
      • 多媒体通讯包括视频、音频等。
      • 广播通信
      • 用于诸如IP电话、视频会议、现场直播等实时应用。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/24595.html

          热门文章

          文章分类