文档介绍:第3讲传输层协议及应用
本讲目的:
理解传输层服务的原理:
复用/分用
可靠数据传输
流量控制
拥塞控制
传输层的实现和实例
教科书参考
第3章
本讲概述:
传输层的服务
复用/分用
无连接的传输: UDP
传输控制协议:TCP
1
传输层与网络层的关系
因特网中的传输层充当“收发室”的角色
因特网中的网络层充当“邮递业务”的角色
两个层次之间的任务可以互换,但是在实现成本上可能存在巨大差别
2
传输服务和协议
提供运行在不同主机中进程间的逻辑通信
传输协议仅运行在端系统中
传输 vs. 网络层服务:
网络层: 在端系统间进行通信
传输层: 在进程间进行通信
依赖并加强了网络层的服务
application
work
data link
physical
application
work
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
logical end-end transport
3
传输层协议
传输服务:
可靠, 按序点对点递交(TCP)
拥塞控制
流量控制
连接建立
不可靠的(“尽力而为”), 无序的点对点或广播递交: UDP
不能提供的服务:
实时性
带宽承诺
可靠的广播通信
application
work
data link
physical
application
work
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
logical end-end transport
4
application
work
M
P2
application
work
应用层对传输协议的复用/分用
segment (段)- 传输层实体间交换数据的单位
TPDU: 传输层数据单元
receiver
H
t
H
n
分用: 将接收到的段传递给正确的应用层进程
segment
segment
M
application
work
P1
M
M
M
P3
P4
segment
header
application-layer
data
5
应用层对传输协议的复用/分用
复用/分用:
基于发送方, 接收方的端口号, IP 地址
源, 目的端口#s 存在于每个段中
用于特定应用的常用端口号(well-known port number):0~1023
从多个应用进程获取数据, 用首部(便于随后的分用)封装数据
源端口#
宿端口#
32 bits
应用层数据
(报文)
其他首部字段
TCP/UDP 段格式
复用:
6
复用/分用: 举例
主机 A
服务器 B
source port: x
dest. port: 23
source port:23
dest. port: x
端口的使用: 简单的 应用
Web客户端
主机 A
Web
服务器 B
Web客户端
主机 C
Source IP: C
Dest IP: B
source port: x
dest. port: 80
Source IP: C
Dest IP: B
source port: y
dest. port: 80
端口的使用: Web 服务器
Source IP: A
Dest IP: B
source port: x
dest. port: 80
7
UDP: 用户数据报协议[RFC 768]
“最简约的” 传输协议
“尽力而为的”服务, UDP 数据段可以:
丢失
应用数据不按序到达
无连接:
在UDP收发双方之间, 无需握手信号
每个 UDP 数据段的操作都互相独立
为什么需要 UDP?
无需建立连接(会增加延迟)
简单: 在收发双方之间没有连接状态
段首较短
无拥塞控制: UDP 可按需要随时发送
8
UDP: (续)
经常为流媒体应用使用
允许数据丢失
对传输速率敏感
其他 UDP用途:
DNS
SNMP
若需要通过 UDP进行可靠传输:在应用层增加可靠性措施
在应用程序中-专门的出错恢复机制!
源端口#
宿端口#
32 bits
应用层数据
(报文)
UDP 数据报格式