第四章 运输层
第4章 运输层
局域网 路由器
Internet 路由器
局域网
应用进程之间的通信
“运输层提供应用进程间的逻辑通信”。“逻辑 通信”的意思是:运输层之间的通信好像是沿 水平方向传送数据。但事实上这两个运输层之 间并没有一条水平方向的物理连接。 我们在学习传输层时,暂不考虑传输层以下的 层次,可以认为传输层数据能够“水平”地到 达目的地的传输层。 这样直接考虑实体之间的“水平”通信,可以 简化问题。
端口机制的工作原理:
AP1
AP2
AP3
AP4
Data1
Data2
Data1
Data2
H port1 port2 运输层协议
Data2
H
Data1 port3 port4 运输层协议
AP1将要Data1发给AP4,AP2将要Data2发给AP3。传输层要 在Data1和Data2前面添加传输层首部,封装Data1的首部H中, 源端口是port1,目的端口是port4 这样,接收方收到后根据目的端口,就能将Data1正确地交 给AP4。
运输层为应用进程提供逻辑通道。将两个应用进程连接 起来,即便这两个应用进程运行在不同的主机上,并且 两个主机之间还可能间隔着许多网络。
对于应用进程AP1和AP2,两台主机的传输层它们为建 立了一条逻辑通道,它们的数据可以通过这个通道直接 到达对方。
应用层 运输层 网络层 数据链路层 物理层 AP1 逻辑通道 运输层 网络层 数据链路层 物理层 AP2 应用层
下图是使用协议分析软件捕获的UDP报文:
这个UDP报文封装的应用层协议数据是DNS请求报文,内 容是询问DNS服务器对应的IP地址
见备注
UDP的差错检测
计算机网络CH5-5ed运输层
运输层协议的选择依据
根据应用需求选择协 议
对于需要可靠、有序的数据传输, 如网页浏览、电子邮件等应用, TCP是更好的选择;对于实时性 要求较高或对丢包敏感的应用, 如流媒体、实时游戏等,UDP更 为合适。
05 运输层协议的比较与选择
TCP与UDP的比较
TCP(传输控制协议)和UDP(用户数 据报协议)是计算机网络运输层的两种 主要协议,它们在功能、传输方式和应 用场景等方面存在显著差异。
TCP是一种面向连接的协议,提供可靠的数 据传输服务,通过确认机制、重传机制、流 量控制和拥塞控制等机制来保证数据的顺序 和完整性。
计算机网络ch5-5ed运输层
contents
目录
• 运输层概述 • TCP/IP协议 • 传输控制协议(TCP) • 用户数据报协议(UDP) • 运输层协议的比较与选择
01 运输层概述
运输层的功能
数据传输
提供端到端的数据传输服务,确保数据可靠、 有序和无差错地传输。
流量控制
根据接收端的能力动态调整发送端的数据传 输速率,避免数据丢失或溢出。
协议转换
运输层负责协议转换,将不同 协议格式的数据转换为统一的
传输格式。
运输层协议
TCP(传输控制协议)
提供可靠的数据传输服务,通过确认机制、 重传机制和流量控制机制实现可靠传输。
UDP(用户数据报协议)
提供无连接的数据传输服务,适用于对实时 性要求较高的应用,如流媒体和在线游戏。
02 TCP/IP协议
流量控制
流量控制是为了避免接收端因处理能 力不足而导致的丢包问题,通过滑动 窗口机制动态调整发送速率。
《计算机网络》-运输层整理版
运输层1、应用进程之间的通信又称为端到端的通信。
2、运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。
3、运输层还要对收到的报文进行差错检测。
4、运输层需要有两种不同的运输协议,即面向连接的TCP和无连接的UDP。
5、TCP/IP 的运输层有两个不同的协议:(1) 用户数据报协议UDP (User Datagram Protocol)(2) 传输控制协议TCP (Transmission Control Protocol)6、UDP 在传送数据之前不需要先建立连接。
对方的运输层在收到UDP 报文后,不需要给出任何确认。
7、TCP 则提供面向连接的服务。
TCP不提供广播或多播服务。
8、运输层使用协议端口号(protocol port number),或通常简称为端口(port)。
9、TCP 最主要的特点:(1)TCP 是面向连接的运输层协议。
(2)每一条TCP 连接只能有两个端点(endpoint),每一条TCP 连接只能是点对点的(一对一)。
(3)TCP 提供可靠交付的服务。
(4)TCP 提供全双工通信。
(5)面向字节流。
10、软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址11、UDP 没有拥塞控制,很适合多媒体通信的要求。
12、TCP 连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是运输层的协议端口。
TCP 连接的端点叫做套接字(socket)或插口。
端口号拼接到(contatenated with) IP地址即构成了套接字。
13、14、在发送完一个分组后,必须暂时保留已发送的分组的副本。
分组和确认分组都必须进行编号。
超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些。
15、流量控制(flow control)就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。
16、在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏——产生拥塞(congestion)。
运输层知识总结
发送窗口前沿通常是不断向前的,但也可能不变,对应两种情况:一是没有收到新 的确认,对方通知的窗口大小也不变;二是收到了新的确认但是窗口号变小了,使得发 送窗口前沿正好不变。前沿也可能向后收缩,发生在对方通知的窗口缩小了。 发送窗口后沿变化有不动和前移。 发送窗口内的字节可能是已发送的但未收到确认的或是未发送的, 只要不收到确认 后沿就不向前移。 接受窗口(rwnd) 接受窗口只对按序接受的最高序号给予确认,如果只收到 32、33 但未收到 31、确 认报文的确认号仍为 31(希望 A 从 31 开始发送,退后 N 帧),如果收到了 31,并把序号 31~33 交给主机,B 删除这些数据,向 A 发送确认,确认号 34,窗口 20。 窗口与缓冲的关系 缓冲一般是循环利用的,环形。 发送缓冲并不等于发送窗口,发送窗口用来暂时存放: 1) 发送应用程序传送给 TCP 准备发送的数据; 2) TCP 已发送但未收到确认的数据 接受缓冲: 1) 按序到达但未上交给主机的 2) 未按序到达的数据 强调: 1) 虽然 A 的发送窗口总是根据 B 的接受窗口设置的, 但同一时刻 A 的发送窗口并
计算机网络(第六版)
计算机网络(第六版)计算机网络是指将分布在不同地理位置的计算机系统互相连接起来,实现资源共享和信息传递的技术系统。
本文将介绍《计算机网络(第六版)》一书的内容概要,并对其中的重要概念和技术进行探讨。
第一章简介计算机网络的起源和发展历程,以及现代计算机网络的组成部分和基本功能。
第二章物理层介绍计算机网络的物理层,包括数字信号的传输方式、调制解调器和光纤通信技术等。
第三章数据链路层探讨计算机网络的数据链路层,包括帧、介质访问控制和错误检测等。
第四章网络层详细介绍计算机网络的网络层,包括IP协议、路由和转发等关键内容。
第五章运输层解析计算机网络的运输层,包括TCP协议和UDP协议的特性、可靠性和流量控制等。
第六章应用层讨论计算机网络的应用层,包括HTTP、FTP和DNS等常见应用协议的原理和应用。
第七章局域网介绍局域网的组成和技术,包括以太网、令牌环网和局域网设备的互连等。
第八章广域网探讨广域网的连接方式和技术,包括专线、虚拟专用网和帧中继等。
第九章网络安全深入研究计算机网络的安全问题,包括身份认证、数据加密和防火墙等安全措施。
第十章网络管理介绍计算机网络的管理方法和工具,包括监控、故障管理和性能优化等。
第十一章无线网络与移动网络解析无线网络和移动网络的原理和技术,包括Wi-Fi、蜂窝网络和移动IP等。
第十二章互联网详细介绍互联网的起源、发展和基本架构,包括因特网的组成和互联网地址等。
第十三章下一代互联网讨论下一代互联网的研究和发展趋势,包括IPv6、物联网和云计算等前沿技术。
第十四章多媒体网络探索多媒体网络的特点和应用,包括音频、视频和流媒体等多媒体数据的传输和处理。
第十五章网络性能评价和仿真介绍网络性能评价和仿真技术,包括延迟、带宽和吞吐量等性能指标的测量和分析。
第十六章计算机网络的研究方法指导读者进行计算机网络的研究和实验,包括实验设计和数据分析等方法和技巧。
总结《计算机网络(第六版)》一书全面阐述了计算机网络的基本原理、技术和应用。
第4章 运输层
重传定时器
在发送一个TCP报文后,就会启动重传定 时器。 如果在定时器截止时间之前收到了确认, 就撤销这个定时器。如果定时器时间到 了,确认还没有收到,就重传该报文并 将定时器复位。 随着网络情况不断在发生变化,重传定 时器的时间设定也会跟随变化 。
重传定时器计算
T重传 = RTT估计 + 4 * RTT偏差
确认和重传机制
数据出错的四种情况和处理
(1)TCP报文段丢失 。发送方定时器超时,重传。 (2) TCP报文段里的数据出错。接收方丢弃出错 报文段,不发送确认。发送方定时器超时,重 传。 (3)TCP报文段的重复。接收方直接丢弃重复报 文段,同时发送确认。 (4) TCP报文段的乱序。TCP通常会选择缓存这 些乱序的报文,将其排序再上传给应用进程。
UDP数据报格式
源端口是指发送方应用进程对应的端口号。 目的端口是指接收方应用进程对应的端口号。 长度字段的值给出了UDP数据报(包括首部和 数据)的字节数。 校验和用来检测UDP报文在传输中的错误。 UDP报文的校验是可选的,如果校验和的值为 0,则表示没有校验。
UDP的差错检测
UDP提供了首部校验和字段来检测UDP数据报在传输过 程中的错误。一旦检测出错误,UDP会丢弃出错的UDP 数据报。 UDP首部校验和的计算比较特殊,在计算校验和之前, 要在UDP报文前面添加一个伪首部。
2.如何缓解拥塞?
一个连接两端的TCP都维持一个变量,称为拥塞窗 口,用来限制TCP向网络中注入数据的大小和速率。 拥塞窗口的大小能够随时进行调整。 发送方在某个时刻能够向网络输入数据的最大字节 数应该是接收方通告窗口和发送方拥塞窗口之间的 最小值 。
TCP的拥塞控制
1.慢启动 2.拥塞避免算法
名词解释——运输层(传输层)
名词解释——运输层(传输层)运输层(传输层)是OSI参考模型中的第四层,主要功能是在网络上的两台主机之间建立逻辑连接,并将数据从一台主机传输到另一台主机。
它是负责传输数据包的一个重要协议层,也是网络应用层与网络互联层之间的桥梁。
运输层的主要功能有:传输控制服务,多路复用,流量控制,拥塞控制,连接管理,错误检测和纠正,拆分/合并报文等。
其中,传输控制服务是运输层最重要的功能,它主要负责在主机之间建立连接,保证报文的可靠传输,并且支持主机的多种服务质量。
多路复用是指在运输层使用一个端口号管理多个不同的传输连接,它可以实现在一个物理链路上同时传输多个传输连接。
多路复用主要有三种实现方式:端口号复用、IP地址复用和虚拟连接复用。
流量控制是指对网络上传输的数据流量进行控制,以避免网络中的拥塞,保证网络的稳定性。
常见的流量控制方法有基于套接字的流量控制、基于端口号的流量控制和基于IP地址的流量控制等。
拥塞控制是指在网络中通过限制网络上传输的数据包,以减少网络中的拥塞,保证网络的稳定性。
常见的拥塞控制方法有基于端口号的拥塞控制、基于IP地址的拥塞控制、基于TCP协议的拥塞控制和基于UDP协议的拥塞控制等。
连接管理是指在两台主机之间建立网络连接,并管理这些连接,以便实现数据传输。
连接管理主要包括连接状态管理、连接拆除管理和连接恢复管理等。
错误检测和纠正是指在网络中,运输层使用一定的技术来检测网络数据传输中的错误,并采取相应的措施来纠正错误。
常见的错误检测和纠正技术有CRC校验、纠错码、循环冗余校验等。
拆分/合并报文是指当报文过大时,运输层可以将报文拆分成若干小报文,然后分别传输,接收方收到后再进行报文合并;当报文过小时,运输层可以将若干小报文合并成一个报文,然后传输,接收方收到后再进行报文拆分。
运输层常见的协议有TCP、UDP、SCTP等,其中TCP是传输控制协议,它提供面向连接和可靠的传输服务,它主要负责主机之间的连接管理、流量控制、拥塞控制和错误检测和纠正等;UDP是用户数据报协议,它提供无连接的传输服务,它不提供可靠性服务,但是传输效率高;SCTP是流控制传输协议,它提供可靠的传输服务,主要用于多媒体传输。
Ch03-运输层(2011)
提供面向连接的服务、提供可靠交付服务
• 可靠交付:无丢失、无差错、无重复、按序交付
协议复杂、开销大。
• 首部字段多,占用更多处理机和内存资源。
运输层的逻辑通信
网络层数据与运输层数据的传输
网络层PDU:要经过互连网中许多路由器的存储转发 运输层PDU:在运输层抽象的端到端逻辑信道中传送
超时 重传 M1
发送 M2
收到迟到
的确认
t
但什么也不做 t
B
确认 M1 丢弃 重复的 M1 重传确认M1
t
(c) 确认丢失
(d) 确认迟到
停止等待协议小结
停止等待协议中使用到的技术
缓存:发送方必须暂时保留已发送的分组的副本 确认:接收方要对已收到的分组进行确认 超时重传:超时重传时间应当比分组平均往返时延更
反码和 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 校验和 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
计算反码和的C代码
u_short checksum ( u_short *buf, int count ) {
u_long sum = 0; while ( count-- ) {
A 发送 M1
发送 M2
发送 M3
B 确认 M1
A 发送 M1
超时重传 M1 确认 M2
确认 M3
发送 M2
停止等待协议
B 丢弃有差错 的报文
确认 M1
t
t
(a) 无差错情况
t
t
(b) 超时重传
停止等待协议
A
发送 M1
超时 重传 M1
运输层功能
运输层功能
运输层(Transport Layer)是OSI模型中的第四层,主要提供端到端的可靠数据传输。
它的功能包括以下几点:
1. 分段和重组:运输层将应用层传递下来的数据分成更小的报文段(Segment),方便传输。
在接收端,运输层负责将接收到的报文段重新组装成原始的数据。
2. 端口管理:运输层使用端口号(Port Number)来标识不同的应用程序或服务。
发送端在发送数据时,将数据与端口号绑定,接收端根据端口号将数据传递给相应的应用程序或服务。
3. 连接建立和终止:运输层提供两种类型的连接:面向连接的连接型传输和无连接的非连接型传输。
面向连接的传输需要在发送和接收之间建立连接,并在传输完成后释放连接。
而非连接型传输不需要建立连接,数据直接传输。
4. 可靠性保证:运输层使用各种协议来保证数据的可靠传输。
常用的协议如TCP(传输控制协议)使用序列号、确认号、重传机制等来保证数据的完整性和可靠性。
5. 拥塞控制:运输层负责监测网络的拥塞情况,并采取相应的措施来防止拥塞。
拥塞控制可以通过降低传输速率、丢弃部分数据包等来进行。
6. 数据流控制:运输层通过滑动窗口机制来控制发送和接收之间的数据流。
发送端根据接收端的反馈信息调整发送速率,防
止发送速度过快导致接收端无法处理。
总之,运输层的主要功能是提供可靠的端到端数据传输,并处理连接的建立和终止、端口管理、拥塞控制和数据流控制等问题。
它在整个网络通信体系中起到了至关重要的作用。
计算机网络(谢希仁第五版)第四章课后习题详解
第四章网络层1.网络层向上提供的服务有哪两种?是比较其优缺点。
网络层向运输层提供“面向连接”虚电路(Virtual Circuit)服务或“无连接”数据报服务前者预约了双方通信所需的一切网络资源。
优点是能提供服务质量的承诺。
即所传送的分组不出错、丢失、重复和失序(不按序列到达终点),也保证分组传送的时限,缺点是路由器复杂,网络成本高;后者无网络资源障碍,尽力而为,优缺点与前者互易2.网络互连有何实际意义?进行网络互连时,有哪些共同的问题需要解决?网络互联可扩大用户共享资源范围和更大的通信区域进行网络互连时,需要解决共同的问题有:不同的寻址方案不同的最大分组长度不同的网络接入机制不同的超时控制不同的差错恢复方法不同的状态报告方法不同的路由选择技术不同的用户接入控制不同的服务(面向连接服务和无连接服务)不同的管理与控制方式3.作为中间设备,转发器、网桥、路由器和网关有何区别?中间设备又称为中间系统或中继(relay)系统。
物理层中继系统:转发器(repeater)。
数据链路层中继系统:网桥或桥接器(bridge)。
网络层中继系统:路由器(router)。
网桥和路由器的混合物:桥路器(brouter)。
网络层以上的中继系统:网关(gateway)。
4.试简单说明下列协议的作用:IP、ARP、RARP和ICMP。
IP协议:实现网络互连。
使参与互连的性能各异的网络从用户看起来好像是一个统一的网络。
网际协议IP是TCP/IP体系中两个最主要的协议之一,与IP协议配套使用的还有四个协议。
ARP协议:是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
RARP:是解决同一个局域网上的主机或路由器的硬件地址和IP地址的映射问题。
ICMP:提供差错报告和询问报文,以提高IP数据交付成功的机会因特网组管理协议IGMP:用于探寻、转发本局域网内的组成员关系。
5.IP地址分为几类?各如何表示?IP地址的主要特点是什么?分为ABCDE 5类;每一类地址都由两个固定长度的字段组成,其中一个字段是网络号net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号host-id,它标志该主机(或路由器)。
TCP-IP课程实验报告
图 2-1 ARP 将网络层的逻辑地址解析为本地的硬件地址
2.1 ARP 概述
ARP 是像以太网和令牌环这样的访问共享、基于广播的网络技术所使用的协议。该协 议将节点的转发 IP 地址解析成对应的 MAC (Media Access Control——媒介访问控制) 地址。 MAC 地址也称为物理地址、硬件地址或网卡地址。解析后的 MAC 地址成为以太网或令牌 环报头中的目标 MAC 地址,IP 数据报在媒介上发送时寻到该地址。 ARP 将因特网层地址 (IP 地址)解析成网络接口层地址(MAC 地址) 。 转发 IP 地址不必与 IP 数据报的目标 IP 地址相同,每个发出的 IP 数据报经路由处理后 都变成一个接口和转发 IP 地址。对于直接在同一子网上传送的目标节点,转发 IP 地址是数 据报的目标 IP 地址。对于间接传送到远程目标节点,转发 IP 地址是转发主机所在子网上的 路由器的 IP 地址。 IP 独立于任何特定的网络接口层技术。因此,从转发的 IP 地址判断不出目的地的网络 接口层地址。例如,以太网和令牌环 MAC 地址的长度是 6 字节,IP 地址的长度是 4 字节。 MAC 地址在网卡的制造过程中就已分配好了,而 IP 地址是由网络管理员分配的。对某个具 体的 IP 节点而言,这两种地址的指定方式之间没有任何关系,因此不可能从一个地址判断 出另一个地址。ARP 是一种基于广播的请求答复协议,提供了将正在转发的 IP 地址映射为 它们相应的 MAC 地址的动态解析能力。
TCP
UDP
图 1-3 数据结构
第二章
地址解析协议(ARP)——链路层
由于不同层和驻留于这些层上的地址的复杂性, 因此必须有一种解析不同的计算机编址 策略间差异的方法。 地址解析就起了这样的作用, 并且使得端设备可以动态地找到本地的硬 件地址以便向远端主机传输数据, 或者取得必要的逻辑 IP 地址和配置参数以便加入到网络。 如果没有某种类型的地址解析方法,远端主机间就不能通信。在 IP 界,地址解析指的是将 一个协议地址转换成一个相应的物理地址或反之,例如将一个 IP 地址转换成一个以太网地
运输层知识点总结
运输层知识点总结运输层是OSI模型中的第四层,负责在主机之间提供端到端的数据传输服务。
运输层使用端口号来识别不同的应用程序,并为这些应用程序提供可靠的数据传输服务。
本文将总结运输层的知识点,包括运输层的功能、协议、特性等内容。
1. 运输层的功能运输层主要有两个功能,一是提供端到端的数据传输服务,二是为应用层提供端口号和流控制。
具体来说,运输层负责将应用层的数据分割成适合传输的数据段,并为这些数据段提供可靠的传输服务。
此外,运输层还负责数据的多路复用与分解,即将来自不同应用程序的数据段合并到一个数据流中传输,然后再分解成适合不同应用程序的数据段。
2. 运输层的协议在运输层有两个主要的协议,即传输控制协议(TCP)和用户数据报协议(UDP)。
TCP 提供可靠的数据传输服务,具有数据校验、流量控制、拥塞控制等功能,适用于需要可靠数据传输的应用程序,如电子邮件、文件传输等。
UDP则提供不可靠的数据传输服务,不具有数据校验、流量控制等功能,适用于实时性要求高的应用程序,如视频会议、在线游戏等。
3. 运输层的特性运输层有多种特性,包括可靠性、流量控制、拥塞控制等。
其中,可靠性是运输层最重要的特性之一,即保证数据传输的正确性和完整性。
为了实现可靠传输,TCP使用序号、确认应答、重传机制等技术。
流量控制是另一个重要的特性,即控制发送方的发送速率,使得接收方可以处理接收到的数据。
拥塞控制是为了避免网络拥塞,使得网络能够在高负载时保持稳定运行。
4. 运输层的端口号运输层使用端口号来识别不同的应用程序。
端口号是一个16位的数字,范围从0到65535。
其中,0到1023的端口号是系统端口号,用于系统服务和常用应用程序,如HTTP的端口号是80,SMTP的端口号是25。
1024到49151的端口号是注册端口号,用于一些常用应用程序,如FTP的端口号是21,Telnet的端口号是23。
49152到65535的端口号是动态或私有端口号,用于一些临时性应用程序。
运输层协议
运输协议(transport protocol)是整个网络体系结构 中的关键之一。
退出
运输协议概述
运输层向它上面的应用层提供通信服务
它属于面向通信部分的最高层
用户功能中的最低层。
运输层只存在于通信子网以外的主机中,在通信子网中没有运输层,
运输层为应用进程之间提供逻辑通信
端端
网络层是为主机之间提供逻辑通信
端口的概念
UDP和TCP都使用了与应用层接口处的端口(port) 与上层的应用进程进行通信。
若没有端口,运输层就无法知道数据应当交付给应用层的哪 一个进程。端口是用来标识应用层的进程。
端口号分为两类。一类是由因特网指派名字和号码公司 ICANN负责分配给一些常用的应用层程序固定使用的熟知端口 (well-known port),其数值一般为0~1023,见[RFC 1700]。例如, FTP用21,TELNET用23,SMTP用25,DNS用53,HTTP用80, SNMP用161,等。当一种新的应用程序出现时,必须为它指派一 个熟知端口,否则其他的应用进程就无法和它进行交互。
可靠信道画成一个管道,这意味着报文在这样的“管道”中运 输时,可以做到无差错、按序(接收的顺序和发送的顺序一样)、 无丢失和无重复。
TCP/IP体系中的运输层
运输层中的两个协议
TCP/IP的运输层有两个不同的协议,它们都是因
特网的正式标准,即:
(1)用户数据报协议 UDP (User Datagram Protocol) (2)传输控制协议 TCP (Transmission Control Protocol)
插口包括IP地址(32 bit)和端口号(16 bit),共48 bit。
用户数据报协议UDP 用户数据报的用途
计算机网络(第6版)课件-运输层共145页PPT
•
29、在一切能够接受法律支配的人类 的状态 中,哪 里没有 法律, 那里就 没有自 由。— —洛克
•
30、风俗可以造就法律,也可以废除 法律。 ——塞·约翰逊
谢谢你的阅读
❖ 知识就是财富 ❖ 丰富你的人生
71、既然我已经踏上这条道路,那么,任何东西都不应妨碍我沿着这条路走下去。——康德 72、家庭成为快乐的种子在外也不致成为障碍物但在旅行之际却是夜间的伴侣。——西塞罗 73、坚持意志伟大的事业需要始终不渝的精神。——伏尔泰 74、路漫漫其修道远,吾将上下而求索。——屈原 75、内外相应,言行相称。——韩非
计算机网络(第6版)课件-运输层
•
26、我们像鹰一样,生来就是自由的 ,但是 为了生 存,我 们不得 不为自 己编织 一个笼 子,然 后把自 己关在 里面。 ——博 莱索
•
ቤተ መጻሕፍቲ ባይዱ
27、法律如果不讲道理,即使延续时 间再长 ,也还 是没有 制约力 的。— —爱·科 克
•
28、好法律是由坏风俗创造出来的。 ——马 克罗维 乌斯
运输层——精选推荐
运输层运输层是整个⽹络体系结构中的关键层次之⼀。
⼀定要弄清以下⼀些重要概念:(1)运输层为相互通信的应⽤进程提供逻辑通信。
(2)端⼝和套接字的意义。
(3)⽆连接的UDP的特点。
(4)⾯向连接的TCP的特点。
(5)在不可靠的⽹络上实现可靠传输的⼯作原理,停⽌等待协议和ARQ协议。
(6)TCP的滑动窗⼝、流量控制、拥塞控制和连接管理。
⼀、运输层概述1.进程之间的通信运输层向它上⾯的应⽤层提供通信服务,它属于⾯向通信部分的最⾼层,同时也是⽤户功能中的最低层。
我们知道,IP协议能够把源主机A 发送出的分组按照⾸部中的⽬的地址送交到⽬的主机B,那么,为什么还需要运输层呢?这是因为,真正进⾏通信的实体是在主机中的进程,是这个主机中的⼀个进程和另⼀个主机中的⼀个进程在交换数据(即通信)。
IP协议虽然能把分组送到⽬的主机,但是这个分组还停留在主机的⽹络层⽽没有交付主机中的应⽤进程。
⽹络层是为主机之间提供逻辑通信,⽽运输层为应⽤进程之间提供端到端的逻辑通信。
运输层有⼀个很重要的功能⼀⼀复⽤和分⽤。
复⽤是指应⽤层所有的应⽤进程都可以通过运输层再传送到IP层(⽹络层)。
分⽤是指运输层从IP层收到数据后必须交付指明的应⽤进程。
2.运输层的两个主要协议⾯向连接的TCP和⽆连接的UDP。
当运输层采⽤TCP协议时,尽管下⾯的⽹络是不可靠的(只提供尽最⼤努⼒服务),但这种逻辑通信信道就相当于⼀条全双⼯的可靠信道。
但当运输层采⽤⽆连接的 UDP协议时,这种逻辑通信信道仍然是⼀条不可靠信道。
UDP在传送数据之前不需要先建⽴连接。
远地主机的运输层在收到UDP报⽂后,不需要给出任何确认。
虽然UDP不提供可靠交付,但在某些情况下UDP却是⼀种最有效的⼯作⽅式。
TCP则提供⾯向连接的服务。
在传送数据之前必须先建⽴连接,数据传送结束后要释放连接。
3.运输层的端⼝应⽤层的进程是很多的,需要将它们区分开来,为每个进程赋予⼀个⾮常明确的标志⾄关重要。
TCP IP协议簇之运输层
TCP/IP协议族之运输层(TCP流量控制和拥塞控制[1])TCP的流量控制1. 利用滑动窗口实现流量控制如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。
所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。
利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。
设A向B发送数据。
在连接建立时,B告诉了A:“我的接收窗口是rwnd = 400 ”(这里的rwnd表示receiver window) 。
因此,发送方的发送窗口不能超过接收方给出的接收窗口的数值。
请注意,TCP的窗口单位是字节,不是报文段。
TCP连接建立时的窗口协商过程在图中没有显示出来。
再设每一个报文段为100字节长,而数据报文段序号的初始值设为1。
大写ACK 表示首部中的确认位ACK,小写ack表示确认字段的值ack。
从图中可以看出,B进行了三次流量控制。
第一次把窗口减少到rwnd = 300 ,第二次又减到了rwnd = 100 ,最后减到rwnd = 0 ,即不允许发送方再发送数据了。
这种使发送方暂停发送的状态将持续到主机B重新发出一个新的窗口值为止。
B向A发送的三个报文段都设置了ACK = 1 ,只有在ACK=1时确认号字段才有意义。
TCP为每一个连接设有一个持续计时器(persistence timer)。
只要TCP连接的一方收到对方的零窗口通知,就启动持续计时器。
若持续计时器设置的时间到期,就发送一个零窗口控测报文段(携1字节的数据),那么收到这个报文段的一方就重新设置持续计时器。
2. 必须考虑传输速率可以用不同的机制来控制TCP报文段的发送时机。
如: <1>. TCP维持一个变量,它等于最大报文段长度MSS。
只要缓存中存放的数据达到MSS字节时,就组装成一个TCP报文段发送出去。
<2>. 由发送方的应用进程指明要求发送报文段,即TCP支持的推送( push )操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TCP/IP的运输层
UDP只提供应用进程寻址和简单的差错 检测功能,它不能向应用层保证数据的 可靠性 TCP除了应用进程寻址的功能外,还能 为应用层提供可靠的数据传输服务,能 将数据顺序地、无错地、不丢失地交给 正确的应用进程,并具有流量控制和拥 塞控制的能力。
端口机制——应用进程寻址
运输层是为应用层服务的,多个应用层 协议可能会使用同一个运输层协议 运输层如何收到的数据交给正确的应用 层进程? TCP/IP提供了端口机制来解决这个问题
流量控制
流量控制中的两个问题
零窗口通告
使用坚持定时器解决
糊涂窗口症状
解决方案:
接收方不发送接收窗口太小的通告 ,等到接收缓存有了合适的 空余(如一半空闲)再发送窗口更新的通告 发送方也要暂时缓存一下要发送的数据,等数据达到合适的数 量(如至少达到接收方窗口的一半)再发送出去
端口在进程之间的通信中所起的作用
发送方 应用进程 应 用 层 端口 运 输 层 TCP 复用 TCP 报文段 网 络 层 IP 复用 UDP 复用 UDP 用户数据报 TCP 分解 TCP 报文段 IP 分解 端口 UDP 分解 UDP 用户数据报 接收方 应用进程
IP 数据报
IP 数据报
端口机制
UDP的差错检测
UDP提供了首部校验和字段来检测UDP数据报在传输 过程中的错误。一旦检测出错误,UDP会丢弃出错的 UDP数据报 UDP首部校验和的计算比较特殊,在计算校验和之 前,要在UDP报文前面添加一个伪首部
TCP
TCP是TCP/IP协议体系中运输层的重要 协议 TCP为应用层提供面向连接的、可靠的 数据传递服务 在提供数据可靠性的同时,TCP还为应 用层提供了全双工的数据传输服务 TCP还提供流量控制和拥塞控制的功能
TCP 首部
TCP 数据部分
IP 数据部分
TCP连接
TCP提供面向连接的传输服务。 利用TCP通信的两个应用进程要首先建立连 接。这个连接是软件意义上的连接,并不是一 条实际的物理线路 建立连接的目的是使通信双方在开始传输数据 前建立联系,使双方都确定对方愿意与之通 信;同时在建立连接的过程中相互传递和协商 一些必要的参数(如发送字节的起始编号和 MSS),为后面的数据传递打下基础。 建立连接的过程实际上是两端的TCP交换一些 特殊的TCP报文段来完成的
UDP特点
UDP不提供可靠的数据服务 ,数据可能 会丢失、乱序和重复 UDP采用无连接的工作方式 ,与寄信类 似。提供可选的差错检测功能。 UDP的效率比较高,适合于对实时性要 求高,但能够容忍部分数据丢失的应 用,如视频会议,音频数据传输等
使用UDP的应用层协议
应用 域名解析 网络管理 路由信息交换 简单文件传输 网络文件系统 IP电话 流式多媒体 应用层协议 DNS SNMP RIP TFTP NFS 专有协议 专有协议 运输层协议 UDP UDP UDP UDP UDP UDP UDP
数据出错的四种情况和处理
1.TCP报文段丢失 。发送方定时器超时,重传 2. TCP报文段里的数据出错。接收方丢弃出错 报文段,不发送确认。发送方定时器超时,重 传 3.TCP报文段的重复。接收方直接丢弃重复报 文段,同时发送确认 4. TCP报文段的乱序。TCP通常会选择缓存这 些乱序的报文,将其排序再上传给应用进程
TCP报文段的组成和封装
TCP接收应用层的数据,添加TCP首部后形成 TCP报文段 。TCP报文段需要被下层的IP协议 封装,发送到目的地 。 一个TCP报文段分为首部和数据二部分,TCP 的全部功能都体现在它首部中各字段的作用。 TCP报文段首部的前20个字节是固定的,后面 有4N字节是根据需要而增加的选项,因此TCP 首部的最小长度是20字节。
保活定时器
客户端可能处于以下的4个状态
客户端已经重启,这时客户端的TCP不会保 留原来连接的信息。当收到服务器的探测报 文后,客户端TCP会发送一个复位(RST) 的响应,服务器收到后便会关闭连接。 客户端依然活跃,但是始终都无法收到服务 器的探测报文(可能是由于网络拥塞造成 的)。这种情况同(2)类似,服务器收不 到响应,也会关闭连接。
对于知名的服务,如Web服务、FTP服 务等,使用的运输层协议和端口号都是 固定的,这些端口称为熟知端口,其数 值一般都小于1024 而对于客户进程,操作系统通常会随机 给它分配一个大于1024的端口号
端口机制
端口号只具有本地意义,即端口号只是为了标 志本计算机应用层中的各进程。在因特网中不 同计算机的相同端口号是没有联系的。 TCP/IP协议体系中,每个端口都有一个端口 号,这个端口号是一个16比特的数字,所以可 以允许有64K个端口 TCP和UDP的端口是各自独立的,TCP可以有 64K个端口,UDP也可以有64K个端口
32 bit
比特 0 8 源 端 口 序 号 TCP 首部 确 数据 偏移 保 留 检 验 和 选 项 (长 度 可 变) 认 号 窗 口 紧 急 指 针 填 充 20 字节的 固定首部 16 24 目 的 端 口 31
U A P R S F R C S S Y I G K H T N N
TCP 报文段 发送在前 IP 首部
确认和重传机制
每一方的TCP都要为所传输的数据编号,编号 以字节为单位 如果收到了编号正确的数据,那么就要给对方 发送确认 确认也可能在中途丢失,从而造成对方无法收 到确认的情况。在发出一个TCP报文段后,就 启动一个定时器,如果定时器时间到了但确认 还没有来,那么就重传一次这个报文
确认和重传机制
重传定时器
在发送一个TCP报文后,就会启动重传 定时器。 如果在定时器截止时间之前收到了确 认,就撤销这个定时器。如果定时器时 间到了,确认还没有收到,就重传该报 文并将定时器复位。 随着网络情况不断在发生变化,重传定 时器的时间设定也会跟随变化 。
流量控制
在建立连接时,TCP连接的每一端都会 为这个连接分配一定数量的缓存。当收 到正确的字节后,就会将数据放入缓存 如果发送方继续快速地发送数据,那么 缓存就会被充满,最后溢出 需要有一种机制来控制发送方发送数据 的速度,保证接收缓存不溢出,这种机 制称为流量控制
UDP数据报格式
UDP数据报由UDP首部和其封装的应用 层数据组成,是UDP协议的传输单元
UDP数据报格式
源端口是指发送方应用进程对应的端口号 目的端口是指接收方应用进程对应的端口号 长度字段的值给出了UDP数据报(包括首部和 数据)的字节数 校验和用来检测UDP报文在传输中的错误。 UDP报文的校验是可选的,如果校验和的值为 0,则表示没有校验
保活定时器
客户端可能处于以下的4个状态
客户端依然活跃,并且收到了服务器的探测 报文。客户端的TCP便会发出响应报文,使 服务器知道自己仍然处于活动状态。服务器 的TCP会将保活定时器复位,保持这个连接 客户端已经崩溃,并且已经关机。此时服务 器TCP不会收到任何响应。然后服务器TCP 每隔75秒发送一个探测报文,如果发送了 10个探测报文仍没有回应,那么服务器就 关闭连接,释放相应的资源。
流量控制
在建立连接的过程中,双方可以通过通告窗口字 段的值来告知对方自己接收缓存的大小。这样可 以保证第一次发送数据时不会造成对方接收缓存 溢出 在以后的数据传递过程中,TCP利用首部中的窗 口字段通知对方自己的接收缓存大小 ,可变窗 口。 窗口和MSS的区别:MSS是一个报文的最大长 度。而窗口则是所能发送的所有数据总数,它可 以是多个报文段,但每个报文段必须满足MSS的 限制,同时其数据总和不能超过窗口大小。
端口机制
端口是一种软件结构,是运输层协议和 应用层协议交互时的接口,每个端口有 一个唯一的端口号,并且有相应的输入 和输出缓存。 一个应用进程通过系统调用可以绑定到 运输层协议(UDP或TCP)的一个端口 上 端口和应用进程是一一对应的,通过端 口号就能确定对应的应用进程
端口机制
首部中包含源端口(发送方)和目的端口(接 收方)
计算机网络
第4章 运输层
靳 海 轶
东软信息学院计算机系网络教研室
本章学习要点
理解运输层的必要性 掌握运输层的功能和任务 理解端口机制和多路复用、多路分解 掌握TCP、UDP各自特点、格式 掌握TCP连接管理 理解TCP流量控制、差错控制和拥塞控 制原理
运输层的必要性
网络层不能直接为应用层服务,因为分 组交换技术可能会带来数据的丢失、乱 序、重复等问题。 另外如何确定应用程序的地址也是网络 层所不能解决的。 因此,运输层的存在是十分必要的。
运输层为相互通信的应用进程提供了 逻辑通信
5 4 3 2 1 主机 A AP1 AP2 路由器 1 LAN1 WAN IP 协议的作用范围 运输层协议 TCP 和 UDP 的作用范围 路由器 2 LAN2 主机 B AP3 AP4 IP 层 AP1 AP 2 应用进程 应用进程 端口 运输层提供应用进程间的逻辑通信 端口 AP3 AP4 5 4 3 2 1
运输层的功能
运输层为应用进程之间提供端到端的逻 辑通信(但网络层是为主机之间提供逻 辑通信)。
应用进程寻址 提供数据的可靠传递 流量控制 拥塞控制
TCP/IP的运输层
在TCP/IP协议体系中,运输层有两个协 议
传输控制协议(Transfer Control Protocol,TCP),提供可靠的、面向连接 的服务。 用户数据报协议(User Datagram Protocol,UDP),提供不可靠的、无连 接的服务。
主机 A 主机 B
主动打开 连接请求 SYN, seq = x
ACK, ack= x + 1 SYN, seq = y
被动打开
确认
用三次握手建立 TCP 连接
主机 A 主机 B
主动打开 连接请求 SYN, seq = x
ACK, ack= x + 1 SYN, seq = y