计算机网络(TCP / UDP)

      最后更新:2022-04-16 11:15

      • UDP
        • UDP协议端格式
        • UDP特点
      • TCP
        • TCP协议端格式
        • TCP特点
          • 确认应答
          • 超时重传
          • 连接管理
          • 滑动窗口
          • 流量控制
          • 拥塞控制
          • 延时应答
          • 捎带应答
          • 位元流( Pocket 问题)
          • TCP的异常处理
      • 面试题
        • 如何利用联合民主党议定书提供可靠的传输?
        • 对TCP来说是最好的,对UDP来说也是好的。

      UDP

      发现协议,经常使用纸质表格。

      UDP协议端格式

      在这里插入图片描述

      16个UDP长度反映数据报告的总长度(UDP第一+UDP数据);
      如果校验总和包含错误, 它会被丢弃 。
      原港号: 目的地港号
      原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号:
      UDP长度:整个UDP的第一批部长总数和数据长度。
      校验和: 如果在传输过程中发现 UDP 数据报告有错误, 错误将被丢弃 。
      在这里插入图片描述

      您能否将 UDP 端口修改为四个字节?

      改不了…
      报文长度是2字节,一个UDP最多就是65535 => 64k

      UDP特点

      TCP

      TCP协议端格式

      在这里插入图片描述

      原港号: 目的地港号

      原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号: 原港号:

      序号 : 数据传输地点 。每次发送数据时,都会添加数据字节的大小 。

      确认序列号:即将收到的下一个数据序列号。

      第一部长:表示TCP头部32位数(四字节);因此TCP头部最长长度为15* 4=60。

      保留: 未来增长的 4 个长点。 一般设置为 0 。 即使袋子在野外不是 零, 也不会被丢弃 。

      在这里插入图片描述

      这六个标记是TCP提交文件的基本领域:
      URG:下午1时,标明包件中需要立即处理的数据。
      ACK: 验证回复的字段于下午1时生效。
      PSH:下午1时,数据必须直接传送到更高一级应用协议,但下午0时,不需要立即传输,但需要第一个缓存。
      RST:下午1时,信号显示TCP异常点必须被迫中断连接。
      SYN:下午1时,表示连接的愿望。与 SYN 标记同步的文本
      下午1时,信号表示不再提供希望中断连接的任何数据。 FIN标记是结尾段落。

      窗口大小:TCP开始时从同一响应编号位置收到的通知所能收到的数据数量(8字节)。

      校验总和:校验总和的目标是识别 TCP 第一部分的任何变化以及发送端和接收端之间的数据。如果收件人发现测试或错误,则直接删除 TCP 部分。

      当快速反应小组控制位置为1(可能有、没有或一个或多个)时,紧急指针是有效的。

      TCP特点

      确认应答

      保证可靠传输的基本程序,此后发送者可以知道对方是否收到数据。
      重要的是,收件人向发件人发回回复信息(ACK,请确认),确认他收到了。
      举个例子:
      一位同学向B同学发出以下讯息:
      在这里插入图片描述

      超时重传

      这是确认答复的补充,我在所有正常的网络时间通过 " ACK通知发送人 " 得到的确认答复,对于丢失的包件,这是一个超时机制。
      这主要是因为发件人失败,收件人没有答复,导致重发。
      在这里插入图片描述

      正常情况下,连续两次丢包概率还是很低的,假设丢包概率为10%,连续两次就是10% * 10% => 1%,如果重传一直失败,他也不会无休止重传,说明这时网络可能遇到了严重的问题,就只能放弃了(自动断开TCP的连接)

      连接管理

      这也是一种TCP可靠性技术..
      1)如何建立连接:
      三次握手:
      在这里插入图片描述

      三次握手有什么好处?这与可靠性有什么关系?

      三个握手(相当于投掷石块的握手)决定网络的现状是否符合可靠传输的基本要求,如果网络如此糟糕以至于迫使TCP传输,它也可能包括大量滴子。更具体地说,可以声称三次握手真正测试连接的两侧,传输和接收能力是典型的,就像你打电话并开始在街对面大喊,“嘿,你好,你能听到我吗?”"对面:"你能听到我在说什么吗? 你能听到我在说什么吗?表示有可靠传输的条件..经过三次握手后, 双方可以核实其传输和接收能力良好, 然后进行后续通信。
      2)如何断开连接:

      四次挥手:
      在这里插入图片描述

      滑动窗口

      滑动窗口的目的是在保持可靠性的同时优化传输效率!

      在这里插入图片描述

      在这里,我们发现,每次我们做一次行动, 我们等待一个ACK, 我们花了很多时间等待ACK。

      在这里插入图片描述

      我们以这种方式同时交付了四组数据。我们不等待装运这四组数据;我们都出去,我们穿制服..

      在这里插入图片描述

      在这里插入图片描述

      万一船舱被这样放错地方了呢?

      在这里插入图片描述

      由于这一条件,必须重新传送:

      流量控制

      流动控制是一个可确保可靠性的滑动窗口扩展程序。 滑动窗口的窗口越大, 传输速度越快, 不仅发送者, 而且接收者也越快。 如果发送者传送窃贼的速度太快, 接收者就无法管理它, 并且丢失了新收到的软件包 。 发送者必须重新发送它 。

      交通管制的关键是监测接收方的费率,直接利用接收方剩余空间接收缓冲区,以测量目前的处理能力。 交通管制的估计是监测接收方的费率,直接使用接收方剩余空间接收缓冲区,衡量目前的处理能力..

      在这里插入图片描述在这里插入图片描述

      根据ACK报告,接收者通知发送者剩余空间。
      发送者获取此数据并更改发送者的速度( 调整窗口大小), 测量当前接收器剩余空间的16位窗口大小( 虽然我说16位, 窗口超过64k, 可能更大 ) 。

      拥塞控制

      还有一个幻灯片窗口添加符可以让幻灯片窗口减慢速度 。
      选区控制评估向接收方发送者,以及这两方之间的拥堵(能力)。
      在这里插入图片描述
      在这里插入图片描述

      延时应答

      它是一种交通控制,是一种制动系统, 它不会移动太快。有一个打嗝。

      这与同一时间倒入的水量相似,每次注入一波水时,你都会问目前水池中还有多少空间,而措施是稍后再回答,这意味着此时将有更多水流出来。如果你反应迅速,剩余的30吨可以注射;但如果你稍候后作出反应,可以注射满40吨水。在一定条件下,可以尽可能提高传输速度。

      捎带应答

      这是拖延的继续。
      在这里插入图片描述

      位元流( Pocket 问题)

      这不仅仅是TCP的粘糊糊的袋子问题; 其它以字节为导向的技术,例如文件阅读, 也受到影响。
      粘粘TCP袋问题与应用层数据报告很粘合,因为许多应用层数据包在TCP的缓冲区被拼凑在一起,无法辨别是谁..
      在这里插入图片描述

      TCP的异常处理

      1)进程终止

      当TCP突然以未知状态停止时,TCP与这一过程有什么联系? ==>TCP连接,是通过Socket来建立的,Socket本质上是进程打开的一个文件,文件其实就是存在于进程的PCB里面的 文件描述符表,每次打开一个文件(包括Socket),都在文件描述符表里增加一项.每次关闭一个文件,都在文件描述符表里,进行删除一行,如果直接杀死进程,PCB也就没了,里面的文件描述符表也就没了,此处的文件相当于"自动关闭"了,这个过程其实和手动调用socket.close(一样,都会触发四次挥手~)

      2)机器关机

      如果经常程序终止,操作系统将终止程序,然后终止程序,正因为程序终止。

      3) 机电/断开电网机电/断开电网

      操作系统,像台式电脑一样,没有反应时间,如果电力直接被拉走,将没有反应时间,更没有单独治疗。

      在这里插入图片描述

      面试题

      如何利用联合民主党议定书提供可靠的传输?

      事实上,这是一种TCP测试,在应用层面,它只是一种基于UDP的TCP方法。

      对TCP来说是最好的,对UDP来说也是好的。

      1:啥时候使用TCP? =>对可靠性有一定要求,(日常开发中的大多数情况,都基于TCP)
      2:如果传输的单个数据报比较长(超过 64k) -> 首选 TCP
      3:啥时候使用UDP? =>对可靠性要求不高,对于效率的要求更高(机房内部的主机之间通信,分布式系统中,广播就是首选UDP)

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

          热门文章

          文章分类