计算机网络传输层

在这里插入图片描述
传输层协议为运行在不同主机上的进程提供了一种逻辑通信机制(是端到端的通信机制)
(所谓逻辑通信:不关心中间多元的距离,经过多少路由器,中间用的物理介质)

端系统运行传输协议
发送方:将应用递交的消息分成一个或多个的segment(段),并向下传给网络层
接收方:将接收到的segment组装成消息,并向上交给应用层。
传输层可以为应用提供多种协议(TCP UDP)

网络层:提供主机之间的逻辑通信机制
传输层:提供应用进程之间的逻辑通信机制
位于网络层之上,依赖于网络层五福,对网络层服务进行增强

可靠的、按序的交付服务(TCP)
拥塞控制。流量控制、连接建立
不可靠的交付服务(UDP)
没有做可靠性的扩展
两种服务均不提供延迟与带宽的保障

传输层必要功能多路复用和多路分用
在这里插入图片描述
接收端要正确的将从p3送来的数据放到p1就需要传输层一句头部信息将segment正确交给socket,这叫多路分用

发送端为每个数据装上头部信息生成segment交给网络层叫多路复用
在这里插入图片描述
传输层赋予信息源端口号和目的端口号
在这里插入图片描述
在这里插入图片描述

UDP协议
user datagram protocol RFC768

基于IP协议 提供复用/分用功能和简单的错误校验
“best effort(尽力而为)”的服务,UDO段可能丢失,非按序到达
在这里插入图片描述
UDP头部是8字节而TCP20字节
TCP因为有拥塞控制,所以发送时间和速率不是完全遵循应用
UDP用于DNS,SNMP
UDP可以提供可靠的数据传输,需要在应用层增加可靠性机制,应用特定错误恢复机制,开发难度增大
在这里插入图片描述
上面是两个16位端口号
checksunm是校验和
目的:渐层UDP段在传输中是否发送错误
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
把进的1加到最低位,然后取反得checksum

可靠数据传输
什么是可靠:不错不丢不乱
信道的不可靠特性决定了可靠数据传输协议(rdt)的复杂性 reliable data transfer protocol
在这里插入图片描述
如图中,不可靠的信道就比如IP协议。通过传输层的rdt来实现在不可靠信道上实现可靠传输

图中,应用层与传输层都是单向箭头,也就是应用只管发出数据,可靠性由传输层解决(如TCP),而送达时也是,只将正确数据送到应用层,应用层不关心数据丢了错了,只要最后处理好的数据

数据单向传输,控制信息双向流动

查FSM,状态机资料 使用FSM刻画传输协议
有限状态机简写为FSM(Finite State Machine)状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。
第一类,若输出只和状态有关而与输入无关,则称为Moore状态机
第二类,输出不仅和状态有关而且和输入有关系,则称为Mealy状态机
状态机可归纳为4个要素,即现态、条件、动作、次态。这样的归纳,主要是出于对状态机的内在因果关系的考虑。“现态”和“条件”是因,“动作”和“次态”是果。详解如下:
①现态:是指当前所处的状态。
②条件:又称为“事件”,当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。
③动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。
④次态:条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。

rdt1.0 (假设。在可靠信道上的可靠数据传输)
假设:底层信道完全可控:不会发生错误,不会丢弃分组
因为信道完全可靠,所以发送方与接收方不会有太多的交互。所以发送方和接收方的FSM独立

rdt2.0 只考虑信道只会出现位错误(0翻转为1,不会丢包)

底层信道可能翻转分组中的位(bit):利用校验和检测为错误
如何从错误中恢复
确认机制(acknowledgements,ACK):接收方显式地告知发送方分组已正确接收
NAK:接收方显式地告知发送方分组有错误
发送方收到NAK后,重传分组
基于这种重传机制的rdt协议称为ARQ(Automatic Repeat reQuest)
rdt2.0中引入的新机制
差错检测
接收方反馈控制消息:ACK/NAK
重传
在这里插入图片描述
rht2.1和rdt2.2
rdt2.0会有缺陷,如果ACK/NAK消息发送错误或被破坏(可以为ACK,NAK增加校验和,不能简单重传,产生重复分组)
rdt2.1增加额序列号来解决重复分组问题,发送方给每个分组增加序列号。
在这里插入图片描述
rdt2.2
在ACK中加入序列号,如过发送的是1返回的ack为0则认为接收出错会重传
在这里插入图片描述

rdt3.0
如果信道既可能发生错误,也可能丢失分组。
发送方等待“合理的”时间
如果没收到ACK重传
如果分组或ACK只是延迟而不是丢了
(重传会产生重复,序列号机制能够处理,接收方需要在ACK中显式告知所确认的分组)
需要定时器
在这里插入图片描述

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

