计算机网络8
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第八章 运输层 四、TCP报文段的格式
32 bit 源端口 TCP 首 部 数 据 偏 移
8.4 运输控制协议TCP
目的端口 20 字 节
发 送 序 号 接 收 序 号 保 留 U A P R S F R C S S Y I 窗口大小 (6位) G K H T N N 检验和 紧急指针 选项和填充(0或者更多的32位字) 数据(可选项) TCP报文段的格式
8.4 运输控制协议TCP
可变发送窗口(BYTE)
当加载到网络上的载荷超过其处理能力时,拥塞便会出现 分组丢失而造成超时的原因 传输线路的噪声干扰 拥塞的路由器丢弃了分组 目前互联网上发生的大多数超时现象都是由于拥塞造成的, 传输错误造成的分组丢失较少 解决拥塞最切实的办法是降低数据传输速率 拥塞控制大部分是由TCP完成的。TCP试图通过动态地控制滑 动窗口的大小来达到控制拥塞地目的
第八章 运输层
8.4 运输控制协议TCP
TCP拥塞控制(续) 加速递减(Multiplicative Decrease) 每出现一次超时,门限窗口值减半。 拥塞避免(Congestion Avoidance) 当拥塞窗口增大到门限窗口值时,拥塞窗口的增 长将变为线形增长,避免网络再次拥塞
运输层在层次体系结构中的地位
第八章 运输层
8.1 运输协议概述
运输层在网络体系结构中的作用
屏蔽通信子网细节,实现端端可靠高效通信 分用与复用 差错检测 提供不同运输服务
第八章 运输层
AP2 端到端通信 运输层
8.1 运输协议概述
AP6 运输层
主机A
主机B
AP1
AP2 AP3
AP4 网络 1 网络 2
检验和覆盖了整个的TCP报文段:TCP首部和TCP数据。这是
一个强制性的字段,由发端计算和存储,由收端进行验证
只有当URG标志置1时紧急指针才有效。紧急指针是一个正
的偏移量,和序号字段中的值相加表示紧急数据最后一个字 节的序号。TCP的紧急方式是发送端向另一端发送紧急数据的 一种方式
选项字段允许每台主机设定能够接受的最大TCP载荷能力
成的小分组,在该分组的确认到达之前不能发送其他的小分 组
TCP收集这些少量的分组,并在确认到来时以一个分组的方
式发出去
该算法的优越之处在于它是自适应的:确认到达得越快,
数据也就发送得越快。而在希望减少微小分组数目的低速广 域网上,则会发送更少的分组
第八章 运输层 二、TCP流量控制与拥塞控制 TCP流量控制
第八章 运输层
8.4 运输控制协议TCP
Kan提出一个算法:在计算平均往返时延时,只要报文段 重传了,就不采用其往返时延样本。这样得出的平均往返时延 和重传时间当然就较准确。 对Kan算法进行修正,方法是:报文段每重传一次,就将 重传时间增大一些:
新的重传时间= γ(旧的重传时间)
其中,系数γ 的典型值是2。 当不再发生报文段的重传时,才根据报文段的往返时延更 新平均往返时延和重传时间的数值。实践证明,这种策略较为 合理。
IP=131.6.23.13
A 端口 1500 端口 1501
IP=128.36.1.22
IP=130.42.85.15
连接1 连接2 端口 25 连接3
C
B
端口 1501
与主机C的SMTP建立三个连接
第八章 运输层
8.3 用户数据报协议UDP
8.3 用户数据报协议UDP
UDP是一个简单的面向数据报的运输层协议:进程的每个输 出操作都正好产生一个UDP数据报,并组装成一份待发送的IP 数据报 这与面向流字符的协议不同,如TCP,应用程序产生的全体 数据与真正发送的单个IP数据报可能没有什么联系 UDP不提供可靠性:它把应用程序传给IP层的数据发送出去, 但是并不保证它们能到达目的地
一、TCP传输策略(编号与确认)
编号—字节数据流 经受时延的确认 发送方不需要从应用程序一到来 数据便发送出去;接收方也不需 要尽早发送确认 推迟发送的目的:以便将ACK与需 要沿该方向发送的数据一起发送 (有时称这种现象为数据捎带ACK) 绝大多数实现采用的时延为 200ms(最大500ms),也就是说, TCP将以最大200ms 的时延等待是 否有数据一起发送
第八章 运输层
8.4 运输控制协议TCP
每个TCP段都包含源端和目的端的端口号,用于寻找发端和收
端应用进程。这两个值加上IP首部中的源端IP地址和目的端IP 地址唯一确定一个TCP连接
序号用来标识从TCP发端向TCP收端发送的数据字节流
6个标志位
URG ACK PSH
紧急指针(urgent pointer)有效 确认序号有效 接收方应该尽快将这个报文段交给应用层
定时功能
计时器可以间接地管理网络拥塞,其方法是当超时出现时 减慢传输率
应答接收
没被应答的数据段被认为在传输过程中已丢失,并被重传
第八章 运输层
8.2 TCP/IP体系中的运输层
二、端口的概念
UDP和TCP都使用了应用层接口处的端口(Port)与上层 的应用进程进行通信。其中,TCP建立连接时采用客户服务器 模式。
(缺省536字节)
第八章 运输层 五、TCP的运输连接管理
8.4 运输控制协议TCP
运输连接的管理包括连接建立和连接释放这两个过程。 TCP连接建立
采用三次握手(three-way 1.
handshake)方法
请求端(通常称为客户)发送一个SYN段指明客户打算连 接的服务器的端口,以及初始序号(ISN)
第八章 运输层
8.2 TCP/IP体系中的运输层
8.2 TCP/IP体系中的运输层
一、运输层中的两个协议
应用层
UDP IP 与各种网络接口 TCP
TCP/IP的传输层有2个不同的协议
用户数据报协议UDP(User Datagram Protocol)
运输控制协议TCP(Transmission Control Protocol)
客户
数据字节 数据字节确认
服务器数Biblioteka 字节回显回显字节确认远程交互1个字符的情形
第八章 运输层
8.4 运输控制协议TCP
Nagle算法——目的在于提高网络传输效率
每次当数据到达发送方时,只发送第一个字节并将后续到
达的数据缓存起来,直到第一个字节被确认
随后用一个TCP数据段发送所有缓存的数据 该算法要求一个TCP连接上最多只能有一个未被确认的未完
RST
SYN FIN
重建连接
同步序号用来发起一个连接 发端完成发送任务
第八章 运输层
8.4 运输控制协议TCP
TCP的流量控制由连接的每一端通过声明的窗口大小来提供。
窗口大小为字节数,起始于确认序号字段指明的值,这个值 是接收端正期望接收的字节。窗口大小是一个16bit字段, 因而窗口大小最大为65535字节
第八章 运输层 三、TCP重传机制
往返时延的 概率分布
8.4 运输控制协议TCP
数据链路层
运输层 时间 T1 T2 T3 数据链路层和运输层的往返时延的概率分布的差别
第八章 运输层
8.4 运输控制协议TCP
TCP采用了一种自适应算法。这种算法记录每一个报文段 发出的时间,以及收到相应的确认报文段的时间。这两个时间 之差就是报文段的往返时延。将各个报文段的往返时延样本加 权平均,就得出报文段的平均往返时延T。 平均往返时延T=α(旧的往返时延T)+(1-α)(新的往返时延样 本) 其中,0 ≤α<1。典型α的值为7/8。 显然,计时器设置的重传时间应略大于上面得出的平均往 返时延,即 重传时间=β(平均往返时延) 这里β是个大于1的系数。实际上,系数β是很难确定的。 TCP原先的标准推荐将β值取为2。
TCP的目的:用于在不可靠的互连网络上
(不同的拓扑结构、带宽、延迟、分组大小 及其它参数)实现可靠的端-端字节流服务
TCP/IP运输层的 UDP与TCP
IP层不保证报文正确传输(BE),TCP进行超时、重传控制
报文不一定按顺序到达,TCP进行重新装配
第八章 运输层
8.2 TCP/IP体系中的运输层
TCP的功能
多路复用多种应用数据
TCP同时接收多个应用数据,把它们打包到数据段中传 给IP
TCP能同时接收多个应用的数据
TCP通过端口来实现跟踪记录到达的报文要转发到的应 用程序(端口80:超文本传输协议,http )
测试所接收数据的完整性
比较TCP头的校验和,如果出现问题就给源主机发一请 求,要求其重发一份数据拷贝
第八章 运输层
8.1 运输协议概述
ISO于1984年通过了OSI运输协议的标准ISO 8072 和ISO 8073,相当于CCITT的X.214和X.224建议书。共 定义了5类(Class)运输协议,都是面向连接的。
第0类运输协议:最简单,它只具有最起码的功能。 第1类运输协议:较简单,但增加了基本差错恢复功能。 第2类运输协议:具有复用功能,但没有对网络连接故障的 恢复功能。 第3类运输协议:面向B型网络服务,它包含了第1类和第2 类运输协议的功能,既有差错恢复功能又有复用功能。 第4类运输协议:最复杂,它可以在网络层的质量较差时保 证高可靠性的数据传送,它面向C型网络服务。
2.
服务器发回包含服务器的初始序号的SYN报文段作为应 答。同时,将确认序号设置为客户的ISN加1以对客户的SYN 报文段进行确认
UDP检验和覆盖UDP首部和UDP数据
UDP和TCP在首部中都有覆盖它们首部和数据的检验和。 UDP的检验和是可选的,而TCP的检验和是必需的
源端口号(16B)
UDP长度(16B)
目的端口号(16B)
UDP检验和(16B)
8字节
数 据(可选项)
UDP首部
第八章 运输层
8.4 运输控制协议TCP
8.4 运输控制协议TCP
IP数据报 UDP报文段 IP首部 20字节 UDP首部 8字节
UDP数据在IP数据报中的封装
UDP数据
第八章 运输层
8.3 用户数据报协议UDP
端口号表示发送进程和接收进程。TCP和UDP用目的端口号 来分用来自I P层的数据的过程 UDP长度字段指的是UDP首部和UDP数据的字节长度。该字段 的最小值为8字节(发送一份0字节的UDP数据报是OK)
AP5 AP6
运输层向互相通信的进程提供端到端的可靠通信
第八章 运输层 二、运输协议分类 网络服务质量的类型(Type)
8.1 运输协议概述
A型:网络连接具有可接受的低差错率和可接受的低故障 通知率。 A型网络服务是一个完善的、理想的、可靠的网络 服务。
B型:网络连接具有可接受的低差错率和不可接受的高故 障通知率。对于B型网络连接,运输协议必须提供差错恢复 的功能。 C型:网络连接具有不可接受的高差错率(对运输服务用 户来说)。 C型网络服务的质量最差,故运输协议必须能检 测出网络的差错,同时要有差错恢复能力。
TCP拥塞控制
第八章 运输层
8.4 运输控制协议TCP
TCP拥塞控制(续)
慢启动(Slow Start)
慢启动同时考虑可能造成拥塞的网络容量和接收方容量, 取以下两个窗口的最小值作为可以发送的字节数上限 通告窗口(Offered Window) 拥塞窗口(Congestion Window) 拥塞窗口的大小 发送方开始时发送一个报文段,然后等待A C K。当 收到该ACK时,拥塞窗口从1增加为2,即可以发送两 个报文段。当收到这两个报文段的ACK时,拥塞窗口 就增加为4。这是一种指数增加的关系 拥塞窗口是发送方使用的流量控制,而通告窗口则是接 收方使用的流量控制 所有的TCP实现都支持慢启动
第八章 运输层
教学要求
第八章
运输层
本章讨论的主要内容:
1.运输协议概述 2.TCP/IP体系中的运输层 3.用户数据报协议UDP 4.运输控制协议TCP
第八章 运输层
8.1 运输协议概述
8.1 运输协议概述
一、运输层在网络体系结构中的地位和作用
面向信息处理
应用层 用户功能 运输层
面向通讯
网络层 数据链路层 物理层 网络功能
顺序化乱序接收的数据
通过查看TCP头中的序列号域可以完成这个任务
第八章 运输层
8.2 TCP/IP体系中的运输层
TCP的功能(续)
速率-适应的流控
流量控制使用的是TCP窗口大小。源和目的机的窗口大小 通过TCP头进行通信
如果机器的缓冲完全被填满,它就会发送一个有关最后收 到数据的应答报文,其中新的窗口大小为0。这样会有效地 使发送停止,直到拥塞的机器能清理掉其缓冲