UNP TCP连接管理

本文探讨了通信中解决信息丢失或改变的方法,包括差错校正码与ARQ技术。详细介绍了ARQ的工作原理及如何利用ACK确认信息正确接收,并通过序列号处理冗余分组。此外,还讲解了滑动窗口协议实现流量控制的过程。

ARQ和重传

通信媒介可能会丢失或改变被传递的消息,比如一个有损信道内传输比特流,可能会导致比特被删除或者修改,造成通信的不可靠性。目前有两种方式可以解决上述问题:

  1. 差错校正码:通过添加一些冗余的比特,使得即使某些比特被毁,真实的信息也可以被恢复过来。
  2. ARQ(自动重传请求):通过重新传输消息,直到信息最终被正确接收。
    ARQ需要重发分组直到它被正确接受,判断机制为:(1)接受方是否已收到分组(2)接收方接收到的分组是否与之前发送方发送的一样。接收方通过发送信号告知发送方自己已经成功收到,这个信号称为ACK。

注意:

  • 这种场景下,接收方有可能接收到被传送分组的冗余副本。这个问题可以通过序列号来处理。接收方可以使用序列号来判断它以前是否接受过这个分组,如果见过则丢弃它。

分组窗口和滑动窗口

分组窗口:发送方发出但接收方尚未回送ACK的分组集合。
窗口大小:分组窗口中分组数量。

这里写图片描述
就本图而言,3号分组已经被发送和确认,所以由发送方保存的3号分组副本可以释放。7号分组在发送方已经准备好,但还没被发送,因为它还没流入窗口。
现在假设数据开始从发送方流到接收方,ACK开始从接收方流到发送方(从左至右),这意味了下一步发送方将接收到到分组4的ACK。然后窗口开始滑动,4号分组从分组窗口中释放,而分组7则开始流入分组窗口中。窗口的这种一系列类似滑动的动作称为滑动窗口协议。

变量窗口:流量控制和拥塞控制

流量控制:协调发送方与接收方之间分组的传输,可以在接收方跟不上时强迫发送方慢下来。主要有以下两种方式:

  • 基于速率(rate-based)流量控制:给发送方指定某个速率,同时确保数据永远不能超过这个速率传输。这种类型的流量控制比较适合于应用程序。
  • 基于窗口(window-based)流量控制:使用滑动窗口时,窗口大小不固定。为了使用这种技术进行流量控制,必须有一种方法让接收方可以通知发送方使用多大的窗口。例如发送方允许注入W个分组到网络中,假设网络中没有丢失一个分组以及有无穷的空间的话,这意味着通信速率正比于(SW/R) b/s。S为分组大小(按比特计算),W为窗口大小(窗口中的分组数量),R为往返时间。

拥塞控制:发送方减低速度以至于不压垮自己与接收方之间的网络

TCP头部和封装

TCP报文段包括两部分:TCP头部和TCP数据。头部为20字节分为5各部分,每个部分32位即4B。

  • 1.源端口号16位和目的端口号16位
  • 2.序列号32位
  • 3.确认号32位
  • 4.头部长度4位,保留4位,8位标志位(包括syn、ack、rst、fin等),16位窗口大小
  • 5.TCP校验和16位,紧急指针16位

这里写图片描述

这里写图片描述

sequence number序列号,该字段包含了在本次连接的这个方向上要使用的第一个序列号(本报文段的第一个字节的序号),后续序列号和返回的ACK号也在这个方向上。
例:一报文段的序列号为301,而携带数据有100字节,由发送端发出,则下一次发出的报文中的序列号为401。
Acknowledgement Number确认号,该字段包含了期望收到对方的下一个报文段的数据字节的第一个字节序。
例:B正确收到了A发送的报文段,这个报文段的序列号值为301,而携带数据有100字节(301-400),因此B回送ACK时应当置其值为401。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值