49
第6 第第 第第 计计计计计计计计计计计计 计计计计计计计计计计计计

第 6 章 传输层

  • Upload
    derick

  • View
    164

  • Download
    0

Embed Size (px)

DESCRIPTION

计算机网络技术与实训教程. 第 6 章 传输层. 说明:. 本课件的配套教材为: 《计算机网络技术与实训教程》 出版社 编著 如果选用本套教材,并需要完整的各章课件,请与作者联系。 电话: E-mail: 通信地址:. 本章主要内容. 了解传输层的数据传输服务 掌握 TCP 与 UDP 协议的报文格式 掌握 TCP 与 UDP 协议的工作原理 掌握 TCP / IP 实用程序. 6.1 传输层原理. 主要内容: 传输层存在的必要性 传输协议的分类 数据传输服务. - PowerPoint PPT Presentation

Citation preview

Page 1: 第 6 章  传输层

第第 66 章 传输层章 传输层计算机网络技术与实训教程计算机网络技术与实训教程

Page 2: 第 6 章  传输层

23/4/22

2说明:说明:本课件的配套教材为:本课件的配套教材为:

– 《计算机网络技术与实训教程》《计算机网络技术与实训教程》 出版社 编著出版社 编著

如果选用本套教材,并需要完整的各章课如果选用本套教材,并需要完整的各章课件,请与作者联系。件,请与作者联系。– 电话:电话:– E-mailE-mail::– 通信地址:通信地址:

Page 3: 第 6 章  传输层

23/4/22

3本章主要内容本章主要内容 了解传输层的数据传输服务 掌握 TCP 与 UDP协议的报文格式 掌握 TCP 与 UDP协议的工作原理 掌握 TCP/IP实用程序

Page 4: 第 6 章  传输层

23/4/22

46.1 6.1 传输层原理传输层原理– 主要内容:主要内容:

–传输层存在的必要性 –传输协议的分类 –数据传输服务

Page 5: 第 6 章  传输层

23/4/22

5 11. . 传输层存在的必要性传输层存在的必要性 对于网络用户来说,希望通信双方的主机能得到对于网络用户来说,希望通信双方的主机能得到

端到端(即从进程到进程)的可靠通信服务。但是,网端到端(即从进程到进程)的可靠通信服务。但是,网络层提供的分组传输服务往往是不可靠的,比如,若网络层提供的分组传输服务往往是不可靠的,比如,若网络层提供数据报服务,那么就不能保证分组报文无差错、络层提供数据报服务,那么就不能保证分组报文无差错、不丢失、不重复且按顺序进行交付。即使网络层提供的不丢失、不重复且按顺序进行交付。即使网络层提供的是虚电路服务,但当网络中的虚电路进行重建时,主机是虚电路服务,但当网络中的虚电路进行重建时,主机就无法获得正在网内的分组状态,恢复工作必须由传输就无法获得正在网内的分组状态,恢复工作必须由传输层来进行。也就是说,要保证数据既不丢失也不重复,层来进行。也就是说,要保证数据既不丢失也不重复,传输层是必不可少的。传输层是必不可少的。

Page 6: 第 6 章  传输层

23/4/22

6

另外,在互连网的情况下,各通信子网所能另外,在互连网的情况下,各通信子网所能提供的服务又各不相同,网络用户又无法对子网加提供的服务又各不相同,网络用户又无法对子网加以控制。因此,为了能使通信子网的用户得到一个以控制。因此,为了能使通信子网的用户得到一个统一的通信服务,也必须设置传输层,以弥补通信统一的通信服务,也必须设置传输层,以弥补通信子网提供的服务差异和不足,使得对两端的网络用子网提供的服务差异和不足,使得对两端的网络用户来说,各通信子网都变成透明的。户来说,各通信子网都变成透明的。

Page 7: 第 6 章  传输层

23/4/22

7

换言之,传输层向高层用户屏蔽了通信子网换言之,传输层向高层用户屏蔽了通信子网的细节,使高层用户看不见实现通信功能的物理链路的细节,使高层用户看不见实现通信功能的物理链路是什么,看不见数据链路层和网络层采用的是什么协是什么,看不见数据链路层和网络层采用的是什么协议,以及网络互连的结构,而看见的就是好像在两个议,以及网络互连的结构,而看见的就是好像在两个传输层实体之间有一条端到端的、可靠的、价格合理传输层实体之间有一条端到端的、可靠的、价格合理的、与实际使用的网络无关的全双工通信通路。的、与实际使用的网络无关的全双工通信通路。

Page 8: 第 6 章  传输层

23/4/22

8

