Internet运输层协议 (TCP)(1)
传输控制协议 TCP和用户数据报协议 UDP
TCP和 UDP所使用的网络层协议是 IP,提供不可靠的网络服务( C类网络)
TCP的主要作用:在不可靠的网络服务上提供端到端的可靠的字节流
TCP由 RFC 793定义,RFC1122进行了修改和改进,RFC1323进行了扩展
Internet运输层协议 (TCP)(2)
TCP的服务提供方式和 Unix密切相关
通过端口号来区分 TCP的用户
所有 TCP服务都是通过套接字来完成的
TCP连接是全双工和点对点的
可同时发送接受数据,不可支持广播和多播
TCP是面向字节流的(用户数据无边界)
PUSH标志:马上发送数据
URGENT标志:最高优先级发送紧急数据
Internet运输层协议 (TCP)(3)
Unix中 TCP通过 Socket来实现 TCP的服务
TCP服务 功能含义
SOCKET 建立一个 Socket
BIND 为建立的 Socket建立一个标识
LISTEN 在一个 Sokcet上监听外来的连接请求
ACCEPT 接受 Socket上到来的连接
CONNECT 在一个 Socket上建立连接
SHUT_DOWN 关闭连接
SEND 在一条连接上发送数据
RECEIVE 在一条连接上接受数据
SELECT 检查一组 Socket是否有数据或异常
Internet运输层协议 (TCP)(4)
TCP通过段 (Segment)来交换数据
段长度受到 IP包长的限制 65535字节
段长度不能超过 MTU(Maximum Transfer Unit):一般默认值是 1500
TCP协议段格式如下图:
Internet运输层协议 (TCP)(5)
TCP协议中使用三次握手方式建立连接
Internet运输层协议 (TCP)(6)
源端口号和目的端口号字段用于分别表示发送方和接收方的端口号,TCP协议中对每一个字节都给予编号,
序号和确认号都是字节的编号,序号表示发送的用户数据第一个字节的编号,而确认号表示的是下一个希望接收的字节的编号。
TCP头部长度是 TCP头部(包括 20字节的固定部分和可选部分)的 32位字的数目,所以,选项的 32位字的数目 =TCP头部长度 -5。
URG标志是紧急数据标志,当有紧急数据时,该指针为 1,同时,紧急指针是本 TCP段中,紧急数据的开始位置(一个字节偏移量),即序号 +紧急指针。
ACK表明确认号有效,如果 ACK为 0,则,确认号无效。
Internet运输层协议 (TCP)(7)
PSH标志表示要求马上发送数据,用于实现 PUSH功能。
RST标志用于对本 TCP连接进行复位,通常在 TCP连接发生故障时设置本标志,以使通信双方实现重新同步,初始化某些连接变量。
SYN标志用于建立 TCP连接,一般 SYN=1和 ACK=0表示发起 TCP连接的建立,而 SYN=1和 ACK=1表示接受 TCP连接。
FIN表示连接释放。
窗口大小字段用于实现 TCP协议的流量控制和差错恢复,TCP协议中窗口大小是可变的。
校验和用于对 TCP的头部实现校验。
选项部分用于实现除 TCP头部指定功能外的附加功能。
数据部分用于传送 TCP用户所要求发送的数据。
Internet运输层协议 (TCP)(8)
TCP协议建立连接冲突处理
Internet运输层协议 (TCP)(9)
TCP协议连接管理状态图 (下页)
状态转换图由状态和状态转换组成,状态表达了系统所处的状态,在一定的状态下,系统只能进行该状态所允许的动作,状态转换表示一个状态到另一个状态的迁移,包括迁移的条件和迁移的动作,用,条件 /动作,
表示。
Internet运输层协议 (TCP)(10)
C l o s e d
L i s t e n
S Y N
R e c e i v e d
S Y N
S e n t
E s t a b l i s h e d
F I N
W a i t 1
F I N
W a i t 2
T i m e d
W a i t
C l o s i n g
C l o s e
W a i t
a ê?
A
C
K
/
-
L I S T E N / -
C L O S E / -
C
L
O
S
E
/
-
C
O
N
N
E
C
T
/
S
Y
N
S
Y
N
/
S
Y
N
+
A
C
K
R
S
T
/ -
S Y N / S Y N + A C K
C
L
O
S
E
/
F
I
N
A
C
K
/
-
S
Y
N
+
A
C
K
/
A
C
K
F
I
N
/
F
I
N
+
A
C
K
3?
ê±
A C K / -
C
L
O
S
E
/
F
I
N
F I N / A C K
F
I
N
+
A
C
K
/
A
C
K
F I N / A C K
A C K / -
÷?ˉ êí ·?
±ˉ êí ·?
Internet运输层协议 (TCP)(11)
TCP协议的状态见下表。
状态 描述
Closed 无 TCP连接,也不在建立连接
Listen 用户开始 LISTEN,等待对方的呼入连接
SYN Received SYN收到,等待 ACK
SYN Sent SYN发出,开始与对方建立连接
Established 连接建立成功,可以传送数据
FIN Wait 1 用户释放连接,已经发出 FIN
FIN Wait 2 对方同意释放连接
Timed Wait 等待全部 TCP段传送完毕
Closing 双方同时开始释放连接
Close Wait 对方开始释放连接
Internet运输层协议 (TCP)(12)
一个有限状态机也可以通过状态转换表来描述,如书中表 8.7
TCP采用信号量进行流控 (图 8.19)
TCP协议的实现需要的计时器:
重传计时器,Retransmission Timer
保持计时器,Persistence Timer
用户数据报 UDP
UDP是另一个 Internet传输层协议,无连接
不提供差错恢复等附加功能
提供端口机制
在 RFC768中描述
UDP段的格式
c 目的端口
UDP长度 UDP校验和用户数据实时运输协议-实时应用和 RSVP
分组交换网络中运行实时应用令人期待
数据网络运行实时应用的困难( jitter)
部分 Internet线路通常附在繁重
实时应用造成网络堵塞
网络堵塞阻碍实时应用
一个综合解决方案,IETF的增强型 Internet服务模型和资源预约协议 RSVP的结合实时应用和 RSVP
综合服务如下使用,如果最优服务不能满意,
用户可以预约,如果在整个路径上有足够预约的带宽,这个预约被接受,否则根据繁忙信号,
这个预约将被拒绝,根据所选的服务,用户应用可以得到一定保证的带宽。
有关路径上的路由器要求能识别最优流和预约流,流是指从源到单点或多点目的地的所传递的一系列相关的数据包,
对路由器造成很大的压力实时协议 RTP
RTP由 RFC1889定义
运用通常再 UDP上运行 RTP
包含实时数据的 IP包,如下图
RTP头部格式从 RTP到 RTCP
RTP提供的服务
时间戳
顺序号
用户数据标识
RTCP是 RTP的增强,称为实时控制协议
提供对数据分发质量的反馈信息
追踪参与者
RPC基本操作
RPC即远程过程调用,为一个进程提供了访问其它进程服务的能力,这些进程往往处于不同的计算机
RPC是一种客户机 /服务器形式的服务:
一个客户机进程可以执行另一台计算机上的进程、向这个进程提供数据、获取这个进程运行的结果等等
RPC借用了函数调用的概念网络环境下的 RPC函数调用
RPC实例
ONC 开放网络计算
ONC/RPC也被称为 Sun/RPC
支持 TCP,UDP
信息传递可靠性由下层协议保证
异种计算机间,XDR;单一格式
安全性(安全 RPC),NIS+
DCE 分布式计算环境
支持 TCP,UDP,DECNET
与具体的传输协议无关
异种计算机间,NDR; 16种格式
提供鉴别,授权,访问控制服务
基于 X.500目录服务 (XDS)的全局目录服务 GDS
RPC的特有调用故障
找不到服务器
丢失到服务器的请求
丢失服务器给客户机的回答
服务器死机
客户机死机抽象语法标记 ASN.1
Abstract Syntax Notation One
ISO 8824定义其语法
ISO 8825定义其编码规则
ASN.1语法实际上是一种原始的数据描述语言,用户可以自己定义对象,并且组合成复杂对象
ASN.1的语法 (1)
ASN.1的常用原始数据类型原始类型 含义 代码
INTEGER 任意长度的整数 2
BIT STRING 0个或多个位串 3
OCTET STRING 0个或多个无符号字节串 4
NULL 一个位置占有者 5
OBJECT IDENTIFIER 一个正式定义的数据类型,每个标准中的正式对象都要用 OBJECT
IDENTIFIER来标识
6
ASN.1的语法 (2)
一个整数类型的变量可以在说明时定义特定值、范围等,
举例如下所示:
count,:= INTEGER
Status,:= INTEGER { up(1),down(2),unknown(3)}
PacketSize,:= INTEGER (0..1023)
OBJECT IDENTIFIER用来标识标准中的正式对象,
OBJECT IDENTIFIER的定义采用一种树状的结构
在 ASN.1中定义了五种形成新类型的方法:
SEQUENCE,SEQUENCE OF,CHOICE,SET和 SET OF
除了上述五种方法以外对一个类型还可以加标记( tag)
形成新的类型。标记有 4种,UNIVERSAL、
APPLICATION,CONTEXT-SPECIFIC和 PRIVATE。
ASN.1中定义了一种宏机制,一个宏是产生新类型和新值的原型类型,这些新类型具有相似的语法结构。
ASN.1基本编码规则 (1)
BER,Basic Encoding Rule
一个值的编码,由以下四个部分组成:
表示符(类型或标记);
以字节为单位的数据字段长度;
数据字段;
内容结束标志(如果数据长度为未知)。
ASN.1基本编码规则 (2)
第一个字段用来表示下续的数据是什么类型的,它有三个子字段
ASN.1基本编码规则 (3)
数据字段长度的编码格式是:
长度小于 128时直接用一个字节表示,这时最高位是 0
如果长度大于等于 128字节时,必须用多个字节来表达长度,这时第一字节的最高位为
1
后续 7位表示长度的长度(所以长度最大达
127字节)
接下来的字节即是长度数值大小
ASN.1基本编码规则 (4)
数据字节的编码要根据具体类型而定,
不同的数据类型有不同的编码方式
整数类型
位串类型
无符号字节串
对象标志
组合类型应用层
应用层包括执行用户需要的实际工作的程序
应用层又被划分成几个子层和元素,这些元素称为应用服务元素( ASE),如联系控制元素
( ACSE)、可靠传输服务元素( RTSE)、远程操作服务元素( ROSE)等等,这些元素被称为公共应用服务元素,
另一类服务元素与特定的应用相关,如文件传输和管理( FTAM)、电子文电处理( MHS)
等,这些元素被称为特殊应用服务元素( SASE)
文件传送,访问和管理 (FTAM)(1)
OSI的 FTAM由三部分组成:虚拟文件存储器定义、文件服务定义和文件协议规范
虚拟文件存储器 为计算机的文件系统定义了一个标准的体系结构,虚拟文件存储器与具体的文件系统无关,这个体系结构包括文件的属性以及对文件和文件元素所允许的操作等。
文件传送,访问和管理 (FTAM)(2)
文件结构有文件访问结构、文件表示结构、传送语法和识别结构等。属性有文件属性和活动属性两大类,FTAM中有三组文件属性:核心组、存储组和安全组。活动属性只与活动中的文件服务活动有关,同样活动属性也分为核心组、存储组和安全组
文件服务定义了用户对虚拟文件存储器可以进行的操作和服务
FTAM协议定义了实现文件服务的所有约定,
FTAM的文件协议有两个等级,基本协议和差错恢复协议。
电子文电处理 MHS(1)
在 X.400中定义了 MHS的模型电子文电处理 MHS(2)
它定义了三种类型的实体;用户代理 UA( User
Agent),文电传送代理 MTA( Message
Transfer Agent)和文电存贮 MS( Message
Store)
此外还有访问单元 AU以及物理投递访问单元
PDAU
一个文电处理系统是由若干个 UA,MS和 MTA
组成的,它们可以以多种方式实现物理组合。
UA,MS、和 MTA都可以单独实现,MS也可以分别与 UA及 MTA在同一系统中实现,并且 UA
可以与 MTA在同一系统中实现。
习题
8.5
8.6
8.11