您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 网络通信与OSI_8
第八章传输层传输层的一般概念TCPUDP8.1.1传输层概述应用层数据链路层网络层传输层物理层网络功能用户功能传输层的位置8.1.2提供给高层的服务•最终目标:利用网络层提供的服务向其用户(一般是应用层的进程),提供有效、可靠且价格合理的服务。•主要任务:在优化网络服务的基础上,从源端机到目的端机提供可靠的、价格合理的数据传输,使高层服务用户在相互通信时不必关心通信子网实现的细节,即与所使用的网络无关。传输层——Qos连接建立迟延连接建立失败概率吞吐量传输迟延传输失败概率释放迟延释放失败概率连接优先权连接修复能力服务类型A型网络服务具有可接受的差错率和故障告知率;B型网络服务具有可接受的差错率和不可接受故障告知率;C型网络服务不具有可接受的差错率和故障告知率;传输协议等级0类型(TP0):简单类1类型(TP1):基本差错修复类2类型(TP2):复用类3类型(TP3):差错修复和复用类4类型(TP4):差错检测、修复和复用类8.1.2提供给高层的服务网络1网络2AP1AP2AP3AP4多进程通信情况8.1.2提供给高层的服务应用程序进行数据通信的过程应用层传输层网络层数据链路层物理层应用层传输层网络层数据链路层物理层物理介质物理介质物理介质AP1AP3端到端通信通信子网8.1.2提供给高层的服务•在物理层上可以透明地传输数据的比特流;•在数据链路层上使得各条链路能传送无差错的数据帧(数据帧按顺序、无丢失、不重复);•在网络层上提供了路由选择和网络互连的功能,使得主机A发送的数据段能够按照合理的路由到达主机B。服务的质量是否满足?再次优化网络服务!服务与协议的关系!传输层——独特问题端到端差错控制解决网络层以下不能解决的差错控制;端到端传输连接管理“三次握手方式”与流水线类似传输层超时和拥塞控制nnnWW)1(18.1.2提供给高层的服务传输层实体传输层实体应用层应用层TSAPTSAPNSAPNSAP传输层协议主机A主机B传输层服务用户传输服务提供者传输层与其上下层之间的关系传输层中完成传输功能的硬件和软件被称为传输实体TSAP通过传输实体,传输层可以向应用层提供传输服务8.1.3TCP/IP协议中的传输层在TCP/IP协议中有两个并列的协议:UDP和TCP。UDP(UserDatagramProtocol,用户数据报协议)是面向无连接的,即在进行数据传输之前不需要建立连接,而目的主机收到数据报后也不需要发回确认。这种协议提供了一种高效的传输服务。TCP(TransmissionControlProtocol,传输控制协议)是面向连接的,即在进行数据传输之前需要先建立连接,而且目的主机收到数据报后要发回确认信息。这种协议提供了一种可靠的传输服务。与UDP相比提供了较多的功能,但是相对的报文格式和运行机制也较为复杂。8.1.4端口•TCP/IP传输层可以通过协议端口(protocolport,简称端口)来标识通信的应用进程。•传输层是通过端口与应用层的应用程序进行信息交互的。•端口实际上是一个16Bit长的地址,范围可以从0至65535。•将0至1023端口号称为熟知端口(Well-KnownPort),其余1024至65535端口号称为一般端口或(动态)连接端口(Registered/Dynamic。8.1.4端口各端口的意义8.1.4端口协议端口号关键字描述UDP42NAMESERVER主机名字服务器UDP53DOMAIN域名服务器UDP67BOOTPClient客户端启动协议服务UDP68BOOTPServer服务器端启动协议服务UDP69TFTP简单文件传输协议UDP111RPC微系统公司RPCTCP20FTPData文件传输服务器(数据连接)TCP21FTPControl文件传输服务器(控制连接)TCP23Telnet远程终端服务器TCP25SMTP简单邮件传输协议TCP80HTTP超文本传输协议8.1.4端口IP=126.45.21.51IP=124.33.13.55IP=125.35.89.10端口200端口201端口200端口25ABC连接1连接2连接3通过SMTP进行通信的主机8.1.4端口•插口包括IP地址(32位)和端口号(16位),共48位,构成插口或套接字(Scoket)•端口的应用7.1传输层提供的服务开放课题---NAT1、了解NAT的工作原理2、NAT的意义3、应用8.2传输控制协议TCPTCP是TCP/IP体系中的传输层协议,是面向连接的,因而可以提供可靠的全双工信息服务。在数据传输的过程中,应用层的数据报传送到传输层后,加上TCP首部,就构成了TCP的数据传送单位,称为报文段(Segment),在发送的时候作为IP数据报的数据。加上IP首部后成为IP数据报;在接收的时候,网络层将IP数据报的IP首部去掉后上交给传输层,得到TCP报文段,传输层再将TCP首部去掉,然后上交给应用层,得到应用层所需要的报文段8.2.1TCP报文的格式8.2.1TCP报文的格式1.源端口号和目的端口号各占16位,2个字节,分别标识连接两端的两个通信的应用进程2.发送序号占32位,4个字节,TCP的序号编号是对每一个字节进行编号,因此在这个字段中给出的数字是本报文段所发送的数据部分的第一个字节的序号3.接收序号又称作确认序号,占32位,4个字节,确认序号指的是期望收到对方下次发送的数据报的第一个字节的序号,也就是期望收到的下一个报文段的首部中的发送序号,同时确认以前收到的报文。8.2.1TCP报文的格式4.数据偏移占4位,此字段指出在TCP数据报内实际的数据到TCP报文段的起始位置的距离,实际上就是整个TCP报文段首部的长度。数据偏移字段存储的数值的单位是32位的字。5.保留字段与标志位占6位,设置的值为0,供功能扩展使用,新的TCP版本有些位已被启用。标志位,共有6个,每个占1位:(1)紧急比特位(URG),(2)确认比特(ACK),(3)紧迫比特(PSH),(4)重建比特(RST),(5)同步比特(SYN),(6)终止比特(FIN)8.2.1TCP报文的格式6.窗口占2字节,设置的值为发送方接收窗口的大小,单位为字节7.检验和占2字节,用来检验首部和数据部分以及伪首部之和8.紧急指针与紧急比特配合使用处理紧急情况,指出在本报文段中的紧急数据的最后一个字节的序号8.2.1TCP报文的格式9.选项和填充TCP首部可以有多达40字节的可选信息。此字段为可变部分,它们用来将附加信息传递给目的站,或用来将其它选项对齐。TCP定义了两类选项:一字节选项和多字节选项8.2.2TCP的编号与确认在TCP报文段首部含有确认序号字段,通过它可以完成TCP报文的确认,具体的确认是对接收到的数据的最高序号进行确认,返回的确认序号是已经收到的数据的最高序号加1。由于TCP采用全双工的通信方式,因此进行通信的每一方都不必专门发送确认报文段,可以在传送数据的同时进行确认,这种方式称为捎带确认。8.2.3TCP的流量控制机制两用户进程间的流量控制和链路层两相邻结点间的流量控制类似,都要防止快速的发送数据时超过接收者的能力,采用的方法都是基于滑动窗口的原理。但是链路层常采用固定窗口大小,而传输层则采用可变窗口大小和使用动态缓冲分配。在TCP报文段首部的窗口字段写入的数值就是当前设定的接收窗口的大小。假设发送端要发送的数据为8个报文段,每个报文段的长度为100个字节,而此时接收端许诺的发送窗口为400个字节,具体情况如下图所示:8.2.3TCP的流量控制机制滑动窗口机制8.2.3TCP的流量控制机制发送端接收端8.2.3TCP的流量控制机制实际上实现流量控制并非仅仅为了使得接收方来得及接收而已,还要有控制网络拥塞的作用。比如接收端正处于较空闲的状态,而整个网络的负载却很多,这时如果发送方仍然按照接收方的要求发送数据就会加重网络负荷,由此会引起报文段的时延增大,使得主机不能及时地收到确认,因此会重发更多的报文段,更加剧了网络的阻塞,形成恶性循环。为了避免发生这种情况,主机应该及时地调整发送速率。8.2.3TCP的流量控制机制发送端主机在发送数据时,既要考虑到接收方的接收能力,也要考虑网络目前的使用情况,发送方发送窗口大小应该考虑以下几点:(1)通知窗口(advertisedwindow):这是接收方根据自己的接收能力而确定的接收窗口的大小。(2)拥塞窗口(congestionwindow):这是发送方根据目前网络的使用情况而得出的窗口值,也就是来自发送方的流量控制。当中最小的一个最为适宜,即:发送窗口=Min[通知窗口,拥塞窗口]进行拥塞控制,Internet标准推荐使用三种技术,即慢启动(slow-start),加速递减(multiplicativedecrease)和拥塞避免(congestionavoidance)。8.2.4TCP的差错控制1.差错检测和纠正TCP中的差错检测是通过三种简单工具来完成的:检验和、确认和超时。每一个报文段都包括检验和字段,用来检查受到损伤的报文段;若报文段受到损伤,就由目的TCP将其丢弃。TCP使用确认的方法来证实收到了某些报文段,它们已经无损伤地到达了目的TCP。TCP不使用否认。若一个报文段在超时截止期之前未被确认,则被认为是受到损伤或已丢失。8.2.4TCP的差错控制2.受损伤的报文段。8.2.4TCP的差错控制3.丢失的报文段对于一个丢失的报文段。这与受损报文段的情况完全一样。4.重复的报文段当含有同样序号的分组作为另一个收到的报文段到达时,目的TCP丢弃这个分组。5.失序的报文段对失序的报文段不确认,直到收到所有它以前的报文段为止8.2.4TCP的差错控制6.丢失的确认8.2.5TCP的重发机制在传输层中,TCP确认到达的时间概率分布不是很集中,所以确定超时重发的时间就很困难。TCP采用了一种自适应算法来计算重发超时时间。这种算法把每次每个报文段发出的时间和收到此报文段确认的时间都记录下来,两时间之差称为报文段的往返时延。针对所有发送正确的报文段的往返时延进行加权平均,得到报文段的平均往返时延RT,而将TCP测量该往返时延所用的时间设为M,根据得到的时延,按照下列公式进行计算修正的RT:RT=αRT+(1-α)M式中,α是修正因子,一般取值为7/8。8.2.5TCP的重发机制1988年,Jacobson提出一种动态的确定超时重发时间的方法,他提出β的变化要与确认到达时间的概率密度函数的标准偏差大致成比例,并建议采用平均偏差作为对标准偏差的粗略估计。在这种算法中,需要保存另一个修正因子D(偏差值),按照下列公式进行新的计算:D=αD+(1-α)|RT-M|这时得到的D值与上面的RT值相比,更加令人满意。但是当数据段重发,并确认到达后,不清楚确认是针对先发的数据段还是对重发的数据段进行的,如果只是进行凭空的猜测将导致对数据的严重破坏。8.2.6TCP的传输连接管理1.TCP连接的建立第一次握手:源端机发送一个带有本次连接序号的请求。第二次握手:目的主机收到请求后,如果同意连接,则发回一个带有本次连接序号和源端机连接序号的确认。第三次握手:源端机收到含有两次初始序号的应答后,再向目的主机发送一个带有两次连接序号的确认。8.2.6TCP的传输连接管理TCP协议中连接建立的过程8.2.6TCP的传输连接管理2.连接的释放第一次握手:由进行数据通信的任意一方提出要求释放连接的请求报文段。第二次握手:接收端收到此请求后,会发送确认报文段,同时当接收端的所有数据也都已经发送完毕后,接收端会向发送端发送一个带有其自己序号的报文段。第三次握手:发送端收到接收端的要求释放连接的报文段后,发送反向确认。主机A主机BFIN,SEQ=x①ACK=x+1②FIN,SEQ=y,ACK=x+1③ACK=y+1④TCP连接的释放过程*8.3一个TCP/IP数据包实例为了读者便于理解,我们在网上捕获了一个数据包,学习时可以对照曾经讲过的TCP/IP各层数据报的格式来阅读
本文标题:网络通信与OSI_8
链接地址:https://www.777doc.com/doc-320072 .html