传输层为两个主机上的用户进程提供端到端的面向连接的传输层为两个主机上的用户进程提供端到端的面向连接的或无连接的服务。面向连接服务是一种可靠的、有序的数或无连接的服务。面向连接服务是一种可靠的、有序的数据传输服务,一次数据通信要经历建立连接、数据传输和据传输服务,一次数据通信要经历建立连接、数据传输和释放连接等三个阶段,其可靠性是以较大的通信开销为代释放连接等三个阶段,其可靠性是以较大的通信开销为代价,这类传输层协议有价,这类传输层协议有 TCP TCP (( Transmission Control Transmission Control

ProtocolProtocol ))和和 SPXSPX(( Sequenced Packet eXchangeSequenced Packet eXchange ))等;等; 无连接服务是一种不可靠的数据传输服务,为用户进无连接服务是一种不可靠的数据传输服务,为用户进程提供一种简单而快捷的通信机制,这类传输层协议有程提供一种简单而快捷的通信机制,这类传输层协议有UDP UDP (( User Datagram ProtocolUser Datagram Protocol ))等。等。

Page 9: 第 6 章  传输层

23/4/22

9

传输层是在网络层所提供服务的基础上为两个主机传输层是在网络层所提供服务的基础上为两个主机上的用户进程提供一种通信机制,而网络层服务则是上的用户进程提供一种通信机制,而网络层服务则是面向通信子网的。面向通信子网的。 在在 OSIOSI 参考模型的参考模型的 77 层结构中,传输层起着承上层结构中,传输层起着承上启下的作用,所以有人将启下的作用,所以有人将 77 层结构分成两大部分:把层结构分成两大部分:把00 ~~ 44 层看作是传输服务提供者; 把层看作是传输服务提供者; 把 5-75-7 层看作是传层看作是传输服务用户,通过传输层,传输服务提供者可以为传输服务用户,通过传输层,传输服务提供者可以为传输服务用户提供更加可靠的数据传输服务。输服务用户提供更加可靠的数据传输服务。

Page 10: 第 6 章  传输层

23/4/22

10

AA 型:网络连接具有可接受的低差错率和可接受的低故型:网络连接具有可接受的低差错率和可接受的低故障通知率。障通知率。 AA 型网络服务是一个完善的、理想的、可靠型网络服务是一个完善的、理想的、可靠的网络服务,实际的网络很少达到这个水平。的网络服务,实际的网络很少达到这个水平。

BB 型:网络连接具有可接受的低差错率和不可接受的高型:网络连接具有可接受的低差错率和不可接受的高故障通知率。多数故障通知率。多数 X.25X.25 公用分组交换网络提供的是公用分组交换网络提供的是 BB型网络服务。型网络服务。

CC 型:网络连接具有不可接受的高差错率。型:网络连接具有不可接受的高差错率。 CC 型网络服型网络服务质量最差,大多数广域网属于这种类型。 务质量最差,大多数广域网属于这种类型。

22. . 传输协议的分类传输协议的分类

Page 11: 第 6 章  传输层

23/4/22

11

ISOISO 定义了定义了 55 种类型的传输协议,即种类型的传输协议,即TP0TP0,, TP1TP1,, TP2TP2,, TP3TP3和和 TP4TP4 ,,它们都是面向连它们都是面向连接的。接的。

TP0TP0 协议最简单,适用于协议最简单,适用于 AA 型网络,型网络, TP0TP0 为请求的传输为请求的传输连接建立一个对应的网络连接,并假定网络连接完全可靠,连接建立一个对应的网络连接,并假定网络连接完全可靠,不再另外进行流控和排序,传输连接的释放也对应于网络不再另外进行流控和排序,传输连接的释放也对应于网络连接的释放。连接的释放。

TP1TP1 协议也比较简单,增加了基本的差错恢复功能,适协议也比较简单,增加了基本的差错恢复功能,适用于用于 BB 型网络。型网络。

Page 12: 第 6 章  传输层

23/4/22

12

TP2TP2 协议具有连接复用功能,但没有对网络连接出现故协议具有连接复用功能,但没有对网络连接出现故障的恢复功能,这类协议还具有相应的流量控制功能,障的恢复功能,这类协议还具有相应的流量控制功能,主要面向主要面向 AA 型网络服务。型网络服务。

TP3TP3 协议包含了协议包含了 TP1TP1和和 TP2TP2 协议的功能,既有差错恢协议的功能,既有差错恢复又有复用功能,主要面向复又有复用功能,主要面向 BB 型网络服务。型网络服务。

