计算机网络传输层(上)

计算机网络传输层(上)

传输层概述

1.传输层协议为运行在不同host上的进程提供了一种逻辑通信机制

2.端系统运行传输层协议:

  • 发送方:将应用递交的消息分成一个或多个的segment,并向下穿给网络层。
  • 接受方:将接受到的segment组装成消息,并向上叫给应用层。

传输层可以为应用提供多种协议,如:TCP、UDP。

3.传输层与网络层

网络层:提供主机之间的逻辑通信机制。

传输层:提供应用进程之间的逻辑通信机制。

  • 位于网络层之上
  • 依赖于网络层服务
  • 对网络层服务进行(可能)增强

4.Internet传输层协议。

(1)可靠、按序的交付服务(TCP)

  • 拥塞控制
  • 流量控制
  • 连接建立

(2)不可靠的交付服务(UDP)

  • 基于“尽力而为”的网络层,没有可靠性方面的扩展

(3)两种服务均不保证延迟带宽。

多路复用和多路分用

1.接受端进行多路分用:传输层依据头部信息将收到的segment交给正确的socket,即不同的进程。

发送端进行多路复用:从多个socket接受数据,为每块数据封装上头部信息,生成segment,交给网络层。

2.分用的工作方式

(1)主机收到IP数据报

  • 每个数据报携带IP地址、目的IP地址

  • 每个数据携带一个传输层的段

  • 每个段携带源端口号和目的端口号

(2)主机收到segment之后,传输层协议提取IP地址和端口号信息,将segment导向响应的socket(TCP做更多处理)。

3.无连接分用(UDP)

(1)利用端口号创建socket。

(2)UDP的socket用二元标识(目的IP地址、目的端口号)。

(3)主机收到UDP段后

  • 检查段中的目的端口号
  • 将UDP段导向绑定在该端口号的socket

(4)来自不同源IP地址或源端口号IP数据包被导向同一个socket。

4.面向连接的分用(TCP)

(1)TCP的socket用四元组标识(源IP地址、源端口号、目的IP地址、目的端口号)。

(2)接受端利用所有的四个值将segment导向合适的socket。

(3)服务器可能同时支持多个TCPsocket。

(4)web服务器为每个客户端开不同的socket。

无连接传输协议UDP

1.简介

(1)基于Internet IP协议

  • 复用/分用
  • 简单的错误效验

(2)“best effort”服务,UDP段可能丢失和非按序到达。

(3)无连接:UDP发送方和接收方之间不需要握手,且每个UDP段的处理独立于其他段。

(4)UDP的优点

  • 无需建立连接(延迟短)
  • 实现简单,无需维护连接状态
  • 头部开销小
  • 没有拥塞控制:应用可更好地控制发送时间速率

(5)常用与流媒体应用、DNS、SNMP

  • 容忍丢失
  • 速率敏感

2.UDP效验和checksum

(1)发送方将段的内容视为16-bit整数,计算所有整数的和,进位加在和的后面,将得到的值按位求反,得到效验和,发送方将效验和放入效验字段。

(2)接收方计算所收到段的效验和,将其与效验和字段进行对比,和相等时也可能存在错误。

可靠数据传输的基本原理

可靠数据传输概述

1.可靠数据传输协议

  • 可靠数据传输对应用层、传输层、数据链路层都很重要
  • 属于网络top-10问题
  • 信道的不可靠特性决定了可靠数据协议(rdt)的复杂性

2.接口

rdt 1.0

1.底层信道完全可靠,不会发生错误,不会丢弃分组。

2.发送方和接受方的FSM独立。

rdt 2.0

1.底层信道可能翻转分组中的位

  • 利用效验和检测位错误

2.确认机制

(1)接受方显然地告诉发送单分组已正确接收。

(2)NAK:接收方显示地告诉发送方分组有错误。

(3)发送方收到NAK后,重传分组。

3.基于这种重传机制的rdt协议称为ARQ协议

4.FSM规约

5.rdt 2.0的缺陷

  • ACK/NAK出现错误

rdt 2.1和2.2

1.rdt 2.1解决了ACK/NAK错误问题。

2.FSM

3.rdt 2.1 和 rdt 2.0

(1)发送方:

  • 为每一个分组增加的序列号
  • 需效验ACK/NAK消息是否发送错误
  • 状态数量翻倍

(2)接收方

  • 需判断分组是否重复

4.rdt 2.2 无NAK消息

(1)与rdt 2.1功能相同,但是只使用ACK。

(2)接受方通过ACK告知最后一个被接收的分组,在ACK消息中显示地加入被确认分组的序列号。

(3)发送方收到重复ACK之后,采取重传当前分组。

rdt 3.0

1.相对于rdt 2.2,rdt 3.0增加了定时器功能,解决当信道传输数据时分组丢失问题。

2.FSM

)

3.性能

(1)rdt 3.0能够正常工作,但性能很差,网络协议限制了物理资源的利用。

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

流水线协议

1.允许发送方在收到ACK之前连续发送多个分组

  • 更大的序列号范围
  • 发送方和接收方需要更大的存储空间以缓存分组

滑动窗口协议(GBN,SR)

1.窗口:允许使用的序列号范围,窗口尺寸为N,最多有N个等待消息。

2.滑动窗口:随着协议的运行,窗口在序列号空间内向前滑动。

GNB协议

1.发送方

(1)分组头部包含k-bit序列号。

(2)窗口尺寸为N,最多允许N个分组未确定。

(3)ACK:确定到序列号n的分组均已被正确接收(可能受到重复ACK)。

(4)为空中的分组设置计时器。

(5)超时timeout事件:重传序列号大于等于n,还未受到ACK的所有分组。

(6)FSM

2.接收方

(1)ACK机制:发送拥有最高序列号的、已被正确接收的分组的ACK。

  • 可能产生重复的ACK
  • 只需要记住唯一的expectedseqnum

(2)对乱序到达的分组的处理:

  • 直接丢弃(接收方没有缓存)
  • 重新确认序列号最大的、按序到达的分组

(3)FSM

SR(Selective Repeat)协议

1.对GNB协议的优化

(1)接收方设置缓存分区,缓存乱序到达的分组,对每个分组单独进行确定。

(2)发送方只重传那些没收到ACK的分组,为每个分组设置定时器。

(3)增加接收方窗口。

乱序到达的分组的处理:

  • 直接丢弃(接收方没有缓存)
  • 重新确认序列号最大的、按序到达的分组

(3)FSM

[外链图片转存中…(img-0w52Tr9Y-1634648806861)]

SR(Selective Repeat)协议

1.对GNB协议的优化

(1)接收方设置缓存分区,缓存乱序到达的分组,对每个分组单独进行确定。

(2)发送方只重传那些没收到ACK的分组,为每个分组设置定时器。

(3)增加接收方窗口。

[外链图片转存中…(img-Nrun61kg-1634648806861)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值