文档介绍:第六章 传输层
主要内容
传输服务
传输协议的要素
一个简单的传输协议
Internet传输协议-UDP
Internet传输协议-TCP
传输服务
一、向上层提供的服务
传输层的最终目标是向它的用户提供高效的、可靠的和性g)(3)
问题是:主机1上的应用进程如何知道时间服务器是连接到1522号TSAP上的呢?即远方客户程序如何获得服务程序的TSAP?
预先约定、广为人知的,象telnet这些固定的服务是(IP地址,端口23);数值范围0~1023
一、传输层编址(Addressing)(3)
不能提前预知的TSAP地址,或一台机器上有大量潜在的服务器进程但大多数服务器的进程有很少被使用,让每个服务器进程都主动地、全天候地监听一个TSAP地址非常浪费
使用初始连接协议(initial connection protocol)
为远程用户提供多个服务的机器上使用一个称为进程服务器(process server)的进程(inetd)同时在一组端口上监听;以等待外来的连接请求。
远方客户程序向它实际想访问的服务程序的TSAP发出连接建立请求;
如果没有服务程序在此TSAP上监听,则远方客户和进程服务器建立连接;
进程服务器启动与该请求的对应的服务进程,并使该进程继承和远程客户的连接;远方客户程序与所希望的服务程序进行数据传输。
进程服务器返回继续监听;
How a user process in host 1 establishes a connection with a time-of-day server in host 2.
一、传输层编址(Addressing)(4)
在许多情形下还有一些服务必须独立于进程服务器而存在时,采用名字服务器(name server)或目录服务器(directory server)的特殊进程。
一个特殊的进程称为名字服务器或目录服务器(TSAP众所周知);
用户与名字服务器建立连接,然后发送一条消息,指定需要服务的名称,名字服务器送回相应的TSAP地址,后释放与名字服务器的连接;
与服务进程建立连接。
注意:当创建一个新的服务时,必须向名字服务器注册,给出它的服务名称及其TSAP地址
二、建立连接 (1)
网络可能丢失、重复包,特别是延迟重复包(delayed duplicates)的存在,导致传输层建立连接的复杂性。
非常拥塞的子网,导致确认分组无法到达发送方,发送方发送重复分组,由于受到子网拥塞的影响。银行的例子。
对付这一问题的方法:
1、使用一次性传输地址;
2、发起方为每个连接分配一个连接标识符,即序号,序号增一,当一个连接请求到来时,察看记录表,看是否已用过,需要每个传输层实体无限期地维护一定数量的历史信息
二、建立连接 (2)
解决延迟重复包的关键是丢弃过时的包,必须不允许分组在子网中生存无限长的时间,如果我们能确保没有一个分组的生存期会超过某个已知的时间阚值,问题就好控制了。
分组生存期的限定方法
受限制的子网设计
在每个分组中放置一个跳计数器
分每个分组打时间戳
如果一个分组被发送出去之后,我们等待T秒时间,那么我们可以确信分组的所有痕迹都没有了。
机器崩溃后丢失所有内存的问题,由Tomlinsong的方法解决,基本思路是确保两个编号相同的TPDU不会永远同时有效
二、建立连接(3)
三次握手方案解决连接的建立
A 发出序号为X的CR TPDU;
B 发出序号为Y的CC TPDU并确认A的序号为X的CR TPDU;
A 发出序号为X的第一个数据TPDU,并确认B的序号为Y的CR TPDU。
Fig. 6-11
三、释放连接 (1)
两种连接释放方法
非对称式:一方释放连接,整个连接断开,存在丢失数据的危险;
传输层连接的释放 (2)
对称式:由于两军问题(two-army problem)的存在,可以证明不存在安全的通过N次握手实现对称式连接释放的方法;
但是在实际的通信过程中,使用三次握手 + 定时器的方法释放连接在绝大多数情况下是成功的。
四、流控制和缓存(Flow Control and Buffering)
流控:传输层利用可变滑动窗口协议来实现流控。所谓可变滑动窗口协议,是指发送方的发送窗口大小是由接收方根据自己的实际缓存情况给出的。为了避免控制TPDU丢失导致死锁,主机应该周期性的发送TPDU。
Fig. 6-16
五、多路复用(Multiplexing)
向上多路复用和向下多路复用
(a) Upward multiplexing. (b) Downward multiplexing.
一个简单的传输协议(自学)
Internet传输协议-UDP(1)