TP4TP4 协议是最复杂的,功能较齐全,具有差错检测、控协议是最复杂的,功能较齐全,具有差错检测、控制、恢复以及复用功能,可以在质量较差的网络上保证制、恢复以及复用功能,可以在质量较差的网络上保证高可靠的数据传输,主要面向高可靠的数据传输,主要面向 CC 型网络服务。型网络服务。

Page 13: 第 6 章  传输层

23/4/22

1333. . 数据传输服务数据传输服务 传输层提供的数据传输服务可以是面向连接或无连接的,其传输层提供的数据传输服务可以是面向连接或无连接的,其

中应用较广泛的是面向连接的传输层协议,如中应用较广泛的是面向连接的传输层协议,如 TCPTCP 协议等。协议等。传输层的数据传输单位是分组(传输层的数据传输单位是分组( PacketPacket),),每个分组由每个分组由分组头和分组数据两部分组成,分组头中包含了寻址信息、分组头和分组数据两部分组成,分组头中包含了寻址信息、控制信息和说明信息等,寻址信息指出了通信双方的传输层控制信息和说明信息等,寻址信息指出了通信双方的传输层服务访问点(服务访问点( TSAPTSAP ))地址,定义了使用传输层协议进行地址,定义了使用传输层协议进行通信的用户进程。控制信息规定了某种传输协议的控制操作,通信的用户进程。控制信息规定了某种传输协议的控制操作,如建立连接、拆除连接等操作;说明信息描述了数据传输时如建立连接、拆除连接等操作;说明信息描述了数据传输时的某些特性,如服务质量(的某些特性,如服务质量( QoSQoS)、)、窗口尺寸等。 窗口尺寸等。

Page 14: 第 6 章  传输层

23/4/22

14

1. 1. 建立连接(采用三次握手法建立连接(采用三次握手法))

DATE(seq=j ,ACK=i)

CR(seq=i)

CA(seq=j ,ACK=i)

主机 1 主机 2

REJECT(ACK=j)

重复的 CR(seq=i)

CA(seq=j ,ACK=i)

主机 1 主机 2

Page 15: 第 6 章  传输层

23/4/22

15

2. 2. 释放连接(采用三次握手法释放连接(采用三次握手法))

ACK(seq=j)

DR(seq=i)

DR(seq=j ,ACK=i)

主机 1 主机 2

ACK(seq=j)

DR(seq=i)

DR(seq=j ,ACK=i)

主机 1 主机 2

启动计时器

超时释放

丢失

Page 16: 第 6 章  传输层

23/4/22

16

3. 3. 流量控制流量控制 传输层是利用可变滑动窗口协议来实现流量控制的,即传输层是利用可变滑动窗口协议来实现流量控制的,即发送方的发送窗口大小是由接收方根据自己的实际窗口发送方的发送窗口大小是由接收方根据自己的实际窗口大小而给出的,且在整个传输过程中动态变化。值得注大小而给出的,且在整个传输过程中动态变化。值得注意的是,这里所指的窗口就是缓冲区。因此,滑动窗口意的是,这里所指的窗口就是缓冲区。因此,滑动窗口协议的核心问题也是解决缓冲区的分配问题。协议的核心问题也是解决缓冲区的分配问题。 在传输在传输层分组头中,设有一个窗口字段,接收方利用该字段向层分组头中,设有一个窗口字段,接收方利用该字段向发送方通报接收窗口尺寸,即接收缓冲区大小,发送方发送方通报接收窗口尺寸,即接收缓冲区大小,发送方则按当前接收缓冲区容量发送适量的数据分组。则按当前接收缓冲区容量发送适量的数据分组。

Page 17: 第 6 章  传输层

23/4/22

17

在建立连接时 ,双方通过在建立连接时 ,双方通过 CRCR 分组和分组和 CACA 分组中的窗口分组中的窗口字段捎带着相互通告各自的窗口尺寸。在数据传输过程字段捎带着相互通告各自的窗口尺寸。在数据传输过程中 ,发送方按接收方通告的窗口尺寸发送一定的数据量。中 ,发送方按接收方通告的窗口尺寸发送一定的数据量。接收方可根据接收缓冲区的使用状况动态地调整接收窗接收方可根据接收缓冲区的使用状况动态地调整接收窗口 ,并在发送应答分组进行确认时捎带着将新的窗口尺口 ,并在发送应答分组进行确认时捎带着将新的窗口尺寸通告给发送方。发送方将按新的接收窗口尺寸来调整寸通告给发送方。发送方将按新的接收窗口尺寸来调整发送窗口 ,接收方也用新的接收窗口尺寸来验证新到达发送窗口 ,接收方也用新的接收窗口尺寸来验证新到达数据分组的可接受性。数据分组的可接受性。

Page 18: 第 6 章  传输层

