[计算机硬件及网络]第5章 传输层协议

上传人:tia****nde 文档编号:70797791 上传时间:2019-01-18 格式:PPT 页数:92 大小:600.95KB
返回 下载 相关 举报
[计算机硬件及网络]第5章 传输层协议_第1页
第1页 / 共92页
[计算机硬件及网络]第5章 传输层协议_第2页
第2页 / 共92页
[计算机硬件及网络]第5章 传输层协议_第3页
第3页 / 共92页
[计算机硬件及网络]第5章 传输层协议_第4页
第4页 / 共92页
[计算机硬件及网络]第5章 传输层协议_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《[计算机硬件及网络]第5章 传输层协议》由会员分享,可在线阅读,更多相关《[计算机硬件及网络]第5章 传输层协议(92页珍藏版)》请在金锄头文库上搜索。

1、Page 1,第5章 传输层协议,5.1 传输层概述 5.2 用户数据报协议(UDP) 5.3 传输控制协议(TCP),Page 2,5.1 传输层概述,5.1.1 引入传输层的必要性 传输层在应用层和IP层之间起着承上启下的作用,它应该满足以下三个要求: 1传输层要提供比IP层质量更高的服务。 2传输层要提供识别应用层进程的机制。 3传输层要针对不同尺寸的应用层数据进行适当的处理。,Page 3,5.1.2 传输层提供的服务,传输层在两个应用实体之间实现可靠的、透明的、有效的数据传输,其主要功能是: 1连接管理 2优化网络层提供的服务质量 3提供端到端的透明数据传输 4多路复用和分流 5状态

2、报告 6安全性 7加速交付,Page 4,5.1.3 传输层寻址与端口,(1)传输层寻址 根据OSI的观点,传输层应提供用户之间可靠和有效的端到端传输服务。 在一个主机中可能存在多个应用进程同时分别和另一个主机中的多个应用进程通信。因此,传输层必须具有将一个主机中某一个用户进程和其他用户进程相互区分的能力。 传输层通过传输地址来实现该功能,这里的传输地址是指传输层服务访问点TSAP(称为端口),它是传输层与应用层之间交换信息的抽象接口。,Page 5,传输层与应用层、网络层的关系,Page 6,5.1.3 传输层寻址与端口,(2)端口 端口就是传输层服务访问点TSAP。 应用层不同进程的报文通

3、过不同的端口向下递交到传输层,由传输层复用并传递给网络层。 当这些报文到达目的主机后,目的主机传输层使用分离功能,通过不同的端口把这些报文分别递交给相应的应用进程。 因此,端口是用来标识不同应用层进程的。,Page 7,(3)TCP/IP的端口,描述一个应用进程的标识如下: 源IP地址,源端口号,协议,目的IP地址,目的端口号 其中: 源IP地址和目的IP地址用于区分不同主机 源端口号和目的端口号用于区分不同主机中的不同进程 协议用于区分基于UDP协议或TCP协议,Page 8,(4)IANA规定的三类端口,在TCP和UDP协议中的端口域为16位,可以使用的端口号为065535。 IANA(互

4、联网编号分配机构)规定,端口号分为以下三类: (1)熟知端口号:或称公认端口号,由IANA统一分配和定义其含义,一般在服务器端使用,其范围是01023。 (2)注册端口号:用户根据需要在IANA注册,以避免重复,其范围是102449151。 (3)临时端口号:客户端程序自己定义和使用的端口号,可随机分配,其范围是4915265535。,Page 9,5.1.4 无连接服务与面向连接服务,1无连接的传输服务 无连接的传输服务比较简单,发送数据之前不需要事先建立连接。 2面向连接的传输服务 面向连接的传输服务要求两个用户(或进程)相互通信之前,必须先建立连接。 一次完整的数据传输包括建立连接、传输

5、数据、释放连接三个阶段。,Page 10,3TCP/IP协议族的传输层协议,TCP/IP协议族提供的两个传输层协议:传输控制协议TCP和用户数据报协议UDP (1)TCP协议 TCP提供面向连接的可靠的传输服务,因此不可避免地增加了许多开销,如确认、流量控制、计时器以及连接管理等。 TCP不提供广播或组播服务。,Page 11,3TCP/IP协议族的传输层协议,(2)UDP协议 UDP是一个无连接的不可靠的传输层协议。 它在IP之上仅提供两个附加服务: 多路复用和对数据的错误检查 UDP可以(可选)检查整个UDP数据报的完整性。 UDP比较简单,执行速度较快,实时性好。,Page 12,5.2

