1
第五章 运输层
2
主要内容
4
5
运输层协议概述1
用户数据报协议 UDP2
传输层控制协议 TCP概述3
6
7
8
第五章 运输层
3
1.运输层在网络参考模型中的地位从前面各章的讨论可知,网络层次结构中下三层各自的任务分别为:
物理层,在物理链路上实现透明的比特流传输;
数据链路层,相邻结点间的链路上可靠的帧传输;
网络层,路由、流控等,实现可靠的主机到主机的数据传输。
运输层的地位?
存在两种看问题的角度,即,从通信和信息处理,的 角度和,从网络功能和用户功能,的角度,它属于面向通信部分的最高层,同时也是用户功能中的最低层。图 5-1描述了运输层在网络层次结构中的地位。
5.1 运输层协议概述第五章 运输层
4
应用层运输层网络层数据链路层物理层用户功能网络功能面向信息处理图 5-1 运输层在网络层次结构中的地位面向通信
5.1 运输层协议概述第五章 运输层
5
2.运输层的作用
网络中的主机通信的实质是什么?
5.1 运输层协议概述第五章 运输层
两个主机进行通信实际上就是两个主机中的 应用进程互相通信 。 应用进程之间的通信又称为 端到端的通信 。
如何实现网络中主机进程的通信?
运输层的一个很重要的功能就是 复用 和 分用 。应用层不同进程的报文通过不同的端口向下交到运输层,再往下就共用网络层提供的服务。
,运输层提供应用进程间的逻辑通信,。,逻辑通信,的意思是:运输层之间的通信 好像 是沿水平方向传送数据。但事实上这两个运输层之间并没有一条水平方向的物理连接。
结论,维护,端到端”应用进程间 的,逻辑通信,。
如图 5-2描述了运输层的作用。
运输层为相互通信的应用进程提供了逻辑通信
5
4
3
2
1
运输层提供应用进程 间的逻辑 通信主机 A 主机 B
应用进程 应用进程路由器 1 路由器 2AP
1 LAN
2WANAP
2
AP3
AP4
IP 层
LAN1
AP1 AP2 AP4
端口 端口 5
4
3
2
1
IP 协议的作用范围运输层协议 TCP 和 UDP 的作用范围
AP3
图 5-2 运输层为相互通信的应用进程提供了逻辑通信运输层协议和网络层协议的主要区别
应用进程

