第三章 传输层

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“毫无修饰的,” “纯粹的” Internet 传输协议 为什么需要UDP? • 在IP之上没加入任何东西, 除了多路复用/多路分解和错 • 无连接 误检测 建立连接 (将增加迟延) “尽力服务”, UDP 报文段可能: • 简单: 发送方和接收方不 需要连接状态 • 丢失 • 报文段首部小 • 传递给应用层失序 • 没有拥塞控制: UDP 能 无连接 够尽量快的发送到对方 • UDP 发送方和接收方之间没 有连接建立 • 每个UDP报文段的处理独立 于其他报文段 15
16比特字的和=1111111111111111 • NO – 肯定检测到错误 • YES – 没有检测到错误. 但 仍然可能是错误的。
17
Internet 校验和例子
注意 • 在加数字的时候,从最高位溢出的bit必须要 加到结果上--回绕 例:加两个16位整数
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
13
第三章:内容大纲
3.1 传输层服务 3.2 多路复用与多路分解 3.3 无连接传输: UDP 3.4 可靠数据传输原理 3.5 面向连接传输: TCP
• • • • 报文段结构 可靠数据传输 流量控制 连接管理
3.6 拥塞控制原理 3.7 TCP拥塞控制
14
3.3.1 UDP: 用户数据报协议 [RFC 768]
例:多线程web服务器
P1
P4 SP: 5775
P2
P1 P3
DP: 80
S-IP: B D-IP:C SP: 9157 SP: 9157
client IP: A
DP: 80 S-IP: A D-IP:C
server IP: C
DP: 80 S-IP: B D-IP:C
Client
IP:B
Web服务器对各连接客户具有不同的套接字\线程
send side
receive side
udt_send(): 可靠传输调用该 函数,在不可靠的信道上传输 数据给接收者
rdt_rcv(): 接收方接收到数据后调 用该函数完成可靠传输
• 为两个不同主机上运行的应 用程序(进程)提供 逻辑
通信
• 传输层协议运行在端系统 • 发送方: 将应用层报文分 成报文段传递给网络层, • 接受方: 将报文段重新组 装成报文传递到应用层 • 不只一个传输层协议可以用 于应用程序 • 因特网: TCP 和 UDP
应用层 传输层 网络层 链路层 物理层
• • • • 报文段结构 可靠数据传输 流量控制 连接管理
3.6 拥塞控制原理 3.7 TCP拥塞控制
7
多路复用/多路分解
在接收主机多路分解:
将接收到的报文段传递到 正确的套接字(多路分解)
= 套接字 = 进程 P3 P1 P1
在发送主机多路复用: 从多个套接字收集数据, 用首部封装数据(这些信息用 于以后的多路分解)
Chapter 3 Transport Layer
A note on the use of these ppt slides:
We’re making these slides freely available to all (faculty, students, readers). They’re in PowerPoint form so you can add, modify, and delete slides (including this one) and slide content to suit your needs. They obviously represent a lot of work on our part. In return for use, we only ask the following: If you use these slides (e.g., in a class) in substantially unaltered form, that you mention their source (after all, we’d like people to use our book!) If you post any slides in substantially unaltered form on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material. Thanks and enjoy! JFK/KWR All material copyright 1996-2005 J.F Kurose and K.W. Ross, All Rights Reserved
SP: 6428 DP: 5775 SP: 5775
client IP: A
DP: 6428
server IP: C
DP: 6428
Client
IP:B
请求报文段中提供返回地址(包括IP地址和端口号)
11
2. 面向连接多路分解
TCP 套接字由4个字段标识: 服务器主机可支持很多 同时存在的TCP套接字: • 源 IP 地址
Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition. Jim Kurose, Keith Ross Addison-Wesley, July 2004.
1
第三章: 传输层
目标:
• 理解传输层的原理: • 学习因特网传输层协议: • UDP: 无连接传输 • 复用/分解复用 • TCP: 面向连接传输 • 可靠数据传输 • TCP 拥塞控制 • 流量控制 • 拥塞控制
network data link physical
network data link physical application transport network data link physical
UDP/TCP没有提供的服务:
• 延迟保证 • 带宽保证
6
第三章:内容大纲
3.1 传输层服务 3.2 多路复用与多路分解 3.3 无连接传输: UDP 3.4 可靠数据传输原理 3.5 面向连接传输: TCP
UDP套接字由一个二元 组来标识: :
(目的IP地址, 目的端口号)
具有不同源端口号的IP 数据报可以传给同一个 套接字
10
1. 无连接多路分解(续)
DatagramSocket serverSocket = new DatagramSocket(6428);
P2 P3 P1 P1
SP: 6428 DP: 9157 SP: 9157
2
第三章:内容大纲
3.1 传输层服务 3.2 多路复用与多路分解 3.3 无连接传输: UDP 3.4 可靠数据传输原理 3.5 面向连接传输: TCP
• • • • 报文段结构 可靠数据传输 流量控制 连接管理
3.6 拥塞控制原理 3.7 TCP拥塞控制
3
3.1.1 传输层服务和协议
3.1.2 传输层和网络层的关系
网络层: 两个主机之 间的逻辑通信 传输层: 两个进程 之间的逻辑通信
• 依赖或局限于网络层 服务,并增强网络层 服务
生活中的类比:
12个小孩送信给12个小孩 进程 = 小孩 应用层报文 = 信封中的信 主机 = 房子 传输层协议 = Ann 和 Bill 网络层服务 = 邮局服务
application
transport network link physical
application
transport network link physical
P2
P4
application transport network
link
physical
host 1
host 2
host 3
8
多路分解的原理
application transport network data link physical network data link physical network data link physical network data link physical源自 不可靠地无序地传送: UDP
• “尽力传送” 的IP服务的直接 扩展-多路复用与多路分解
• • • • 报文段结构 可靠数据传输 流量控制 连接管理
3.6 拥塞控制原理 3.7 TCP拥塞控制
19
可靠数据传输原理
在应用层、传输层、链路层都有所应用
不可靠信道的特性将决定可靠数据传输协议(rdt)的复杂性
20
可靠数据传输:
rdt_send(): 上层调用该函数要求 可靠传输数据到接收方 deliver_data(): 可靠传输调 用该函数将数据传给上层
应用层数据(报文)
UDP 报文段格式
16
3.3.2 UDP 校验和
目的: 检测传输的报文段的 “错误” (例如位错)
发送者: 将报文段看作16比特 字的序列 校验和: 报文段16比 特字的和进行1的补 运算 发送者将校验和的值 放到UDP的校验和域 接收者: 计算接收报文段的校验和 检查:计算的校验和是否 等于校验和域的值:
回绕
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
18
和 校验和
第三章:内容大纲
3.1 传输层服务 3.2 多路复用与多路分解 3.3 无连接传输: UDP 3.4 可靠数据传输原理 3.5 面向连接传输: TCP
对于Internet, 如网络层不提供延迟和带宽保证,传输层也无法提供;但是 网络层即使不能提供可靠传输、流量控制、拥塞控制、机密性(第8章讨论 )等,传输层仍然可以提供这些特定的服务!
5
3.1.3 Internet 传输层协议
可靠有序地传送:TCP
• • • • 可靠传输 拥塞控制 流量控制 连接管理
主机收到IP分组
• 每个分组有一个源IP地址,一 个目的IP地址 • 每个分组有一个传输层报文段 • 每个报文段有源和目的端口号 (回忆:熟知端口号对应特定 应用程序)
32 bits 源端口 # 目的端口 #
其他首部域
应用程序数据 (报文)
主机用IP地址和端口号将报 文段传给一个合适的套接字
network data link physical
network data link physical
network data link physical
network data link physical
network data link physical
应用层 传输层 网络层 链路层 物理层
4
UDP:用户数据报协议(续)
经常用于流式多媒体应用 • 容忍丢失 长度以字节为 • 速率敏感 单位,包括报文
32 bits 源端口号 长度 目的端口号 校验和
其它 UDP 应用
• DNS • SNMP
首部和数据
多点传送(组播)基于UDP
UDP上的可靠传输: 在应用层 增加可靠性 • 应用特有的错误恢复!
• 源端口号 • 目的IP地址 • 目的端口号 TCP套接字由1个四元组标识 • 每个套接字使用自己的 4个字段来标识
Web服务器对各连接客 户具有不同的套接字
• 非持久HTTP对每个请 求将有一个不同的套接 字
12
接收主机使用所有4个值来 将报文段传给一个合适的 套接字
2. 面向连接的多路分解: (续)
TCP/UDP 报文段格式
9
1、无连接多路分解
用端口号创建套接字: 当主机收到UDP报文段:
• 检查报文段的目的端口号 DatagramSocket ServerSocket1 = new • 将UDP报文段传给这个端 DatagramSocket(9911); 口号的套接字 DatagramSocket ServerSocket2 = new 具有不同源IP地址且/或 DatagramSocket(9922);
相关文档
最新文档