23/4/22

18

4. 4. 多路复用多路复用传输层的多路复用机制使多个用户进程能够共享传输层的多路复用机制使多个用户进程能够共享

一个传输层实体进行通信,这种多路复用机制是通过传一个传输层实体进行通信,这种多路复用机制是通过传输层的输层的 TSAPTSAP 地址实现的。地址实现的。

当一次数据通信结束后,在释放连接的同时也释当一次数据通信结束后,在释放连接的同时也释放了该连接所占用的放了该连接所占用的 TSAPTSAP 地址,这个地址,这个 TSAPTSAP 地址就地址就可以分配给其它连接使用。可以分配给其它连接使用。

在在 TCPTCP 协议中,通过端口(协议中,通过端口( PortPort ))提供这种多提供这种多路复用机制。路复用机制。

Page 19: 第 6 章  传输层

23/4/22

196.2 TCP6.2 TCP 协议协议– 主要内容:主要内容:

–传输层端口 –TCP协议报文格式 –连接的建立与关闭–其它传输服务

Page 20: 第 6 章  传输层

23/4/22

206.2 TCP6.2 TCP 协议协议 InternetInternet 传输层包含了两个重要协议:传输控制协议传输层包含了两个重要协议:传输控制协议

TCPTCP 和用户数据报协议和用户数据报协议 UDPUDP。。 TCPTCP 是专门为在不可是专门为在不可靠的靠的 InternetInternet 上提供可靠的端到端的字节流通信而设上提供可靠的端到端的字节流通信而设计的一种面向连接的传输协议。计的一种面向连接的传输协议。 UDPUDP 是一种面向无连是一种面向无连接的传输协议。接的传输协议。

Page 21: 第 6 章  传输层

23/4/22

2111. . 传输层端口传输层端口 InternetInternet 传输层与网络层功能上的最大区别是前者可提供进传输层与网络层功能上的最大区别是前者可提供进

程间的通信能力。因此,程间的通信能力。因此, TCP/IPTCP/IP 协议提出了端口(协议提出了端口( PortPort ))的概念,用于标识通信的进程。的概念,用于标识通信的进程。 TCPTCP和和 UDPUDP 都使用与应用层都使用与应用层接口处的端口和上层的应用进程进行通信。接口处的端口和上层的应用进程进行通信。

在在 InternetInternet 传输层中,每一端口是用套接字(传输层中,每一端口是用套接字( SocketSocket ))来来描述的。应用程序一旦向系统申请到一个描述的。应用程序一旦向系统申请到一个 SocketSocket ,,就相当于就相当于应用程序获得一个与其他应用程序通信的输入应用程序获得一个与其他应用程序通信的输入 //输出接口。每输出接口。每一一 SocketSocket表示一个通信端点,且对应有一个惟一传输地址即表示一个通信端点,且对应有一个惟一传输地址即(( IPIP 地址,端口号)标识,其中,端口号是一个地址,端口号)标识,其中,端口号是一个 1616位二进制位二进制数,约定数,约定 256256 以下的端口号被标准服务保留,取值大于以下的端口号被标准服务保留,取值大于 256256的为自由端口。的为自由端口。

Page 22: 第 6 章  传输层

23/4/22

2222. . 传输控制协议传输控制协议 TCPTCP TCPTCP 是利用网络层是利用网络层 IPIP 协议提供的不可靠的通信服务,为协议提供的不可靠的通信服务,为应用进程提供可靠的、面向连接的、端到端的基于字节流应用进程提供可靠的、面向连接的、端到端的基于字节流的传输服务。 的传输服务。

TCPTCP 的连接管理可以分为三个阶段:建立连接、数据传输的连接管理可以分为三个阶段:建立连接、数据传输和释放连接。 和释放连接。

一旦连接建立起来并且该连接处于活动状态时,一旦连接建立起来并且该连接处于活动状态时, TCPTCP便便可以产生并发送分组。当传送结束后 ,连接双方都要终止可以产生并发送分组。当传送结束后 ,连接双方都要终止各自的连接。由于各自的连接。由于 InternetInternet 是由不同的通信子网互连而是由不同的通信子网互连而成的,而不同的网络可能具有不同的拓扑结构、带宽、延成的,而不同的网络可能具有不同的拓扑结构、带宽、延迟以及分组大小等其他特性。因此,迟以及分组大小等其他特性。因此, TCPTCP 的协议机制相的协议机制相对复杂,即要涉及到连接管理、流量控制、应答以及定时对复杂,即要涉及到连接管理、流量控制、应答以及定时管理等。管理等。

Page 23: 第 6 章  传输层

23/4/22

23

