Transport Protocols.ppt

上传人:花仙子 文档编号:373458 上传时间:2018-10-05 格式:PPT 页数:66 大小:335.50KB
下载 相关 举报
Transport Protocols.ppt_第1页
第1页 / 共66页
Transport Protocols.ppt_第2页
第2页 / 共66页
Transport Protocols.ppt_第3页
第3页 / 共66页
Transport Protocols.ppt_第4页
第4页 / 共66页
Transport Protocols.ppt_第5页
第5页 / 共66页
亲,该文档总共66页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、1,Transport Protocols,2,其它的网络系统结构,网络体系结构 ARPANET SNA (System Network Architecture) DNA (DECNET) TCP/IP ,3,其它的网络系统结构,ISO/OSI,数据链路层,物理层,通路控制,数据链路控制,物理层,传输控制,端用户,功能管理服务,数据流控制,路由控制,传输组,数据链路控制,物理层,网络服务,端用户,网络应用,会话控制,传输控制,IMP-IMP,物理层,HOST-HOST,用户层,文件传输协议 远程通信协议,源IMP-目的IMP,ARPA,SNA,DNA,TCP/IP,4,网络层服务类型,传输层

2、协议和网络层提供的服务有关。网络层 服务可分三类: A类:可提供完善的服务。分组的丢失、重复和错序情况可忽略不计。 B类:单个分组很少丢失,但网络层会因内部拥塞、软硬件故障发出N-Reset原语。 C类:提供的数据传送服务是完全不可靠的。,5,传输层协议类型,根据网络层提供的服务质量,传输协议可分:,6,传输层协议类型,0类:最简单。直接将传输连接映射到网络连接,不需流量和差错控制。 1类:仅处理由于N-Reset而产生的影响。不需差错检测和流量控制。 2类:类似0类,允许多个传输层连接复用同一个网络连接。 3类:集中了1、2类特点。支持多路复用,可从N-Reset中恢复。 4类:最复杂。需要

3、提供流量和差错控制及可从N-Reset中恢复。,7,Connection Oriented Transport Protocol Mechanisms,Connection Oriented Mechanisms Logical connection Establishment Maintenance Termination Reliable e.g. TCP Data link: X.25, LAPF, LLC of a 802.3LAN Reliable Sequencing Network Service Addressing Multiplexing Flow control Conn

4、ection establishment/termination,8,Addressing,需为目标用户指定的内容: 用户标识符 通常由( host, port)组成 Called a socket 端口表示的是指定主机上的每个特定的TS用户 传输实体的标识符 通常每个主机中仅一个传输实体,不必使用标识符 如果超过一个,通常每种类型一个 地址中应包括传输协议类型标记 (TCP, UDP) 主机地址 单网络中,标识的是连接到网络上的一个设备 Internet中, 是一个全局互联网地址 网络号,9,地址获取,目的TS用户地址获取策略: TS用户必须提前知道它所希望使用的地址. 如:收集性能统计数据

5、的进程 一些公用服务被赋予“熟知的地址” 如:Telnet:23、FTP:21、SMTP:25 提供一个名字服务器 对于目标用户是在请求时才会产生的进程,发起用户可向一个熟知的地址(特权系统进程)发送进程请求。,10,TCP/IP 体系中的传输层端口,UDP/TCP 中采用端口(port)来标识 TSAP 传输端口代表 TCP/UDP 的传输服务访问点 TSAP 在进程通信中标识相互通信的进程 通信的对端进程地址可表示为: (IP Address, Port)传输端口的绑定(binding) 进程在某个传输端口进行数据传输前,必须首先通过系统调用与该端口建立绑定关系UDP/TCP 的传输端口号

6、(port number)端口号用于标识 UDP/TCP 的传输端口UDP/TCP 协议各分别可以提供最多 64K 个传输端口,11,传输端口的分配,进程通信时,必须了解对端进程的地址 (IP + port) 主要问题:如何了解对端进程所使用的端口号? 端口分配方式 全局统一分配端口号 动态绑定方式(本地分配)TCP/IP 系统种端口分配方法 应用进程通信采用“客户-服务器”(client-server)模式 将传输端口划分为两类:保留端口和自由端口 保留端口(well-known port):为服务进程全局分配的端口 自由端口是在进程需要进行通信时,由本地进行动态分配的 客户进程首先动态申请

