吴功宜 编著计算机网络第 7章 传输层
《计算机网络,第 7章 传输层
3
本章学习要求,
了解,网络环境中分布式进程通的基本概念
掌握:进程相互作用的 Client/Server模型
掌握:传输层的基本功能与服务质量
掌握:用户数据报协议 UDP
掌握:传输控制协议 TCP
《计算机网络,第 7章 传输层
4
7.1 网络环境中分布式进程通信的基本概念
í¨D? ×ó í?
ó| ó?
3ì Dò

ó| ó?
3ì Dò

í 2? D- òé ×÷ó? ·§
′? ê? 2? D- òé ×÷ó? ·§
《计算机网络,第 7章 传输层
5
网络层及以下的各层实现了网络中主机之间的通信,但是数据通信不是最终的目的 ;
计算机网络最本质的活动是分布在不同地理位置的主机之间的进程通信,以实现各种网络服务功能 ;
设置传输层的主要目的就是要实现分布式进程通信。
《计算机网络,第 7章 传输层
6
7.1.1 单机系统中的进程通信方法
进程和进程通信是操作系统中的一个最基本的概念;
程序是一个在时间上按照严格次序的前后相继的操作序列,是一个静态的概念;
进程是一个动态的概念,它是一个程序对某个数据集的执行过程;
《计算机网络,第 7章 传输层
7
正在运行的进程叫做运行态;
等待分配 CPU的进程叫做就绪态;
等待其它的条件的进程叫做等待态;
进程状态反映出进程执行过程的变化;
要保证系统正常地工作,操作系统必须对进程的创建、撤消与状态转换进行控制;
从进程的观点看,操作系统的核心则是控制和协调这些进程的运行,解决进程之间的通信。
《计算机网络,第 7章 传输层
8
在解决单机环境下操作系统的进程通信中,
BSD UNIX 引入了管道( pipe),命名管道( named
pipe) 和软中断信号( signal) 机制;
AT&T UNIX引入了消息( message),共享存储区
( shared memory) 和信号量( semaphore) 等;
UNIX系统的消息、共享存储区和信号量统称为进程通信( inter process communication,IPC) 机制;
IPC机制也不适应于网络环境中的进程通信。
《计算机网络,第 7章 传输层
9
7.1.2 网络环境中分布式进程通信的特点用一句最简单的话去描述计算机网络,那就是,
计算机网络是分布在不同地理位置的多台独立的计算机系统的集合;
,独立的计算机系统,意味着连网的每一台计算机的操作与资源是由自己的操作系统所管理;
用户共享的网络资源及网络所能提供的服务功能最终是通过网络环境中的分布式进程通信来实现的。
《计算机网络,第 7章 传输层
10
网络环境中的进程通信与单机系统内部的进程通信的主要区别:网络中主机的高度自治性;
不是在同一个主机系统之中,没有一个统一的高层进行控制与管理;
网络中一台主机对其它主机的
活动状态
位于其它主机系统中的各个进程状态
这些进程什么时间参与网络活动
希望与网络中哪一台主机的什么进程通信一概无从知道
《计算机网络,第 7章 传输层
11
1.网络环境中分布式进程通信需要解决,
进程命名与寻址方法
多重协议的识别
进程间相互作用的模式
《计算机网络,第 7章 传输层
12
2.网络环境中进程标识
在一台计算机中,不同的进程用进程号或进程标识( process ID) 惟一地标识出来
网络环境中完整的进程标识应该是:
本地主机地址 -本地进程标识
远程主机地址 -远程进程标识
进程地址也叫做端口号( port number)
《计算机网络,第 7章 传输层
13
3.多重协议的识别
UNIX操作系统的 TCP/IP的传输层就有 TCP协议和 UDP
协议;
网络环境中一个进程的全网惟一的标识需要一个三元组来表示:协议,本地地址,本地端口号。
TCP 121.5.21.2 15432
TCP 121.5.21.2 15432
D- òé àà Dí I P μ×?·ú o?
《计算机网络,第 7章 传输层
14
网络环境中一个完整的进程通信标识需要一个五元组来表示:
协议 本地地址 本地端口号远地地址 远地端口号
在 UNIX操作系统中,
三元组又叫做半相关 half-association
五元组叫做一个相关 association
《计算机网络,第 7章 传输层
15
7.1.3 进程间相互作用模式,Client/Server模型
1,Client/Server模型的基本概念
网络中每台联网的计算机既为本地用户提供服务,也为网络的其它主机的用户提供服务 ;
每台联网的计算机的硬件、软件与数据资源应该既是本地用户可以使用的资源,也是网络的其它主机的用户可以共享的资源 ;
每一项网络服务都是对应一个,服务程序,进程 ;
,服务程序,进程要为每一个获准的网络用户请求执行一组规定的动作,以满足用户网络资源共享的需要 ;
《计算机网络,第 7章 传输层
16
网络环境中进程通信要解决的进程间相互作用的模式 ;
在 TCP/IP协议体系中,进程间的相互作用采用客户 /服务器 (Client/Server)模型 ;
客户与服务器分别表示相互通信的两个应用程序的进程 ;
客户向服务器发出服务请求,服务器响应客户的请求,
提供客户机所需要的网络服务 ;
《计算机网络,第 7章 传输层
17
2.为什么要采用客户机 /服务器模型?
网络资源分布的不均匀性
网络资源分布的不均匀性表现在硬件、软件和数据等三个方面 ;
网络资源分布的不均匀性是客观存在的,同时也是网络应用系统设计者的设计思想的体现 ;
,资源共享,就是因为网络不同结点之间在硬件配置、
计算能力、存储能力,以及数据分布等方面存在着差距与不均匀性;
能力强、资源丰富的充当服务器,能力弱或需要某种资源的成为客户。
《计算机网络,第 7章 传输层
18
网络环境中进程通信的异步性
分布在不同主机系统中的进程什么时间发出通信请求,希望和哪一台主机的哪一个进程通信,以及对方进程是否能接受通信请求是不确定的 ;
网络分布式进程之间不存在一个高层的调度与协调 ;
必须要建立一个体制,为准备通信的进程之间建立起连接,在进程交换数据的过程中维护连接,
为数据交换提供同步。
《计算机网络,第 7章 传输层
19
客 户 — 一次进程通信中发起的一方;
服务器 — 接受进程通信的请求,提供服务的一方;
每一次通信由客户进程随机启动;
服务器进程处于等待状态,及时响应客户服务请求。
《计算机网络,第 7章 传输层
20
7.1.4 进程通信中 Client/Server模型实现方法
客户机 /服务器模型的工作实质是,请求驱动,;
在网络环境中,客户进程发出请求完全随机。
在同一个时刻,可能有多个客户进程向一个服务器发出服务请求;
为了实现服务器的功能,在服务器的设计中要解决服务器的:
并发请求处理能力并发服务器的进程标识服务器安全
《计算机网络,第 7章 传输层
21
解决服务器处理并发请求的基本方案,
设计一个并发服务器
采用重复服务器的方法
《计算机网络,第 7章 传输层
22
并发服务器( concurrent server)
并发服务器的核心是使用一个 守护程序 ( daemon);
守护程序在系统启动的时候随之启动,在没有客户的服务请求到达时,并发服务器处于等待状态 ;
一旦客户机的服务请求到达,服务器根据客户的服务请求的进程号,去激活相应的子进程,而服务器回到等待状态;
并发服务器叫做主服务器( master),把子服务器叫做从服务器( slave);
主服务器必须拥有一个全网公认的进程地址;
网络中的客户进程可以根据服务器进程的公认地址,向服务器提出服务请求。
《计算机网络,第 7章 传输层
23
客户与并发服务器建立传输连接的过程
《计算机网络,第 7章 传输层
24
重复服务器( interative server)
通过设置一个请求队列来存储客户机的服务请求;
服务器采用先来先服务的原则来顺序处理客户机的服务请求。
《计算机网络,第 7章 传输层
25
比较并发服务器,
并发服务器可以处理多个客户的服务请求;
从服务器不依赖主服务器而独立处理客户服务请求;
不同的从服务器可以分别处理不同的客户的服务请求;
系统的实时性好;
重复服务器,
处理客户的服务请求的数量受到请求队列长度的限制,
但可以有效地控制请求处理的时间 ;
并发服务器适应于面向连接的服务类型;
重复服务器适应于无连接的服务类型。
《计算机网络,第 7章 传输层
26
讨论
主动启动与服务器进程通信的程序叫做客户;
服务器是一个用来提供某种服务的,有特殊权限的专用程序;
服务器程序在网络中一台计算机上运行,接受来自远程客户的服务请求,提供一种服务;
服务器程序需要硬件配置较高的计算机和操作系统的支持;
客户 /服务器是软件设计中进程间相互作用关系的模型。
《计算机网络,第 7章 传输层
27
7.2 传输层的基本功能
7.2.1 传输层的端 -端通信传输层端- 端通信协议数据链路层网络层物理层传输层应用层数据链路层网络层物理层网络层协议数据链路层网络层物理层传输层应用层通信子网主机A 主机B
数据链路层协议物理层协议网络层协议数据链路层协议物理层协议
《计算机网络,第 7章 传输层
28
7.2.2 传输层协议的基本功能
1.传输层在协议层次结构中的位置
传输层的目标是向应用层应用程序进程之间的通信,提供有效、可靠、保证质量的服务 ;
传输层在网络分层结构中起着承上启下的作用,通过执行传输层协议,屏蔽通信子网在技术、设计上的差异和服务质量的不足,向高层提供一个标准的、完善的通信服务 ;
从通信和信息处理的角度看,应用层是面向信息处理的,
而传输层是为应用层提供通信服务的。
《计算机网络,第 7章 传输层
29
2.传输协议数据单元
传输层之间传输的报文叫做传输协议数据单元
( Transport Protocol Unit,TPDU);
TPDU有效载荷是应用层的数据。
T P D U 头部 T P D U 有效载荷分组头部帧头部分组有效载荷帧有效载荷
《计算机网络,第 7章 传输层
30
7.2.3 网络服务与服务质量 QoS
服务( Service)
网络层次结构中,各层之间有严格的依赖关系各层次的分工和协作集中地体现在相邻层之间的界面上;
服务是描述相邻层之间关系的重要概念;
网络服务体现在低层向相邻上层提供的一组操作;
低层是服务提供者,高层是服务的用户。
《计算机网络,第 7章 传输层
31
衡量服务质量 QoS的主要指标
连接建立延迟 /连接 释放 延迟
连接建立 /释放失败概率
传输时延
吞吐率
残留误码率
传输失败概率
《计算机网络,第 7章 传输层
32
连接建立延迟
从传输服务用户要求建立连接到收到连接确认之间所经历的时间;
它包括了远端传输实体的处理延迟;
连接建立延迟越短,服务质量越好。
连接建立失败的概率
在最大连接建立延迟时间内,连接未能建立的可能性;
由于网络拥塞,缺少缓冲区或其他原因造成的失败。
《计算机网络,第 7章 传输层
33
吞吐率
吞吐率是在某个时间间隔内测得的每秒钟传输的用户数据的字节数;
每个传输方向分别用各自的吞吐率来衡量。
传输延迟
传输延迟是指从源主机传输用户发送报文开始到目的主机传输用户接收到报文为止的时间;
每个方向的传输延迟是不同的。
《计算机网络,第 7章 传输层
34
残余误码率
残余误码率用于测量丢失或乱序的报文数占整个发送的报文数的百分比;
理论上残余误码率应为零,实际上它可能是一较小的值。
安全保护
安全保护为传输用户提供了传输层的保护,以防止未经授权的第三方读取或修改数据。
《计算机网络,第 7章 传输层
35
优先级
为传输用户提供用以表明哪些连接更为重要的方法;
当发生拥塞事件时,确保高优先级的连接先获得服务。
恢复功能
当出现内部问题或拥塞情况下,传输层本身自发终止连接的可能性。
《计算机网络,第 7章 传输层
36
在讨论传输层服务质量参数时需要注意以下几个问题,
服务质量参数是传输用户在请求建立连接时设定的,
表明希望值和最小可接受的值;
传输层通过检查服务质量参数可以立即发现其中某些值是无法达到的,传输层可以不去与目的主机连接,
而直接通知传输用户连接请求失败与失败的原因;
有些情况下,传输层发现不能达到用户希望的质量参数,但可以达到稍微低一些的要求,然后再请求建立连接;
并非所有的传输连接都需要提供所有的参数,大多数仅仅是要求残余误码,而其他参数则是为了完善服务质量而设置的。
《计算机网络,第 7章 传输层
37
7.3 用户报文协议 UDP
7.3.1 UDP协议的主要特点
UDP是一种无连接的、不可靠的传输层协议;
在完成进程到进程的通信中提供了有限的差错检验功能;
设计比较简单的 UDP协议的目的是希望以最小的开销来达到网络环境中的进程通信目的;
进程发送的报文较短,同时对报文的可靠性要求不高,那么可以使用 UDP协议。
《计算机网络,第 7章 传输层
38
7.3.2 UDP的基本工作过程
UDP用户数据报传输过程中的封装与拆封进程数据
U D P 数据进程
UDP头
I P 数据I P 报头帧数据帧头进程数据
U D P 数据进程
UDP头
I P 数据I P 报头帧数据帧头发送端 接收端帧尾 帧尾
《计算机网络,第 7章 传输层
39
UDP报文传输队列
《计算机网络,第 7章 传输层
40
UDP的复用和分用
《计算机网络,第 7章 传输层
41
7.3.3 UDP端口号
TCP/IP协议族中用端口号来标识进程;
端口号是在 0到 65535之间的整数;
客户程序随机选取的临时端口号;
每一种服务器程序被分配了确定的全局一致的熟知端口号;
每一个客户进程都知道相应的服务器进程的熟知端口号。
《计算机网络,第 7章 传输层
42
UDP使用的熟知端口号端口号 服务进程 说明下载引导程序信息的服务器端口
53 Name ser ver 域名服务
67 Bootps
68 Bootpc 下载引导程序信息的客户机端口
69 TFTP 简单文件传输协议
111 RPC 远程过程调用
123 NTP 网络时间协议
161 SNMP 简单网络管理协议
《计算机网络,第 7章 传输层
43
7.3.4 UDP数据报格式
8B
U D P 头部 数据源端口号 目的端口号总长度 校验和
0 15 16 31
《计算机网络,第 7章 传输层
44
UDP检验和的检验范围,伪头部
UDP头应用层数据
′ IPμ ×?·
μ? IPμ ×?·
00000000 D- òé o? £¨17£? UDP 3¤?è
′ú o μú o?
D£?é oíUDP ×ü 3¤?è
êy?Y
£¨±× Dè D ìé 3? ê1 êy?Y ê? 16 μ? ±? êy £?
UDP í·2?
±í ·2?
0 16 24 318
UDP ó§
êy?Y ±¨
《计算机网络,第 7章 传输层
45
7.4 传输控制协议 TCP
7.4.1 TCP协议的主要特点
TCP是一种面向连接的、可靠的传输层协议;
TCP协议建立在不可靠的网络层 IP协议之上,
IP不能提供任何可靠性机制,TCP的可靠性完全由自己实现;
TCP采用的最基本的可靠性技术是:
确认与超时重传流量控制
《计算机网络,第 7章 传输层
46
TCP协议与其他协议的层次关系
.,,
传输层网络层
SMTP FTP HTTP DNS SNMP应用层
TCP UDP
IP
.,,
《计算机网络,第 7章 传输层
47
7.4.2 TCP的端口号分配和 Socket地址
TCP常用的熟知端口号端口号 服务进程 说明文件传输协议(控制连接)
20 FTP 文件传输协议(数据连接)
21 FTP
23 Telnet 虚拟终端网络
25 SMTP 简单邮件传输协议
53 DNS 域名服务器
80 HTTP 超文本传输协议
111 RPC 远程过程调用
《计算机网络,第 7章 传输层
48
7.4.3 TCP报文段格式
T C P 头部 数据源端口号 目的端口号序号头部长度校验和(1 6 位)
窗口大小选项及填充确认号保留 URG ACK PSH RST SYN FIN
紧急指针
0 15 16 31
《计算机网络,第 7章 传输层
49
7.4.4 TCP传输连接建立与连接释放
TCP传输连接建立过程示意图
÷?ú A?÷?ú B
SYN=1,ACK=0,SEQ=1200
SYN=1,ACK=1,SEQ=4800,AN=1201
SYN,ACK=1,SEQ=1201,AN=4801
í?§

