版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第八章运输层教学目标:理解运输层的功能;理解网络进程通信和服务质量的概念;
掌握TCP/IP端口概念、端口号的分配方式;掌握TCP/IP运输层的协议组成及特点;理解TCP可靠传输服务的实现机制;教学难点与重点:
TCP协议,端口与套接字的概念。第8章运输层
8.1运输层协议概述8.2用户数据报协议UDP8.3传输控制协议TCP
8.1运输层协议概述8.1.1运输层概述8.1.2运输层中的两个协议8.1.3运输层的端口8.1.1运输层概述从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。物理层网络层运输层应用层数据链路层面向信息处理面向通信运输层为相互通信的应用进程提供了逻辑通信
54321运输层提供应用进程间的逻辑通信主机A主机B应用进程应用进程路由器1路由器2AP1LAN2WANAP2AP3AP4IP层LAN1AP1AP2AP4端口端口54321IP协议的作用范围运输层协议TCP和UDP的作用范围AP3运输层和网络层的主要区别
应用进程…
应用进程…
IP协议的作用范围(提供主机之间的逻辑通信)TCP和UDP协议的作用范围(提供进程之间的逻辑通信)因特网运输层的OSI表示法
运输实体运输实体运输协议运输层层接口运输服务用户(应用层实体)运输服务用户(应用层实体)层接口网络层(或网际层)应用层主机A主机B运输层服务访问点TSAP网络层服务访问点NSAP8.1.2运输层中的两个协议在TCP/IP协议中,有两个运输层协议:传输控制协议TCP(TransmissionControlProtocol)是可靠的面向连接的协议通过TCP协议进行传输的数据称为报文段用户数据报协议UDP(UserDatagramProtocol)是不可靠的面向非连接的协议通过UDP协议传输的数据称为用户数据报使用UDP和TCP协议的各种应用8.1.3端口的概念端口是用来标志应用层的进程。端口的作用就是让应用层的各种应用进程都能将其数据通过端口向下交付给运输层,以及让运输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。端口用一个16bit端口号进行标志端口号只具有本地意义端口在进程之间的通信中所起的作用应用层运输层网络层TCP报文段UDP用户数据报应用进程TCP复用
IP复用UDP复用
TCP报文段UDP用户数据报
应用进程端口端口TCP分用UDP分用IP分用IP数据报IP数据报发送方接收方两类端口服务器端使用的端口熟知端口:其数值一般为0~1023。登记端口:其数值一般为1024~49151。客户端使用的端口动态端口:其数值一般为49152~65535。用来随时分配给请求通信的客户进程。套接字(socket)TCP使用“连接”(而不仅仅是“端口”)作为最基本的抽象,同时将TCP连接的端点称为套接字(socket),或插口、套接口。套接字和端口、IP地址的关系是:IP地址3端口号1500
3:1500套接字(socket)思考题某主机的IP地址是01,运行了3个应用程序:浏览器、QQ和迅雷下载,分别绑定在端口:50333、55443和59932上。如果该主机接收到4个IP数据报,每个IP数据报的{目的IP:目的PORT}分别是:数据报1{01:55443}、数据报2{01:59932}、数据报3{01:50333}和数据报4{01:10000},那么这些数据报会分别上交给哪个应用进程?思考题答案数据报1交给QQ进程数据报2交给迅雷下载进程数据报3交给浏览器进程数据报4被主机丢弃8.2用户数据报协议UDP
8.2.1UDP概述
8.2.2UDP用户数据报的首部格式8.2.1UDP概述
UDP只在IP的数据报服务之上增加端口的功能和差错检测的功能UDP用户数据报提供不可靠的交付,其特点是:是无连接的没有拥塞控制使用尽最大努力交付是面向报文的支持一对一、一对多、多对一和多对多的通信首部开销小
8.2.2UDP用户数据报的
首部格式IP数据报的数据部分IP首部网络层UDP首部UDP用户数据报的数据部分运输层应用层报文应用层8.2.2UDP用户数据报的
首部格式伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报用户数据报UDP有两个字段:数据字段和首部字段。首部字段有8个字节,由4个字段组成,每个字段都是两个字节。伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报在计算检验和时,临时把“伪首部”和UDP用户数据报连接在一起。伪首部仅仅是为了计算检验和。想一想某UDP用户数据报的首部用十六进制表示是:F6320045001CE217。试求源端口、目的端口、用户数据报的总长度、数据部分长度。这个用户数据报是从客户发送给服务器还是服务器发送给客户?使用UDP的这个服务器程序是什么?参考答案源端口号:63026目的端口号:69用户数据报的总长度为:28字节数据部分长度为:20字节使用UDP的这个服务器程序是:TFTP8.3传输控制协议TCP8.3.1TCP概述8.3.2可靠传输的工作原理8.3.3TCP报文段的首部8.3.4TCP的数据编号与确认8.3.5TCP的运输连接管理8.3.6TCP的流量控制8.3.7TCP的拥塞控制8.3.1TCP概述TCP的主要特点:TCP是面向连接的运输层协议高可靠性全双工通信面向字节流只支持一对一的通信
TCP面向字节流的概念
端口…发送
TCP
报文段TCP…TCP接收缓存发送缓存报文段…报文段报文段端口发送端A接收端B向发送缓存写入数据块从接收缓存读取数据块应用进程应用进程
8.3.2可靠传输的工作原理停等协议窗口机制停等协议停等协议
为解决“死锁”问题:主机A在发送完一个报文段时,就启动一个超时计时器(timeouttimer)若超时计时器终止时A仍未得到主机B的任何确认,A就重传前面所发送的报文段超时重传时间略大于“从发送完报文段到收到确认所需的平均时间”停等协议为解决重复报文段问题:使每一个报文段带上不同的发送序号若主机B收到发送序号相同的报文段,就表明出现了重复,这时应丢弃重复的报文段此时主机B还必须向A发送确认停等协议停等协议优点:比较简单缺点:通信信道的利用率不高窗口机制发送方在发送完一个报文段后,不是停下来等待确认,而是可以连续再发送若干个报文段。如果这时收到了接收端发来的确认,那么还可以接着发送报文段。由于减少了等待时间,整个通信的吞吐量就提高了。发送端和接收端分别设定发送窗口和接收窗口。发送窗口的大小代表在还没有收到对方确认信息的情况下发送端最多可以发送多少个报文段。TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32bitSYNRSTPSHACKURG比特08162431填充TCP数据部分TCP首部TCP报文段IP数据部分IP首部发送在前TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充源端口和目的端口字段——各占2字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充序号字段——占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充确认号字段——占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充数据偏移——占4bit,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。“数据偏移”的单位不是字节而是32bit字(4字节为计算单位)。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充保留字段——占6bit,保留为今后使用,但目前应置为0。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充紧急比特URG——当URG
1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充确认比特ACK——只有当ACK
1时确认号字段才有效。当ACK
0时,确认号无效。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充推送比特PSH(PuSH)——接收TCP收到推送比特置1的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充复位比特RST(ReSeT)——当RST
1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充同步比特SYN——同步比特SYN置为1,就表示这是一个连接请求或连接接收报文。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充终止比特FIN(FINal)——用来释放一个连接。当FIN
1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充窗口字段——占2字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充检验和——占2字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充紧急指针字段——占16bit。紧急指针指出:在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。
TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充选项字段——长度可变。TCP只规定了一种选项,即最大报文段长度
MSS(MaximumSegmentSize)。MSS告诉对方TCP:“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节。”MSS是TCP报文段中的数据字段的最大长度。数据字段加上TCP首部才等于整个的TCP报文段。TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充填充字段——这是为了使整个首部长度是4字节的整数倍。想一想设TCP连接两端分别记为A和B若A发出一序号字段为101,数据部分长度为200字节的报文段,该报文段正确到达B,则B发出的报文段中确认号字段值为多少?若B发出的报文段中窗口字段值为500,那么在收到确认报文前A最多可发送多少字节数据?A发出的下一个报文段中序号字段值为多少?3015003018.3.4TCP的数据编号与确认TCP将所要传送的报文看成是字节组成的数据流,并使每一个字节对应于一个序号。在连接建立时,双方要商定初始序号。TCP每次发送的报文段的首部中的序号字段数值表示该报文段中的数据部分的第一个字节的序号。
主机B主机A1110
987seq7
1413
12seq1217
16
15seq1520
19
18seq1824
23
22
21seq218.3.4TCP的数据编号与确认TCP的确认是对接收到的数据的最高序号表示确认。接收端返回的确认号是已收到的数据的最高序号加1。确认号表示接收端期望下次收到的数据中的第一个数据字节的序号。
通常采取捎带确认ack:12主机A主机B报文段1seq:7,5Bytes报文段2seq:12,3Bytesack:15TCP报文段的确认编号主机B主机A1110
9
87seq71413
12seq1217
16
15seq1520
19
18seq1824
23
22
21seq218.3.4TCP的数据编号与确认若收到的报文段无差错,只是未按序号,那么应如何处理?将不按序的报文段丢弃;先将其暂存于接收缓存内,待所缺序号的报文段收齐后再一起上交应用层。想一想在基于TCP/IP的互联网中,IP协议提供主机之间的()分组传输服务。TCP协议提供端口之间的()报文传输服务。为了实现可靠、高效的传输服务,TCP协议采用超时重传、捎带确认技术。其中捎带确认技术指的是在反方向的通信中捎带()的序号以减少通信量。1A可靠的面向连接的B不可靠的面向连接的
C可靠的无连接的D不可靠的无连接的2A可靠的面向连接的B不可靠的面向连接的
C可靠的无连接的D不可靠的无连接的3A上一个已接收的报文段B下一个期望接收的报文段
C正在发送的报文段D下一个将要发送的报文段DAB8.3.5TCP的运输连接管理运输连接有三个阶段:连接建立、数据传送和连接释放。连接建立过程中要解决以下三个问题要使每一方能够确知对方的存在。要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。8.3.5TCP的运输连接管理TCP连接的建立都是采用客户服务器方式主动发起连接建立的应用进程叫做客户(client)。被动等待连接建立的应用进程叫做服务器(server)。用三次握手建立TCP连接SYN=1,seq=x主机BSYN=1,ACK=1,seq=y,ack=x
1ACK=1,seq=x+1,ack=y
1被动打开主动打开确认确认主机A连接请求为什么要发送第三个报文?x,y的值有没有关系?防止已失效的连接请求报文段突然传到了主机B,因而产生错误。注意:1.建立连接时发送的报文段不包含数据部分。2.如果与服务器无法建立连接,客户端就会再次向服务器发送连接请求。在规定的时间内服务器未应答,则连接失败。用三次握手建立TCP连接练习TCP使用初始序号14534打开一个连接,另一端使用初始序号21732打开一个连接,试画出建立连接的过程,需要标出SYN、SEQ、ACK等字段。TCP连接释放的过程FIN=1,seq=xACK=1,seq=y,ack=x
1ACK=1,seq=x+1,ack=y
1应用进程释放连接A不再发送报文FIN=1,ACK=1,seq=y,ack=x+1主机B主机A通知主机应用进程①应用进程释放连接B不再发送报文②确认确认从A到B的连接就释放了,连接处于半关闭状态。相当于A向B说:“我已经没有数据要发送了。但你如果还发送数据,我仍接收。”至此,整个连接已经全部释放。TCP的正常的连接建立和关闭SYN=1,seq=x客户进程服务器进程(被动打开)(主动打开)主动关闭被动关闭释放连接(全双工数据传送阶段)SYN=1,ACK=1,seq=y,ack=x+1ACK=1,seq=x+1,ack=y+1FIN=1,seq=uACK=1,seq=v,ack=u+1FIN=1,ACK=1,seq=v,ack=u+1ACK=1,seq=u+1,ack=v+1发送确认发送确认发送确认连接请求发送确认想一想TCP使用3次握手协议来建立连接,假设甲乙双方发送报文段的初始序号分别为X和Y,甲方发送()报文段给乙方,乙方接收报文段后发送()的报文段给甲方,然后甲方发送一个确认报文段给乙方,这样就在甲乙双方之间建立了一条TCP连接。1.ASYN=1,seq=XBSYN=1,seq=X+1,ack=XCSYN=1,seq=YDSYN=1,seq=X+1,ack=Y2.ASYN=1,seq=X+1BSYN=1,seq=X+1,ack=XCSYN=1,seq=YDSYN=1,seq=Y,ack=X+1,ACK=1
AD8.3.6TCP的流量控制TCP采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。在TCP报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。发送窗口在连接建立时由双方商定。但在通信的过程中,可动态地调整TCP的接收窗口接收窗口对接收的报文段进行字节流排序上层可以一次1字节或多字节提取字节流下层(IP层)一个、一个报文段提交给TCP接收窗口已提交已排序未提交零散段部分排序,中间有空缺可用缓冲区TCP的发送窗口发送窗口发送缓冲区中可以发送的数据流长度应用数据可一次1或多字节送交至TCP发送缓冲区发送窗口随确认过程滑动已发未确认——等待确认或重发可以发送——当前仍未发出,其数据将切割成适当的报文段后发送14131211109876543211615已发送并确认滑动窗口已发送未确认不能发送可以发送传输边界左右收到确认即可前移1002003004005006007008009001012013014015016017018011发送窗口可发送不可发送传输边界指针例:发送端要发送900字节长的数据,划分为9个100字节长的报文段,而发送窗口确定为500字节。发送端只要收到了对方的确认,整个发送窗口就可前移。
发送TCP要维护一个传输边界指针。每发送一个报文段,指针就向前移动一个报文段的距离。滑动窗口发送端已发送了400字节的数据,但只收到对前200字节数据的确认,同时发送窗口大小仍为500字节。现在发送端还可发送300字节。收到确认即可前移1002003004005006007008009001012013014015016017018011发送窗口可发送不可发送传输边界指针900已发送并被确认已发送但未被确认1002003004005006007008001012013014015016017018011可发送不可发送发送窗口前移发送端收到了对方对前400字节数据的确认,但对方通知发送端必须把窗口减小到400字节。现在发送端最多还可发送400字节的数据。1002003004005006007008009001012013014015016017018011可发送不可发送指针发送窗口前移已发送并被确认已发送但未被确认1002003004005006007008009001012013014015016017018011已发送并被确认可发送不可发送指针发送窗口缩小滑动窗口零接收窗口:如果TCP不能再接收更多的数据,它通过发送一个通知窗口大小为0的ACK数据包来关闭接收窗口。
接收到零窗口通知后,发送方定时发送探测数据报,接收TCP如果可以继续接收数据则发送一个非0窗口ACK.
双方TCP软件根据新的窗口大小继续通信。8.3.7TCP的拥塞控制在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏——产生拥塞(congestion)。出现资源拥塞的条件:对资源需求的总和>可用资源
若网络中有许多资源同时产生拥塞,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。
拥塞控制与流量控制的关系拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。
流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。
接收端窗口rwnd
和拥塞窗口cwnd发送端的主机在确定发送报文段的速率时,既要根据接收端的接收能力,又要从全局考虑不要使网络发生拥塞。因此,每一个TCP连接需要有以下两个状态变量:接收端窗口
rwnd(receiverwindow)又称为通知窗口(advertisedwindow)。拥塞窗口
cwnd(congestionwindow)。发送窗口的上限值发送端的发送窗口的上限值应当取为接收端窗口rwnd
和拥塞窗口cwnd
这两个变量中较小的一个,即应按以下公式确定:发送窗口的上限值
Min[rwnd,cwnd]当rwnd<cwnd
时,是接收端的接收能力限制发送窗口的最大值。当cwnd<rwnd
时,则是网络的拥塞限制发送窗口的最大值。
慢开始算法的原理在主机刚刚开始发送报文段时可先将拥塞窗口cwnd
设置为一个最大报文段MSS的数值。在每收到一个对新的报文段的确认后,将拥塞窗口增加至多一个MSS的数值。发送方接收方发送M1确认M1发送M2~M3确认M2~M3发送M4~M7确认M4~M7cwnd=1cwnd=2cwnd=4发送M8~M15cwnd=8…tt发送方每收到一个对新报文段的确认(重传的不算在内)就使cwnd
加1。轮次1轮次2轮次3使用慢开始算法后,每经过一个传输轮次,拥塞窗口cwnd
就加倍。设置慢开始门限变量ssthresh当cwnd<ssthresh
时,使用慢开始算法。当cwnd>ssthresh
时,停止使用慢开始算法而改用拥塞避免算法。当cwnd=ssthresh
时,既可使用慢开始算法,也可使用拥塞避免算法。拥塞避免算法的思路是让拥塞窗口cwnd
缓慢地增大,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd
加1,而不是加倍,使拥塞窗口cwnd
按线性规律缓慢增长。当网络出现拥塞时无
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026河南事业单位联考南阳市招聘755人考试备考题库及答案解析
- 2026年税务系统个人所得税综合所得汇算清缴实务题库
- 2026年集体住宿安全管理制度题
- 2026年湖南地区邮局面试题目解析与答案
- 2026年全县文明城市创建考核题库
- 2026年区域经济发展战略与政策分析题
- 2026年企业数据资源会计处理知识测试题
- 2026年劳动法律法规常识自测题库
- 2026年事业单位综合应用D类家校沟通与合作题
- 2026年公共场所安全管理制度以及模拟考试题目
- 手外科患者的疼痛管理
- 2024智能运输系统试题及答案
- 中国农业文化遗产与生态智慧知到课后答案智慧树章节测试答案2025年春浙江农林大学
- 工程材料进场验收记录表模板
- 隋唐时期的科技与文化课件-2024-2025学年统编版(2024)七年级历史下册
- 2025年南纤公司招聘笔试参考题库含答案解析
- T-CASME 1610-2024 淤泥土固化加固与处置技术规程
- 潮玩陈列趋势研究报告
- 2024至2030年外球笼项目投资价值分析报告
- 【三体中的人物形象探析6100字(论文)】
- 液化石油气用户安检指南
评论
0/150
提交评论