第三部分
TCP/IP网络互连第 9章 传输控制协议( TCP)
与用户数据报协议( UDP)
内容摘要传输层的协议的基本概念传输控制协议 TCP的作用传输控制协议 TCP的报文格式和工作机制传输控制协议 UDP的作用传输控制协议 UDP的报文格式和工作机制
9.1 传输层协议
9.2 传输控制协议 TCP
9.3 用户数据报协议( UDP)
9.1 传输层协议在 TCP/IP体系结构中传输层的作用是向应用层提供端到端的可靠传输。传输层使用两种协议,即 TCP和 UDP协议。
TCP是面向连接的,可靠传输协议。
UDP协议是面向无连接的、不可靠传输协议。可靠传输和不可靠的传输是指在不同的网络传输环境假设下的两种传输方式。
S N M P
T F T P
R P C
D N S
N F S
S M T PH T T P
F T PT E L N E T
T e l n e t
应 用 层
U D P
T C P
传 输 层
I PI C M P I G M P R A R PA R P
网 络 层
E t h e r n e t,T o k e n R i n g,F D D I,P P P / S L I P,X,2 5
9.2 传输控制协议 TCP
TCP协议提供面向连接的、可靠的字节流的传输服务。这里面向连接意指使用 TCP协议的客户端和服务器端在彼此交换数据之前,必须首先建立一个
TCP连接。这很象普通的电话系统,当电话两端的通话人确认电话连通后,双方才开始讲述通话的内容。 TCP协议通过下列方式提供端到端的可靠传输:
数据分割
定时重传
连接确认
校验和
顺序化收到的报文
丢弃重复的数据
流量控制
9.2.1 TCP的报文格式
1,TCP报文封装
TCP数据被封装在一个 IP数据报中,
如图 9–2所示。
I P 首 部 T C P 首 部 T C P 数 据
T C P 报 文 段
I P 数 据 报
2 0 字 节 2 0 字 节
2,TCP报文格式图 9-3给出 TCP报文格式。如果不计任选字段的长度,TCP报头是
20个字节。
0 3 1
序 号 ( S E Q U E N C E N U M B E R )
源 端 口 ( S o u r c e p o r t )
首 部 长 度
( H L E N )
确 认 序 号 ( A C K - A c k n o w l e d g e m e n t N u m b e r )
校 验 和 ( c h e c k s u m ) 紧 急 指 针 ( U R G P o i n t e r )

目 地 端 口 ( D e s t i n a t i o n P o r t )
保 留
( R e s e r v e d )
码 元 比 特
( C o d e B i t s )
窗 口
( W i n d o w )
4 1 0 1 6 2 4
任 选 ( 如 果 有 ) o p t i o n 填 充数 据
9.2.2 TCP协议的工作机制
TCP协议是面向连接的,可靠传输协议。在使用 TCP协议进行网络通信的过程中,TCP协议首先在通信的两端建立一个连接通路,只有当连接成功建立之后,才开始传输报文。 TCP建立连接的过程也称“三次握手的过程”,即
“请求连接”-“请求确认”-“确认连接”的过程。
1,TCP连接的建立
( 1)发送请求连接报文
( 2)接收端发送请求确认报文
( 3)发送端发送确认连接报文
S Y N,I S N = 1 0 0
S Y N,I S N = 3 0 0,A C K = 1 0 1
S E Q = 1 0 1,A C K = 3 0 1
I n t e r n e t
2 TCP连接的终止
F I N,S E Q = 4 0 0,A C K = 6 0 0
S E Q = 6 0 0,A C K = 4 0 1
S E Q = 4 0 1,A C K = 6 0 1
I n t e r n e t
F I N,S E Q = 6 0 0,A C K = 4 0 1
3,TCP传输与控制
TCP使用“确认重传”机制保证数据的可靠传输。最简单的“确认重传”机制是当客户端向服务器端发送一个数据报文段,然后启动时钟定时器,一般情况下,客户端在时钟定时器的数值递减为零之前收到服务器的确认报文段,则客户端准备发送下一个数据报文段。如果因差错,使得服务器端没有正常收到该数据报文段,则服务器不发送确认报文。客户端收不到确认报文,等时钟定时递减为零后,客户端将重发该报文段。
( 1) TCP交互式数据流
( 2)批量数据的传输在图 9-7中显示使用滑动窗口机制传输数据时的报文段标记为 4种情形:已经被确认的报文段,已发送未被确认的报文段、已经发送确认的报文段以及未发送的报文段。
1 2 1 1 1 0 9 8 7 6 5 4 3 2 1
1 2 1 1 1 0 9 8 7 6 5 4 3 2 1
窗 口未 发 送对 方 缓 冲 区发 送确 认
3,TCP常用端口号
9.3 用户数据报协议( UDP)
UDP协议是面向无连接的,不可靠传输传输协议。在传输层使用 UDP协议的应用层服务通常有 DNS,TFTP和
SNMP等。
9.3.1 UDP协议的工作机制在使用 UDP协议进行网络传输的过程中,UDP协议只负责数据传输。首先,
UDP协议只负责将数据发出,但是不保证数据一定到达目的,而且,如果传输中出现故障,UDP协议不负责重传数据,
数据是否重传将由应用程序控制;其次,
当数据正确到达后,UDP协议的接收方不负责发送“数据已经到达”的确认信息。而确认信息将由接收方的应用程序负责。
1,UDP封装
UDP是一个简单的面向数据报的传输层协议。 UDP的封装格式见图 9-8。
I P 首 部 U D P 首 部 U D P 数 据
U D P 数 据 报
I P 数 据 报
2 0 字 节 8 字 节
2,UDP报文当应用层数据超过网络的最大网络传输单元( MTU)的限定值时,就要对
IP数据报进行分片。 UDP数据报格式见图 9-9。
1 6 位 源 端 口 号 1 6 位 目 的 端 口 号
1 6 位 U D P 长 度 1 6 位 U D P 检 验 和数 据 ( 如 果 有 )
0 1 5 1 6 3 1
8 字 节
0 1 5 1 6 3 1
3 2 位 目 的 I P 地 址
3 2 位 目 源 I P 地 址
1 6 位 源 端 口 号 1 6 位 目 的 端 口 号
1 6 位 U D P 长 度 1 6 位 U D P 检 验 和数 据
0 8 位 协 议 ( 1 7 ) 1 6 位 U D P 长 度填 充 字 节 ( 0 )
0
U D P 伪 首 部
U D P 首 部
3,IP分片在 TCPIP体系结构中 UDP应用的封装过程见图 9-11。为了便于理解,图中给出的封装过程省去了一些内部的处理环节。实际的封装过程是相当复杂的。
用 户 数 据应 用 程 序 生 成 的 数 据
U D P 协 议 将 数 据 封 装 成 数 据 报协 议 将 数 据 封 装 成 P a c k e t 分 组I P 报 头 U D P 报 头 用 户 数 据
U D P 报 头 用 户 数 据帧 头 I P 报 头 U D P 报 头 用 户 数 据 帧 尾加 上 帧 头,帧 尾 封 装 成 帧