1. 1. TCPTCP 报文格式报文格式

31

源端口(16bi ts)

序列号(32bi ts)

确认号(32bi ts)

TCP头长 保留位 标志位 窗口(16bi ts)

校验和(16bi ts)

填充 选项

紧急指针(16bi ts)

数据(长度可变)

0 15 16

目的端口(16bi ts)

4 10

Page 24: 第 6 章  传输层

23/4/22

24

2. 2. 建立连接建立连接 在在 TCPTCP 协议中 ,建立连接要通过“三次握手”协议中 ,建立连接要通过“三次握手”

机制来完成。这种机制既可以由一方机制来完成。这种机制既可以由一方 TCPTCP 发起同步握发起同步握手过程而由另一方手过程而由另一方 TCPTCP 响应该同步过程, 也可以由通响应该同步过程, 也可以由通信双方同时发起连接的同步握手。信双方同时发起连接的同步握手。

Page 25: 第 6 章  传输层

23/4/22

25

TCP 实体A

TCP 实体B

〈SEQ=100〉〈CTL=SYN〉

〈SEQ=300〉〈ACK=101〉〈CTL=SYN,ACK〉

〈SEQ=101〉〈ACK=301〉〈CTL= ACK〉

〈SEQ=101〉〈ACK=301〉〈CTL= ACK〉〈DATA〉

建立连接的三次握手过程

Page 26: 第 6 章  传输层

23/4/22

26

3. 3. 关闭连接关闭连接 由于由于 TCPTCP 连接是一个全双工的数据通道,一个连接的关闭必须连接是一个全双工的数据通道,一个连接的关闭必须由通信双方共同完成。当通信的一方没有数据需要发送给对方由通信双方共同完成。当通信的一方没有数据需要发送给对方时,可以使用时,可以使用 FINFIN 段向对方发送关闭连接请求。这时,它虽然段向对方发送关闭连接请求。这时,它虽然不再发送数据,但并不排斥在这个连接上继续接收数据。只有不再发送数据,但并不排斥在这个连接上继续接收数据。只有当通信的对方也递交了关闭连接请求后,这个当通信的对方也递交了关闭连接请求后,这个 TCPTCP 连接才会完连接才会完全关闭。全关闭。在关闭连接时,既可以由一方发起而另一方响应,也可以双方在关闭连接时,既可以由一方发起而另一方响应,也可以双方同时发起。无论怎样,收到关闭连接请求的一方必须使用同时发起。无论怎样,收到关闭连接请求的一方必须使用 ACKACK段给予确认。实际上,段给予确认。实际上, TCPTCP 连接的关闭过程也是一个三次握手连接的关闭过程也是一个三次握手的过程。的过程。

Page 27: 第 6 章  传输层

23/4/22

27

主机 1

发送 DR并

启动计时器

释放连接

DR

DR

发送 ACK ACK

丢失

主机 2

启动计时器

(超时) 释放连接

发送 DR并

主机 1

发送 DR并 启动计时器

释放连接

主机 2

发送 DR并 启动计时器

DR

DR

发送 ACK

释放连接

ACK

(a) 三次握手释放连接的正常操作 (b) 最后确认 TPDU 丢失的情况

Page 28: 第 6 章  传输层

23/4/22

28

丢失

A C K

D R

D R

D R

D R

主机 1 主机 2

释放连接

发送 DR并

启动计时器

发送 DR并

启动计时器

(超时 )

释放连接

发送 ACK

发送 DR并

发送 DR并 发送 DR并

启动计时器

启动计时器

丢失

D R

N个超时

释放连接

丢失

发送 DR并

(超时 ) 释放连接

发送 DR并

启动计时器

发送 DR 并 发送 DR并 启动计时器

主机 1 主机 2

启动计时器

(c) 应答丢失的情况 (d) 应答丢失以及后续 DR 丢失情况

Page 29: 第 6 章  传输层

23/4/22

29

4. 流量控制 在数据传输过程中, TCP 协议提供一种基于动态滑动窗口协议的流量控制机制,使接收方 TCP 实体能够根据自己当前的缓冲区容量来控制发送方 TCP 实体传送的数据量。 假设接收方现有 2048 B 的缓冲区空间,如果发送方传送了一个 1024B 的报文段并被正确接收到,那么接收方要确认该报文段。然而,因为它现在只剩下 1024B 的缓冲区空间(在应用程序从缓冲区中取走数据之前),所以,它只声明 1024B 大小的窗口,期待接收后续的数据。当发送方再次发送了 1024B 的 TCP 报文段后,由于接收方无剩余的缓冲区空间,所以,最终的确认其声明的滑动窗口大小为 0 。

