计算机网络之传输层5

系列文章目录

第五章计算机网络之传输层5


讲解顺序

在这里插入图片描述

一、传输层服务概述

segment报文段
在这里插入图片描述

1.1传输层与网络层的区别与联系

在这里插入图片描述

1.2Internet传输层协议

可靠是数据不会出错
按序按所发送的顺序到达不会错乱
为了满足这两点:

在这里插入图片描述

二、多路复用和多路分用

在这里插入图片描述

2.1分用如何工作

在这里插入图片描述

2.2无连接的多路分用

在这里插入图片描述比如你创建了99111的socket服务器的Ip地址和99111端口号唯一标识这个socket
来自不同的源IP和端口号导向一个Socket证明他们的目的ip和端口号一样
在这里插入图片描述
SP:源端口号
SP作用:提供了返回地址
DP:目的端口号
A和B的数据目的端口和IP一样所以都导向P3进程了

2.3面向连接的多路分用

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

面向连接的分路分用:多线程WEB服务器

在这里插入图片描述

和上面的区别:由于进程是耗费资源的多的机制,随着技术的进步,现在可以一个进程创建多个线程达成一个轻量级的进程机制。
让多个线程进行TCP连接,为客户服务。

三、计算机网络传输层之无连接协议UDP

UDP:用户数据包协议RFC768
链路层有错误检测,在传输层做错误检测?
传输层是端到端的逻辑通信服务,可能经过多个路由器、多个物理媒介,无法确保所有数据链路层都有检测。
在路由器存储转发时也可能出错。
在这里插入图片描述

在使用UDP时上层应用可以更好的控制发送时间和速率:TCP使用时有拥塞控制,根据拥塞控制原理会调整数据发送速率,不完全听上层应用。

3.1 UDP应用及报文段格式

在这里插入图片描述应用层加可靠性开发难度增大

3.2 UDP校验和(checksum)

位翻转:某位发生翻转0变1,1变0。
在这里插入图片描述
两个位发生翻转就可能检测不出来。

3.3校验和计算例子

最高位有进位,进位加在和的后面。
在这里插入图片描述

四、计算机网络传输层之可靠数据传输概述

4.1可靠数据传输原理

信道是不可靠,传输中发生位错误,路由器存储溢出发生丢包
不错:分组传输中不能错
不丢:分组传输不能丢
不乱:分组顺序不乱,分组重复收到,分辨出是重复分组
rdt可靠数据传输协议
udt不可靠数据传输协议
在这里插入图片描述

4.2可靠数据传输协议基本结构:接口

在Internet不可靠信道,IP协议。(网络层唯一的协议)
当packet到达数据接收方时信道时,该接口(rdt_rcv)会被调用,被调用会触发接收方rdt的协议来处理。
在这里插入图片描述rdt_send接口箭头单向:网络应用单向调用下层可靠数据传输协议,剩下的事情就不管了。
deliver_data()箭头单向:底层接收方可靠传输协议把事情全部做好才把数据交付给上层。
可靠数据协议和不可靠信道不是单向的数据流动,是有双向的控制信息流动。

4.3可靠数据传输协议

单向数据传输:发送方将数据发到接收方
在这里插入图片描述

五、Rdt1.0:可靠信道上的可靠数据传输

不需要控制信息双向流动,只要有消息直接发送就行了,信道可靠不会发生错误。
udt_send接口名字定义成这样但是假设它为可靠性传输
extrace提取操作,提取后也不需要检查是否出错,直接交给上层便行了。

在这里插入图片描述

5.1Rdt2.0:产生错误的信道

在这里插入图片描述

5.2Rdt2.0:FSM规约

在这里插入图片描述

5.3Rdt2.1和Rdt2.2