7、一个本地自由端口号,再通过服务进程所公布的保留端口与服务器进程建立联系,并进行相应协商;上述过程成功后中,就可开始进程间的通信。,12,常用的保留端口号,7 ECHO 回送 37 TIME 时间 42 NAMESERVER 主机名字服务器 53 DOMAIN 域名服务器 67 BOOTPS 启动协议服务 69 TFTP 简单文件传输 161 SNMP SNMP 网络监控 20 FTP-DATA 文件传输协议(数据连接) 21 FTP 文件传输协议(控制连接) 23 TELNET 远程登录终端 37 TIME 时间 43 NICNAME whois 程序 79 FINGER finger 程序

8、80 HTTP WEB 服务 ,UDP 保留 端口号,TCP 保留 端口号,13,Multiplexing多路复用,多个用户使用相同的传输协议.用户通过端口号或SAP来相互区分.传输实体也可复用网络服务如. 多个TS用户复用一条X.25虚电路 X.25 计费中部分基于虚电路连接时间,14,Multiplexing,15,Flow Control,传输层的流量控制是一种复杂的机制,原因: 与实际的传输时间相比,传输实体之间的传输时延通常比较长. 传输时延可能是高度可变的.传输实体抑制连接的报文段传输率的原因: 接收传输实体的用户无法跟上数据流的传输速度. 接收传输实体自身无法跟上报文段流的传输速

9、度.当缓冲区满时,接收传输实体可以: 什么也不做. 拒绝接受来自网络服务的后续报文段. 使用固定的滑动窗口协议. 使用信用量机制.,16,Coping with Flow Control Requirements,Do nothing 溢出缓冲区的报文段将被丢弃 发送实体将无法获取ACK,会重传 进入数据量会更更大 Refuse further segments 粗糙 只能施加在复用连接的聚合体上 Use fixed sliding window protocol 适用于可靠网络 不适用于非可靠网络 无法得知缺少确认是因为流量控制还是报文丢失 Use credit scheme,17,Cred

10、it Scheme,可提供更高程度的控制 对非可靠网络服务来说是一种较高效的机制 将确认从流量控制中分离出来,未得到新信用量的报文段也可被确认,反之亦然。 传输数据中的每个八位组都有一个序号 每个传输报文段的首部中包含3个字段:序号、确认号和窗口。,18,Flow Control: Use of Header Fields,传输实体在返回的报文段里写入 (AN=i, W=j),以 确认一个收到的报文.其含义是: 直至序号SNi-1的所有八位组都被确认,下一个希望接收到的八位组序号为i。 赋予发送另外w=j个八位组的数据窗口的许可。即对应序号从i至i+j-1,19, 1000 1001 2400

11、 2401 , 1000 1601 2400 2401 , 1000 2001 2401 , 1600 1601 2001 2601 , 1600 1601 2601 2601 , 2600 2601 4000 4001 , 1000 1001 2400 2401 , 1600 1601 2600 2601 , 1600 1601 2001 2601 , 2600 2601 4000 4001 ,SN=1001,SN=1201,SN=1401,SN=2001,SN=2201,SN=2401,SN=1601,AN=1601,W=1000,SN=1801,AN=2601,W=1400,A 可发送

12、1400B,A 每传输一个报文段窗口减1,A 每获得一个信用量即调整窗口,A 耗尽其信用量,A 收到新的信用量,B 可接收 1400 B, 从 1001开始,B 确认3个报文段(600B),但只准备再多接收200B(即B将接收1601至2600号八位组),B 确认5个报文段(1000B),并恢复原始信用量,Transport Entity A,Transport Entity B,1601+1000=2601,Credit Allocation,20,Sending and Receiving Flow Control Perspectives,目前已确认的数据,已传输的数据,未确认的数据,允

13、许传输的八位组窗口,初始序号 (ISNc),最后确认 的八位组 ( AN 1 ),最后传输 的八位组,当数据报文段发送 后窗口从后沿缩小,当收到信用量时 窗口从前沿扩大,目前已确认的数据,已接收的数据,未确认的数据,允许接收的八位组窗口,初始序号 (ISNc),最后确认 的八位组 ( AN 1 ),最后接收 的八位组,当接收到数据报文段 时窗口从后沿缩小,当发送了信用量后 窗口从前沿扩大,(a ) 发送序列空间,( b) 接收序列空间,21,Establishment and Termination,连接建立的主要作用: 使每一端都能证实另一端的存在 允许对可选参数的协商 触发了对传输实体资源