应用进程
…?
IP 协议的作用范围
(提供主机之间的逻辑通信)
TCP 和 UDP 协议的作用范围
(提供进程之间的逻辑通信)
因 特 网
8
3.运输层的主要功能
★ 运输层为 应用进程之间 提供 端到端的 逻辑通信(但网络层是为 主机之间 提供逻辑通信)。
★ 运输层还要对收到的报文进行差错检测 。
★ 运输层需要有两种不同的运输协议,即面向连接的
TCP 和无连接的 UDP。
★ 采用何种机制来标识的进程?
5.1 运输层协议概述第五章 运输层
9
4.运输层的两个主要协议
TCP/IP的运输层有两个并列的协议,即:
★ 用户数据报协议 UDP(User Datagram Protocol)
★ 传输控制协议 TCP(Transport Control Protocol)。
UDP和 TCP都使用 IP协议 。
UDP 在传送数据之前不需要先建立连接 。远地主机的运输层在收到 UDP数据报后,不需要给出任何应答。
TCP则提供面向连接的服务,不提供广播或多播服务。
5.1 运输层协议概述第五章 运输层
10
5.端口的概念从前面的讨论已知,运输层与网络层在功能上的最大不同是前者提供进程间通信的支持,后者不提供 。 从进程通信这个意义上看
,网络通信的最终地址就不仅仅是主机地址,还应包括可以描述进程的某种标识符 。
为此,TCP/IP提出了,协议端口,的概念,以用于标识两个通信的进程 。
( 1)何为端口?
所谓端口,就是在运输层与应用层的层间接口上所设置的一个
16位的地址量,用于指明运输层与应用层之间的服务访问点,为应用层进程提供标识 。如图 5-3所示。
5.1 运输层协议概述第五章 运输层
11
( 2)关于端口的两点说明
★ 由于 TCP/IP体系运输层存在两个完全独立的协议 TCP和 UDP,
因而 无论是 TCP还是 UDP均可提供 216个不同的端口,用来标识不同的进程。
例如,TCP可以有一个 266号端口,UDP也可以有一个 266号端口。
★ 习惯上将表示端口的地址量称之为 端口号 。
应用层运输层
SAP
图 5-3 端口的概念
5.1 运输层协议概述第五章 运输层
12
( 3) 端口号的分配
TCP/IP将端口分成两大类,一类称为 服务器端使用的端口,
另一类称为 客户端使用的端口 。
a.服务器端使用的端口服务器端使用的端口,又分为两类,最主要的一类是 熟知端口 ( Well- Know Port,保留端口 ) 。 所谓,熟知端口,乃指这类端口代表什么是事先已规定好了的,并为所有用户进程都熟知,数值为 0~ 1023。
另一类 登记端口号,数值为 1024~49151,为没有熟知端口号的应用程序使用的 。 使用这个范围的端口号必须在 IANA 登记,以防止重复 。
图 5-4给出了几种常用的熟知端口。
5.1 运输层协议概述第五章 运输层
13
SNMPHTTPTFTPDNSSMTPTELNETFTP应用程序
161806953252321熟知端口图 5-4 常用的熟知端口
5.1 运输层协议概述第五章 运输层网络运行时,应用层中的各种不同的常用服务的服务进程会不断地检测分配给它们的 熟知端口 或 登记端口号,以便发现是否有某个用户进程要和它通信。
b.客户端使用的端口 (自由端口,一般端口)
客户端口号 或 短暂端口号,数值为 49152~65535,留给客户进程选择暂时使用。当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。
14
( 4) 基于端口的进程通信图 5-5所示的例子进一步说明了端口的作用 。
IP= 130.42.85.15
主机
C
80
端口
(HTTP)
IP=131.6.23.13
使用 HTTP服务时,
客户端的端口号可以由用户自己确定主机 A
5000
端口
5001
端口
IP=128.36.1.22
主机 B
5000
端口连接 1
连接 2
连接 3
图 5-5 基于端口的进程通信
5.1 运输层协议概述第五章 运输层
15
( 5) 套接字的概念所谓,套接字,,又称之为,插口 (Socket)”,是指 IP地址
( 32bit) 和端口号 (16bit)的组合,共 48位 。
有了套接字的概念,Internet的通信才可能成为唯一的 。 换言之,在整个 Internet中,在通信双方运输层的一对插口是一一对应的 。
例如,在图 7.5中:
连接 1的一对插口是:
(131.6.23.13,5000)和 (130.42.85.15,80)
而连接 2的一对插口是:
(131.6.23.13,5001)和 (130.42.85.15,80)
5.1 运输层协议概述第五章 运输层
16
协议特征:
★ UDP 是无连接的,即发送数据之前不需要建立连接 。
★ UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。
★ UDP 是面向报文的。
★ UDP 没有拥塞控制,很适合多媒体通信的要求。
★ UDP 支持一对一、一对多、多对一和多对多的交互通信。
★ UDP的报文仍由首部和数据两部分组成,而且首部很简单,只有 8个字节,如图 5-6所示。
5.2 用户数据报协议 UDP
第五章 运输层图 5-6 UDP是面向报文的
IP 数据报的数据部分IP 首部 IP 层
UDP 首部 UDP 用户数据报的数据部分 运输层应用层报文 应用层源 IP地址 目的 IP地址 0 17 UDP长度字节 4 4 1 1 2
伪首部 源端口 目的端口 长度 检验和
12 2 2 2 2字节首部 数据UDP用户数据报首部 数 据 IP数据报发送在前图 5-7 UDP用户数据报的首部和伪首部
19
1.TCP的基本特征
★ TCP是 面向连接的 运输层协议。
★ 每一条 TCP连接只能有两个 端点,每一条 TCP连接只能是 点对点 的(一对一) 。
★ TCP提供的是 可靠交付 的服务。也就是说,通过 TCP
传输的数据是无差错、不丢失、不重复和失序的正确的数据序列。
★ TCP提供的连接是双向的,即 支持全双工的服务 。
★ 面向字节流。 TCP中的,流,指的是流入到进程或从进程流出的字节序列,如图 5-8。
★ 数据传送的基本单位称为 报文段 ( Segment) 。
5.3 传输控制协议 TCP
第五章 运输层
20
7 68 H
TCP 面向流的概念
发送 TCP 报文段发送方 接收方把字节写入发送缓存从接收缓存读取字节应用进程 应用进程
1
2
3
0
1817161514
19
20
21
45
131211 H 10 9 H
加上 TCP 首部构成 TCP 报文段
TCP TCP
字节流 字节流
H 表示 TCP 报文段的首部
x 表示序号为 x 的数据字节
TCP 连接图 5-8 TCP面向流的概念
21
2.TCP的连接
5.3 传输控制协议 TCP
第五章 运输层套接字 socket = (IP地址,端口号 ) (5-1)
每一条 TCP 连接唯一地被通信两端的两个端点
(即两个套接字)所确定。即:
TCP 连接,:= {socket1,socket2}
= {(IP1,port1),(IP2,port2)} (5-2)
22
5-01
5-09
课后练习第五章 运输层