6、 用户数据报协议(UDP),用户数据报协议(UDP)采用无连接方式提供高层协议间的事务处理服务 UDP是一种无连接的数据报投递服务,所以不保证可靠投递 UDP也使用端口为高层协议服务 UDP承载在IP数据报中传递 UDP无流量和拥塞控制,Page 13,5.2.1 UDP概述,1UDP的功能及特点 (1)提供无连接的服务,简单、快速。 (2)UDP的主机不需要维持复杂的连接状态表。 (3)UDP报文只有8个字节的首部开销。 (4)网络出现的拥塞不会使源主机的发送速率降低。,Page 14,2UDP的端口,UDP常用的端口号有: (1)53:DNS(域名服务) (2)69:TFTP(简单文件传输

7、协议) (3)123:NTP(网络时间协议) (4)161:SNMP(简单网络管理协议) (5)162:SNMP(简单网络管理协议) (6)520:RIP(路由信息协议),Page 15,3UDP应用,很多应用适合采用UDP传输数据,主要有: (1)不太关心数据丢失,如传输视频或多媒体流数据。 (2)每次发送很少量数据。 (3)有自己的全套差错控制机制。 (4)实时性要求较高、差错控制要求不高的场合。,Page 16,5.2.2 UDP报文格式,Page 17,说明,(1)源端口和目的端口 源端口和目的端口字段为16位,它是UDP协议的端口号,其中源端口是可选的,目的端口必须填写。若源端口不选

8、,则取值为0。 (2)长度 长度字段为16位,它记录UDP数据报的总长度,包括UDP首部和用户数据,长度以八位组为单位。,Page 18,(3)校验和(计算),发送端计算校验和的步骤: 将伪首部填加到UDP用户数据报上; 将校验和字段填入0; 将所有位划分为16位(2字节)的字,若字节总数不是偶数,则增加一个字节(填充,全0)。填充只是为了计算校验和,计算结束后将其丢弃; 将所有16位的字模2加; 将得到的结果取反,它是一个16位的数,将其插入到校验和字段; 将伪首部和填充去掉。,Page 19,(3)校验和(计算),接收端计算校验和的步骤: 把伪首部填加到UDP用户数据报上; 把所有位划分为

9、16位(2字节)的字,按需要增加填充; 把所有16位的字模2加; 把得到的结果取反码; 若得到结果为全0,表示该UDP报文正确,丢弃伪首部和增加的填充,提交应用层,否则,表示该UD报文出错,丢弃该报文。,Page 20,5.2.3 UDP伪首部,UDP引入了长度为12个八位组一个伪首部 伪首部的作用是用于检验UDP数据报是否已经到达正确的目的地,即正确的主机。,Page 21,例1 计算下图所示的UDP数据报的校验和。,Page 22,5.2.4 UDP模块,UDP软件包一般应包括5个部分: 一个控制块表 若干个输入队列(每个端口对应一个输入队列) 一个控制模块 一个输入模块 一个输出模块 U

10、DP软件包的5个组成部分之间关系如图5-5所示。,Page 23,Page 24,说明,1控制块表 控制块表负责记录被UDP打开的端口,表中的每一项就是一个端口,具有4个字段: 状态(值为FREE或IN_USE) 进程ID 端口号 相应的队列号 2输入队列 UDP为每个进程创建一个输入队列。,Page 25,3控制块模块,控制块模块负责管理控制块表。 当进程启动时,该模块的工作: 负责接收进程ID和端口号(从操作系统申请一个临时端口号); 查找控制块表中的状态为FREE项: 若找到:将其状态改为IN_USE,并将进程ID和端口号写入控制块表; 若未找到(没有空闲):使用事先定义的策略删除一个已