Page 30: 第 6 章  传输层

23/4/22

30

此时发送方必须停止发送数据直到接收方主机上的应用程序被确定从缓冲区中取走一些数据,接收方重新发出一个新的窗口值为止。 当滑动窗口为 0 时,在正常情况下,发送方不能再发送 TCP 报文段。但有两种情况例外,一是紧急数据可以发送,比如,立即中断远程的用户进程;二是为防止窗口声明丢失时出现死锁,发送方可以发送1 B的 TCP 报文段,以便让接收方重新声明确认号和窗口大小。

Page 31: 第 6 章  传输层

23/4/22

31

5. PUSH操作

在一个 TCP 连接上进行正常数据传送过程中,发送方会按规定的方式来分段和发送上层协议递交的数据。这样,对于递交了该数据的上层协议来说,在数据发送完成前,无法知道自身递交的数据是否在发送。 PUSH (推进)数据机制可使得上层协议递交的数据能够迅速地从本地推向远地,而不受发送方当前发送窗口大小和发送方式所限制。 当发送方 TCP收到上层协议的 PUSH操作请求时,它将在流量控制允许的范围内进行数据分段并发送本地 TCP缓冲区中所有数据( TCP 段头中的 PSH标志位被置位)。当接收方 TCP收到带有 PSH标志的 TCP 数据段后,将迅速把这些数据段递交给上层接收协议并结束当前的接收命令。

Page 32: 第 6 章  传输层

23/4/22

32

6. 紧急数据

任何一个 TCP 输出段都可以携带紧急数据( Urgent Data),以支持上层协议间紧急信息的快速传递。紧急数据必须位于数据段中所有数据的最前端,并在 TCP 段头中设置如下字段:(1)设置 URG标志位,表示当前数据段中携带有紧急数据。(2)设置紧急指针,紧急指针与当前输出段的序号之和指出数据流中紧急数据最后一个字节。对于一个包含该字节的数据段来讲,其紧急数据长度从段序号开始一直延续到该字节为止。

Page 33: 第 6 章  传输层

23/4/22

33

当接收方 TCP收到含有紧急数据的 TCP 数据段后,首先把紧急数据从正常数据流中分离出来,并保存在适当地方。然后,以一定的方式通知上层协议,希望它尽快地响应和处理。 当发送方 TCP 接到上层协议递交的紧急数据后,并不是立即发送紧急数据,而是把它们排入正常数据的发送队列中。此后,发送方 TCP每发送一个数据段都要带有URG标志和紧急指针,直到出现真正含有紧急数据的数据段为止;也就是说,含有 URG标志和紧急指针的数据段不一定就含有紧急数据,只有包含紧急指针开始到该字节为止皆为紧急数据。 发送方 TCP 即使发送窗口为 0 时也要对带有 URG标志的数据段实行强制发送,不管它们是否含有紧急数据。

Page 34: 第 6 章  传输层

23/4/22

34

7. 多路复用机制 TCP 协议的多路复用功能是通过端口机制提供的。 端口是用于标识 TCP 连接的地址集,一个主机上的多个应用进程可以通过不同的端口同时使用 TCP 实体进行通信,从而达到多路复用的目的。 不同主机上的 TCP 实体对端口地址的选取是独立的,只要保证本地端口地址的惟一性就可以保证整个 TCP 连接的惟一性,即网间惟一的 IP 地址和本地惟一的端口地址将惟一地确定通信连接的一端。一个本地端口可以同时与多个远地端口建立通信连接。 在 TCP 协议内部定义了一个“周知”端口的集合,属于该集合的端口都对应了某一确定的上层服务,如 FTP 服务、Telnet 服务等。

Page 35: 第 6 章  传输层

23/4/22

356.3 UDP6.3 UDP 协议协议– 主要内容:主要内容:

–UDP协议数据单元 –UDP协议报文格式 –UDP协议工作原理

Page 36: 第 6 章  传输层

23/4/22

366.3 UDP6.3 UDP 协议协议 UDPUDP 提供一种面向进程的无连接传输服务,这种服务不确提供一种面向进程的无连接传输服务,这种服务不确认报文是否到达,不对报文排序,也不进行流量控制,因认报文是否到达,不对报文排序,也不进行流量控制,因此此 UDPUDP 报文可能会出现丢失、重复和失序等现象。报文可能会出现丢失、重复和失序等现象。

对于差错、流量控制和排序的处理,则由上层协议根据需对于差错、流量控制和排序的处理,则由上层协议根据需要自行解决,要自行解决, UDPUDP 协议本身并不提供。与协议本身并不提供。与 TCPTCP 相同的是,相同的是,UDPUDP 协议也是通过端口号支持多路复用功能,多个协议也是通过端口号支持多路复用功能,多个 ULPULP可以通过端口地址共享单一的可以通过端口地址共享单一的 UDPUDP 实体。实体。

