ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:272.57KB ,
资源ID:1738697      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1738697.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第09章传输层.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第09章传输层.docx

1、第09章 传输层第09章 传输层一 传输层概述1 传输层的功能 提供端到端的交付服务 分段和重组 提供端到端的可靠通信保证(检错机制、应答机制、超时重发机制) 按序交付(缓冲机制) 流量控制(窗口机制) 拥塞控制2 什么是端到端的交付端到端的交付实际是一个多路复用和多路分解的过程,下面的例子有助于我们理解传输层的多路复用和多路分解功能我们先考察公司之间通过邮政系统互发信件的情景:公司的收发室为每个部门分配了一个信箱,各个部门都把要发出去的信件放到各自的信箱里,并从信箱里取走发给本部门的信件;收发室的工作人员负责从各部门的信箱里收集要发出去的信件,然后交给每天到家门口来的邮政车,以及从邮政车上取

2、下发往本公司各部门的信件并分投到各部门的信箱之中主机之间通信的情景跟公司间通信的情景很相似:主机中各个应用进程将要发出去的数据块放到各自的传输层服务访问点(TSAP)中,并从各自的TSAP中取走发给本进程的数据块;传输层从各个进程的TSAP中收集要发出去的数据块,给它们加上传输层首部,构成报文段,交给网络层(这叫做多路复用);传输层接收来自网络层的报文段,根据报文段的首部信息将它们分别定向各到目标进程的TSAP(这叫做多路分解)公司 = 主机部门 = 应用进程收发室 = 运输层邮政系统 = 网络层信箱 = 传输层服务访问点TSAP3 端口(Port)和套接字(Socket) 端口就是传输层服务

3、访问点TSAP,每个网络应用进程都有1到多个端口,其作用相当于信箱:网络应用进程将要发送的数据块放在各自的端口中;传输层从各网络应用进程的端口中收集数据块,给它们加上源、目端口号等控制字段,构成报文段,然后交网络层传送;传输层接收来自网络层的数据报,根据它们的目的端口号字段将它们包含的数据定向到恰当的端口中;网络应用进程从各自的端口中取走发给它们的数据块;端口通常就是报文队列,如上图所示 端口号 在一个端系统内有多个端口,端口号就是端口标识,也就是传输层地址 端系统中的端口总是和运行于其上的一个网络应用进程相关联,从这个意义上讲,在一个端系统内,端口号同时也是网络应用进程的标识 有两类端口号

4、:一类是周知端口号,编号范围是0 1023,每当开发一种新的网络服务程序,必须给它分配一个周知端口号,比如FTP服务器的端口号是21,HTTP服务器的端口号是80,等等;另一类是一般端口号,用来随时分配给请求通信的客户进程 端口号仅具有本地意义,在一个端系统上运行的多个网络应用进程的端口号不能重叠,运行在不同的端系统上的网络应用进程的端口号可以重叠,比如运行在多个端系统上的HTTP服务器进程的端口号都是80。为了唯一地标识一个网络应用进程的端口,除端口号外,还必须加上IP地址,IP地址加端口号就是所谓的套接字;在TCP / IP协议中,UDP套接字是一个2元组:(IP地址,端口号);TCP套接

5、字是一个4元组:(源IP地址,源端口号,目的IP地址,目的端口号)二 互联网的传输层协议1 互联网的两个传输层协议互联网的传输层协议有两个传输控制协议TCP和用户数据报协议UDP。TCP提供可靠的、面向连接的运输服务,UDP提供不可靠的、无连接的运输服务两个对等的传输层实体在通信时传送的数据单元叫作传输层协议数据单元 TPDU;TCP传送的协议数据单元是 TCP 报文段;UDP 传送的协议数据单元是 UDP 报文或用户数据报2 用户数据报协议UDP1)UDP概述 UDP提供不可靠的、无连接的运输服务 UDP 只在 IP 的数据报服务之上增加了很少一点的功能,也就是端口的功能和差错检测的功能。U

