计算机网络——传输层

三、传输层

1.多路复用与多路分解

多路复用:从源主机上不同的套接字中收集数据块,并为每个数据块封装上首部信息,从而生成报文段,然后将报文段传递到网络层。

多路分解:将运输层报文段中的数据交付到正确的套接字的工作。

2.在TCP/IP协议族的传输层中,为什么设置TCP和UDP两种不同的协议?试对他们进行比较

根据使用环境和用途的不同设置了两种协议。

UDP:用户数据报协议,只有简单的检验功能,无需建立连接,不必维护连接状态;不提供可靠数据传输,也没有流量控制和拥塞控制,应用层能更好的控制要发送的数据以及发送的时间,分组首部开销小:TCP有20B的首部开销,而UDP仅有8B的首部开销。

TCP:传输控制协议,提供可靠数据传输,流量控制和拥塞控制,面向连接,采用累积确认机制,建立TCP连接需三次握手。保证传送的数据无差错、不丢失、不重复且有序。

对比

同:TCP和UDP都不提供定时和最小带宽保证

异:(1)TCP面向连接;UDP无连接运输。

(2)TCP提供可靠的数据传送服务和全双工服务;UDP提供最小服务。

(3)TCP具有流量控制和拥塞控制;UDP无拥塞控制,可以用发送方选定的任何速率向下方注入数据。

(4)TCP套接字由四元组标识(源IP,源PORT,目的IP,目的PORT),不同源IP或不同PORT会被分解至不同套接字;UDP套接字由二元组全面标识(目的IP,目的PORT)如果两个UDP报文段有不同的源IP和源PORT,但有相同的目的IP和PORT,那么将会通过同一套接字定向到同一进程。

3.可靠数据传输原理

rdt1.0经完全可靠信道的可靠信道传输

在这里插入图片描述

rdt2.0经具有比特差错信道的可靠数据传输(带有检验和)

假定所有发送的分组将按其发送顺序被接受

在这里插入图片描述

rdt2.1 假定信道不丢失分组,考虑到了ACK和NAK分组受损的问题

在这里插入图片描述

rdt2.2去掉了NAK

在这里插入图片描述

rdt3.0 经具有比特差错的丢包信道的可靠数据传输

加了定时器

在这里插入图片描述

4.解决流水线的差错恢复:回退N步、选择重传

GBN

1)允许发送方发送多个分组而不需要等待确认

2)流水线中已发送但还未被确认的分组个数不能超过N(窗口长度)

3)采用累积确认机制

4)发送方仅用一个定时器,被当作最早的已发送但还未被确认的分组所使用的定时器

5)如果出现超时,发送方重传所有已发送但还未被确认的分组

6)发送方要维护窗口的上下边界以及nextseqnum在窗口中的位置,但接收方只需维护下一个按需接受分组的序号

7)接收方有期望序列号,如果收到的不是期望的分组,直接丢弃

SR

1)通过让发送方仅重传那些在接收方出错了的分组而避免了不必要的重传

2)接收方将确认一个正确接收的分组而不管其是否按序,接收方将接收到的乱序分组缓存起来,直到所有丢失的分组都被接收到,才将一批分组按序交付给上层

3)每一个分组使用一个定时器

4)为了让接收方区分是一次重传还是新的分组,其窗口长度必须小于等于序号空间大小的一半。

5)有发送方窗口和接收方窗口,而GBN只有发送方窗口

5.无连接服务与面向连接服务

面向连接服务就是在通信双方进行通信之前,必须先建立连接,在通信过程中,整个连接的情况一直被实时的监控和管理,通信结束后释放这个连接。

无连接服务是指两个实体间的通信不需要先建立好连接,需要通信时,直接将信息发送到网络中,让该信息的传递在网上尽力而为地往目的地传送。

6.TCP连接的三次握手

在这里插入图片描述

1)客户端的TCP首先向服务器端的TCP发送一个特殊的TCP报文段,SYN位置1,随机选择一个初始序号(client_isn)

2)一旦包含TCP syn报文段的IP数据包到达服务器主机,服务器从中提取出TCP SYN报文段,为该TCP连接分配TCP缓存和变量,并向该客户TCP发送允许连接的报文段(SYN比特被置1,首部ACK字段被置为client_isn+1),服务器选择自己的初始序号server_isn

3)客户端收到SYN ACK报文段后,给该连接分配缓存和变量,向服务器发送另外一个报文段(SYN置0,ack=server_isn+1,seq=client_isn+1),可以携带客户到服务器的数据。

7.TCP连接断开的过程

在这里插入图片描述

1)客户进程发送一个关闭连接命令,会引起客户TCP向服务器进程发送一个FIN为1的TCP报文段。

2)当服务器接收到该报文段后,向客户端发送一个确认报文段。此时客户端到服务器端的连接就释放了。

3)服务器发送自己的终止报文段,FIN置1。

4)客户端接收到该报文段,发出确认,用于该连接的所有资源均被释放。

8.TCP流量控制

流量控制是一个速度匹配服务,即发送方的发送速率与接收方的应用程序的读取速率相匹配。

实现方法:利用接收窗口rwnd控制信息,接收方把自己rwnd尺寸告诉发送方,发送方限制自己已经发送但还没收到ACK的数据不超过rwnd的大小

9.TCP拥塞控制

让每一个发送方根据所感知到的网络拥塞程度来限制其能向连接发送数据的速率

在这里插入图片描述

拥塞控制算法

ssthresh:慢启动阈值 cwnd:拥塞窗口

MSS:TCP报文段里应用数据的最大长度(不包括TCP/IP头部 40字节)

MTU:一个链路层数据报所能承载的最大数据量

1)慢启动阶段:cwnd的值以1MSS开始并且每当传输的报文段首次被确认就增加1MSS,cwnd以指数速度增长;若cwnd到达阈值,进入拥塞避免阶段。若出现了三个冗余ACK,执行快速重传,ssthresh=cwnd/2,cwnd=ssthresh+3mss;若出现超时现象,表示严重拥塞,将cwnd改为1MSS,并重新开始慢启动,ssthresh变成超时前窗口的一半。

2)拥塞避免阶段:每RTT时间拥塞窗口长度加1MSS;如果出现3次冗余ACK,进行快速恢复,ssthresh=cwnd/2,cwnd=ssthresh+3MSS;如果超时,cwnd变为1MSS并重新开始慢启动,ssthresh=cwnd/2。

3)快速恢复:对于引起TCP进入快速恢复的缺失报文段,对收到的每个冗余ACK,cwnd值加1MSS,当丢失报文段的一个ACK到达时,TCP在降低cwnd后进入拥塞避免状态;如果超时,cwnd变为1MSS,ssthresh=cwnd/2,重新开始慢启动。

10.快速重传

发送方收到对相同数据的3个冗余ACK,在定时器超时之前就进行重传

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张先森啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值