深入浅出之 TCP协议(三次握手与四次挥手、超时重发、流量控制、拥塞控制、与UDP区别)

      最后更新:2022-04-01 00:53:07 手机定位技术交流文章

      TCP和UDP是TCP/IP的两个传输层样本协议。 TCP提供可靠的通信传输,而UDP经常被用来对发送申请的通信传输提供广播和详细控制。

      TCP的努力隐藏在“可靠通讯传输”的简单陈述中:它的坚韧将令你震惊TCP的特征包括:序列+强迫确认反应、超时再开发、流动控制、聚合控制等等。预期他们每人都能用一个可信和不抽签的包件向对方发送包件。这份论文将深入研究TCP的本质。涉及的知识点有:

      • TCP概念、优缺点
      • 序列+确认回答、三握手和四波、再发超时、交通控制和抽搐控制
      • TCP和UDP的区别
      • 常见面试问题
      • 端口号概念


      一. TCP 重点决议

      TCP是一种运输层协议,提供可靠的字节流服务。

      • 字节流服务

      大部分数据被分离并保存在报告字段(部分)的数据集中,以便进行传输。程序与 TCP 之间的接口是一次的一个数据块,其大小不等,但TCP 将应用解释为一系列无结构的字节流。

      当数据区块过长时,TCP的缓存可分解成许多小部分供传输。

      当数据区块太小时,例如当程序一次发送一个字节时, TCP 可以等待足够多字节来撰写信件, 然后发送出去 。

      • 依赖性传输服务:能够准确可靠地相互提供数据。

      优点:

      • 可靠、稳定性
        • 在传输数据之前,必须建立三个握手连接。
        • 在传输数据时,有确认、窗口、转播和抽搐控制。
        • 数据传输通过终止连接来节约系统资源。

      缺点:

      • 传输速度缓慢,效率低下,系统资源极为有限:

      在传输数据之前建立链接需要时间。

      在发送数据、识别、再传送、拥堵等时,花费了大量的时间和硬件资源,如CPU和记忆。

      • 攻击脆弱性:例如,三种握手协议易于利用,导致DOS和DDOS攻击。

      TCP协议将数据分开,以便利传输大量数据。此外,TCP协议可以证明数据是否最终传送到另一方。政府目前正在使转让变得可行,以便通过知识产权数据报告建立可靠的传输系统。需要考虑很多事情,数据删除、包装、重复和分散等问题就是例子。若无法节解决,无需谈论可靠传输。

      TCP通过测试和测试、序列号、响应确认、再发射控制、连接管理和窗口等技术提供复原力。

      一. 传输可靠性(序列式+确认答复)

      (1) 确认ACK(积极致谢)答复

      当发件人的数据到达接收主机时,接收者可以选择回复收到电文的通知。该电文被称为确认对 ACK 的回复。

      这里写图片描述这里写图片描述

      如图1所示,TCP确保可靠的数据传输,并作出肯定答复(ACKs),因为发送者提供数据,它等待对方的确认答复,如果有的话,则表明数据是妥善收到的,另一方面,数据很有可能丢失。

      如果图2不等待某一时间的答复确认,发件人可以假定数据丢失并重新发布,因此,即使软件包被丢弃,仍有可能确保将数据转让给另一方。注:未能获得答复不一定表明数据丢失,但也可能表明答复在途中丢失。

      (2)序列号

      此外,发件人没有收到经核实的答案可能有其他原因,主机只需按照程序重新发布数据,但目标主机将通过提供一种机制,确定数据是否已被接受以及是否需要收到,从而获得相同的数据包。

      序列号可用于执行身份查验反应处理、重新发射控制和重复控制任务。序号是交付数据的每字节(8位)的编号。在TCP接收数据的初始阶段,接收者询问序列号和数据长度。作为对答复的确认,以下步骤的序号必须交还。

      这里写图片描述

      概括地说,TCP可提供可靠的传输,并附有序号和回复确认。

      2. 重发超时

      “重新印发超时”一词是指在数据重新印发之前预期确认答复的具体时间段;如果此后没有收到确认答复,发件人将重复提供数据。TCP必须确保提供所有数据包,因此需要一个再传送机制。

      根据发件人的收件端的Ack Ack, 仅对最后一个连续的包件进行验证。

      在少数情况下,发送者提供了总共1,2,3,4,5个数据,收到1,2个数据,返回接收者3,收到4个数据(通知目前没收了3个数据),TCP的情况如何?

      (1)超时重传机制

      发件人继续等待3次,即使收到4次也不回答杰克。 当发件人发现收到3次中3次的未收款项已超时,就重复3次。 接收方收到3次后,将加权4,表示收到3次和4次。

      重发超时袋,这是第三个数据
      超时后重新传送所有数据,即3、4和5。
      第一种方法是节制带宽,而第二种是节制带宽,而第二种是节制带宽,而第二种是节制带宽,而第二种是节制带宽,而第二种方式则是节制带宽,而第二种方式是节制带宽,而第二种方式是节制带宽,而第二种方式是节制带宽,但两种方式都比较快,而且需要等待超时(这可能很长 ) 。

      (2) 快速部署机制

      TCP引进了一种称为快速再传送的新技术,这种技术是数据驱动的,而不是时间驱动的。如果数据包不是按顺序排列的,如果发件人连续三次收到同一个包,最后可能丢失的包就会受到怨恨。发件人不必等待信件在超时后再次发送。

      这里写图片描述

      如上图,再举个例子,如果寄件者寄出一个,2,3,4,5份数据,第一份先到送了,于是就ack回2,因此,有两个人因不明原因被没收。3到达了,结果是,它仍然是回二号的千斤顶。4号和5号在后面但它仍然是回溯到2。我不确定 我不确定 我不确定 我不确定因此,发件人从三个日志中的两个得到确认。知道了2还没有到,于是就马上重转2。然后,接收端收到了2,此时因为3,4,5都收到了,于是ack回6。

      虽然快速再传输系统处理了超时问题,但它留下了一个未回答的问题:这是在重新传送之前还是所有重新传送之前?以上的例子中,它是否再次发送 #2 或再次发送 #2, #3, #4 和 #5? 因为发送者不知道是谁发送了3个日志? 也许发送者发送了20个数据点,#6,#10和#20。

      因此,快速再传送方法仍然有缺陷!

      (3) SACK技术

      秘密致谢(SACK)方法:在TCP中必须附加“SACK”,“ACK”也是快速再传送的“ACK”,而“SACK”是所收到的数据的粉碎版。

      这里写图片描述

      优化快速再传送算法是这一战略的基础。你可以看到发件人已经收到和没有收到的东西。

      然而,SACK却耗资发送者的资源,如果攻击者向发送者交付了大量的SACK选项,发送者就有可能开始重新发送甚至查看已经交付的数据,而这需要发送者的大量资源。

      (4) 重复的SACK -- -- 经常性数据接收问题

      D-SACK主要用于向发送者通报重复数据,D-SACK利用SACK第1段识别数据:

      • 如果ACK覆盖SACK第一段的范围 是D -SACK
      • 如果SACK第1段包含在SACK第2段之内,答案是D-SACK。

      D-SACK方法有以下优点:

      • 您可以通知发件人是否丢失了软件包或 ACK 软件包 。
      • 你超时是不是太短了 无法重新传送?
      • 在互联网上,存在初始包(也称为“修改”)出现的情况。
      • 我的成套数据无法在互联网上查阅。

      3. 连接管理

      为确保信息准确发送到预定收件人,《贸易协定》采用三种握手机制。在通过TCP议定书传送包裹后,TCP有义务相互确认是否成功交付。如果握手在某个时候失败了TCP协议将再次按同一顺序提供相同的序列包件。

      (1)三次握手过程

      在建立 TCP 连接时,需要三次握手,要求客户端和服务器总共发送三包。

      目的:将服务器连接到某个端口, 建立 TCP 连接, 同步双方的序列号和确认号, 并传递 TCP 窗口大小信息 。

      在套接字编程中, 客户在启动三次握手后呼叫连接( ) 。

      这里写图片描述

      • 连接建立后,客户端将同步软件包(syn=j)传送到服务器,并进入 SYN_SEND 状态,等待服务器确认。
      • 当服务器进入 SYN_RECV 状态时, 它会获得同步软件包, 并且必须验证客户端的 SYN (ack=j+1) 并发送 SYN 软件包( syn=k) 或 SYN+ACK 软件包 。
      • 第三手握:客户端从服务器接收 SYN+ACK 包 。向服务器发送 ACK (ack=k+1) 确认包 。此包发送完毕,客户和服务器已到达创建状态。完成三次握手。完成三次握手,客户端和服务器开始交换数据。

      (2)四次挥手

      TCP 连接使用所谓的四瓦波手(四瓦波手)终止。而是要切断 TCP 连接 。客户和服务机构必须总共提交四套软件,以证明连接中断。在套接字编程程序期间客户或服务结束方之一进行关闭即启动这一程序。完整程序如下图所示:

      这里写图片描述

      由于TCP连接是全时和双时的,每个方向都必须独立关闭。 主动关闭由第一当事方进行,被动关闭由第二当事方进行。

      在一当事方完成数据分发工作后,发送FIN终止此方向的连接;获得FIN仅表示没有这方面的数据流动,即不会收到进一步的数据,但在FIN同样向该方向发送数据之前,仍可提供此TCP连接的数据。

      • 活动更接近发送 FIN, 在第一波中输入 FIN_ WAIT1 条件 。
      • 第二波:被动封闭方从活跃的关闭方获得FIN,并发出ACK,此时被动封闭方进入CLOSE_WAIT位置;主动封闭方从被动封闭方获得ACK,进入FIN_WAIT2状态限定波:被动封闭方从活跃关闭方获得FIN,并发出ACK,此时被动封闭方进入CLOSE_WAIT位置;主动封闭方从被动封闭方获得ACK,并进入FIN_WAIT2状态。
      • 第三波: 被动较近传输 FIN, 标记为 LAST_ ACK 。
      • 第4波:主动更接近让FIN从被动更近处得到FIN, 当主动更接近时间进入时间- WAIT状态时发送 ACK, 并在 2MSL 时间过后终止连接; 被动更接近于从主动更近处接收 ACK 后关闭连接 。

      (3) 为什么我们需要三次握手来建立连接 和四个波浪来关闭它们?

      三次握手: 主要是初始化序列数字的初始值 。由于连接的双方都有义务相互告知自己初始化序列号,协议称为SYN。它被称为同步序列数字。在以上图表中,仅显示 x 和 y 。这一编号将作为未来数据传输的序号。为确保在应用层收到的数据不会被网络传输问题弄混(TCP将使用这个序列号拼写数据)。

      你仔细检查了四点 两点非常彻底因为TCP是全职雇员。所以,发件人和接收人都要求有芬和阿克。只不过,有一方是被动的,因此,它似乎被四波挥动过四次。如果双方同时被切断,然后是关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭,关闭然后,你就会得到时代的状态。

      服务供应商在收到SYN信息请求连接后,将ACK和SYN发送至ListEN中的客户。

      而关闭连接时,关于从另一个FIN那里得到的报告,这仅仅表明,相反一方再也不能提供数据,但可能仍然收到数据。所有数据不太可能都发送到对面。因此,我们可能马上关闭它。我们还可以相互交流数据。除了向另一方发送FIN电文,要求立即终止连接。因此,通常,我们的ACK和FIN是独立发送的。

      二. 流程管理

      1. 滑动窗口协议

      本节还侧重于网络传输的可靠性,并调查TCP协议如何解决网络传输不可靠性的问题,同时展示网络纪律的实际和技术性质。

      (1) 滑动窗口协议特点的定义

      • TCP协议中使用
      • 保存发件人/收件器缓存

      这种缓存主要用于处理不可靠的网络传输问题,如包件丢失、包件重复、错误等等,以及发送方、接收方和相互商定的包件再传输程序在TCP协议中维护自己的缓存,从而克服不可靠性问题。

      (2)提出问题

      如何确保接收者在没有滑动窗口协议的情况下收到正确的物品?

      这里写图片描述

      如上图所示,发送者交付了1号货包,接收者核实了1号货包,发送者发送了2号货包,确认2号货包,因此克服了不可靠性问题。使用量很低,而下一个项目在接收者确认之前无法交付。 想象一下,如果接收者能够连续发放许多包件,那么它能够同时确认效率有多低。

      (3)简单改进

      在这方面,已作出下列改进:发件人现在可以同时发送许多包裹,收件人可以同时确认所有包裹。

      这里写图片描述

      (4) 显著增强-已实现幻灯片窗口

      这就引出一个问题,即什么是同时活跃的包件的最佳数量?例如,如果发件人同时交付包件,与第1、2号包件同时交付,在从第1号包件得到确认之后,如果发件人没有第2号包件的确认就不能立即发送物品呢?

      我有理由考虑“让窗口倒塌,使之成真”。 测试者希望按顺序提供16个数据包,每个数据包在接收每个数据包后由接收者核实:

      这里写图片描述

      第一:(窗口4-7)

      • 1批、2批和3批货物已发运,并得到了发货人的阿克确认;
      • 四、五、六和七包包裹已经发出,但尚未得到发件人Ack的确认。
      • 八、九、十批货物将运出;
      • 然而,第11、12、13、14、15和16套材料没有发出,甚至没有放入记忆中。

      (窗口 5 到 9 ) 正常 :

      • Ack 发送并核实了第1、2、3和4号包裹;
      • 5、6、7、8和9件物品已发运,但没有收到发件人拒绝确认书;
      • 10至11个包裹将运出;
      • 然而,第12、13、14、15和16套材料没有发出,甚至没有储存到记忆中。

      这里写图片描述
      Dropck: (窗口 XP 通过 XP 专业)

      Ack没有收到五、六、七、八和九批货物,在等待期间发送了10和11个包裹。目前,窗口是满满的,无法读入第12号包,而只是等待Ack。 如果该包被丢弃,而Ack从未收到Ack,那么第5号包的超时再传送机制将会重新发送。 (通知Ack连续发送!! )

      (窗口9至15)重新印发

      • 第5、6、7和第8批发货,以取得发货人Ack确认;
      • 9、10、11、12、13个包裹已经发出,但尚未经发件人Ack核实;
      • 13, 14个包裹待交付;
      • 16个包既没有传送,也没有放入记忆中。

      (5)总结

      用工程推理来设想滑动窗口机械比较简单。为了增加通过这条线的交通量,改进原版方案,允许发件人同时发送包件; 测量同时发送的数量, 以便获得产出的最佳解析这导致采用了滑动窗口方法;为了克服一揽子损失等不可靠的问题,发送者无法接收接收者的Ack。又引进了重发机制。前一套操作提高了传输过程的总体可靠性。

      2. 解释流控制

      理解上文的滑动窗口协议示例,通常可以明显看出“流量控制”是什么,本节以更明确的措辞再次表述。

      (1)出现的问题

      发件人根据其目前的位置提供数据,但接收人处理其他事务(可能承受巨大压力,无法接收任何数据)。由于数据包并不重要, 数据包的去除会启动一个改变路径的过程, 导致未经请求的网络流量。

      (2)解决方法

      为避免今后发生这种情况,“控制流”是TCP提供的一种技术,使发送者能够根据接收端的实际接收能力对交付的数据量进行管理。

      (3)具体操作

      收件人要求发送者告诉它可以接收的数据的最大大小。 发送者不会发送超过此限制的数据。 大小限制称为窗口大小 。

      TCP 第一部分的一个独有字段用于通知窗口大小。收件人输入在实地可能收到的缓冲大小,并通知发件人。价值越大,网络输送量越多。

      当缓存暴露于数据溢出时,窗口大小的价值定在较低价值,并传达给发件人,从而能够控制数据分散。换句话说,发送者控制根据接收端的指示转移的数据数量,从而实现对TCP流动的完全控制。

      查看下图示例:

      这里写图片描述

      如上图所示,当接收端从3001开始获得数据段时,缓冲区已满,数据接收必须暂停。 只有在收到发送窗口更新通知后,连接才能恢复。如果在传输过程中丢失了窗口更新通知, 连接可能会被终止 。 为了避免这种困难, 提供方可能会发送一个数据字段, 名为“ 窗口探测”, 仅包含一个字节, 以获取最新的窗口大小信息 。

      3. Zero Window

      通过以上讲解后,已知发件人动态传送数据,以修改幻灯片窗口的大小。保重,这不值一文不值!这是否意味着发件人没有发送数据?确实如此,接收者已经说过,他们将无法接受它们。因此不会再发,就像"窗户关闭"

      接收器如何在一段时间后提醒发件人窗口?

      TCP采用零视窗探测技术(缩写为ZWP)来解决这一问题。也就是说,当窗口中的发送者达到零时,我会把ZWP的包裹交给接收者让接收者收集他的视窗维度通常,此值设定为三次。第二个长度在30至60秒之间(视实现情况而定)。如果经过三次尝试后它仍为0,执行某些TCP, 将发放RST, 以中断联系。

      应当指出,在有等候区的地方,DDoS攻击很可能发生。零视窗是没有区别的。一些袭击者在HTTP成立后,将完成申请。我不知道我该怎么办, 但我决定做什么, 我不会做它。然后服务器可以等待 ZWP 完成 。攻击者随后发出大量此类请求。浪费服务器终端的资源

      三. 趋同控制

      TCP 窗口控制允许您 :发件人和发件人之间不再有数据段用于确认答复。还有可能实时提供大量数据包。不幸的是,一旦接触开始,就提供了大量数据,这造成了更多的问题。计算机网络在协作环境中运作。可以想象其他主机之间的通讯 会造成电网干扰数据是发送大量数据时发生的。这可能使整个网络停顿下来。

      4种算法主要用于构件控制:

      • 慢启动
      • 拥塞避免
      • 拥塞发生
      • 快速恢复

      一. 缓慢开始

      首先,为了平衡传送给发送者的数据数量,定义了“抽搐窗口”一词。它将设为数据部分(IMSS),在缓慢启动期间提供数据。在收到每一份ACK确认答复后,拥挤窗口的值乘以 1 。在发送数据段时,压缩窗口的大小与接收端所通报的窗口的大小相比较。以较小值为标准,提供较少数量的信息。

      从连接持续收缩开始,就可利用上述战略有效控制和避免网络堵塞。

      对于延迟启动, 使用以下算法 :( cwnd 全部称为 Convention Windows )

      • 开始于 cwnd = 1 初始化, 表示 MMS 大小的数据可以发送 。
      • cwnd++; 每次得到 ACK 时线性增长
      • 如果发生RT, cwnd = cwnd*2; 索引上升。
      • 还有一个ssthresh(slow start threshold),是一个上限,当cwnd >= ssthresh时,就会进入“拥塞避免算法”(后面会说这个算法)

      因此,我们可以看到,如果网速快,ACK很快返回,而RRT很短,那么这种缓慢的开始根本不是缓慢的。

      这里写图片描述

      二. 避免趋同

      最高限值是算法第四步的Ssthresh(慢开关开关),它从前面缓慢开始。当cwnd >= ssthresh时,在此之后,您将输入“违约避免”方法。一般而言,Ssthresh的价值是65535。单位是字节,当 cwnd 值达到此水平时,算法如下:

      • 收到 ACK 后, cwnd = cwnd + 1/ cwnd = cwnd + 1/ cwnd
      • 每次RRT完成后, cwnd = cwnd + 1 。

      这将避免过度扩张,因为过度扩张会导致网络拥堵,并导致逐步增长,使之适应网络的最佳价值。 显然,这是一种线性升级方法。

      三. 消费意识算法

      据报告,TCP由于超时再传输机制而面临一揽子开小差,当时有两个问题:

      (a) 如果ROTO用完时间,重新发送数据包。

      (b) 快速再传送技术,当收到三次重复的反包件而没有等待转口时间过后,即开始重新传送,TCP Tahoe已实现,仿佛转口时间过后。

      上面我们可以看到RTO超时后,sshthresh会变成cwnd的一半,这意味着,如果cwnd<=sshthresh时出现的丢包,那么TCP 的 sshthresh 将被切成两半, 当 cwnd 快速增长到这个点时, 它将会是缓慢的线性 。 我们可以看到TCP是如何谨慎地保持网络流量的平衡。

      四. 快速恢复的四分法

      快速再传输和快速回收技术经常同时使用。快速恢复的算法基于以下概念:证明互联网并非一无是处。因此,没有必要像RTO超时那样强大。 注意,正如前面所说,在进入快速炼油厂之前以下变量已经更新:cwnd和shshthresh:

      实际的快速报告算法是这样的:

      • * 海安会(3个表示收到3个数据包)
      • 复制的 ACK 导致数据包受到怨恨 。
      • 如果你得到一个被编辑的阿克, cwnd = cwnd +1。
      • 如果收到新的Ack,则使用 cwnd = sshuthresh 和避免梳理算法。

      如果你仔细想想,你会注意到这个方法有一个缺陷: 它依靠三个重复的阿克。

      注意:三个重复的阿克机的存在并不意味着只丢失了一个数据包。很有可能不止一个。然而,这种方法只重复了一次。其余的袋子只能希望遥控运输组织没有时间了。这造成了一个可怕的现象:一个窗口被削减了一半,长达一个多小时。超级TCP型多次超时中断的传输速度正在逐级下降。它不会激活快速记录算法

      (还有几种方法,即只选择几个关键演讲,而其他读者则自己学习。 )

      四、TCP和UDP之间的区别

      1. UDP(User Datagram Protocol)

      用户数据包协议,联合民主党没有先进的控制机制。提供互不相连的通讯服务,使用IP。尤其当涉及到网络拥挤的时候,民进联也无法管理交通和采取其他措施尽量减少网络堵塞。同样出现丢包情况,民进党不负责重现。货包的到货订单也没有纠正机制。如果需要某些事实,只有UDP应用程序才能管理这些事实。 UDP类似于用户自知系统。

      应用程序级别告诉了 UDP 发送消息的时间, UDP 也这样做了, 也就是说, 一次发出一个信息。 因此, 应用程序必须选择正确的电文大小 。

      • 如果案文太长,则必须分割知识产权层以降低效率。
      • 如果过于简短,就是浪费资源。

      联合民主党保留了申请级报告的限度,申请级报告没有合并或分开,即向联合民主党提供申请级的时间长短,联合民主党一次一次传递同一信息。

      因此它有以下特点:

      • 在数据传输之前,源与终端之间没有联系,当它需要传输时,它只是从程序提取数据,并尽快将其发送到网络。
      • 由于传输数据没有连接,没有必要保存连接状态,包括发送国和接收国,以便服务器同时向多个客户发送同一信息。
      • 在发送端,UDP发送数据的速度仅受程序生成数据的速度、计算机能力和传输能力的限制。
      • 在接收端, UDP 队列每个区段, 应用程序从队列中每次读取一个区段 。
      • UDP信息包的标题只有8字节长,TCP信息包20字节的额外费用微乎其微。
      • 排放控制算法仅受应用软件提供的数据速度、传输带宽以及源主机和终端主机性能的限制。
      • 当添加第一个组成部分时,发送方对申请的UDP提交文件被结转到IP层,没有分割或合并,而是保留这些提交文件的界限,因此申请必须选择电文的适当大小。

      优点

      • 快速传输速率:在传送数据之前不需要连接,例如TCP;在传输数据时,没有确认、窗口、转播、再传输、凝析控制等程序。
      • 更安全:没有某些TCP方法,攻击者就较少有机会利用。

      缺点

      不可靠性和不稳定性:在没有TCP程序的情况下,如果网络无法传输数据,包件很可能被丢弃。

      2. 区别

      事实上,当真正理解关键TCP特性时,两者之间的差别是显而易见的,可定性如下:

      TCP UDP
      面向字节流 面向报文
      一对一 可以一对一,一对多
      实现互联通信服务 获得与互联网没有连接的服务
      速度快 速度慢
      提供可靠的通信传输 不可靠,会丢包
      保证数据包顺序 不保证
      有交通控制 还有交通堵塞控制 没有
      数据无边界 数据有边界
      报头至少20字节 报头8字节

      3. 常见问题

      (1) 为什么UDP比TCP更快?

      由于TCP连接需要3个,而且存在交通拥堵管理和传输期间交通控制等程序,因此,分离需要4个hplusshakes。

      (2) 为什么TCP比UDP更可靠?

      TCPs 连接后连接和传送数据;UDP 发送数据,无论是否连接。
      TCP提供了一个确认机制,接收方对收到的每套正确包裹的发送方作出答复,发送方的超时或不完整数据包被重新发送,未发送。

      (3) 何时使用TCP?

      当网络连接的质量有必要时,例如所有数据均精确地相互传送时,通常用于要求可靠性的应用。例如,HTTP、HTPS、FTP、POP、SMTP和其他文件传输协议就是例子。

      下列程序在日常生活中使用TCP协议,例如:浏览器、HTTP FlashFXP、FTP Outlook、POP、SMTP Putty、Telnet、SSH文件传输

      (4) 何时应雇用民进党?

      当网络连接的质量不那么重要时,网络必须尽快进行沟通,从而可以雇用联合民主党。

      例如,在日常生活中,以下列方式使用UDP协议:

      (5) TCP没有界限,但联合民主党有界限。

      • TCP 没有界限, 因为客户端多次将数据传送到服务器, 如果服务器的缓冲量足够大, 服务器会收到数据, 一旦提供给客户端 。
      • UDP有边界:每次客户发送时,服务器都会收到一次,不管客户发送多少次,因此有一个边界。

      五. 面试问题

      一. 一旦浏览器输入 URL 并按下后按钮, 将会发生什么?

      分析 : 如果您想要连接到远程服务器, 您必须先知道服务器的 IP 地址和端口, 然后向服务器提出请求, 服务器会回答 。处理和联系至关重要。

      步骤:

      (1) 进行位置搜索:如果浏览器缓存有一个与 URL 匹配的 IP, 请直接查询 IP; 否则, 请使用 DNS (域名系统) 来发现地址( 域名分辨率 ) 。

      (2) DNS 或 URL 缓存返回 Web 服务器的 IP 地址 。

      (3) 浏览器和网络服务器之间为建立 TCP 连接进行三次握手,服务器作为网络浏览服务连接到80个端口。

      (4) 要从服务器接收 HTTP 数据,浏览器将使用服务器启动 HTTP 会话 。

      (5) 一个浏览器,用于分析HTTP数据,并在本地窗口中制作和显示网页。

      当浏览器页面关闭时, HTTP 会话终止,连接结束。

      二、如何创建可靠的UDP?

      分析:“可靠”系指收件人能够接收和转发给发件人的数据。因此,如ACK、流动控制、公约控制等模块是完全可行的。 通过提及可靠的传输协议(TCP ), 反馈机制是可信的联合民主党的核心,并且有许多方法可以做到这一点。

      解决方案:(因为可靠性要求接收端能够恢复数据包的序列)每个数据包必须由发送者指定一个序列号。这是对反馈过程的审查。 )

      (1) 最基本的 " ACK " 发件人

      接收端需要为发送者提供的每套数据对ACK作出答复,在时间流逝后,发送者再将包发送到ACK接收端。由于随后的数据集很可能阻碍目前的数据包,而且每次返回ACK都会增加间接费用,因此这种技术效率低下。

      (2)Block/bit map ACK:

      发送者发送了一批数据包,例如接收端发送回的ACK中32个带有 0-31.32比特(4字节)比特上限的数据包,显示收到了哪些数据包,发送者重新发送所有未接收的数据包。这种办法可以更好地利用带宽,在发送者端传送更多的数据,但不利的是,发送者作为接收者端需要更大的缓冲,以暂时保存所有传输的数据。

      (3)ACK last packet

      在发送最后一个软件包时,发件人可能要求收到关于ACK的终端反馈,并重新分配丢失的软件包。好处是它减少了ACK造成的数据管理费用 但我们现在仍然需要缓冲数据

      最佳方法:

      事实上,这是二、三种方法的混合体在每组数据包的尽头接收端必须返回 Bit 地图 ACK 。更进一步,可能由下降率和延迟来决定。估计网络状态,当网络状况良好时, 动态调整比特大小映射 :用大一点的地图,即同时发送更多数据否则,转移的数据数量将降低,这种对网络状态的自我调整可与实现拥堵控制相提并论。

      三. 实时视频会议应用程序应使用UDP还是TCP?

      这一问题的关键是比较TCP和UDP的属性,然后选择其中一种情景。

      TCP再传输机制的特性,会增加延迟,所以不适合此场景。其次,视频音频编码允许出现数据错误,甚至数据丢失。因此,不需要TCP可靠的传输。当一个视频框 描述一滴在袋子,可以直接跳过。如果有网络干扰有些数据应该由发送者自愿放弃。因为它是“过期的” 即使它被送到了接收者。不会被解码显示。

      即使有了联合民主党,也需要实施某些TCP模块,如低位控制和公约控制,以评估接收端和网络的绩效,还需要有反馈机制了解接收端的接收状况。虽然目前的情况并不需要每个ACK数据集,但接收端可以就目前接收的最新完整视频框架的序列号提供反馈,这样,即使软件包被丢弃,传送端也可以根据接收端压缩的背对背视频获得最新的视频框架。

      四. 标准 ping 命令的网络协议是什么?

      查看如何使用“ ping” 命令来评价两个主机之间通常的 TCP/IP 连接,事实上,“平面”命令的基本前提是将联合民主党的成套数据传送给对方的东道主。数据包随后被主机识别 。如果数据组抵达信息及时返回,可以确定数据包是否已经到达。那么网络就是通的。

      ping 前提是向指定的 IP 地址提供特定长度的数据集包。 如果 IP 地址存在, 它将会恢复到相同大小; 否则, 如果它不在一个规定的时间框架内返回, 它将会被“ 超时 ”, 也就是说, 所提供的 IP 地址不存在 。由于ping使用IPCMP协议,某些防火墙软件将阻碍IPCMP协议;Ping结果只能用作参考;Ping并不总是表示没有其他IP。

      ( ping 命令是一个非常方便的网络工具 。)它经常用于检查网络连接。然而,与此同时,它是一把双刃剑。其他人则使用 ping 指示探测机器上的大量敏感数据。造成不安全。为了安全,有几种方法可以防止Ping。比如防火墙,一个例子是制定安全政策,禁止所有计算机使用对方的IP地址。)

      《互联网控制信息协议》是“互联网控制信息程序”(互联网控制信息协议)的缩写。这是TCP/IP专家之间的一个副协议控制信息在使用此协议的 IP 地址和路由器之间发送 。控制信息包括有关网络的信息,例如网络是否连接或断开,主机是否可到达,以及线路是否开通。虽然这些控制信息并不发送用户数据,但它们在传输用户数据方面发挥着至关重要的作用。

      五. 索克特套件是如何来的? (延长)

      分析:插座与网络两端的插座相似;只要对方的索克特和自己的索克特连接起来,双方都可以传输和接收数据。其描述与文档的交换器相似。

      • 如果您打算创建服务应用程序,因此, 要构建套接字, 请使用 Socket () 。要约束 IP 地址和端口, 请使用绑定 () 。死亡循环开始在循环中,呼叫接受 () 以接收连接 。对于每个核准的连接,我们可以开始一个多步骤的办法。要发送和接收数据,请使用 send() 和 recev() 函数。
      • 设计客户程序要容易得多。 使用 Socket () 创建套接字, 然后连接( ) 连接到服务器, 最后发送( ), recev () 发送和接收数据 。

      解答:

      服务器端程序编写:

      • 要构建服务器端套接字并将其绑定到所提供的端口, 请使用 ServerSocket( int port) 。
      • 接受()用于收听连接请求、接受连接并返回通信包。
      • 记住 Socket 类的脱流() 和 获得输入流 () 的方法, 以获取输出和输入流, 并开始从网络传输和接收数据 。
      • 关闭. close () 是关闭函数 。

      客户端程序编写:

      • 要连接到服务器端, 请使用 Socket () 构建流集 。
      • 使用 Socket 类的 Getoutputstream () 和 GetInputstream () 方法获取输出和输入流, 并开始通过网络传输和接收数据 。
      • 关闭. close () 是关闭函数 。

      六.(扩展)港口概念

      港口(港口)对网络技术有两个主要含义:

      • 一种界面是有形端口,例如用于连接其他网络设备的ADSL MODEM、枢纽、开关或路由器接口。
      • 第二类港口是合乎逻辑的港口,通常是指TCP/IP协定中的港口,港口编码范围为0-65535,例如80个网络浏览服务港口和21个FTP服务港口。

      这将集中于逻辑港口,这些港口有一系列分类标准,其中两个标准概述如下:

      (1) 港口逐港口分配

      • 已知港口(众所周知的港口):一个众所周知的港口号,从0到1023不等,常常提供给各种服务。

      21号港分配给了远洋班轮运输服务,25号港交给了SMTP服务(简单的邮件传送协议),80号港交给了HTTP服务。

      • 动态端口: 1024-65535这些港口编码通常与特定服务无关。这意味着各种服务可以利用这些港口。只要按操作程序向该系统提交网络接入申请,利用互联网作为进入互联网的一种方式是可行的。然后该系统可以给该软件分配其中的一个端口号。例如,1024港被指定为向该系统发送申请的初始程序。在关闭程序进程后,如果您这样做,您将会释放您一直在使用的端口号 。

      (2) 以协议类型为基础

      根据协议的种类,如TCP、UDP、IP和IPCMP(互联网控制信息协议),它可以分离成港口。

      • TCP 端口:这是传输控制协议的端口,必须在客户端和服务器之间建立连接 。这将确保数据传输的一致性。FTP服务的21个港口中最常用的港口,Telnet第23港,25 SMTP服务港口,和80个港口的HTTP服务,等等。
      • 没有在客户与服务器之间建立连接的要求,安全就得不到保证。 经常使用的港口有53个具有DNS服务的港口,161个具有SNMP服务的港口(基本网络管理协议),8 00个和4 00个有__的港口,等等。


      前述主要与TCP分析有关。如果你仔细研究,你会发现TCP协议并不简单。工作上有若干特性和相关算法。这一内容以非口头方式作了总结。可能在几个地方,细节不够充分。因此,它建议你研究TCP的"检查TCP/IP" 由大人物。更为权威,该介绍在性质上更具有知识性。

      共勉~

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

          热门文章

          文章分类