11、存在的状态为IN_USE项目。,Page 26,说明,4输入模块 输入模块负责从IP接收用户数据报。 查找控制块表,找出与该用户数据报的端口号相同的表项。 若找到:将该数据报放入相应的输入队列中; 若未找到:丢弃报文,并发送一个“端口不可达” 的ICMP报文。 5输出模块 输出模块负责创建和发送用户数据报。,Page 27,5.3 传输控制协议(TCP),5.3.1 TCP概述 1TCP协议的功能 (1)寻址和复用 (2)创建、管理和终止连接 (3)处理并打包数据 (4)传输数据 (5)提供可靠性和传输质量的保证 (6)提供流量控制和拥塞控制,Page 28,2TCP协议的特点,TCP是面向连

12、接的协议,提供可靠的、全双工的、面向字节流的、端到端的服务。 (1)面向数据流 (2)虚电路连接 (3)有缓冲的传输 (4)无结构的数据流 (5)全双工连接,Page 29,3TCP常用的端口号,(1)20:FTP数据连接(文件传输协议:数据连接) (2)21:FTP控制连接(文件传输协议:控制连接) (3)23:Telnet(远程登录) (4)25:SMTP(简单邮件传输协议) (5)53:DNS(域名服务) (6)80:HTTP(超文本传输协议) (7)110:POP3(邮件协议),Page 30,5.3.2 TCP报文格式,Page 31,TCP报文字段说明,紧急比特 URG : 当 U

13、RG=1 时,表明紧急指针字段有效。表示报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。 确认比特 ACK: 当 ACK=1 时确认序号字段才有效; 当 ACK= 0 时,确认序号无效。 推送比特 PSH (PuSH): 接收 TCP 收到PSH=1 的报文段,就尽快地交付给接收应用进程,而不必等到整个缓存都填满后再向上交付。,Page 32,TCP报文字段说明,复位比特 RST (ReSeT) : 当 RST=1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立传输连接。 同步比特 SYN :同步比特 SYN 置为 1,就表示这是一个连接

14、请求或连接接受报文。 终止比特 FIN (FINal): 用来释放一个连接。当FIN=1 时,表明此报文段的发送端的数据已发送完毕,并要求释放传输连接。,Page 33,TCP报文字段说明,选项:长度可变,可以是1个或多个字节,规定相应的功能。每个选项由类型、长度、数据三部分组成。表5-1列出了TCP定义的选项。,Page 34,选项字段说明,MSS:用于TCP连接双方在建立连接时相互告知对方期望的最大报文段长度值。 TCP报文的长度是包括首部和数据部分的总长度(不包括伪首部),以字节为单位,数据部分的最大长度MSS值为65535字节(64KB)。 事实上,TCP报文一般没有这么大,TCP报文

15、的典型长度(MSS的默认值)是556字节,其中数据部分的长度为556-20=536字节(标准长度)。将TCP报文封装进IP后,IP的典型长度是556+20=576字节,这也是IPv6的包长度。,Page 35,选项字段说明,窗口扩大因子:当TCP希望发送更多数据时,可以使用扩大因子来扩大窗口。使用扩大因子可以使发送方连续发送更多的数据。 选择确认数据块:当接收方收到的数据块序列号不连续,中间有缺失时,为节省网络开销,不必全部重传,可以通过该字段告知发送方哪些数据块不需要重传。,Page 36,选项字段说明,时间戳值:目的是为了防止序列号回绕,即用于处理TCP序列号超过232的情况。 例如,在传

16、输速率为1Gbps的网络中,序列号回绕时间约为 4 秒左右,为了使接收方能够把新的报文段和迟到很久的同序列号的报文段区分开,可以在报文段中加上时间戳。,Page 37,5.3.3 TCP连接管理,1TCP连接建立机制 (1)三次握手机制 TCP使用三次握手机制来建立连接。其具体过程如图5-8所示,客户端的应用程序希望与另一端的服务器的应用程序建立TCP连接,建立过程一般由客户端发出连接请求,称为主动打开;而服务器通常是已经准备好被连接,当它接到连接请求时,会通知它的TCP完成连接,称为被动打开。,Page 38,建立连接:三次握手,Page 39,(2)初始序列号的确定,建立连接的发起方在发送建立连接的报文时,要选择一个初始序列号(ISN)填入序列号字段,该序列号是要发送的数据块的第一个字节的编号。 TCP确定ISN的一种方法是:设定一个计数器,初始值为0,每4微秒加1,直到记满32位后归0,这一过程需要4个多小时。TCP建立连接时,选择当前ISN计时器值作为初始序号。 现在有些TCP连接

展开阅读全文
相关资源
相关搜索

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

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号