14、的分配,22,CLOSED,SYN SENT,LISTEN,CLOSED WAIT,CLOSED,FIN WAIT,ESTAB,Simple Connection State Diagram,State,主动打开 发送 SYN,波动打开,事件 动作,图例,接收 SYN 发送 SYN,关闭 发送 FIN,关闭 发送FIN,接收SYN,接收 FIN,关闭,关闭,23,System A State/(command),System B State/(command),System A State/(command),System B State/(command),CLOSED,CLOSED,CLO

15、SED,CLOSED,(Passive Open) LISTEN,(Active Open) SYN SENT,(Active Open) SYN SENT,(Active Open) SYN SENT,ESTAB,ESTAB,ESTAB,ESTAB,SYN,SYN,SYN,SYN,(a) Active/Passive Open,(b) Active/Active Open,Connection Establishment Scenarios,24,Connection Establishment: Not Listening,如果当一个SYN到达时,被请求的TS用户正处于空闲状态(未监听),

16、可能会有3种处理过程: 传输实体向对方实体发送一个RST(复位)报文,以拒绝该请求. 该请求可排队等候,直至TS用户发出相应的打开命令. 传输实体可中断或通知TS用户,让它注意这个悬而未决的请求.,25,Unreliable Network Service,不可靠服务:如 使用IP的互联网 仅使用LAPF核心协议的帧中继网络 使用无确认无连接LLC服务的802.3局域网 存在问题:报文可能丢失、不保证按序到达,26,主要内容: 按序交付 重传策略 副本检测 流量控制 连接建立 连接中止 崩溃恢复,27,按序交付,报文段到达时可能失序,解决办法是对报文段 进行按序编号。在TCP中,每个八位组都被

17、隐 式编号,报文段以它的第一个八位组的编号作 为其序号。,28,重传策略,报文段在传输过程中可能损坏或丢失,但对发 送实体而言并不知道传输失败,接收方在接收 成功后需要给对方一个确认,可使用累积确认 。对于出错或丢失报文段可使用超时重发机制 。计时器设置可采用两种策略:,29,Timer Value,固定时间 基于对网络行为的了解 无法对变化的网络环境做出反应 太小会导致不必要的重传 太大会导致对丢失报文段的反应迟缓 一般设为略大于往返时延自适应机制 对方实体可能没有立即确认(例如:累积确认) 无法区分收到的ACK是对初次还是重传的报文段的应答 网络环境可能突然变化,30,副本检测,如果一个A

18、CK丢失,会导致一个或多个报文段的重传接收方必须有能力识别副本.两种情况: 在连接关闭之前收到一个副本. 接收方必须假设其确认丢失,从而确认这个副本 接收方收到同一报文段的多个ACK时不应引起混乱 序号空间应足够大,保证最大生存期内不存在“循环” 在连接关闭后收到一个副本.,31,Example of Incorrect Duplicate Detection,SN=201,SN=401,SN=1,SN=201,SN=601,SN=801,SN=1001,SN=1201,SN=1401,SN=1,AN=601,AN=601,AN=801,AN=1001,AN=1201,AN=1401,AN=1

19、,AN=201,Obsolete SN =1 arrives,Transport Entity B,Transport Entity A,SN=1,A time out and Retransmits SN =1 A times out and Retransmits SN = 201,32,Flow control,采用信用量分配机制。 假设B发出的 最后一个报文段为(AN=i, W=j), 并且B接收到的数据的最后一个八位组的编号为i-1: 为将信用量增加 k (kj), B发出 (AN=i, W=k)的控制报文. 为不增加信用量而确认包含了m (mj)个八位组的报文段, B 可发出 (A

20、N=i+m, W=j-m)的控制报文.,33,Connection Establishment,两次握手 A发送SYN, B 返回 SYN SYN 丢失可通过重传计时器处理 可能导致重复的 SYN 一旦建立连接,必须忽略重复的 SYN 一个延迟的报文段或丢失的确认也会带来重复的报文段,可能干扰连接的建立过程 如:来自旧连接上的报文段 新连接的起始序号远离上一次连接使用的最后序号 使用 SYN i 需要对 i进行确认 三次握手,34,A,B,The Two-Way Handshake : 滞后数据报文段带来的问题,SYN,SYN,SYN,SYN,SN =1,SN =201,SN =1,SN =2