UDPUDP 是一种简单的协议机制,通信开销很小,效率比较高,是一种简单的协议机制,通信开销很小,效率比较高,比较适合于对可靠性要求不高,但需要快捷、低延迟通信比较适合于对可靠性要求不高,但需要快捷、低延迟通信的应用场合,如交互型应用。 的应用场合,如交互型应用。

Page 37: 第 6 章  传输层

23/4/22

371. 1. UDPUDP 的协议数据单元的协议数据单元 TPDUTPDU UDPUDP的的 TPDUTPDU 是由是由 88BB 报头和可选部分的报头和可选部分的 00 个或多个数据字节个或多个数据字节

组成。它在组成。它在 IPIP 分组数据报中的封装及组成如图所示。分组数据报中的封装及组成如图所示。

IP首部(20B) UDP报头(8B) UDP数据

IP分组数据

UDP报文

Page 38: 第 6 章  传输层

23/4/22

38

源端口(16bi ts) 目的端口(16bi ts)

长度(16bi ts) 校验和(16bi ts)

数据(长度可变)

0 15 16 31

UDP 报文格式如图所示 :

Page 39: 第 6 章  传输层

23/4/22

39

UDP 报头各个字段意义如下: (1) 源端口号、目的端口号:分别用于标识和寻找源端和目的端的应用进程。它们分别与 IP 报头中的源端 IP 地址和目的端 IP 地址组合就惟一确定一个UDP 连接。 (2)报文长度:包括 UDP 报头和数据在内的报文长度,以字节为单位,最小值为 8 (报头长度)。 (3) 校验和:可选字段。若计算校验和,则对 IP首部、 UDP 报头和 UDP 数据全部计算在内,用于检错,即由发送端计算校验和并存储,由接收端进行验证。否则,取值为 0 。

Page 40: 第 6 章  传输层

23/4/22

402. 2. UDPUDP 工作原理工作原理 利用利用 UDPUDP 协议实现数据传输的过程远比利用协议实现数据传输的过程远比利用 TCPTCP 协议要简单协议要简单

得多。得多。 UDPUDP 数据报是通过数据报是通过 IPIP 协议发送和接收的。发送端主机协议发送和接收的。发送端主机分配源端口,并指定目的端口,构造分配源端口,并指定目的端口,构造 UDPUDP的的 TPDUTPDU ,,提交给提交给IPIP 协议处理。网间寻址由协议处理。网间寻址由 IPIP 地址完成,进程间寻址则由地址完成,进程间寻址则由 UDPUDP端口来实现。当发送数据时,端口来实现。当发送数据时, UDPUDP 实体构造好一个实体构造好一个 UDPUDP 数数据报后递交给据报后递交给 IPIP 协议,协议, IPIP 协议将整个协议将整个 UDPUDP 数据报封装在数据报封装在 IPIP数据报中,即加上数据报中,即加上 IPIP 报头,形成报头,形成 IPIP 数据报发送到网络中。数据报发送到网络中。

在接收数据时,在接收数据时, UDPUDP 实体首先判断接收到的数据报的目的端实体首先判断接收到的数据报的目的端口是否与当前使用的某端口相匹配。如果匹配,则将数据报放口是否与当前使用的某端口相匹配。如果匹配,则将数据报放入相应的接收队列;否则丢弃该数据报,并向源端发送一个入相应的接收队列;否则丢弃该数据报,并向源端发送一个“端口不可达”的“端口不可达”的 ICMPICMP 报文。 报文。

Page 41: 第 6 章  传输层

23/4/22

416.4 TCP/IP6.4 TCP/IP 实用程序实用程序 TCP/IPTCP/IP 实用程序涉及对实用程序涉及对 TCP/IPTCP/IP 进行故障诊断和配置、进行故障诊断和配置、

文件传输和访问、远程登录等多个方面。针对不同系统,文件传输和访问、远程登录等多个方面。针对不同系统,实用程序的名字、选项参数及显示输出可能有所不同,实用程序的名字、选项参数及显示输出可能有所不同,本节介绍的实用程序均基于本节介绍的实用程序均基于 Windows 2000 ServerWindows 2000 Server系统。 系统。

Page 42: 第 6 章  传输层

23/4/22

42

