计算机网络第六章 2讲_第1页
计算机网络第六章 2讲_第2页
计算机网络第六章 2讲_第3页
计算机网络第六章 2讲_第4页
计算机网络第六章 2讲_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选文档6.3Internet传输协议n 两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU (Transport Protocol Data Unit)。n TCP/IP的传输层有两个不同的协议:(1) 用户数据报协议 UDP (User Datagram Protocol) (2) 传输把握协议 TCP (Transmission Control Protocol)n TCP 传送的数据单位协议是 TCP 报文段(segment) UDP 传送的数据单位协议是 UDP 报文或用户数据报。 n UDP 在传送数据之前不需要先建立连接。对方的传输层在收到 UDP 报文后,不需

2、要给出任何确认。虽然 UDP 不供应牢靠交付,但在某些状况下 UDP 是一种最有效的工作方式。n TCP 则供应面对连接的服务。TCP 不供应广播或多播服务。由于 TCP 要供应牢靠的、面对连接的运输服务,因此不行避开地增加了很多的开销。这不仅使协议数据单元的首部增大很多,还要占用很多的处理机资源。 n 强调两点: 1. 传输层的 UDP 用户数据报与网络层的IP数据报有很大区分。IP 数据报要经过互连网中很多路由器的存储转发,但 UDP 用户数据报是在传输层的端到端抽象的规律信道中传送的。2. TCP 报文段是在传输层抽象的端到端规律信道中传送,这种信道是牢靠的全双工信道。但这样的信道却不知

3、道到底经过了哪些路由器,而这些路由器也根本不知道上面的传输层是否建立了 TCP 连接6.3 1 用户数据报协议 UDP UDP (User Datagram Protocol)概述 RFC 768n UDP 只在 IP 的数据报服务之上增加了很少一点的功能,即端口(端口用来标志应用层的进程)的功能和差错检测的功能(可选功能)。 1 16 32源端口目标端口UDP长度=8B的UDP头部+数据UDP校验和(可选,若不计算,则全0)UDP头n UDP是一个简洁的传输协议; 供应best effort服务, UDP报文可能会丢失和乱序; n 虽然 UDP 用户数据报只能供应不行靠的交付

4、,但 UDP 在某些方面有其特殊的优点。n 发送数据之前不需要建立连接(结束时也就无连接释放),因而开销小和发送数据前的延迟小 收发双方不需要握手, 每个UDP报文的处理都独立于其它报文n UDP 的主机不需要维持简单的连接状态表。由于不使用拥塞把握,也不保证牢靠交付.n UDP 用户数据报只有8个字节的首部开销。比TCP的20个字节的首部短n 没有拥塞把握, 可以尽快发送, 所以网络消灭的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。很多实时应用(IP电话, 实时视频会议等)要求源主机以恒定的速率发送数据, 并且允许在拥塞时丢失一些数据, 但却不允许数据有太大的时延. n UD

5、P尤其适用的一个领域是在客户-服务器的情形下.远过程调用 RPC(Remote Procedure Call)和UDP是一对好搭档.(无连接, 无流控,无错控,无重传,短恳求短回应), 如RIP路由信息周期发送,DNS避开TCP连接建立延迟,SNMP 当网络拥塞时,UDP比用牢靠的,具有拥塞把握的TCP效果好.n RTP(Real-Time transport Protocol 实传输协议) RFC 1889RTP在协议栈中位置有点奇异.最终RTP被放在用户空间中,并且运行在UDP之上. 这种设计结果是, 你很难说清RTP位于哪一层上.RTP无流控,无错控,无确认, 无恳求重传机制.(a)RT

6、P在协议栈中的位置 (b)分组嵌套状况使用UDP和TCP协议的各种应用和应用层协议应用应用层协议传输层协议应用应用层协议传输层协议名字转换DNSUDP网络管理SNMPUDP简洁文件传输TFTPUDPIP电话专用协议UDP路由选择协议RIPUDP流式多媒体通信专用协议UDPIP地址配置BOOTP,DHCPUDP多播IGMPUDP电子邮件SMTPTCP远程终端接入TELNETTCP万维网HTTPTCP文件传输FTPTCP UDP 用户数据报的首部格式 用户数据报 UDP 有两个字段:数据字段和首部字段。首部字段有 8 个字节,由 4 个子字段(域)组成,每个子字段都是两个字节。 在计

7、算检验和时,临时把“伪首部”和 UDP 用户数据报连接在一起。伪首部仅仅是为了计算检验和, 伪首部既不向上递交也不向下传送。伪首部5个字段中: 17IP协议头部中的协议字段,对应UDP; 6IP协议头部中的协议字段,对应TCP伪首部源端口目的端口长 度检验和数 据首 部UDP长度源 IP 地址目的 IP 地址017IP 数据报字节44112122222字节发送在前数 据首 部UDP 用户数据报计算 UDP 检验和的例子 10011001 00010011 153.1900001000 01101000 8.10410101011 00000011 171.300001110 00001011

8、14.1100000000 00010001 0 和 1700000000 00001111 1500000100 00111111 108700000000 00001101 1300000000 00001111 1500000000 00000000 0(检验和)01010100 01000101 数据01010011 01010100 数据01001001 01001110 数据01000111 00000000 数据和 0(填充)10010110 11101011 求和得出的结果01101001 00010100 检验和 04112 字伪首部8