21、01,SN =401,A 发起一个连接 B 接收并确认A 开始传输,连接关闭,新连接打开,滞后的数据报文段 SN = 401 被接受; 有效的数据报文段 SN =401 被当作副本丢弃,SN =401,35,A,B,SYN i,SYN k,SYN j,SN = k,滞后SYN i 到达,B 响应 ; A 发送新 SYN,B 丢弃重复 SYN,B 拒绝超出范围的数据报文段,Two Way Handshake: 滞后SYN报文段带来的问题,36,SYN RECEIVED,CLOSED,ESTAB,CLOSING,TIME WAIT,CLOSED,LAST ACK,CLOSE WAIT,FIN WA

22、IT2,FIN WAIT,SYN SENT,LISTRN,Close,Clear SV,Clear SV,Close,Active Open or Active Open with Data,Initialize SV Send SYN,Receive SYN ,ACK Send ACK,Close Send FIN,Receive ACKOf SYN,Close Send FIN,Receive FINSend ACK,Receive FIN , ACK of SYN Send ACK,Receive ACK of FIN,Receive FIN Send ACK,Receive FIN,

23、ACK Send ACK,Receive FIN Send ACK,Receive ACK of FIN,Receive SYN,Send SYN, ACK,Send SYN, ACK,Receive SYN,Initialize SV,Unspecified Passive Open or Fully Specified Passive Open,Page 625,SV =state vector MSL =maximum segment lifetime,Three Way Handshake: State Diagram,37,A,B,(a) 正常操作,(b) 延迟的 SYN,( c )

24、 延迟的 SYN ,ACK,Page 626,A 发起一个连接,B 接受并确认,A 确认并开始传输,滞后的 SYN到达,B 接收并确认,A拒绝 B的连接,A 发起一个连接 旧SYN 到达 A; A拒绝,B 接受并确认,A 确认并开始传输,SYN i,SYN j, AN =i,SN =i ,AN =j,SYN i,SYN j, AN =i,SN =T ,AN =j,SYN i,SYN k, AN =p,RST,An =k,SN I,AN =j,SYN j,AN =i,三次 握手 举例,38,Connection termination,处于 CLOSE WAIT 状态的实体将最后报文段发送出去,

25、接着发送 FIN报文段,若FIN报文段先到接收实体 接收实体会接受 FIN 关闭连接 最后一个数据报文段将丢失 解决方法:可用一个序号和 FIN关联,将其设为紧跟在传输数据的最后一个八位组之后的编号。 数据段丢失和滞后数据段 必须使用带有被确认的FIN报文段序号的ACK,39,Graceful Close(文明关闭),必须发送一个FINi并接收一个AN=i 必须接收一个FINj并发送一个AN=j 必须等待的间隔时间长度为预计的报文段最大生存期的两倍,40,崩溃恢复,重启后所有活动连接状态信息会丢失 受影响连接会变成“半打开”状态 无故障一方并不知道出现了问题 可使用一个放弃计时器来关闭该连接

26、等待时间 (time out) * (number of retries) 一旦超时则关闭连接并通知用户 可通过使用RST报文段更快的终止半打开连接 用户需要决定是否重新进行连接 用户数据存在丢失或重复问题,41,TCP & UDP,Transmission Control Protocol Connection oriented RFC 793 User Datagram Protocol (UDP) Connectionless RFC 768,42,TCP Services,是为经过各种可靠或不可靠的网络及互联网,在一对通信进程间提供可靠的通信而设计的。 两种用于标记数据的设施 急迫数据

27、流(Data stream push) TCP 用户可要求传输所有尚未传输的数据,包括有急迫标志的数据。 在接收端已同样方式将这些数据交付给用户 通常会在遇到数据中的逻辑断点时使用 紧急数据通知(Urgent data signal) 通知终点用户在即将到达的数据流中有紧急数据 由终点用户决定采取的从理方式,43,TCP Service Request Primitives(1),44,TCP Service Request Primitives(2),45,TCP Service Response Primitives(1),46,TCP Service Response Primitive

28、s(2),47,TCP Service Parameters(1),48,TCP Service Parameters(2),49,TCP Service Parameters(3),50,TCP Header,0 4 10 16 31,octets,20,51,TCP Header,源端口:16bit 目的端口:16bit 序号:32bit。若SYN置位,则为初始序号,否则表示报文段中第一个八位组的序号。 确认序号:32bit。一种捎带的确认。 数据偏移量:首部中32位字的数量 保留:6bit 标志:6bitURG:紧急指针字段ACK:确认字段PSH:急迫标志RST:复位连接SYN:序号同步