·t÷

《计算机网络,第 7章 传输层
50
TCP在传输连接释放过程中 4次握手过程
÷?ú A?÷?ú B
FIN=1,ACK=0,SEQ=2500
ACK=1,SEQ=6000,AN=2501
ACK=1,SEQ=2501,AN=6002
FIN=1,SEQ=6001,AN=2501
í?§

·t÷

《计算机网络,第 7章 传输层
51
7.4.5 TCP流量与拥塞控制
TCP的数据编码与确认
ú
ó| ó?

·¢?í?o ′?
TCP
±¨ ±¨ ±¨
ú
ó| ó?

ó êo ′?
TCP
《计算机网络,第 7章 传输层
52
TCP窗口概念
1 1 0 0 1 0 1 2 0 0 2 0 1 3 0 0 3 0 1 4 0 0 4 0 1 5 0 0 5 0 1 6 0 0 6 0 1 7 0 0 7 0 1 8 0 0 8 0 1 9 0 0
发送窗口可以发送 不可以发送收到确认后窗口前移
(a )发送窗口大小为4 0 0
1 1 0 0 1 0 1 2 0 0 2 0 1 3 0 0 3 0 1 4 0 0 4 0 1 5 0 0 5 0 1 6 0 0 6 0 1 7 0 0 7 0 1 8 0 0 8 0 1 9 0 0
已发送但未确认
(b )发送4 0 0 B,收到的确认序列号为2 0 1,
窗口大小不变,还可继续发送2 0 0 B
指针可以继续发送已发送并被确认不可以发送
(c )收到的确认序列号为4 0 1,
窗口增大为5 0 0,还可发送5 0 0 B
9 0 1
1 0 0 0
9 0 1
1 0 0 0
1 1 0 0 1 0 1 2 0 0 2 0 1 3 0 0 3 0 1 4 0 0 4 0 1 5 0 0 5 0 1 6 0 0 6 0 1 7 0 0 7 0 1 8 0 0 8 0 1 9 0 0
可以继续发送
9 0 1
1 0 0 0
发送窗口指针不可以发送发送窗口指针已发送并被确认
《计算机网络,第 7章 传输层
53
窗口与 TCP
的流量控制
《计算机网络,第 7章 传输层
54
7.4.6 TCP差错控制差错检测和纠正
检验和
确认
超时针对的几种情况
受损伤的报文段
丢失的报文段
重复的报文段
乱序的报文段
丢失的确认
《计算机网络,第 7章 传输层
55
传输出错报文段的处理
《计算机网络,第 7章 传输层
56
丢失的报文段
《计算机网络,第 7章 传输层
57
确认丢失
《计算机网络,第 7章 传输层
58
7.4.7 TCP的计时器重传计时器
为了控制丢失的或丢弃的报文段,TCP使用了处理报文段的确认的等待重传时间的重传计时器。
坚持计时器
TCP为每一个连接使用一个坚持计时器;
当发送方的 TCP收到一个窗口大小为零的确认时,就需要启动坚持计时器 ;
当坚持计时器期限到时,发送方的 TCP就发送一个特殊的探测报文段。
《计算机网络,第 7章 传输层
59
保持计时器
保持计时器又叫做激活计时器,它是用来防止在两个
TCP之间的连接处以长时期空闲。
时间等待计时器
时间等待计时器是在连接终止期间使用的;
当 TCP关闭一个连接时,它并不认为这个连接马上就真正地关闭了。在时间等待期间中,连接还处于一种过渡状态;
时间等待计时器的值通常设置为一个报文段的寿命期待值的两倍。
《计算机网络,第 7章 传输层
60
小结
网络最本质的活动是实现分布在不同地理位置的主机之间的进程通信 ;
传输层的主要功能就是为网络环境中分布式进程通信提供服务 ;
网络中应用程序进程间相互作用的模式是客户 /服务器
( client/server) 模式 ;
Internet传输层采用了 TCP协议与 UDP协议 ;
TCP是一种面向连接的、可靠的传输层协议,它在网络层 IP服务的基础上,向应用层提供面向连接、可靠的流传输;
UDP是一种无连接的、不可靠的传输层协议。