6、DP不提供差错恢复、流量控制和拥塞控制功能,不保证按序交付 发送数据时无须事先建立连接,收到一个UDP报文时无须应答 UDP的优点:UDP的主机无须维护复杂的连接状态表;UDP用户数据报只有8字节的首部开销;网络出现拥塞时不会使源主机的发送速率降低。这对某些实时应用是很重要的2)UDP用户数据报的格式3 传输控制协议TCP1)TCP概述 TCP是面向连接的协议,即位于两个端系统中的一对应用进程在交换数据前,这两个端系统中的TCP必需事先交换一系列用于控制目的的报文段,目的是为那一对进程建立一个TCP连接。建立TCP连接实质就是两个端系统中的TCP为连接的双方分配资源,初始化若干状态变量 一个T

7、CP连接包含以下要素:一台主机上的缓存、一组变量、与一个进程关联的套接字,以及另一台主机上的缓存、一组变量、与一个进程关联的套接字 TCP连接既不是电路交换网络中的端到端TDM或FDM电路,也不是一条虚电路,原因在于TCP连接状态仅保存在端系统中,中继结点不会维持TCP连接状态 TCP连接的双方以全双工方式通信,图中为了简洁只表现了一个方向上的数据流。TCP连接仅支持点对点方式,不支持多点方式,因此TCP不支持广播和多播 一旦建立起TCP连接,两个应用进程就可以交换数据了,大致的过程如上图所示,同样是为了简洁没有表现出IP和链路层的动作 发送进程发送数据的速度和接收进程接收数据的速度不相同,T

8、CP需要缓存暂存数据。每个方向上都有两个缓存,发送缓存和接收缓存,缓存的数据结构可能是环形字节队列,如下图所示。发送缓存中的的位置分为3类:白色为空位置,发送进程可以将数据填入到空位置;浅灰色位置存放的是TCP将要要发送的字节;深灰色位置存放的字节已发送出去,但还没被确认,一旦其中的字节被确认,存放被确认字节的位置即可被发送进程再利用。接收缓存中的位置分为2类:白色表示空闲位置,从网络接收的数据存放到这个区域;灰色位置存放已接收的字节,这些字节可以被接收进程读取,当其中的字节接收进程被读取后,其位置可被再利用2)TCP报文段首部格式 源端口号(2B)和目的端口号(2B) 源端口号就是发放方进程

9、的端口号,目的端口号就是接收方进程的端口号。TCP借助于这两个字段实现多路复用和多路分解功能 序号(4B) 序号字段的值指示本报文段所携带的数据的首字节序号。比如A、B两个进程建立了TCP连接,A通过该连接向B发送了500000B,假设TCP这50000B数据分成500个片段,每个片段段长度为1000B,第一个片段的首字节编号为0,第二个片段的首字节编号为1000,第三个片段的首字节编号为2000,。然后TCP会将这500个片段封装成500个报文段交网络层发送,则第一个报文段的序号字段填入0,第二个报文段的序号字段填入1000,第三个报文段的序号字段填入2000 , 确认号(4B) 期望收到对

10、方的下一个报文段的数据的首字节序号 首部长度(4b) 由于存在选项字段,所以要设首部长度字段指示TCP首部的字节数。需要强调的是该字段的单位是32比特字 保留(6b) 留着以后使用,目前应置为0 紧急比特URG(1b) 为1表示紧急指针字段有效。它告诉系统此报文段中有紧急数据(相当于高优先级数据)应尽快传送 确认比特ACK(1b) 为1表示确认号字段有效 急迫比特PSH(1b) 接收方TCP收到PSH位置1的报文段后,会立即交付接收方应用进程,而不是等接收缓存满后再上交 复位比特RST(1b) 为1表示TCP连接出现严重错误,需立即释放连接,然后重建TCP连接 同步比特SYN(1b) 为1表示