29、FIN:数据发送结束,52,TCP Header,窗口:16bit。流控制的信用量分配,以八位组为单位。 校验和:16bit。报文段中所有16bit字加上一个伪首部的二进制反码和。 紧急指针:16bit。指向紧急数据序列的最后一个八位组。可使接收方能够知道共有多少紧急数据到达。 选项:可变。目前仅定义了一个选项,指出了能够接收的最大报文长度。,53,TCP 报文段的校验,TCP 校验和的计算方法:同 IP 分组头的校验 校验和计算:除覆盖数据报外,还覆盖一个 TCP 伪报头 TCP 伪报头的目的与 UDP 基本相同,54,Items Passed to IP,TCP 向下交付给 IP的参数:

30、优先级:3bit 正常时延/低时延 正常吞吐量/高吞吐量 正常可靠性/高可靠性 安全性:11bit,55,TCP Mechanisms (1),Connection establishment 三次握手 一条连接由一对端口唯一确定 一个给定端口可以支持多个连接,TCP Mechanisms (2),Data transfer 逻辑上由八位组数据流组成 八位组编号以 232为模 流量控制采用信用量机制 传输和接收时都需要缓存数据,56,TCP Mechanisms (3),Connection termination 正常方式:文明关闭 TCP 用户发出 CLOSE原语 传输实体在发出的最后报文

31、段上将FIN置位 可采用 ABORT 原语异常终止 实体放弃发送或接收努力,丢弃缓存中的数据 向对方发送一个RST报文段,57,实现策略选项,Send Deliver Accept Retransmit Acknowledge,Send,如无急迫数据且传输窗口未关闭情况下,发送实体可随心所欲的传输数据 数据被缓存在传输缓存中 可为用户提供的每个数据块构造一个报文段 也可等积累到一定量的数据后再传输,58,Deliver,无急迫数据时,接收实体可按需向用户交付数据 可按序将收到的报文逐个交付给用户 也可先将数据缓存后再交付,Accept,报文段到达时可能失序,接收选择: 按序 只接收按序到达的报

32、文段 丢弃失序到达的报文段 按窗口 接收所有位于窗口内的报文段,59,Retransmit,TCP 维护一个报文段队列,其中的报文段是已发送但尚未确认的。 TCP 的重传策略 仅重传第一个 批量重传 个别重传,Acknowledgement,立即确认 累积确认,60,UDP (User Datagram Protocol),以实现效率为首要目标,具有良好的实时性 提供无连接、不可靠的传输服务 会出现分组丢失、重复、乱序 应用程序需要负责传输可靠性方面的所有工作,61,UDP 协议封装,UDP 数据报由两部分构成:UDP 报头和数据区 UDP 报文是封装在 IP 分组中进行传送的,IP,应用,U

33、DP,数据链路,概念分层,应用数据,62,UDP 数据报的格式,63,UDP 数据报的校验,UDP 数据报校验是一项可选的功能 用户禁止该功能可以进一步提高通信的效率 UDP 校验和的计算方法:与 IP 分组头的校验相同 校验和计算:除覆盖数据报外,还覆盖一个 UDP 伪报头,伪报头并非 UDP 数据报中实际的有效成分 伪报头是一个虚拟的数据结构: 其中的信息是从数据报所在 IP 分组头的分组头中提取的 使用伪报头是为了验证 UDP 数据报是否正确地传到了目的系统中 伪报头的采用在一定程度上违反了网络结构分层的原则,64,UDP 基本工作过程,UDP 数据报的发送和接收通过 UDP 端口实现

34、端口是一个可读写的结构,具有内部的报文缓冲区 数据报发送 UDP 软件将用户数据封装在 UDP 数据报中 转交给 IP 软件,进行 IP 封装和转发 数据报的接收 IP 层接收到 UDP 数据报, 提交给 UDP 软件的各端口 端口判断该报文的目的端口号是否与当前端口匹配 若匹配成功,将该数据报保存到相应端口的接收队列中;(若队列已满,则丢弃该数据报) 若未匹配,则丢弃该数据报,同时向源端发送 “端口不可达” 的 ICMP 包,65,TCP and UDP Comparison,66,TCP/IP小结,IP IP地址,子网,子网掩码 IP路由 ICMP TCP vs UDP TCP提供面向连结的,可靠的,字节流服务(负载较重)。 UDP提供非连结的,不可靠的,数据报投递服务(负载较轻)。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学课件 > 大学教育

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1