1. IPConfig IPConfig 实用程序可用于显示当前的 TCP/IP配置设置值。下面是几个常用的选项: •Default (缺省值, 无选项) 当 不带任何选项使 用IPConfig 时, 它为每个已配置的接口显示 IP 地址、子网掩码和缺省网关值。•All 使用全部选项, IPConfig 能为 DNS和WINS 服务器显示它已配置要使用的附加信息,并显示内置于本地网卡中的物理地址。Release和 Renew 只对向 DHCP 服务器租用 IP 地址的计算机起作用。 Release选项将接口租用的 IP 地址归还给DHCP 服务器; Renew选项将向 DHCP 服务器重新租用接口的 IP 地址。 在 UNIX/Linux系统中,可以使用 ifconfig 实用程序查看和修改 TCP/IP配置信息。

Page 43: 第 6 章  传输层

23/4/22

43

2. Ping Ping 程序是最基本的查找并排除网络故障的工具。Ping 使用 ICMP 将数据报发送到另一个主机并等待应答。它能够以毫秒为单位显示发出回送请求到返回回送应答之间的时间量,还能显示 TTL值。 Ping命令最常用的方式是: ping hostname|ip_address 当检查网络是否有故障时,首先 Ping 主机自己的IP 地址,这可以检测始发的网络接口的设置是否正确;然后,可以试着 Ping缺省网关,直到 Ping远程主机。这样,可以容易判断出问题的所在。

Page 44: 第 6 章  传输层

23/4/22

44

3. ARP ARP 是一个重要的 TCP/IP 协议,用于确定对应IP 地址的物理地址。使用 ARP命令,可以查看主机ARP 高速缓存中的当前内容,也可以用人工方法输入永久性的 IP 地址 - 物理地址对。 按照缺省设置, ARP 高速缓存中的项目是动态的。每当发送一个指定地址的数据报且高速缓存中不存在当前项目时, ARP便自动增加项目;如果项目输入后不进一步使用,则 IP 地址 - 物理地址对就会在几分钟内失效。因此,如果 ARP 高速缓存中项目很少或者根本没有项目,则不必感到奇怪。

Page 45: 第 6 章  传输层

23/4/22

45

4. TraceRoute TraceRoute是 TCP/IP查找并排除故障的主要工具。它不断用更大的 TTL发送 UDP 数据报并探测数据经过的网关的 ICMP回应。最后,它得到数据报从源主机到目标主机的路由信息。对于每个TTL, TraceRoute 将发送三个数据报并报告每个数据报所花费的往返时间。这个功能可以用来检测网络瓶颈。 TraceRoute命令最常用的方式是:traceroute hostname|ip_address Microsoft公司的操作系统使用命令tracert ,而不使用 traceroute 。

Page 46: 第 6 章  传输层

23/4/22

46

5. 5. RouteRouteRouteRoute 实用程序用于增加、删除、修改和显示输出路由表实用程序用于增加、删除、修改和显示输出路由表中的项目。中的项目。6. 6. HostnameHostnameHostnameHostname 实用程序用于返回本地主机名。 实用程序用于返回本地主机名。

Page 47: 第 6 章  传输层

23/4/22

47

7. NetStat NetStat 实用程序用于显示与 IP、 TCP、 UDP和ICMP 协议相关的统计数字。这些统计数字涉及发送和接收的数据报统计、差错统计等情况。下面列出NetStat 实用程序常用的选项:netstat –s 显示各个协议的统计数字。netstat –e 显示以太网的统计数字。netstat –r 显示路由表信息。 netstat –a 显示一个所有的有效连接的列表,包括已建立的连接、监听连接请求的端口。

Page 48: 第 6 章  传输层

23/4/22

48

8. Net Use/View Net Use和Net View 能够使用和查看计算机之间 的 NetBIOS 连 接 ,它们是 Net 命令的 子命令。 NetBIOS 使 用 通 用命名约定( Universal Naming Convention,UNC )来标识计算机和访问共享点。共享点是指在共享计算机上的一个共享目录。UNC名字总是以两条反斜线开头,后随计算机名,计算机名与共享点名字之间用反斜线分隔。 Net Use 用于建立或取消到达特定共享点的映像驱动器名的连接, Net View 用于查看共享计算机上的共享资源列表。

Page 49: 第 6 章  传输层

23/4/22

49

练 习 题1. 传输层提供的传输服务有哪些?2. 传输协议分为几类?分别面向哪些网络服务?3. TCP 的连接管理分为几个阶段?简述 TCP 连接建立的“三次握手”机制。4. 解释为什么传输连接突然释放掉就可能会丢失用户数据,而 TCP 的连接释放方法就可保证不丢失数据。5. TCP和 UDP 有何主要区别? TCP和 UDP 的数据格式分别包含哪些信息? 6. 举三个例子来说明 TCP/IP 实用程序的作用。