赞
踩
传输层
概述和运输层服务
传输层和网络层的关系
网络层对传输层(由下到上,分层模型)的影响:
因特网传输概述
多路复用和多路分解
实际上,每个套接字都有一个唯一的标识符(ID),被称为端口号(16比特);
在传输层接收到来自应用程序的分组并通过添加传输层首部而形成报文段的过程中,该端口号被写入;端口号大小在0-65535之间,其中0-1023属于周知端口号,它们为特定的Socket而拥有。
无连接的多路复用与多路分解:
面向连接的多路复用与多路连接:
实际上,传输层就是根据这些信息来实现多路分解的;而这些信息是在多路复用的时候被放置在报文段中
无连接运输:UDP
事实上,有些应用很适合UDP(因为没有连接过程啊,因为不会受拥塞控制的调节啊,更自由);
UDP的优点:
UDP报文结构:
UDP首部只有4个字段,每个字段占用两个字节,分别是:源端口号、目的端口号、长度和校验和;
UDP作为传输层协议,提供的差错检测功能很有可能和底层协议提供的相似功能产生冗余:
IP作为网络层协议,可以运行在任何第二层协议上,所以传输层提供差错检测也是非常有用的;
UDP可以检测差错,但是无法恢复差错,能做的除了将其丢弃外,便是将其交给应用程序然后给出警告.
可靠数据传输原理:
现在假定除了比特受损外,底层信道还会丢包。因此协议还要处理另外两个问题:
在 rdt 3.0 中,丢包的问题让发送方解决(当然也有很多方法用于解决丢包问题)。不管是发送的分组丢失,还是接收方返回的确认分组丢失,只要在经过一定的时延后,让发送方重发该分组即可。
由此产生的 冗余数据分组 则由接收方通过序号(协议rdt2.2中就这样解决)处理。为了实现基于时间的重传机制,需要一个倒计时定时器
因为分组序号在 0 和 1 之间交替,因此 rdt 3.0 有时被称为 比特交替协议。
设包括首部字段和数据的分组长为L=1000字节(8000比特),则发送一个分组进入1Gbps链路实际所需时间是:
该分组的最后1比特在时刻 t 时到达接收方 ,t=RTT/2+L/R = 15.008ms到达接收方
接收方一旦收到一个数据分组的最后1比特后立即发送ACK,ACK在时刻t=RTT+L/R=30.008ms时在发送方出现
因为发送方只用了0.008ms,则利用率为:
通过一个图对比:
要使用流水线技术,则须:
流水线的差错恢复有两种基本方法:
面向连接的TCP(传输控制协议)
可靠的数据传输
IP协议提供的是尽力而为的服务:不保证数据不丢失、不保证数据按序到达、不保证数据到达没有损坏,TCP协议在IP协议之上,提供可靠数据传输,从而保证一个进程从其相关联的缓存中读取的数据和另一端进程发送的数据是一致(无损坏、无间隙、非冗余、按序)的数据流;
(数据不丢失)TCP使用超时重传和冗余确认技术来处理超时、丢失等情况;
(数据按序到达) 使用确认、序号等技术来保证按序到达;
(数据到达但没有损坏) 使用校验和来检验是否报文段在传输过程中是否发生了错误;
通过三种情况我们进一步理解TCP协议
超时时间加倍:
快速重传:
是回退N步还是选择重传
流量控制(引用别人BLOG)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。