流水线协议(同时发多个pkt)
允许发送方在收到ACK之前连续发送多个分组,更大的序列号范围,发送方或接收方需要更大的存储空间以缓存分组。

滑动窗口协议
用窗口管理未确认的消息
窗口:允许使用的序列号范围,窗口尺寸为N最多有N个等待确认的消息
滑动窗口:随着协议的允许,窗口在序列号空间内向前滑动
滑动窗口协议:GBN,SR

Go-Back-N协议
分组头部包括k位bit序列号
窗口尺寸为N,最多允许N个分组未确认/
ACK(n)确认到序列号n(包含n)的分组均已被正确接收(可能收到重复ACK)
超时Timeout(n)事件:重传序列号大于等于 n。还未收到ACK的所有分组
在这里插入图片描述
如果没收到pkt2。接收端不会收pkt3 然后返回ack1使发送方发送pkt2

selective repeat协议

SR中
接收方对每个分组单独进行确认,设置缓存机制,缓存乱序到达的分组

发送方只重传那些没收到ACK的分组,为每个分组设定定时间
发送方窗口没什么变化,但是接收方多了窗口
在这里插入图片描述
其中灰色的是想要的但是还没收到的分组,红色的是已经收到的乱序的并且返回ACK的分组
在这里插入图片描述
序列号空间大小与窗口尺寸需要满足的关系
假如序列数为k
发送方窗口的尺寸加上接收方窗口的尺寸要小于2的k’次方否则会出错

在这里插入图片描述

TCP概述:RFCs—793,1122,1323,2018,2581
在这里插入图片描述
在这里插入图片描述
序列号指的是segment中第一个字节的标号而不是segment的编号,建立TCP连接时,双方随机选择序列号。
ACK:希望接收到的下一个字节的序列号,累计确认:该序列号之前的所有字节均已被正确接收到

TCP可靠数据传输
在这里插入图片描述
TCP的ACK为段号加上传送的字节数,ACK返回的序号是他期望的序号的包

TCO的快速重传机制
在这里插入图片描述

TCP流量控制机制

TCO接收方会分配buffer
本质上流量控制是一个速度匹配机制

接收方通过在segment头部字段将空闲大小告诉发送方,发送方限制自己已经发送还未接受到ACK的数据不超过接收方空间空间尺寸

如果空闲区为0了,发送方仍然可以发送一个很小的段来将空闲信息捎回来,避免死锁情况

TCP连接管理
接收方与发送方在传输数据前要建立连接
采用3次握手来建立连接
分三部分
step1:客户端发送SYN段,并且带着自己的报文段序列号
step2:收到SYN会返回一个SYNACK,对这个连接分配资源,选择自己的序列号,并且告知客户端
step3:客户端收到服务器的SYN会返回ACK,这个报文段可以包含数据
在这里插入图片描述

四次 挥手

step1:客户机向服务器发送TCPFIN 控制端
step2:收到FIN,恢复ACK,关闭连接发送FIN
step3:客户机收到FIN,回复ACK:进入等待,如果收到FIN,会重发ACK,确保服务器能正确关闭
step4:服务器收到ACK,连接关闭

拥塞控制原理
在这里插入图片描述
在这里插入图片描述
假定有两个发送方R为带宽,
在这里插入图片描述
如果第二个路由器中分组掉了,第一个路由器所有处理都会浪费掉

拥塞控制的方法
在这里插入图片描述

ATMABR拥塞控制
如果发送方路径不超载则使用可用带宽,如果发送方路径拥塞,将发送速率降到最低保障速率
在这里插入图片描述
路径中会被交换机改变,可以得到路径上所有交换机的 状态
在这里插入图片描述

TCP拥塞控制
发送限制发送速率

如何感知网络拥塞
Loss事件=timeout或3个重复ACK
发生loss事件后,发送方降低速率。
调整发送速率 的方法 :加性增——乘性减:AIMD 慢启动SS
AIMD

在这里插入图片描述
MSS=MAX SEGMENTS SIZE 一个段最大大小
congwin拥塞窗口(发送段的数量)

SS

在这里插入图片描述
threshold 是一个避免阻塞的变量,当拥塞窗口数到达这个值时,从指数增长变为线性增长
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
每次触发loss事件就把窗口降为1
在这里插入图片描述
TCP性能分析

吞吐率throughput
公平性
在这里插入图片描述
研究对TCP友好的UDP协议
总结:
复用/解复用
可靠数据传输
流量控制
拥塞控制
internet传输层
UDP TCP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值