《运输层概述.ppt》由会员分享,可在线阅读,更多相关《运输层概述.ppt(77页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第八章 运输层2021/9/241运输层概述 运输层是OSI参考模型的七层中比较特殊的一层,同时也是整个网络体系结构中十分关键的一层。它是通信部分的最高层,又是用户功能中的最低层2021/9/242运输层功能根据下面通信子网的特性最佳的利用网络资源,并以可靠和经济的方式在两端主机的进程之间,建立一条运输连接,以透明地传送报文,也就是说,运输层向上一层进行通信的两个进程之间提供一个可靠的端到端的服务,使它们看不见运输层以下的数据通信细节。在通信子网内的各个交换节点以及连接各通信子网的路由器都没有运输层。运输层只能存在于通信子网外面的主机中。运输层以上的各层就不再关心信息传输问题了。2021/9/
2、243运输层功能2021/9/244为什么需要运输层1、在一个网络连接上复用多对进程的通信。2、解决多互连的通信子网的通信协议的差异和提供的服务功能的不同。3、解决网络层及下两层自身不能解决的传输错误。2021/9/245运输层与上下层之间的关系 2021/9/246运输层与上下层之间的关系l运输层中向应用层提供传输服务的是运输实体。使用运输服务的是运输服务用户(也就是应用层中的各种应用进程,或应用层实体)。运输层中的两个对等运输实体之间的通信遵循着运输协议。运输协议保证了运输层能够向应用层提供运输服务。运输层提供的运输服务也使用了下面网络层向上提供的网络服务。TSAP和NSAP分别是运输层和
3、网络层的服务访问点。2021/9/247TCP/IP体系中的运输层协议 lTCP/IP的运输层有两个不同的协议lUDP(UserDatagramProtocol)用户数据报协议:提供面向无连接的服务lTCP(Transmission Control Protocol)传输控制协议:提供面向连接的服务2021/9/248lUDP和TCP都使用IP协议,也就是说,这两个协议在发送数据时,其协议数据单元PDU都作为下面IP数据报中的数据。在接收数据时,将IP首部去掉后,根据上层使用的什么运输协议,把数据部分交给上层的UDP或TCP。TCP/IP体系中的运输层协议 2021/9/249面向连接和面向无
4、连接l面向连接:面向连接服务是电话系统服务模式的抽象,即每一次完整的数据传输都要经过建立连接,使用连接,终止连接的过程。l面向无连接:无连接服务是邮政系统服务的抽象,每个分组都携带完整的目的地址,各分组在系统中独立传送。无连接服务不能保证分组的先后顺序,不进行分组出错的恢复与重传,不保证传输的可靠性。2021/9/2410端口的概念l按照OSI七层协议的描述,传输层与网络层最大的区别是传输层提供进程通信能力。从这个意义上讲,网络通信的最终地址就不仅是主机地址了,还包括可以描述进程的某种标识。为此TCP/IP协议提出了协议端口的概念,用于标识通信的进程。UDP和TCP都使用端口与上层的应用进程进
5、行通信。2021/9/2411端口是什么?l端口是一种抽象的软件结构,包括一些数据结构和I/O缓冲区。l应用程序即进程通过系统调用与某端口建立连接(binding绑定)后,传输层传给该端口的数据都被相应的进程所接收,相应进程发给传输层的数据都从该端口输出。在TCP/IP协议的实现中,端口操作类似于一般的I/O操作,进程获取一个端口,相当于获取本地唯一的I/O文件,可以用一般的读写原语访问。2021/9/2412端口号l每个端口都拥有一个叫端口号的整数描述符,以区别不同端口。由于TCP/IP传输层的两个协议TCP和UDP是两个完全独立的软件模块,因此各自的端口号也相互独立。如TCP有一个255号
6、端口,UDP也可以有一个255号端口,两者并不冲突。l端口从1开始分配,超出255的部分通常被本地主机作为私有用途。1-255之间的号码被用于远程应用程序所请求的进程和网络服务。2021/9/2413端口号的分配l有两种基本分配方式:l第一种叫全局分配这是一种集中分配方式,由一个公认的中央机构根据用户需要尽行统一分配,并将结果公布于众。l第二种是本地分配,又称动态连接,即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口连接起来(绑定)。lTCP/IP端口号的分配综合了两种方式。TCP/IP将端口号分为两部分,少量的作为保留
7、端口,以全局方式分配给服务进程。因此,每一个标准服务器都拥有一个全局公认的端口叫周知口(well-knownport),即使在不同的机器上,其端口号也相同。剩余的为自由端口,以本地方式进行分配。lLinux的/etc/services文件分析2021/9/2414连接、半相关、全相关和插口 l连接:两个进程间的通信链路称为连接。连接在内部表现为一些缓冲区和一组协议机制,在外部表现出比无连接高的可靠性。l半相关:网络中用一个三元组可以在全局中唯一标是一个进程:(协议,本机地址,本地端口号)这样一个三元组,叫做一个半相关,他指定连接的每半部分。l全相关:一个完整的网间进程通信需要有两个进程组成,并
8、且只能使用同一种高层协议。也就是说TCP和UDP没法通信。因此一个完整的网间进程通信需要一个五元组来标识:(协议,本机地址,本地端口号,远地地址,远地端口号),这样一个五元组叫做一个全相关。2021/9/2415示例*执行端口扫描程序,检测一台机器开放的端口2021/9/2416套接字和API套接字又叫插口:包括IP地址和端口号如(131.6.23.13,500)和(130.42.85.15,25)应用编程接口API:运输层与应用层之间的接口的通用名称。现在流行的API有两类:Berkeleysocket起源于Berkeley的加州大学TLI(运输层接口)由AT&T公司开发2021/9/241
9、7用户数据报协议(UDP)lUDP采用无连接的方式提供高层协议间的事务处理服务,允许它们之间互相发送数据。l因为UDP是一种无连接的数据报投递服务,它就不保证可靠投递。它跟远程的UDP实体不建立端到端的连接,而只是将数据报送上网络,或者从网上接收数据报。UDP根据端口号对若干个应用程序进行多路复用,并能利用检验和检查数据的完整性。2021/9/2418UDPlUDP保留应用程序定义的报文边界,它从不把两个应用程序报文组合在一起,也不把单个应用报文划分成几个部分。也就是说,当应用程序把一块数据交给UDP发送时,这块数据将作为独立的单元到达对方的应用程序。例如,如果应用程序把5个报文交给本地UDP
10、端口发送,那么接收方的应用程序就需从接收方的UDP端口读5次,而且接收方收到的每个报文的大小和发出的大小完全一样。lUDP不具备诸如接收保证和避免重复等有序投递功能,2021/9/2419UDP数据报格式 2021/9/2420UDP数据报格式l源端口l目的端口lUDP数据报的长度l校验和:要增加伪首部2021/9/2421常见的使用UDP的服务lDNS:DNS用的是53端口。域名解析服务。lsnmp:简单网络管理协议,使用161端口,是用来管理网络设备的。l聊天软件Oicq:Oicq的程序既接受服务,又提供服务,这样两个聊天的人才是平等的。oicq用的是无连接的协议,其服务器使用8000端口
11、,侦听是否有信息到来;客户端使用4000端口,向外发送信息。如果上述两个端口正在使用(有很多人同时和几个好友聊天),就顺序往上加。lTFTP:端口号69lRPC:端口号1112021/9/2422传输控制协议(TCP)lTCP协议是TCP/IP协议簇中的另一个运输层协议,是面向连接的,因而可提供可靠的、按序传送数据的服务。TCP提供的连接是双向的,即全双工的。lTCP的数据传送单位称为“报文段”,记为TPDU。l两个应用程序通过TCP连接来交换8bit字节构成的字节流,TCP不在字节流中插入记录标志符。我们将这称为字节流服务(bytestreamservice)。如果一方的应用程序先传10字节
12、,又传20字节,在传50字节,连接另一方将无法了解发放每次发送了多少自己。收方可以分4次接收这80个字节,每次接收20字节。一端将字节流放到TCP连接上,同样的字节流将出现在TCP连接的另一端。l另外,TCP对字节流的内容不作任何解释,对字节流的解释由TCP连接双方的应用层解释。2021/9/2423TCP的编号与确认机制 lTCP不是按传送的报文段来编号。TCP将所要传送的整个报文(这可能包括许多个报文段)看成是一个一个字节组成的数据流,然后对每一个字节编号。在连接建立时,双方要商定初始序号。TCP就将每一次所传送的报文段的第一个数据字节的序号放在TCP首部的序号字段中。lTCP的确认是对接
13、收到的数据的最高序号(即收到的数据流中的最后一个序号)表示确认。但返回的确认序号是已收到的数据的最高序号加1。也就是说,确认序号表示期望下次收到的第一个数据字节的序号。l由于TCP能提供全双工通信,因此通信中的每一方都不必专门发送确认报文段,而可以在传送数据时顺便把确认信息捎带传送,这样作可以提高传输效率,因为确认报文没有传输数据。应适当推迟发回确认报文,并尽量使用捎带确认的方法。2021/9/2424Nagle算法算法 l若数据是逐个字节地到达发送端,那么发送端不是逐个字节的发送数据,而是先将第一个字符发送出去,将后面到达的字符都缓存起来。当收到对第一个字符的确认后,再将缓冲区中的所有字符装
14、成一个报文段发送出去,同时继续对到达的字符进行缓存。只有在收到确认后才继续发送下一个报文段。l当字符到达较快而网络速度较慢时,用这样的方法可明显地减少所用的网络带宽。算法还规定,当到达的字符已达窗口大小的一半或已达到报文段的最大长度时,就立即发送一个报文段。l在实时性要求较高的情况下不宜采用Nagle算法:例如在Internet上使用X-window,要将鼠标移动的信息传到远地主机。若采用Nagle算法会使用户感到无法忍受。这时最好关闭这个算法。2021/9/2425糊涂窗口综合症糊涂窗口综合症l描述:接收端的缓冲区已满,而交互式的应用进程一次只从缓冲区中读取一个字符(这样就在缓冲区产生1个字
15、节的空位子),然后向发送端发送确认,并通知窗口大小为1个字符(但发送的数据报是40字节长),接着发送端又发来1个字符(但发来的数据报是41字节长)。接收端发回确认,仍然通知窗口为1个字节。这样下去就使网络的效率很低。l解决办法:让接收端等待一段时间,使得或者缓冲区已能有足够的空间容纳一个最长报文段,或者缓冲区已有一半的空间处于空的状态。只要出现这两种中的一种,就发出确认报文,并向发送端通知当前的窗口大小。此外,发送端也不要发送太小的报文段,而是将数据积累成足够大的报文段,或达到接收端缓冲区的空间的一半大小。2021/9/2426超时与重发超时与重发 l若发送方在规定的设置时间内没有收到确认,就
16、要将未被确认的报文段重新发送。接收方若收到有差错的报文段,则丢弃次报文段(不发送否认信息)。若收到重复的报文段,也要将其丢弃,但要发回(或捎带发送)确认信息,也就是对该重复报文的确认。2021/9/2427超时定时器的重发时间计算 l采用自适应算法该算法记录每一个报文段发出的时间,以及收到相应的确认报文段的时间。这两个时间之差就是报文段的往返时延。将各个报文段的往返时延样本加权平均,就得出报文段的平均往返时延T。l每测量到一个新的往返时延样本,就按下式重新计算一次平均往返时延:平均往返时延T=(旧的往返时延样本T)+(1-)(新的往返时延样本)2021/9/2428Karn算法l在计算平均往返
17、时延时,只要报文段重发了,就不采用器往返时延样本。这样得出的平均往返时延和重发时间就会比较准确。lKarn算法的修正:新的重发时间=r(旧的重发时间)系数r的典型值是22021/9/2429TCP的流量控制 lTCP采用可变发送窗口的方式进行流量控制。窗口的大小是以字节为单位的。在TCP报文段首部的窗口字段写入的数据就是当前设定的接收窗口数值。l发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,随时动态地调整自己的接收窗口(可增大或减小),然后告诉对方,使对方的发送和自己的接收窗口一致。这是一种由接收端控制发送端的做法2021/9/2430滑动窗口表示发送端要发送的
18、数据共9个报文段,每个报文段100字节长,而接收端许诺的发送窗口为500字节。发送窗口当前的位置表示有两个报文段(其字节序号为1-200)已经发送过并已收到了接收端的确认。发送端在当前的情况下,可连续发送5个报文段而不必收到确认。假定发送端已发送了两个报文段但未收到确认,那么它还能发送3个报文段。发送端在收到接收端发来的确认后,就可将发送窗口向前移动了。2021/9/2431滑动窗口使用TCP滑动窗口协议时,接收方不必确认每一个收到的分组。在TCP中,ACK是积累的它们表示接收方已经正确收到了一直到确认序号减1的所有字节。2021/9/2432利用可变窗口进行流量控制2021/9/243320
19、21/9/24342021/9/24352021/9/2436TCP报文段格式 2021/9/2437源端口和目的端口源端口和目的端口每个TCP段都包含源端和目的端的端口号,用于寻找发端和收端应用进程。这两个值加上IP首部中的源端和目的端IP地址唯一确定一个TCP连接。2021/9/2438发送序号发送序号l占4个字节,是本报文段所发送的数据部分第一个字节的序号,该序号用来标志从TCP发端向TCP收端发送的数据字节流,如果将字节流看作在两个应用程序间的单向流动,则TCP用序号对每个字节进行计数。序号到达2*32-1后又从0开始。2021/9/2439确认序号确认序号 l占4字节,是期望收到对方
20、下次发送的数据的第一个字节的序号,也就是上次成功收到的数据字节最后的序号加1。只有ACK标志为1时确认序号字段才有效。发送ACK无需任何代价,因为32位的确认序号字段和ACK标志一样,总是TCP首部的一部分。因此,我们看到一旦一个连接建立起来,这个字段总是被设置,ACK标志也总是被设置为1。TCP为应用层提供全双工服务。这意味着数据能在两个方向上独立地进行传输。因此,连接的每一端必须保持每个方向的传输数据序号。2021/9/2440数据偏移数据偏移l占4位,它指出数据开始的地方离TCP报文段的起始处有多远,实际也就是TCP报文段首部的长度。这是由于首部有长度不固定的选项字段。“数据偏移”的单位
21、为bit,而不是字节或比特。l其后还有个bit是保留字段,供今后使用,但目前应置为。2021/9/2441比特标志字段l紧急比特URG位:URG=1时表示此报文段应尽快传送(相当于加速数据),而不要按原来的排队顺序来传送。比如:要传送中断信号。它使一端可以告诉另一端有些具有某种方式的“紧急数据”已经放置在普通的数据流中,由接收方决定如何处理。此时与后面的“紧急指针”相结合,该紧急指针被置为一个正的偏移量,表示紧急数据的长度,该偏移量必须与TCP首部中的序号字段相加,以便得出紧急数据的最后一个字节的序号。即使窗口大小为时也可以发送紧急数据。2021/9/2442标志字段l确认比特ACK:只有当A
22、CK时,确认序号字段才有意义。当ACK时,确认字段没有意义。l急迫比特PSH(PuSH):当PSH=1时,表明请求远地TCP将本报文段立即传送给其应用层,而不要等到整个缓冲区都填满了后再向上交付。从而防止因等待额外数据而使已提交数据在缓存中滞留。l重建比特RST(ReSeT):当RST=1时,表明出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重建运输连接。重建比特还用来拒绝一个非法的报文段或拒绝打开一个连接。2021/9/2443标志字段l同步比特SYN:在连接建立时使用。当SYN=1而ACK=0时表明这是一个连接请求报文。对方若同意建立连接,则应在发回的报文段中使SYN=1和
23、ACK。因此,同步比特SYN置,就表示这是一个连接请求或连接接受报文。而ACK比特的值用来区分到底是连接请求还是连接接受报文。l终止比特FIN(FINal):用来释放一个连接。当FIN=1时,表明欲发送的字节串已经发送完,并要求释放运输连接。2021/9/2444窗口窗口 l是报文发送方的接收窗口,用来实现TCP的流量控制。窗口大小是一个16bit字段,因而窗口大小最大为2*16-1。窗口的单位为字节。通过此窗口告诉对方,“在未收到我的确认时,你能发送的数据的字节数至多是此窗口的大小。”2021/9/2445检验和检验和l占2字节。检验的范围包括首部和数据两部分。但和UDP一样,在计算检验和时
24、,要在TCP报文段的前面加上一个12字节的伪首部。其中协议字段改为6,长度为TCP长度。2021/9/2446选项选项 l长度可变的字段。TCP只规定了一种选项,即最 长 报 文 段 MSS(Maximum Segment Size)。MSS告诉对方的TCP:“我的缓冲区所能接收的报文段的最大长度是MSS”。l窗口和MSS的区别:MSS是一个报文的最大长度。而窗口则是所能发送的所有数据总数,它可以是多个报文段,但每个报文段必须满足MSS的限制,同时其数据总和不能超过窗口大小。2021/9/2447MSS的选择 l如果太小,则网络的利用率低,比如一次一个字节,利用率只有1/41。l如果太大,超过
25、了路径MTU,将导致该报文段在IP层会被分成多个IP数据包,如果某个包发生错误,整个都要重传,这些都会使开销增大。l原原则则:MSS应应尽尽可可能能大大,只只要要在在IP层层传传输输时时不不需需再分片就行。再分片就行。l由于双方都有MSS,传送时取较小者。如果主机未填写该项,则MSS默认值是536字节的净负荷,因此在Internet上的主机都应能接受的报文段长度为536+20=556字节。2021/9/2448TCP连接的建立 l连接建立过程要解决的问题:要使每一方都能够确知对方的存在。要允许双方协商一些参数(如,最大报文段长度,最大窗口大小,服务质量等)。能够对运输实体资源(如缓冲区大小,连
26、接表中的项目等)进行分配。2021/9/2449主动打开和被动打开l在客户机/服务器模式下,连接的建立请求是由客户机发起的,它执行“主动打开”,而服务器执行“被动打开”,并对客户机的连接请求被动响应。l在服务器进程的实现中,首先让服务器执行“被动打开”,告诉其TCP要准备接受客户进程的连接请求。然后服务器进程就处于“听(listen)”的状态,不断检测是否有客户进程要发起连接请求。如有,即作出响应。2021/9/24502021/9/2451连接的建立过程三次握手2021/9/2452三次握手l第一次:主机A的TCP向主机B的TCP发出连接请求报文,其首部中的比特同步SYN置为1,同时选择一个
27、序号x,该序号称为初始序号ISN(InitialSequenceNumber)。l第二次:主机B的TCP收到连接请求报文后,如同意,则发回确认。在确认报文中将SYN置为1,确认序号为x+1,同时也为自己选择一个序号y。l第三次:主机A的TCP收到此报文段后,还要向B给出确认,其确认序号为y+1。l然后客户机A就可以通知上层应用进程,连接已经建立。当B收到A的确认后也通知上层应用进程,连接已经建立。l“三次握手”是由连接双方的TCP完成的,应用程序只要一个简单的connect调用即可。比如执行telnet命令,当出现login时连接已建立,建立的过程TCP协议实体在后台进行。2021/9/245
28、3Tcpdump结果显示A.1037B.135:s 1415531521:1415531521(0)win4096B.135A.1037:s1823083521:1823083521(0)ack1415531522win4096A.1037B.135:.ack1823083522win4096这三个报文中没有任何数据2021/9/2454“三次握手”的必要性 l原因一:防止已失效的连接请求报文段突然又传送到了主机B,因而产生错误。l原因二:是安全性的考虑,防止TCP欺骗,三次握手相当于验证过程。2021/9/2455TCP连接的终止 半关闭l半关闭的概念:半关闭有的地方叫做半打开(halfop
29、en)它就是关闭一个方向上的数据传送,而另一个方向可以传输数据的一种状态。l这是因为一个TCP连接是全双工,每个方向都可以独立的传输数据,因此每个方向必须单独地进行关闭。l这原则就是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。当一端收到一个FIN,它必须通知应用层另一端已经终止了那个方向的数据传送。2021/9/2456TCP连接关闭的四次握手2021/9/2457前两次握手第一个半关闭l当主机A没有数据向B发送时,主机A向主机B发送一个终止连接的TCP报文,将报文首部的终止比特FIN置1,其序号x等于前面已传送过的数据的最后一个字节的序号加1。l主机B的TCP收到释放
30、连接的通知后,即发出确认,其序号为x+1。(这是因为终止报文没有数据部分),同时通知高层的应用进程。这样,从A到B的连接就释放了,连接处于半关闭状态。这种状态相当于主机A对主机B说:“我已经没有数据要发送了。但你如果还发送数据,我仍接收”。2021/9/2458后两次握手完全关闭l在主机B向主机A的数据发送结束后,其应用进程就通知TCP释放连接。主机B发出的连接释放报文段必须将终止比特FIN置1,并使序号y等于前面已传送过的数据的最后一个字节的序号加1,还必须重复上次已发送过的ACK=x+1。l主机A必须对此发出确认,给出ACK=y+1。这样才将从B到A的反方向连接释放掉。主机A的TCP再向其
31、应用进程报告,整个连接已全部释放。l连接释放过程和连接建立过程的三次握手本质上是一致的。2021/9/2459Tcpdump结果观察lA.1037B.25:F1415531522:1415531522(0)ack1823083522win4096lB.25A.1037:.ack1415531523win4096lB.25A.1037:F1823083522:1823083522(0)ack1415531523win4096lA.1037B.25:.ack1823083523win40962021/9/2460拥塞控制l实现流量控制并非仅仅为了使接收端来得及接收。如果发送端发出的报文过多会使网络
32、负荷过重。因此会引起报文段的时延增大,将使主机不能及时的收到确认,因此会重发更多的报文段,而这又会进一步加剧网络的拥塞。为了避免发生拥塞,主机应当降低发送速率。l可见发送端的主机在发送数据时,既要考虑到接收端的接收能力,又要使网络不要发生拥塞。2021/9/2461发送窗口大小l发送窗口=Min通知窗口,拥塞窗口l其中:l通知窗口:接收端根据其接收能力许诺的窗口值,是来自接收端的流量控制。接收端将通知窗口的值放在TCP报文的首部中,传送给发送端。l拥塞窗口:是发送端根据网络拥塞情况得出得窗口值,是来自发送端的流量控制。l在未发生拥塞的稳定情况下,接收端通知的窗口和拥塞窗口是一致的。2021/9
33、/2462拥塞控制算法l拥塞的判别:由于通信线路带来的误码而使得分组丢失的概率很小(远小于1%)。因此,只要出现分组丢失或延迟过长而引起超时重发,就意味着在网络中的某个地方出现了拥塞。2021/9/2463慢启动算法 l该算法通过观察新的分组进入网络的速率应该与另一端返回确认的速率相同而进行工作。慢启动将拥塞窗口初始化为1个报文段(即另一端通告的报文段大小)。每收到一个ACK,拥塞窗口就增加一个报文段大小(实际上是字节数),发送方取拥塞窗口和通告窗口中的最小值作为发送上限。l显然拥塞窗口以指数级增长:1个,2个(收到1个ACK),4个(收到拥塞窗口为2时的两个报文的2个ACK),8个(收到拥塞
34、窗口为4时的两个报文的4个ACK)。源端向网络中发送的数据量将急剧增加。2021/9/2464拥塞避免算法l拥塞避免算法:与慢启动类似,只是将拥塞窗口每次增加1个报文段大小,而不是以指数增加。这样可以减慢数据包进入网络的速率。l慢启动的门限窗口的概念:初始化为64个报文段大小(65535字节)。后来是每次发生拥塞时拥塞窗口的一半。把它作为下次拥塞控制中慢启动和拥塞避免阶段的分界点。也就是从慢启动的门限窗口处开始进行拥塞避免过程。l加速递减:指每出现一次超时,就讲门限窗口值减半。若超时频繁出现,则门限窗口减小的速率是很快的。2021/9/2465网络拥塞时的处理l设置新的慢启动门限窗口为发生拥塞
35、时的拥塞窗口大小的一半。并将拥塞窗口设为1,从1到慢启动门限窗口部分使用慢启动算法。从慢启动门限窗口开始使用拥塞避免算法,直到再次发生网络拥塞。l每次发生拥塞时重复该过程。2021/9/2466举例2021/9/2467TCP的有限状态机 2021/9/24682021/9/24692021/9/2470TCP的有限状态机l粗线箭头表示对客户进程的正常变迁l虚线箭头表示对服务器进程的正常变迁。l其中CLOSED状态不是一个真正的状态,而是这个状态图的假想的起点和终点。2021/9/2471TCP正常的连接建立与关闭2021/9/2472常见的使用TCP的应用层协议 lftp:定义了文件传输协议
36、,使用21端口。ltelnet:远程登陆,使用23端口。lsmtp:简单邮件传送协议。使用25端口。lhttp:超文本传送协议。使用80端口。lpop3:用于接收邮件,使用110端口。2021/9/2473TCP和UDP的对比lUDP可以用于广播和多播,而TCP则不能,这时因为TCP是一个面向连接的协议,两进程之间必须存在一条连接。lUDP不具备诸如接收保证和避免重复等有序投递功能,故对那些要求数据必须按顺序到达的应用程序,最好采用TCP;或者,用户自己想办法解决顺序到达的问题,例如TFTP作为文件传输协议之一就在应用层做了这方面的工作。2021/9/2474计算机网络的性能 l网络的带宽时延
37、积:指网络的带宽(比特/秒)与往返时延(秒)的乘积。l意义:这个乘积就是从发送端到接收端的数字管道的容量(比特)。要使信道利用率高,就必须使接收窗口与信道的带宽时延积可以相比才行(即让发送的数据填满整个数字管道)。考虑到接收端处理收到的数据还需要一定的时间,因此接收窗口还应略大于信道的带宽时延积。2021/9/2475改善网络性能的系统设计增加报文段长度可降低软件的开销尽量减少进程在内核状态和用户状态之间的切换尽量减少复制增加带宽比减少时延要容易避免拥塞要比解除拥塞更为重要使用超时要谨慎2021/9/2476习题l8-06:序号循环使用l8-07:MSS让主机限制另一端发送数据报的长度,使发往以较小MTU连接到一个网络上的主机的报文避免分段。l8-08:ACK确认是积累,确认以前所有的报文。l8-09:优:当分组只是延迟时可避免重发缺:需要较大的缓冲区和系统资源2021/9/2477
限制150内