计算机网络学习之TCP/IP五层协议模型、TCP和UDP

      最后更新:2022-05-04 20:40

      一、TCP/IP 5级议定书协议

      如下所述,TCP/IP五级协定与OSI七级协定有关:
      在这里插入图片描述

      • 应用程序层( 应用程序播放器): 提供直接访问应用程序进程的机会 。等级协定具体规定了程序间沟通和互动的规则。有多个应用程序, 不同的协议级别不同 。例如,HTTP(网络服务)、FTP(文件传输)、SMTP(电子邮件)、DNS(域名查询)等。
      • 传输层(传输机):这一层又称为运输层,负责为两个东道方的流程提供通信服务。
        传输控制协议(Transmission Control Protocol,TCP:提供连接和可靠的数据传输服务,信息作为基本单位。
        ⽤户数据报协议(User Datagram Protocol,UDP:为数据传输服务提供互不相连的最佳尝试,但不保证数据传输的可靠性;数据传输的基本单位是用户数据报告。
      • 网络层(互联网播放器):该层又称为互联网层,负责向两个主机提供通信服务,并通过选择最佳路径向目标主机提供数据。
      • 负责网络层分布的IP数据报告被包装在框架中,并在链条的两个相邻节点之间传输,每个节点包括数据和适当的控制信息(例如信息查询同步、地址信息、错误控制等)。
      • 物理层(物理层):保证通过各种物理介质传递数据,同时为数据传输提供一个可靠的环境。

      从上图中可以看出,TCP/IP模型⽐OSI模型更加简洁,它把应用/表达/会议层全部整合为了应⽤层。

      每一楼层都使用几种类型的设备,如数据链水平工作交换台和网络水平工作路由器。
      在这里插入图片描述
      各级达成的协定也各不相同,即各级各有不同的服务,下表显示各级的初级传输协议:
      在这里插入图片描述
      同样,TCP/IP5层协议还作为双方的通信媒介:
      在这里插入图片描述

      二、TCP和UDP

      TCP和UDP都关乎程序 他们都在那里TCP/IP协议族:

      ? UDP

      用户数据报告协议(UDP)被正式称为用户数据报告协议(用户数据报告协议),这是一个与TCP协议一样没有关联的协议,用于网络处理数据包。 在OSI模型中,用户数据报告协议位于IP协议的顶端传输层。数据包分组、组装和不分类的数据包的遗漏数据包也就是说,在发送来文时,无法知道该来文是否已经安全地、全面地送达。

      它的特点如下:

      1. 面向无连接
      2. 这是一个单一的多广播功能。
      3. 面向报文
      4. 不可靠性
      5. 头部成本低,数据传输效率高。

      ? TCP

      1. 面向连接
      2. 仅支持单播传输
      3. 面向字节流
      4. 可靠传输
      5. 提供拥塞控制
      6. 提供全双工通信

      TCP和UDP之间的区别在这里插入图片描述

      * 使用TCP和UDP协议。

      • TCP应用情景的效率要求相当低。然而,对精确性的要求相当高。由于数据验证、再分配、分类等要求。另一方面,联合民主党的效率较低。例如,文件传输(需要很高的准确性,但相当缓慢)、邮件接收和远程登录。
      • 联合民主党应用设想方案相当有效。要求精确度相当低的情况。例如对话、网络电影、即时语音电话等。速度要求⾼,因此,偶尔中断没什么大不了的。在这种情况下,没有办法使用再分配机制或无线电传输(无线电、多播)。

      为什么UDP协议不可信?

      摘要基于以下四点:UDP在传输数据前不需要建立连接,远端主机的运输水平不需要证实它支持在收到UDP电文后不可靠地交付。

      • 没有交货保证:没有确认,没有再传送,也没有超时。
      • 没有交货订单的保证:没有包件编号,没有重新分配,清单前面没有屏障。
      • 不跟踪连接状态: 没有必要启动连接或重新启动国家机器 。
      • 没有人群控制:没有内置客户或在线反馈系统。

      为什么TCP协议值得信赖?

      TCP可靠的传输技术依赖连续 ARQ 协议和滑动窗⼝协议的。

      TCP 协议保持发件人的窗口打开, 并有一个预发件人窗口条目 。信息已发送并校验 。,发送窗⼝中包含了信件已发送但未校验 。和允许发送信件但尚未发送,窗口发送后的条目是不能在缓存中发送信件 。当发件人发送信件时,窗口中的所有信件都按顺序发送,并启动一个计时器。此计时器可以被解释为初始文本已发送,但未经确认。如果在计时器内从某一报告收到经核实的答复,如果有,窗口滑行回确认站。信件已发送但未校验 。如果计时器已过期, 则重新启动或关闭它。 如果计时器已过期, 则将其全部发回 。已发送,但尚未确认。,并将超时调整到上一个值。两倍发件人收到接收者答复时三次确认是没有必要的。此后,有一项指示是,报告后部分很有可能丢失,因此发件人促成它。快速重传此程序将在当前计时器过期前发送 。所有信件已经发送, 但尚未校验 。。接收⽅使⽤的是累计确认的机制,对所有连续收到的报告,接收方对报告的一个部分作出了积极回应。如果你碰巧收到一个随机段落,因此,接收人干脆将其抛在一边。回到刚刚连续抵达的部分的积极回应上来。返回确认号得到累积确认保证之前及时收到的报告。因此,发送窗口可能搬迁到经核实的入口的后面。传送窗口的大小被更改 。它是由接收窗⼝剩余⼤⼩和⽹络中拥塞程度这是你的选择 TCP 这是个选择通过调整发送窗口的音量来控制信件发送速度 。。
      然而,TCP协议与幻灯片窗口协议并不完全相同,因为许多TCP的实现省去了一批失序邮件的缓存,在重新发送时只重复一次,因此TCP协议的可靠传输机制更像幻灯片窗口协议。窗⼝滑动协议和选择重传协议的⼀个混合体。

      TCP再传送的方法

      由于有可能建立TCP的较低层次网络(网络层),丢失、重复或失序为确保数据传输的准确性,TCP将重新发送它认为丢失的包件(包括报告中的比特错误)。 TCP采用两套独立的方法完成再传送,一套基于时间,另一套基于信息确认。

      TCP 打开一个计时器, 或在当时没有 ACK 确认电文传输数据时, 重发数据, 丢弃数据, 并在未成功时发出重置信号 。

      TCP选区机制

      TCP拥堵控制技术主要包括以下四个过程:

      • 慢启动
      • 拥塞避免
      • 快速重传
      • 快速恢复

      (1) 困难开始(困难开始)

      • 在发行开始时,设定 cwnd = 1 (cwnd 指压缩窗口)。
      • 想法:我们没有马上提供大量数据,而是首先评估网络的集中程度,逐渐将压缩窗口的大小从小到大。
      • 为了避免易燃可燃的网络堵塞,设定一个缓慢的启动限制(shresh状态变量)。
        • 当cnwd < ssthresh,使⽤慢开始算法
        • 当 cnwd = ssthresh 时, 您可以使用慢速启动算法或梳洗避免算法 。
        • 当cnwd > ssthresh,使⽤拥塞避免算法

      (2)拥塞避免

      • 避免选区偏向并不总是导致完全避免堵塞,即在宪法避宪法阶段操纵宪法窗口,线性地扩大网络规模,使封锁网络更加困难
      • 阈值: 逐渐增加 cwnd, 例如, 每次返回时间 RTT, 在发件人的梳理控制窗口中添加一个 。
      • 当抽搐发生时,发件人将慢速启动限制在分配窗口大小的一半,只要认为网络被抽搐。 请将压缩窗口设置为 1, 并进行慢速启动算法, 如图所示 :在这里插入图片描述
        其中,决定网络堵塞的前提是没有获得任何确认,而且尽管没有收到关于这些分组可能因其他原因丢失的确认,但由于无法确定,这些分组被归类为拥塞。

      (3)快速重传

      • 再次请求接收方一收到混乱段落(提醒发送方注意未能及早到达另一方),即重复确认。当发送者接获连续三次重复确认时,立即重播对方尚未收到的电文。而不是继续等待召回计时器过期。
      • 由于没有必要等待超时结束,它将能够尽快重新发送未经证实的信息,从而增加整个网络的伤亡。

      (4)快速恢复

      • 当发送者收到连续三次重复确认时,将使用“倍减”机制,将标准启动限值减半。然而,没有使用延迟启动算法,也没有使用延迟启动算法,连续三次收到重复确认,使用“倍减”机制,将标准启动限值减半。然而,没有使用延迟启动算法。
      • 因为如果网络被震动,就不会收到无数重复的确认,所以发送者现在认为网络没有被震动。 此时,Cwnd不是应用缓慢的启动算法,而是设定为Ssthresh的大小,然后采用避免堵塞的方法。在这里插入图片描述

      * 控制TCP流动的机制

      一般而言,交通管制是..检查发件人发送数据的速度是否过快。 请确认收件人是否收到数据 。TCP 通过一个可变大小的滑动窗口控制流量, 以字节计。 窗口大小实际上是每个包的大小 。

      • 当连接形成时,每端连接都建立一个缓冲区,以保存输入的数据,并将缓冲区的大小传送到另一端。
      • 当数据到达时,接收方确认它有指定的缓冲区大小。 (其余缓冲区区域称为窗口,显示窗口大小的信息称为窗口通知。 )接收方在发出的每份确认书中都包含一个窗口通知。
      • 如果接收方的应用程序尽快读取数据,接收方提供正面窗口通知,每次确认后都提供肯定窗口通知。
      • 如果发件人比接收方更快,收到的数据最终将填入接收方的缓冲区,导致接收方报告一个零窗口。当发送方收到零窗口通知时,必须暂停,直到接收方重新命名一个正窗口。

      TCP握手 三次四次波浪

      (1)三次握手
      在这里插入图片描述
      “三握手”一词(或“三握手”)是指TCP连接总共需要客户端和服务器提供三包。 三个握手的关键优点是..准备认证双方的定期接收和交付能力,包括指定初始化序列号作为可靠性的背对背传输。实质上,它涉及将服务器连接到某一港口,建立TCP连接,并同步双方的序列号和确认号,以传递TCP窗口大小信息。

      启动客户端位于封闭状态, 而服务器位于监听状态 。

      • 客户通过向服务发送SYN信息启动第一次握手,该信息识别客户的初始序列号ISN,客户在SYN_SEND状态。

        第一个同步位置 SYN=1, 第一个序列号后序号为x, SYN=1 条目不传输数据,而是消耗一个数据。

      • 当服务器收到客户端的 SYN 消息时, 第二次握手会发生 。作为回应 我会用我的SYN报告它还产生自己的初始化序号,即ISN。同时,客户的ISN+1将用作ACK值。据博客说,他从客户那里一无所获。服务器现在处于 SYN_REVD 状态 。

        SYN = 1, ACK = 1, 经核证的杰克 = x + 1, 序号起序 = y

      • 第三手握:客户收到SYN信息后,将发出一个确认的信息,当然,服务器的 ISN+1 与 ACK 相同 。2011年叙利亚抗议活动特别报导,客户现已进入成立州。服务器收到ACK报告后这篇文章是我们专设的特别报导的一部分。此时,双方建立了联系。

        在 ACK=1 中验证,在 k=y+1 中确认, 序列号后为x+1( 初始为 follow=x, 第二信息为+1), 数据可在 ACK 中传输 。

      TCP的三手握式连接是一种相互识别起始序列号和通信的程序,可以适当收到这些序列号的示范部件,这是第三次握手。服务器第一个序列号的客户验证如果只使用了两次握手,服务器就无法知道其序列号是否得到确认。 这样做也是为了防止服务器收到虚假请求。

      (2)四次挥手
      在这里插入图片描述
      如果客户提出关闭申请,双方最初都以成立时的状态成立。

      • 第一波: 客户端发送带有序列号的 FIN 消息。 客户端目前处于 FIN_ WAIT1 状态 。

        ,即发送连接发布段落(FIN=1,序列号后加号=u),停止重新发送数据,然后自由关闭 TCP 连接,进入 FIN_WAIT1 (Close wait for 1) 状态,等待服务器确认。

      • 第二波:服务器收到 FIN 后, 发送了 ACK 信息, 客户的序列号值+1 是 ACK 提交文件的序列号, 表示客户的信息已经收到, 客户处于 CLOSE_WAIT 状态 。

        换句话说,当服务提供商首次收到链接释放文本时,即发送确认文本(ACK=1)。ack=u+1是确认的数字。序号seq=v),服务提供者的地位改为CLOSE_WAIT(CLOSE_WAIT)。TCP目前是半封闭的。开放客户与服务的联系。客户收到服务处的确认后,停止等待 2 进入 FIN_ WAIT2( 停止等待 2 ) 状态 。等待服务端连接释放 。

      • 第三波: 如果服务器还想断开连接, 它会发送 FIN 消息并提供序列号, 与客户端的第一波相同。 此时, 服务端在 LAST_ ACK 状态 。

        如果服务没有向客户发送的数据,它会发送连接发布信息(FIN=1,ACK=1,序列号后继w,确认符号=u+1),并在客户确认之前进入 LAST_ACK(最后确认)状态。

      • 客户收到FIN后类似发送一份ACK报告作为答复,然后,用服务终端序列号的值+1作为其本身的ACK提交文件的序号,客户现已进入时间- 时间- 时间模式 。在进入封闭状态之前,该服务处必须首先确保收到其自己的ACK信息。收到ACK报告后就处于关闭连接了,目前已关闭。

        一旦客户收到服务与发布信息的联系,就很容易确定情况。根据这一请求,收到了一封确认函(ACK=1)。seq=u+1,ack=w+1),客户输入Time_WAIT(延迟时间) 。同时,TCP尚未公布。等待定时器设置 2MSL 需要一些时间 。客户的地位只是封闭的。

      你为什么挥手四次?
      当客户收到SYN连接请求时,使用这项服务是不可行的。SYN+ACK 信息可以直接发送 。为了回答问题,使用了ACK报告。为了同步,利用了SYN报纸。但是关闭连接时,当情报处收到FIN的讯息时,Socket极有可能不会立即被关闭。因此,我只能一次回答一份ACK报告。告诉客户端,"你传达了我收到的FIN的讯息"只有在关于我服务的所有报告完成之后,我的工作才完成。我无法发送FIN的讯息因此不能⼀起发送,故需要四次挥⼿。

      总而言之,有四个步骤:

      • 第一波:如果客户认为传送的数据是完整的,必须向服务供应商发出连接释放请求。
      • 第二波:在收到与释放连接的请求后,该服务将能够这样做。将指示应用层关闭 TCP 连接 。在那之后, 发送ACK包。然后进入悬崖的状态,它表明,客户与服务的联系已经断开。客户不再生成数据。然而,由于TCP的连接是双向的,因此,服务器可以继续向客户发送数据。
      • 第三波:此时,服务器将继续传输未完成的数据,向客户端发送连接发布请求,并最终进入 LAST-ACK 状态。
      • 第四波:客户在收到释放请求后获释。向服务器发送确认回复 。此时,客户进入时-时-时状态。该条件将持续2MSL(最大存活期)。这个项目是我们人权观察社特别报道的一部分。是时候放手了如果在这一时限内没有收到服务提供人的任何请求,则不会收到服务提供人的任何请求。输入关闭状态。当服务器收到对回复的答复时,它写道:这篇文章是特制报导的一部分。

      TCP使用4个挥波器,因为TCP连接是全时的, 因此双方都必须向对方释放。 另一方的连接被释放, 这意味着数据不能转移到对方, 而连接处于半释放状态 。。

      上次我挥手时,客户暂停了几分钟才关闭,原因如下:避免发送到服务器的确认信息丢失或错误,否则服务器将无法正确关闭。。

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

          热门文章

          文章分类