Chapter3:传输层 Our goals: T理解传输层服务原理:学习因特网的传输层协议: o多路复用与多路分 o∪DP:无连接传输 解 oTCP:面向连接的传输 o可靠数据传输 oTCP拥塞控制 o流量控制 o拥塞控制 Transport Layer 3-2
Transport Layer 3-2 Chapter 3: 传输层 Our goals: 理解传输层服务原理: 多路复用与多路分 解 可靠数据传输 流量控制 拥塞控制 学习因特网的传输层协议: UDP: 无连接传输 TCP: 面向连接的传输 TCP拥塞控制
Chapter 3 outline 口31 Transport+-ayer 03. 5 Connection-oriented services transport: TCP 03.2 Multiplexing and o segment structure demultiplexing o reliable data transfer 03. 3 Connectionless flow control transport: UDP o connection management O 3.4 Principles of 口36 Principles of eliable data transfer congestion control 口3.7 TCP congestion control Transport Layer 3-3
Transport Layer 3-3 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles of reliable data transfer 3.5 Connection-oriented transport: TCP segment structure reliable data transfer flow control connection management 3.6 Principles of congestion control 3.7 TCP congestion control
31传输服务 在应用程序看来, cation trans ort o源进程向本地套接字写入报 文,目的进程在本地套接字 即可收到报文 o源进程和目的进程仿佛直接 连接在一起 o传输层提供了进程间的逻辑通信 在传输层看来, o发送方传输层将报文交给本 地网络层接口,接收方传输 data link 层从本地网络层接口即可收 到报文 ○网络层提供了终端间的逻辑通信 Transport Layer 3-4
Transport Layer 3-4 3.1 传输服务 在应用程序看来, 源进程向本地套接字写入报 文,目的进程在本地套接字 即可收到报文 源进程和目的进程仿佛直接 连接在一起 传输层提供了进程间的逻辑通信 在传输层看来, 发送方传输层将报文交给本 地网络层接口,接收方传输 层从本地网络层接口即可收 到报文 网络层提供了终端间的逻辑通信 application transport network data link physical application transport network data link physical
传输层和网络层的关系 Household analogy: 口网络层 口一个家庭的12个孩子和另 o提供主机之间的逻辑 个家庭的12个孩子通信,分 通信 别推选Amn和B训负责收集和 口传输层 邮寄信件,以及查看信箱和 分发信件 o提供进程之间的逻辑 口进程=孩子 通信 口应用报文信 口传输层=Ann和B川l(提供 口传输层依赖并增强网络 人到人的服务) 层服务 口主机=住宅 口网络层〓邮政系统(提供门 到门的服务) Transport Layer 3-5
Transport Layer 3-5 传输层和网络层的关系 网络层: 提供主机之间的逻辑 通信 传输层: 提供进程之间的逻辑 通信 传输层依赖并增强网络 层服务 Household analogy: 一个家庭的12个孩子和另一 个家庭的12个孩子通信,分 别推选Ann和Bill负责收集和 邮寄信件,以及查看信箱和 分发信件 进程 = 孩子 应用报文 = 信 传输层 = Ann 和 Bill(提供 人到人的服务) 主机 = 住宅 网络层 = 邮政系统(提供门 到门的服务)
传输服务和网络服务 网络层提供尽力而为的服务: pplication o网络层尽最大努力在主机间交付 data link 分组,但不提供任何承诺 physical 具体来说,不保证交付,不保证 data link e 按序交付,不保证数据完整,不 hysical 保证延迟,不保证带宽, 2粵 口传输层不能提供的服务 i data link e, o延迟保证 network o带宽保证 data link SIca network data link 口传输层可以提供的服务: d沙 L physical data link o保证可靠、按序的交付:TCP o不保证可靠、按序的交付:UDP Transport Layer 3-6
Transport Layer 3-6 传输服务和网络服务 网络层提供尽力而为的服务: 网络层尽最大努力在主机间交付 分组,但不提供任何承诺 具体来说,不保证交付,不保证 按序交付,不保证数据完整,不 保证延迟,不保证带宽,…… 传输层不能提供的服务: 延迟保证 带宽保证 传输层可以提供的服务: 保证可靠、按序的交付:TCP 不保证可靠、按序的交付:UDP application transport network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical
Chapter 3 outline 口31 Transport-ayer 03. 5 Connection-oriented services transport: TCP 口3.2 Multiplexing and o segment structure demultiplexing o reliable data transfer 03. 3 Connectionless flow control transport: UDP o connection management O 3.4 Principles of 口36 Principles of eliable data transfer congestion control 口3.7 TCP congestion control Transport Layer 3-7
Transport Layer 3-7 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles of reliable data transfer 3.5 Connection-oriented transport: TCP segment structure reliable data transfer flow control connection management 3.6 Principles of congestion control 3.7 TCP congestion control
3.2多路复用与多路分解 传输层基本服务:将主机间交付扩展到进程间交付 (发送端)多路复用: (接收端)多路分解: 传输层从多个套接字收集数据,交传输层将收到的数据交付到正确 给网络层发送 的套接字 application application P2 application L socket P3 P4 process transport rk trarsport network network link physical physical ransport Layer 3-8
Transport Layer 3-8 3.2 多路复用与多路分解 process socket 传输层将收到的数据交付到正确 的套接字 (接收端)多路分解: 传输层从多个套接字收集数据,交 给网络层发送 (发送端)多路复用: transport application physical link network P1 P2 transport application physical link network P4 transport application physical link network P3 传输层基本服务:将主机间交付扩展到进程间交付
如何进行多路复用和多路分解? 为将邮件交付给收信人: 为将报文段交付给套接字: 口每个收信人应有一个信箱,口主机中每个套接字应分配 写有收信人地址和姓名(唯 个唯一的标识 标识) 口报文段中包含接收套接字的 口信封上有收信人地址和名字 标识 口多路复用: 口发送方传输层将源/目的套接字标识置于报文段中,交给网 终层 口多路分解: 口接收方传输层根据报文段中的目的套接字标识,将报文段交 付到正确的套接字 Transport Layer 3-9
如何进行多路复用和多路分解? 为将邮件交付给收信人: 每个收信人应有一个信箱, 写有收信人地址和姓名(唯 一标识) 信封上有收信人地址和名字 为将报文段交付给套接字: 主机中每个套接字应分配一 个唯一的标识 报文段中包含接收套接字的 标识 Transport Layer 3-9 多路复用: 发送方传输层将源/目的套接字标识置于报文段中,交给网 络层 多路分解: 接收方传输层根据报文段中的目的套接字标识,将报文段交 付到正确的套接字
套接字与端口号 口端口号是套接字标识的一部分 32 bits o每个套接字在本地关联一个端口号 source por# dest port# 口端口号: O一个16比特的数 other header fields o0~1023由公共域协议使用,称众 所周知的端口号 口报文段中有两个字段携带端口号 application o源端口号:与发送进程关联的本地 data 端口号 (message) o目的端口号:与接收进程关联的本 地端口号 TCP/UDP报文段格式 Transport layer 3-10
Transport Layer 3-10 套接字与端口号 端口号是套接字标识的一部分 每个套接字在本地关联一个端口号 端口号: 一个16比特的数 0~1023由公共域协议使用,称众 所周知的端口号 报文段中有两个字段携带端口号 源端口号:与发送进程关联的本地 端口号 目的端口号:与接收进程关联的本 地端口号 source port # dest port # 32 bits application data (message) other header fields TCP/UDP报文段格式
如何分配∪DP套接字的端口号? 口自动分配: ○例如, new Datagramsocket(),不指定端口号 o通常由操作系统从1024~65535中分配 o客户端通常使用这种方法 口使用指定端口号创建套接字: O例如, new Datagramsocket(53) o实现公共域协议的服务器应分配众所周知的端口号 o服务器通常采用这种方法 口UDp套接字标识为二元组 Transport Layer 3-11
如何分配UDP套接字的端口号? 自动分配: 例如,new Datagramsocket(),不指定端口号 通常由操作系统从1024~65535中分配 客户端通常使用这种方法 使用指定端口号创建套接字: 例如,new Datagramsocket(53) 实现公共域协议的服务器应分配众所周知的端口号 服务器通常采用这种方法 UDP套接字标识为二元组 Transport Layer 3-11