网络复习-笔记05-传输层(1)

2018-06-14  本文已影响0人  桔子满地

重点部分:

掌握Internet的传输层协议:

传输层服务概述.png

如图,传输层协议为运行在不同HOST上的进程提供了一种逻辑通信机制

端系统运行传输层协议:

传输层可以为应用提供多种协议

传输层 vs 网络层

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

Internet传输层协议

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

不可靠的交付服务(UDP)

两种服务均不保证


多路复用和多路分用

如果某层的一个协议对应直接上层的多个协议/实体,则需要复用/分用
接收端进行多路分用:传输层依据头部信息将收到的segment交给正确的socket,即不同的进程(从下往上)
发送端进行多路复用:从多个socket接收数据,为每块数据封装上头部信息,生成segment,交给网络层(从上往下)

多路分用


尽管TCP和UDP不同,但它们都满足以上格式

主机接收到IP数据报(datagram)

主机收到segment之后,传输层协议提取IP地址和端口号信息,将segment导向相应的socket

无连接分用(面向UDP)

UDP的socket用二元组标识

主机收到UDP段后

来自不同源IP地址和/或源端口号的IP数据包被导向同一个socket

面向连接的分用

TCP的socket用四元组标识

接收端利用所有的四个值将segment导向合适的socket
服务器可能同时支持多个TCP socket

web服务器为每个客户端开不同的socket
(TCP是一对一的,一个客户机进程对应一个服务器进程)


UDP

UDP:user datagram protocol(RFC 768)
UDP只是在IP协议上增加了两点
基于Internet IP协议

“Best effort”服务,UDP段可能

无连接

UDP为什么存在?

常用于流媒体应用

UDP还用于

在UDP上实现可靠数据传输?

UDP头部

UDP校验和(checksum)

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

接收方:

校验和计算示例:


校验和计算

可靠数据传输原理

可靠:不错、不丢、不乱
可靠数据传输:rdt
信道的不可靠特性决定了可靠数据传输协议(rdt)的复杂性

利用状态机(Finite State Machine, FSM)刻画传输协议


状态机示意图

rdt 1.0: 可靠信道上的可靠数据传输

假设:底层信道完全可靠:

发送方和接收方的FSM独立


rdt 1.0

rdt 2.0:产生位错误的信道

底层信道可能翻转分组中的位(bit)

从错误中恢复:

基于这种重传机制的rdt协议称为ARQ(Automatic Repeat reQuest)协议

Rdt 2.0中引入的新机制:

rdt 2.0

rdt 2.0的缺陷

如果ACK/NAK消息发生错误/被破坏, 有以下几种解决方法:

rdt2.1-发送方.png rdt2.1-接收方.png

rdt 2.2:无NAK消息协议

与rdt2.1功能相同,但是只使用ACK


rdt 3.0

如果信道既可能发生错误,也可能丢失分组,则rdt 2.x 的“校验和+序列号+ACK+重传”不够用.
方法:发送方等待“合理”时间

rdt3.0示例1 rdt3.0示例2.png

rdt 3.0性能分析

rdt 3.0能够正确工作,但性能很差


rdt3.0性能分析.png

rdt 3.0停等操作.png

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

流水线机制.png
流水线协议:允许发送方在收到ACK之前连续发送多个分组

滑动窗口协议(Sliding-window protocol)

窗口:

滑动窗口:

滑动窗口协议:GBN, SR

滑动窗口协议.png

滑动窗口协议一:GBN

GBN:Go-Back-N协议

GBN:接收方扩展FSM.png

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

乱序到达的分组:


滑动窗口协议二:SR

SR:Selective Repeat协议
GBN有很明显的缺陷:1.它是一个累积接收机制,如果有一个分组被丢弃,则后面的都会丢弃 2.从第一个被丢弃的分组开始重传,会导致很多重复的重传

SR的motivation:

SR发送方/接收方窗口.png SR协议.png SR协议示例.png
上一篇 下一篇

猜你喜欢

热点阅读