9、 字节UDP 首部7 字节数据填充按二进制反码运算求和将得出的结果求反码全 0 17 15 1087 13 15 全 0数据 数据 数据 数据数据 数据 数据 全 06.3.2 传输把握协议 TCP(transmission control protocol) TCP 概述 RFC 793 RFC1122 RFC1323完成任务: 推断是否超时, 重传, 挨次组装等功能, 供应IP无法供应的牢靠性.为获得TCP服务, 发收双方必需首先创建套接字=IP+Port. 一个套接字有可能同时被用于多个连接, 所以连接可以用两端的套接字标识符来标识, 即(socket1, socket2)

10、. 1024以下的端口号被称为知名端口(well-known port), 被保留用于一些标准的服务. 全部的TCP连接都是全双工的,并且是点到点的. 所谓全双工-同时可在两个方向上传输数据. 所谓点到点-每个连接恰好有两个端点. TCP不支持多播或广播传输模式.2端口发送 TCP 报文段TCPTCP接收缓存发送缓存报文段报文段报文段端口发送端接收端向发送缓存写入数据块从接收缓存读取数据块应用进程应用进程2源端口和目的端口字段各占 2 字节。端口是传输层与应用层的服务接口。传输层的复用和分用功能都要通过端口才能实现。 序号字段占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号

11、。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。 确认号字段占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。 数据偏移占 4 bit,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位不是字节而是 32 bit 字(4 字节为计算单位)。 保留字段占 6 bit,保留为今后使用,但目前应置为 0。 紧急比特 URG 当 URG = 1 时,表明紧急指针字段有效。它告知系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。 确认比特 ACK 只有当 ACK = 1 时确认号字段才有效。当 ACK = 0 时,确认号无

12、效。 推送比特 PSH (PuSH) 接收 TCP 收到推送比特置 1 的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。 复位比特 RST (ReSeT) 当 RST = 1 时,表明 TCP 连接中消灭严峻差错(如由于主机崩溃或其他缘由),必需释放连接,然后再重新建立运输连接。 同步比特 SYN 同步比特 SYN 置为 1,就表示这是一个连接恳求或连接接受报文。 终止比特 FIN (FINal) 用来释放一个连接。当FIN = 1 时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。 窗口字段 占 2 字节。窗口字段用来把握对方发送的数据量,单位为字节

13、。TCP 连接的一端依据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。检验和 占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部,第4字段为6,第5字段为TCP长度。紧急指针字段 占 16 bit。紧急指针指出在本报文段中的紧急数据的最终一个字节的序号。 选项字段 长度可变。TCP 只规定了一种选项,即最大报文段长度 MSS (Maximum Segment Size)。MSS 告知对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。” MSS 是 TCP

14、报文段中的数据字段的最大长度。数据字段加上 TCP 首部才等于整个的 TCP 报文段。填充字段 这是为了使整个首部长度是 4 字节的整数倍。 TCP 的数据编号与确认 n TCP 协议是面对字节的。TCP 将所要传送的报文看成是字节组成的数据流,并使每一个字节对应于一个序号。n 在连接建立时,双方要商定初始序号。TCP 每次发送的报文段的首部中的序号字段数值表示该报文段中的数据部分的第一个字节的序号。n TCP 的确认是对接收到的数据的最高序号表示确认。接收端返回的确认号是已收到的数据的最高序号加 1。因此确认号表示接收端期望下次收到的数据中的第一个数据字节的序号。 6.3.2

15、.3 TCP 的流量把握与拥塞把握1. 滑动窗口的概念n TCP 接受大小可变的滑动窗口进行流量把握。窗口大小的单位是字节。n 在 TCP 报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。n 发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可依据自己的资源状况,随时动态地调整对方的发送窗口上限值(可增大或减小)。 n 发送端要发送 900 字节长的数据,划分为 9 个 100 字节长的报文段,而发送窗口确定为 500 字节。n 发送端只要收到了对方的确认,发送窗口就可前移。n 发送 TCP 要维护一个指针。每发送一个报文段,指针就向前移动一个报文段的距离。n 发送

16、端已发送了 400 字节的数据,但只收到对前 200 字节数据的确认,同时窗口大小不变。n 现在发送端还可发送 300 字节。 n 发送端收到了对方对前 400 字节数据的确认,但对方通知发送端必需把窗口减小到 400 字节。n 现在发送端最多还可发送 400 字节的数据。 2. 慢启动和拥塞避开n 发送端的主机在确定发送报文段的速率时,既要依据接收端的接收力量,又要从全局考虑不要使网络发生拥塞。n 因此,每一个 TCP 连接需要有以下两个状态变量:n 接收端窗口 rwnd (receiver window) 又称为通知窗口(advertised window)。n 拥塞窗口 cwnd (congestion window)。慢启动算法的原理 n 三个参数: 接收方窗口, 拥塞窗口, 阈值(threshold)初始时刻阈值=16报文段, 慢开头和拥塞避开算法的实现举例 246810121416182022004812162024传输次数拥塞窗口 cwnd进入拥塞避开发生超时指数规律增长线性规律增长ssthresh = 16慢开头慢开头拥塞避开拥塞避开更新后的 ssthresh = 12进入拥塞避开当 TCP 连接进行初始化时,将拥塞窗口置为 1。图中的窗口单位不使用字节而使用报文段。慢开头(阈值)门限的初始值设置为 16 个报文段

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论