3. 传输层

目录

  1. 多路复用/分用
  2. 可靠数据传输机制
  3. 流量控制机制
  4. 拥塞控制机制
  5. udp : 无连接传输服务
  6. tcp : 面向连接传输服务
  7. tcp 拥塞控制

传输层为运行在不同host上的进程提供了一种逻辑通信机制。
发送方将应用递交的消息分成一个或多个segment,并向下传递给网络层。
接收方将接收到的segment组装成消息,并向上交给应用层。

网络层: 提供主机之间的逻辑通信机制
传输层:提供应用进程之间的逻辑通信机制(依赖于网络层,对网络层进行可能的增强)

多路复用和多路分用

WHY?
如果某层的一个协议对应直接上层的多个协议或实体,则需要复用、分用

image.png

HOW?


image.png

无连接的多路分用


image.png

面向连接的多路分用


image.png
image.png

UDP协议

用户数据报协议
复用/分用
简单的错误校验
可能丢失,非按序到达。
无连接,不需要握手,每个UDP段的处理独立于其他段。

UDP的价值:
无需建立连接,延迟低
实现简单,无需维护连接状态
头部开销少
没有拥塞控制:应用可以更好地控制发送时间和速率。
常用于流媒体应用,容忍丢失,速率敏感
DNS,SNMP


image.png

CHECKSUM

目的:检测UDP段在传输中是否发生错误(如位翻转)


image.png

可靠数据传输原理

什么是可靠? 不错,不丢,不乱
依靠可靠数据传输协议,可靠数据传输对应用层,传输层,链路层都很重要。
信道的不可靠特性决定了可靠数据传输协议的复杂性。


image.png

渐进的设计可靠数据传输协议的发送方和接收方
只考虑单向数据传输,但控制信息双向流动
利用有限状态机刻画传输协议。

可靠数据传输协议(RDT) 1.0

下图都是一个状态,横线上面是接受到的EVENT,横线下面是对应的ACTION


image.png

RDT 2.0

信道可能产生位错误。


image.png

image.png

RDT 2.1

rdt 2.0 的缺陷是什么?
ACK/NAK 消息会发生错误怎么办?发送方无法识别这个消息,就没法继续下去。
增加序列号,接收方看到重复的序列号,丢到就好。

发送方的状态机:


image.png

接收方:


image.png
image.png

RDT 2.2

不再需要NAK消息,根据序号来确认最后一个正确的分组。


image.png

RDT 3.0

image.png
image.png
image.png
image.png

到目前为止3.0的版本,已经可以处理丢包,重传,错误等。但是性能不是很理想。
看个例子:1GBPS的链路,15MS 端到端传播延迟, 1KB 分组。
传输时间(T) = 8 Kbit/ 10^9 bit/sec = 8 micro sec
发送方利用率:
0.008/ 30.008 = 0.00027, 在1GBPS的链路上每30MS 才发送一个分组。网络协议限制了物理资源的利用率。
性能问题的瓶颈主要在停等协议引起的。


image.png

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

image.png

允许发送方在收到ACK之前连续发送多个分组。
所以我们需要更大的序列号范围。
发送方和接收方需要更大的存储空间以缓存分组。


image.png

滑动窗口协议

绿色是已经确认,黄色是已经发出但是还没确认,蓝色的代表还可以使用的序列号。白色的是还不能使用的序列号。


image.png

Go-Back-N协议

分组头包含K-BIT序列号,窗口尺寸为n,最多允许N个分组未确认。


image.png

ACK(n) : 确认到序列号N(包含N)的分组都已被正确接收
为在传输的分组设置TIMER,当发生超时,重传序列号 》= N, 但还未收到ACK的所有分组。


image.png
image.png

Selective Repeat 协议

GBN 的缺点就是要重传很多分组,如果第一个没过去的话。
接收方对每个分组单独进行确认,设置缓存机制,缓存乱序到达的分组。
发送方值重传那些没收到ACK的分组,所以要为每个分组设置定时器。

多了一个接收方的窗口


image.png

image.png

但是SR协议有个困境,就是下面2种情况,对接收端来说是无法区分的。


image.png

要解决这个问题需要满足 NS + NR <= 2^K
K 是序列号的位数。NS 发送方窗口的尺寸,NR 接收方窗口的尺寸。

TCP协议

image.png

TCP可靠数据传输


image.png
image.png

为了让定时器的时限 需要比RTT大,所以要加一个安全边界。


image.png

TCP 重传示例

image.png
image.png

快速重传机制

image.png

TCP流量控制

image.png

需要一个额外的处理,即使是RCV WINDOW = 0, TCP仍然可以发一个很小的段,再收回来新的RCV WINDOW的信息 来避免上面的死锁的情况的发生。

TCP 连接管理

image.png

image.png

image.png

image.png

拥塞控制

拥塞,太多发送主机发送了太多数据或者发送速度太快,以至于网络无法处理。
表现,分组丢失(路由器缓存溢出),分组延迟过大(都在路由器缓存中排队)
流量控制是保证接收方能够处理。拥塞控制是保证网络能够处理。

image.png

上图就是网络瘫痪的原因。
那么怎么来进行拥塞控制呢?
有2种拥塞控制的方法。端到端的拥塞控制,还有一种是网络辅助的拥塞控制。


image.png

网络辅助的拥塞控制(ABR)


image.png

TCP的拥塞控制:

窗口大小会随着感知到的网络拥塞而动态调整。那么发送速率就会响应的改变。
感知拥塞的方法是通过LOSS事件。
LOSS事件分为2类,一个是收到3个重复的ACK,一个是TIMEOUT。
调整发送速率的方法是,线性增加,指数减少。 还有就是慢启动。


image.png

慢启动的思想是,因为一开始窗口大小是1,如果线性增加,可能到达有效带宽会花很多时间(可用带宽可能远远高于初始速率),所以在连接开始时,也是指数型增长。

image.png

那么何时做这个切换呢,也就是说从指数增长改回线性增长。 就是当窗口第一次指数减少的时候。


image.png

LOSS事件的处理


image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 222,252评论 6 516
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,886评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,814评论 0 361
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,869评论 1 299
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,888评论 6 398
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,475评论 1 312
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,010评论 3 422
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,924评论 0 277
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,469评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,552评论 3 342
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,680评论 1 353
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,362评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,037评论 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,519评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,621评论 1 274
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,099评论 3 378
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,691评论 2 361

推荐阅读更多精彩内容

  • 3.1传输层服务 3.1.1传输层服务概述 传输层服务和协议 ■传输层协议为运行在不同Host上的进程提供了一种逻...
    龟龟51阅读 756评论 0 0
  • 运输层协议概述 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是...
    srtianxia阅读 2,411评论 0 2
  • 传输层-TCP, TCP头部结构 ,TCP序列号和确认号详解 TCP主要解决下面的三个问题 1.数据的可靠传输...
    抓兔子的猫阅读 4,527评论 1 46
  • 1、TCP为什么需要3次握手,4次断开? “三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端...
    杰伦哎呦哎呦阅读 3,486评论 0 6
  • 本书结构是自顶向下的,所以请按下列顺序阅读: 1.计算机网络自顶向下--应用层2.计算机网络自顶向下--运输层3....
    牛富贵儿阅读 2,787评论 0 3