计算机网络运输层.ppt
- 文档编号:18069692
- 上传时间:2023-08-08
- 格式:PPT
- 页数:97
- 大小:1.72MB
计算机网络运输层.ppt
《计算机网络运输层.ppt》由会员分享,可在线阅读,更多相关《计算机网络运输层.ppt(97页珍藏版)》请在冰点文库上搜索。
第7章运输层/传输层,第7章运输层,第7章知识点结构,传输层的功能:
在整个数据传输过程中,传输层需要完成以下几个功能:
(1)为端到端连接提供传输服务
(2)传输层寻址:
端口地址(3)TCP的面向连接:
传输连接建立、数据传输、传输连接释放(4)流量控制:
滑动窗口机制(5)拥塞控制:
4种方法(6)端口的复用和分用等。
7.1.1进程之间的通信,两个主机进行通信实际上就是两个主机中的应用进程互相通信,又称为端到端的通信。
运输层协议为运行在不同主机上的应用进程之间提供逻辑通信。
7.1运输层协议概述,运输层为相互通信的应用进程提供了逻辑通信,54321,主机A,主机B,应用进程,应用进程,路由器1,路由器2,AP1,LAN2,WAN,AP2,AP3,AP4,IP层,LAN1,AP1,AP2,AP4,端口,端口,54321,IP协议的作用范围,运输层协议TCP和UDP的作用范围,AP3,运输层协议和网络层协议的主要区别,数据链路层:
结点之间的,7.1.2运输层的主要协议,
(1)用户数据报协议UDP(UserDatagramProtocol)
(2)传输控制协议TCP(TransmissionControlProtocol)(3)流控制传输协议SCTP(StreamControlTransmissionProtocol)是一种新的可靠的、面向报文的传输层协议。
7.1运输层协议概述,TPDU是传输层的协议数据单元TCP传送的数据单位协议是TCP报文段(segment)UDP传送的数据单位协议是UDP报文或用户数据报。
TCP与UDP的不同,TCP提供面向连接的服务。
在不可靠的IP服务基础上,提高传输的可靠性,比如,流量控制、拥塞控制和差错控制。
UDP是无连接的服务,不能提供可靠的传输服务,但较之TCP,简便快捷,服务效率高。
对方的运输层在收到UDP报文后,不需要给出任何确认。
P183-184参见表7-1,TCP与UDP协议的比较,7.1.3运输层的端口port,Q:
传输层为源和目的应用进程之间提供了端到端的逻辑通信采用何种机制?
基于端口机制,7.1.3运输层的端口port,协议端口(protocolport),简称端口:
TCP/UDP通过端口与上层的应用进程交互,端口标识了应用层中不同的进程。
端口机制提供了复用(multiplexing)和分用(demultiplexing)的功能。
端口在进程之间通信中所起的作用,端口的意义,端口用一个16bit的端口号进行标志。
端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。
在因特网中不同计算机的相同端口号是没有联系的。
保留端口:
全局方式进行统一分配并公布于众,又称为熟知端口(well-knownport)。
分配给服务器进程,每一种标准的服务器都分配有一个熟知端口号。
号码为0-1023,由IANA(因特网号码指派管理局)管理。
P185表7-3、7-4自由端口:
本地方式进行分配,用户可自由使用但必须在IANA按照规定的手续登记。
号码为1024-49151。
以上两种属于服务器端使用的端口号。
端口分类之一,UDP的熟知端口号的分配,TCP的熟知端口号的分配,端口分类之二,另一类则是客户端使用的端口号:
仅在客户进程运行时才动态选择暂时使用的,通信结束后,端口号不复存在。
基于C/S的应用程序进程标识方法,7.2用户数据报协议UDP,7.2.1UDP的特点UDP只提供端口形式的传输层寻址与一种可选的校验和功能;UDP是一种无连接的,不可靠的传输层协议,使用尽最大努力交付;UDP是面向报文的传输层协议。
UDP没有拥塞控制,很适合多媒体通信的要求。
UDP的特点,UDP支持一对一、一对多、多对一和多对多的交互通信。
UDP的首部开销小,只有8个字节。
UDP协议是一种适用于实时语音与视频传输的传输层协议。
优点见P186,UDP是面向报文的,IP数据报的数据部分,IP首部,IP层,UDP首部,UDP用户数据报的数据部分,运输层,应用层报文,应用层,如何理解面向报文的UDP?
发送方UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。
UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。
应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。
接收方UDP对IP层交上来的UDP用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。
应用程序必须选择合适大小的报文。
7.2.2UDP的首部格式,伪首部,源端口,目的端口,长度,检验和,数据,首部,UDP总长度,源IP地址,目的IP地址,0,17,IP数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数据,首部,UDP用户数据报,伪首部,源端口,目的端口,长度,检验和,数据,首部,UDP长度,源IP地址,目的IP地址,0,17,IP数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数据,首部,UDP用户数据报,用户数据报UDP有两个字段:
数据字段和首部字段。
首部字段有8个字节,由4个字段组成,每个字段都是两个字节。
其中数据部分必须是16位的倍数,不足的用0填充。
伪首部,源端口,目的端口,长度,检验和,数据,首部,UDP长度,源IP地址,目的IP地址,0,17,IP数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数据,首部,UDP用户数据报,检验和字段:
检验“数据和首部”。
而IP数据报中的检验和只检验IP数据报的首部。
它包括三个部分:
伪首部、UDP报头与应用层数据。
伪首部,源端口,目的端口,长度,检验和,数据,首部,UDP长度,源IP地址,目的IP地址,0,17,IP数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数据,首部,UDP用户数据报,伪首部:
仅仅是为了计算检验和。
在计算检验和时,临时把“伪首部”和UDP用户数据报连接在一起。
发送端计算UDP检验和的例子,1001100100010011153.1900001000011010008.1041010101100000011171.3000011100000101114.1100000000000100010和170000000000001111150000010000111111108700000000000011011300000000000011111500000000000000000(检验和)0101010001000101数据0101001101010100数据0100100101001110数据0100011100000000数据和0(填充)1001011011101101求和得出的结果0110100100010010检验和,153.19.8.104,171.3.14.11,12字节伪首部,8字节UDP首部,7字节数据,按二进制反码运算求和将得出的结果求反码,全0171510871315全0数据数据数据数据数据数据数据全0,7.3传输控制协议TCP,1、支持面向连接的传输服务应用程序在使用TCP传送数据之前,必须在源进程端口与目的进程端口之间建立一条传输连接;每个TCP连接唯一地用双方端口号来标识。
7.3.1TCP最主要的特点部分补充,2、支持可靠传输服务,TCP是一种可靠的传输服务协议,它使用确认机制检查数据是否安全和完整地到达,并且提供流量控制、拥塞控制功能;TCP支持可靠数据通信的关键是对发送和接收的数据进行跟踪、确认与重传;传输层传输的可靠性是建立在网络层基础上,同时也就会受到它们的限制。
3、支持全双工服务,TCP允许通信双方的应用程序在任何时候都可以发送数据;由于通信的双方都设置有发送和接收缓冲区,应用程序将要发送的数据字节提交给发送缓冲区,数据字节的实际发送过程由TCP协议来控制;接收端在接收到数据字节之后也将它存放到接收缓冲区,高层应用程序在它合适的时间到缓冲区中读取数据。
4、支持字节流的传输,流(stream)相当于一个管道,从一端放入什么内容,从另一端可以照原样取出什么内容,它描述了一个不出现丢失、重复和乱序的数据传输过程;TCP在传输过程中将应用程序提交的报文看成是一连串的、无结构的字节组成的数据流;,TCP协议支持字节流传输示意图,5、支持同时建立多个并发的TCP连接,根据应用程序的需要,TCP协议支持一个服务器与多个客户端同时建立多个TCP连接;也支持一个客户端与多个服务器同时建立多个TCP连接;TCP软件将分别管理多个TCP连接。
例如:
一个web服务器可同时处理多个客户端的访问。
TCP协议的特点总结:
面向连接的面向字节流的支持全双工支持并发连接提供可靠服务、确认重传与拥塞控制。
应当注意,TCP连接是一条虚连接而不是一条真正的物理连接。
TCP对应用进程一次把多长的报文发送到TCP的缓存中是不关心的。
TCP根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP发送的报文长度是应用进程给出的)。
TCP可把太长的数据块划分短一些再传送。
TCP也可等待积累有足够多的字节后再构成报文段发送出去。
7.3.2TCP的连接,TCP把连接作为最基本的抽象。
每一条TCP连接有两个端点。
TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是运输层的协议端口。
TCP连接的端点叫做套接字(socket)或插口。
端口号拼接到(contatenatedwith)IP地址即构成了套接字。
具体参见7.7,端点是什么?
套接字(socket),套接字socket=(IP地址:
端口号)(5-1)每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定。
即:
TCP连接:
=socket1,socket2=(IP1:
port1),(IP2:
port2)(5-2),7.7TCP的运输连接管理,运输连接就有三个阶段,即:
连接建立、数据传送和连接释放。
运输连接的管理就是使运输连接的建立和释放都能正常地进行。
连接建立过程中要解决以下三个问题:
要使每一方能够确知对方的存在。
要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。
能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。
1、TCP连接的三个阶段,客户服务器方式,TCP连接的建立都是采用客户服务器方式。
主动发起连接建立的应用进程叫做客户(client)。
被动等待连接建立的应用进程叫做服务器(server)。
7.3.3可靠传输的工作原理,停止等待协议(单帧)连续ARQ协议(多帧)参见数据链路层,TCP报头长度为2060字节,其中固定部分长度为20字节;选项部分长度可变,最多为40字节。
7.3.4TCP报文段的首部格式,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,源端口和目的端口字段各占2字节。
端口是运输层与应用层的服务接口。
运输层的复用和分用功能都要通过端口才能实现。
TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,序号字段占4字节。
TCP连接中传送的数据流中的每一个字节都编上一个序号。
序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,确认号字段占4字节,确认号表示一个进程已经正确接收序号为N的字节,要求发送方下一个应该发送序号为N+1的字节的报文段。
课堂练习:
P205,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,数据偏移(即首部长度)占4位,以4字节(32位)为一个单元来计算的,实际报头长度是在2060字节,因此这个字段的值是在5至15之间。
TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,保留字段占6位,保留为今后使用,但目前应置为0。
控制字段控制字段定义了6种不同的控制位或标志位;控制字段将在TCP的连接建立和终止、流量控制,以及数据传送中发挥作用。
49,TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,紧急URG当URG1时,表明紧急指针字段有效。
它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,确认ACK只有当ACK1时确认号字段才有效。
当ACK0时,确认号无效。
TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,推送PSH(PuSH)接收TCP收到PSH=1的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。
(将数据推向前),TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,复位RST(ReSeT)当RST1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,同步SYN同步SYN=1表示这是一个连接请求或连接接受报文。
TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,终止FIN(FINis)用来释放一个连接。
FIN1表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,窗口字段占2字节,它是作为接收方让发送方设置发送窗口的依据,单位为字节,动态变化的。
TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,检验和占2字节。
检验和字段检验的范围包括首部和数据这两部分。
在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。
TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,紧急指针字段占16位,指出在本报文段中紧急数据的字节数(紧急数据放在本报文段数据的最前面)。
只有当紧急标志URG=1时,这个位字段才有效,这时的报文段中包括紧急数据。
TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,比特08162431,填充,选项字段长度可变。
TCP最初只规定了一种选项,即最大报文段长度MSS。
MSS告诉对方TCP:
“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节。
”,MSS(MaximumSegmentSize)是TCP报文段中的数据字段的最大长度。
数据字段加上TCP首部才等于整个的TCP报文段。
TCP首部,20字节固定首部,目的端口,数据偏移,检验和,选项(长度可变),源端口,序号,紧急指针,窗口,确认号,保留,FIN,SYN,RST,PSH,ACK,URG,位08162431,填充,填充字段这是为了使整个首部长度是4字节的整数倍。
在TCP可靠传输方面,主要采用四种机制:
“字节编号机制”:
TCP数据段以字节为单位对数据段中的“数据部分”进行一一编号,确保每个字节的数据都可以有序传送和接收;“数据段确认机制”:
TCP协议要求每接收一个数据段都必须由接收端向发送端返回一个确认数据段(可以用一个确认数据段一次确认前面多个数据段),其中的“确认号”表明了接收端已正确接收的数据段序号(“确认号”前面的所有数据段);,7.4TCP的可靠传输,TCP确认机制的重要特性:
TCP可一次连续发送多个数据段仅对连续接收的数据段进行确认不连续序号的数据将先缓存。
“超时重传机制”:
超时重传是TCP协议保证数据可靠性的另一个重要机制,其原理是在发送某一个数据段以后就开启一个超时重传计时器(RetransmissionTimer,RTT),如果在这个定时器时间内没有收到来自对方的某个数据段的确认,发送端则启动重传机制,重新发送对应的数据段,直到发送成功为止。
“选择性确认(SelectiveACK,SACK)机制”:
在SACK支持下,仅可以重传缺少部分的数据,而不要重传那些已正确接收的数据。
就是在TC数据段格式的头部“可选项”字段中添加一个代表支持SACK的选项。
要使用SACK,首先必须在建立TCP传输连接时的SYN数据段中包含“SACK-Permit”(SACK允许)字段选项,表示在今后的传输中希望收到SACK选项。
然后在其它的数据段中需要包含“SACK”字段。
7.5TCP的流量控制7.5.1利用滑动窗口实现流量控制,一般说来,我们总是希望数据传输得更快一些。
但如果发送方把数据发送得过快,接收方就可能来不及接收,这就会造成数据的丢失。
流量控制(flowcontrol)就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。
利用以字节为单位滑动窗口机制可以很方便地在TCP连接上实现流量控制。
在建立连接时,双方通过连接相互通告各自的初始窗口大小。
在数据传输过程中,发送端按接收端发回的确认报文中的窗口值发送一定的数据量;接收端可根据接收缓冲区的使用状况动态地调整接收窗口大小,并在发送确认报文进行确认时捎带着将新的窗口大小通告给发送端。
发送端将按新的接收窗口尺寸来调整发送窗口大小,接收端也用新的接收窗口大小来验证新到达数据分组的可接受性。
注意:
传输层的滑动窗口机制与数据链路层协议流量控制中的固定滑动窗口有所不同。
传输层中的窗口值是随着数据的传输过程而不断变化的。
以字节为单位的滑动窗口,前移,不允许发送,已发送并收到确认,A的发送窗口=20,允许发送的序号,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,B期望收到的序号,前沿,后沿,前移,收缩,根据B给出的窗口值A构造出自己的发送窗口20,TCP标准强烈不赞成发送窗口前沿向后收缩,序号:
seq=1,DATA,seq=201,DATA,seq=401,DATA,seq=301,DATA,seq=101,DATA,seq=201,DATA,seq=501,DATA,ACK=1,ack=201,rwnd=300,ACK=1,ack=601,rwnd=0,ACK=1,ack=501,rwnd=100,A,B,允许A发送序号201至500共300字节,A发送了序号101至200,还能发送200字节,A发送了序号301至400,还能再发送100字节新数据,A发送了序号1至100,还能发送300字节,A发送了序号401至500,不能再发送新数据了,A超时重传旧的数据,但不能发送新的数据,允许A发送序号501至600共100字节,A发送了序号501至600,不能再发送了,不允许A再发送(到序号600为止的数据都收到了),丢失!
流量控制举例,A向B发送数据。
在连接建立时,B告诉A:
“我的接收窗口rwnd=400(字节)”。
注意:
只有当ACK=1时,确认号ack才有效。
利用滑动窗口实现流量控制P197,图7-15TCP利用窗口进行流量控制的过程示意图,死锁现象的解决:
设置持续计时器,TCP为每一个连接设有一个持续计时器。
只要TCP连接的一方收到对方的零窗口通知,就启动持续计时器。
若持续计时器设置的时间到期,就发送一个零窗口探测报文段(仅携带1字节的数据),而对方就在确认这个探测报文段时给出了现在的窗口值。
若窗口仍然是零,则收到这个报文段的一方就重新设置持续计时器。
若窗口不是零,则死锁的僵局就可以打破了。
7.6TCP的拥塞控制,7.6.1拥塞控制的一般原理拥塞控制就是要控制“网络拥塞”的出现。
当网络中各个部分输入的流量大于输出的流量时就会出现网络拥塞。
7.6.2几种拥塞控制方法,为了防止网络的拥塞现象,出现了一系列的TCP拥塞控制机制。
最初是由V.Jacobson在1988年的论文中提出的TCP的拥塞控制由“慢启动”和“拥塞避免”组成,后来在TCPReno版本中又针对性的加入了“快速重传”、“快速恢复”算法。
1999年公布的因特网建议标准定义了进行拥塞控制的四种方法:
慢开始、拥塞避免快重传、快恢复,1、拥塞窗口cwnd假设:
单向传递,接收方缓存大,是发送端根据自己估计的网络拥塞程度而设定的窗口
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 运输