11、是一个连接请求或连接接受报文段 终止比特FIN(1b) 为1表示此报文段的发送方已发完数据,请求释放连接 窗口(2B) 用来控制对方发送的数据量,单位是字节。TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限 检查和(2B) 检验和字段检验的范围包括首部和数据这两部分 紧急指针(2B) 指出本报文段中紧急数据的最后一个字节的序号 选项 TCP 只规定了一种选项,即最大报文段长度 MSS ,该字段旨在告诉对方 TCP,我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节3)TCP如何确保传输的可靠性TCP确保传输可靠性的措施包括计算校

12、验和、给要发送的数据以字节为单位编号、在报文段中捎带确认信息、重传TCP如何计算检查和?TCP通过计算检查和提供检错功能,校验的范围包括首部、数据和伪首部;伪首部长度为12B,其中包括了源IP地址(4B)、目的IP地址(4B)、协议号、报文段长度等字段,伪首部仅仅用于计算检查和;在计算检查和时,临时将TCP首部中的检查和字段置0;如果数据部分的长度是奇数个字节,则在其后临时补一个全0字节,计算完检查和后删除该字节;将伪首部、首部、数据看成是一个16位长的字序列,将所有的字进行二进制反码求和,即最高位上有进位时不进位,而是在和的最低位上加1,然后将求和的结果取反,得到的结果就是检查和TCP如何给

13、要发送的数据编号?TCP把一个连接中发送的所有数据字节都编了号,且两个方向上的数据流中的字节编号是彼此独立的。编号不一定总是从0开始,TCP生成一个0232-1之间的随机数作为第一个字节的编号。比如主机A中的进程1通过TCP连接向主机B中的进程2一共发送了50000字节的数据,这些数据被主机A中的TCP看成是一个字节流,字节流的首字节序号是0,其后的字节序号依次是1、2、3、49999假设主机A中的TCP将这50000B数据等分成500个的数据块,每个数据块的大小是1000B,则第一个数据块的首字节序号是0,第二个数据块的首字节序号是1000,第三个数据块的首字节序号是2000,依次类推主机A

14、中的TCP将这500个数据块封装成500个报文段交网络层发送,它将在第一个报文段的序号字段填入0,在第二个报文段的序号字段填入1000,在第3个报文段的序号字段中填入2000,依次类推。一言蔽之,报文段中的序号字段的值就是它所携带的数据块的首字节序号TCP如何对收到的数据进行确认?规则1 一方向另一方发送报文段时,通过报文段的确认号字段告诉对方它期待的下一个数据字节的序号是多少。比如主机A中的进程1和主机B中的进程2通过TCP连接交换数据,在某一时刻,主机B中的TCP收到一个报文段,其中包含了进程1发给进程2的数据,假设该报文段的确认号字段的值为ACKN,于是主机B中的TCP就明白了:进程2发

15、给进程1的数据中,序号为ACKN -1的字节以及在它之前的字节已经被主机A中的TCP收到,正期待接收序号为ACKN的字节规则2 如果一方没有数据要发送,并且它接收到对方一个按序到达的报文段,同时前一个按序到达的报文段已经确认过了,它会等待500毫秒,如果500毫秒内没有收到对方下一个按序到达的报文段,它会向对方发一个不包含数据的ACK报文段,通过其中的确认号字段告诉对方它期待的下一个数据字节的序号;ACK报文段不携带数据,不消耗序号,也不用确认规则3 如果一方收到按序到达的报文段,前一个按序到达报文段还没有确认,它立即向对方发送ACK报文段规则4 接收端收到一个失序到达的报文段,使得接收到的数据中产生空隙,接收端立即发送ACK报文段,以告诉对方它期待收到的下一个数据字节的序号规则5 接收端收到一个能补空隙的报文段,接收端立即发送ACK报文段,以告诉对方它期待的下一个数据字节的序号规则6 接收端收到一个重复到达的报文段,接收端立即发送ACK报文段,以告诉对方它期待的下一个数据字节的序号Seq =501, 501 600, Ack =xAck =701 发送方 接收方 Seq =601, 601 700, Ack =xSeq =501, 501 600, Ack =xAck =701 超时 规则6图示 TC

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1