3.2.3传输层协议(课件)-《计算机网络技术基础》同步教学(高教版)

2024-11-04
| 15页
| 260人阅读
| 40人下载
普通

内容正文:

传输层协议 传输层定义了主机应用程序之间端到端的连通性。传输层中最为常见的两个协议分别是传输控制协议TCP(Transmission Control Protocol)和用户数据包协议UDP(User Datagram Protocol)。 1 TCP 协议 01 UDP 协议 02 目录 CONTENTS 01 TCP协议 TCP是一种面向连接的传输层协议,可提供可靠的传输服务。 TCP 主机 A 主机B 请求 响应 TCP 连接 灵石县第一职业高级中学 TCP位于TCP/IP模型的传输层,它是一种面向连接的端到端协议。TCP作为传输控制协议,可以为主机提供可靠的数据传输。在本例中,两台主机在通信之前,需要TCP在它们之间建立可靠的传输通道。 端口号用来区分不同的网络服务。 TCP端口号 协议 端口号 FTP 21、20 HTTP 80 Telnet 23 SMTP 25 主机A HTTP服务器 Data S:1027 D:80 Data S:80 D:1027 灵石县第一职业高级中学 TCP允许一个主机同时运行多个应用进程。每台主机可以拥有多个应用端口,每对端口号、源和目标IP地址的组合唯一地标识了一个会话。端口分为知名端口和动态端口。有些网络服务会使用固定的端口,这类端口称为知名端口,端口号范围为0-1023。如FTP、HTTP、Telnet、SNMP服务均使用知名端口。动态端口号范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。 TCP头部 20字节 TCP Header Data IP Header SYN FIN RST URG 0 15 31 Destination Port Sequence Number Window Checksum Options Source Port Acknowledge Number Header length Resv. ACK PSH Urgent Pointer Padding 灵石县第一职业高级中学 TCP通常使用IP作为网络层协议,这时TCP数据段被封装在IP数据包内。 TCP数据段由TCP Header(头部)和TCP Data(数据)组成。TCP最多可以有60个字节的头部,如果没有Options字段,正常的长度是20字节。 TCP Header是由如上图标识的一些字段组成,这里列出几个常用字段。 16位源端口号:源主机的应用程序使用的端口号。 16位目的端口号:目的主机的应用程序使用的端口号。每个TCP头部都包含源和目的端的端口号,这两个值加上IP头部中的源IP地址和目的IP地址可以唯一确定一个TCP连接。 32位序列号:用于标识从发送端发出的不同的TCP数据段的序号。数据段在网络中传输时,它们的顺序可能会发生变化;接收端依据此序列号,便可按照正确的顺序重组数据。 32位确认序列号:用于标识接收端确认收到的数据段。确认序列号为成功收到的数据序列号加1。 4位头部长度:表示头部占32bit字的数目,它能表达的TCP头部最大长度为60字节。 16位窗口大小:表示接收端期望通过单次确认而收到的数据的大小。由于该字段为16位,所以窗口大小的最大值为65535字节,该机制通常用来进行流量控制。 16位校验和:校验整个TCP报文段,包括TCP头部和TCP数据。该值由发送端计算和记录并由接收端进行验证。 TCP通过三次握手建立可靠连接。 TCP建立连接的过程 Send SYN Send SYN,ACK Send ACK 主机A 服务器 A (seq=a, SYN) (seq=b,ack=a+1, SYN,ACK) (seq=a+1,ack=b+1, ACK) 灵石县第一职业高级中学 TCP是一种可靠的,面向连接的全双工传输层协议。 TCP连接的建立是一个三次握手的过程。如图所示: 主机A(通常也称为客户端)发送一个标识了SYN的数据段,表示期望与服务器A建立连接,此数据段的序列号(seq)为a。 服务器A回复标识了SYN+ACK的数据段,此数据段的序列号(seq)为b,确认序列号为主机A的序列号加1(a+1),以此作为对主机A的SYN报文的确认。 主机A发送一个标识了ACK的数据段,此数据段的序列号(seq)为a+1,确认序列号为服务器A的序列号加1(b+1),以此作为对服务器A的SYN报文的确认。 TCP传输过程 数据段N 确认号M+1500 确认号 M+1500 数据段N+1 数据段N+2 数据段N+3 数据段N+4 数据段N+5 数据段N+3 数据段N+4 数据段N+5 Seq:M-M+499 Seq:M+500-M+999 Seq:M+1000-M+1499 Seq:M+1500-M+1999 Seq:M+2000-M+2499 Seq:M+2500-M+2999 Seq:M+1500-M+1999 Seq:M+2000-M+2499 Seq:M+2500-M+2999 主机 A 服务器 A 灵石县第一职业高级中学 TCP的可靠传输还体现在TCP使用了确认技术来确保目的设备收到了从源设备发来的数据,并且是准确无误的。 确认技术的工作原理如下: 目的设备接收到源设备发送的数据段时,会向源端发送确认报文,源设备收到确认报文后,继续发送数据段,如此重复。 如图所示,主机A向服务器A发送TCP数据段,为描述方便假定每个数据段的长度都是500个字节。当服务器A成功收到序列号是M+1499的字节以及之前的所有字节时,会以序列号M+1499+1=M+1500进行确认。另外,由于数据段N+3传输失败,所以服务器A未能收到序列号为M+1500的字节,因此服务器A还会再次以序列号M+1500进行确认。 TCP流量控制 ack 3073 window 3072 ack 6145 window 3072 length 1024 window 4096 length 1024 window 3072 length 1024 window 3072 主机 A 服务器 A length 1024 window 4096 length 1024 window 4096 length 1024 window 4096 length 1024 window 3072 服务器A收到第3个数据段后,缓存区满,第4个数据段被丢弃。 length 1024 window 3072 length 1024 window 3072 length 1024 window 3072 灵石县第一职业高级中学 TCP滑动窗口技术通过动态改变窗口大小来实现对端到端设备之间的数据传输进行流量控制。 如图所示,主机A和服务器A之间通过滑动窗口来实现流量控制。为方便理解,此例中只考虑主机A发送数据给服务器A时,服务器A通过滑动窗口进行流量控制。 主机A向服务器发送4个长度为1024字节的数据段,其中主机的窗口大小为4096个字节。服务器A收到第3个数据段后,缓存区满,第4个数据段被丢弃。服务器以ACK 3073响应,窗口大小调整为3072,表明服务器的缓冲区只能处理3072个字节的数据段。于是主机A改变其发送速率,发送窗口大小为3072的数据段。 主机在关闭连接之前,要确认收到来自对方的ACK。 TCP关闭连接 主机 A 服务器 A 关闭 关闭 FIN,ACK(seq=a,ack=b) ACK(seq=b,ack=a+1) FIN,ACK(seq=b,ack=a+1) ACK(seq=a+1,ack=b+1) 灵石县第一职业高级中学 TCP支持全双工模式传输数据,这意味着同一时刻两个方向都可以进行数据的传输。在传输数据之前,TCP通过三次握手建立的实际上是两个方向的连接,因此在传输完毕后,两个方向的连接必须都关闭。 TCP连接的建立是一个三次握手的过程,而TCP连接的终止则要经过四次握手。 如图所示: 主机A想终止连接,于是发送一个标识了FIN,ACK的数据段,序列号为a,确认序列号为b。 服务器A回应一个标识了ACK的数据段,序列号为b,确认序号为a+1,作为对主机A的FIN报文的确认。 服务器A想终止连接,于是向主机A发送一个标识了FIN,ACK的数据段,序列号为b,确认序列号为a+1。 主机A回应一个标识了ACK的数据段,序列号为a+1,确认序号为b+1,作为对服务器A的FIN报文的确认。 以上四次交互便完成了两个方向连接的关闭。 02 UDP协议 UDP是一种面向无连接的传输层协议,传输可靠性没有保证。 UDP 请求 主机A 主机 B 响应 灵石县第一职业高级中学 当应用程序对传输的可靠性要求不高,但是对传输速度和延迟要求较高时,可以用UDP协议来替代TCP协议在传输层控制数据的转发。UDP将数据从源端发送到目的端时,无需事先建立连接。UDP采用了简单、易操作的机制在应用程序间传输数据,没有使用TCP中的确认技术或滑动窗口机制,因此UDP不能保证数据传输的可靠性,也无法避免接收到重复数据的情况。 UDP头部仅占8字节,传输数据时没有确认机制。 UDP头部 UDP Header Data 0 15 16 31 8 字节 Destination port Length Source port Checksum IP Header 协议 端口号 DNS 53 SNMP 161 灵石县第一职业高级中学 UDP报文分为UDP报文头和UDP数据区域两部分。报头由源端口、目的端口、报文长度以及校验和组成。UDP适合于实时数据传输,如语音和视频通信。相比于TCP,UDP的传输效率更高、开销更小,但是无法保障数据传输的可靠性。UDP头部的标识如下: 16位源端口号:源主机的应用程序使用的端口号。 16位目的端口号:目的主机的应用程序使用的端口号。 16位UDP长度:是指UDP头部和UDP数据的字节长度。因为UDP头部长度为8字节,所以该字段的最小值为8。 16位UDP校验和:该字段提供了与TCP校验字段同样的功能;该字段是可选的。 使用UDP传输数据时,由应用程序根据需要提供报文到达确认、排序、流量控制等功能。 UDP传输过程 主机 A 主机B 灵石县第一职业高级中学 主机A发送数据包时,这些数据包是以有序的方式发送到网络中的,每个数据包独立地在网络中被发送,所以不同的数据包可能会通过不同的网络路径到达主机B。这样的情况下,先发送的数据包不一定先到达主机B。因为UDP数据包没有序号,主机B将无法通过UDP协议将数据包按照原来的顺序重新组合,所以此时需要应用程序提供报文的到达确认、排序和流量控制等功能。通常情况下,UDP采用实时传输机制和时间戳来传输语音和视频数据。 UDP不提供重传机制,占用资源小,处理效率高。 一些时延敏感的流量,如语音、视频等,通常使用UDP作为传输层协议。 UDP传输过程 视频流/语音流 主机 A 主机 B 丢包 灵石县第一职业高级中学 UDP适合传输对时延敏感的流量,如语音和视频。 在使用TCP协议传输数据时,如果一个数据段丢失或者接收端对某个数据段没有确认,发送端会重新发送该数据段。 TCP重新发送数据会带来传输延迟和重复数据,降低了用户的体验。对于时延敏感的应用,少量的数据丢失一般可以被忽略,这时使用UDP传输将能够提升用户的体验。 $$

资源预览图

3.2.3传输层协议(课件)-《计算机网络技术基础》同步教学(高教版)
1
3.2.3传输层协议(课件)-《计算机网络技术基础》同步教学(高教版)
2
3.2.3传输层协议(课件)-《计算机网络技术基础》同步教学(高教版)
3
3.2.3传输层协议(课件)-《计算机网络技术基础》同步教学(高教版)
4
3.2.3传输层协议(课件)-《计算机网络技术基础》同步教学(高教版)
5
3.2.3传输层协议(课件)-《计算机网络技术基础》同步教学(高教版)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。