Rdt2.0的缺陷
发送方接受到不正确的ACK/NAK时候添加额外的控制信息比如叫接收方重新发送一遍ACK/NAK。
重复分组:前一个数据被正确接受了,然后发送ACK,然后ACK坏了,发送端又重新发送一次数据,就会产生重复分组。所以不能简单的重发数据
在这里插入图片描述
Rdt2.1:发送方,应对ACK/NAK的破坏
在这里插入图片描述

Rdt2.1:接收方,应对ACK/NAK的破坏
在这里插入图片描述

Rdt2.1与Rdt2.0
在这里插入图片描述两个序列号够用因为采用了停等协议

5.4Rdt2.2:无NAK消息协议

在这里插入图片描述
发送方发数据1,接收方回复ACK0,发送方就明白表达的意思是NAK了
发送方发数据0,接收方回复ACK0,发送方就明白表达的意思是ACK了
在这里插入图片描述

六、Rdt3.0

发送方发送数据后丢了,发送方会一直等下去,因为接受方不会无缘无故的发ACK/NAK
如果接收方发送ACK/NAK丢失了,发送方也会一直等待下去
所以需要添加一个定时器
如果是延迟的话,会产生重复问题,但是重复有序列号解决,所以无所谓。
在这里插入图片描述
发送方FSM

在这里插入图片描述

6.1 Rdt3.0示列1(丢包)

在这里插入图片描述

6.2Rdt3.0示列2(丢失ACK)

在这里插入图片描述send会同时收到ACK0和ACK1

6.3Rdt3.0性能分析

在这里插入图片描述30ms发送一个分组,一个分组是1KB,所以1s发送33kb。而理论通讯速率1GB

性能差由于停等操作引起的
在这里插入图片描述

七、流水线机制与滑动窗口协议

7.1流水线机制提高资源利用率

在这里插入图片描述Rdt3.0由于停等协议所以导致效率低
所以,通过流水线机制一次多发送,提高效率,一次发3个效率提高3倍。一次发n个,效率提高n倍

7.2流水线机制

在这里插入图片描述

7.3滑动窗口协议

实现流水线机制的协议
绿色:已经发送并且确认的
黄色:已经发出去还未确认的
蓝色:还可以使用的序列号

在这里插入图片描述
最多n个,14个黄色加蓝色,已经发送了8个,还可以6个可以使用。nextseqnum下个可以用的序列号
全部使用完(移动到最右边),等待ACK后,继续向前移动

八、GO-Back-N协议(GBN协议):发送方

头部包含K个序列号则有2的k次方个序列号可用(0 1)
随着协议的运行,窗口会向前滑动
在这里插入图片描述ACK(n)代表从包含n,n前面所有的数据都被正确接收了

GBN:发送方扩展FSM

在这里插入图片描述

GBN接收方扩展(变量)FSM

在这里插入图片描述期望收到5序列号,收到7,则发ACK(4)

GBN示列

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

九、Selective Repeat协议(SR协议)

GBN协议ACK(n)和TimeOut(n)会导致重传很多资源,浪费资源。
SR协议:
在这里插入图片描述

Selective Repeat:发送方/接收方窗口

在这里插入图片描述彼此不知道对方窗口在哪个位置,即接收方/发送方窗口不同步

SR协议发送方/接收方

在这里插入图片描述

SR协议示列

在这里插入图片描述

SR协议困境

在这里插入图片描述
a)第一个分组的重传
b)第五个分组的发送
receiver区别不了a和b,会出错,对于a,receiver会误以为是第四分组存起来,而不是重新发送ACK0
问题点是序列号太小,窗口太大。
2的k次方是(0 1)算一个K
该场景,序列号空间大小为4,窗口大小是3乘以2为6,不满足条件,所以有问题a和b

十、可靠数据传输原理与协议小结

信道不可靠要变成可靠,不可靠如位错误等
我们有可靠的需求
由需求提出了Rdt1.0到Rdt3.0
由于Rdt3.0停等造成性能不行
提出流水线机制与滑动窗协议GBN SR协议
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值