TCPIP讲义 教学课件.ppt
《TCPIP讲义 教学课件.ppt》由会员分享,可在线阅读,更多相关《TCPIP讲义 教学课件.ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、TCP/IP基本原理第四章 传输层,本章学习要求:掌握:端口、周知端口号、TCP地址、MSS、RTT、三次握手、套接字、慢启动等概念;掌握:TCP的重传机制原理掌握:用三次握手建立连接、关闭连接的原理掌握:流量及拥塞控制原理了解:TCP、UDP的校验和原理了解:TCP、UDP报文格式了解:常用网络命令,4.1 Internet传输层的基本原理,传输层的功能 目的:是在互联网层提供主机数据通信服务的基础上,向源主机和宿主机之间提供端到端可靠进程通信。 功能:一是加强或弥补网络层或互联网层提供的服务;二是提供进程通信机制。端到端的通信:是由一段段点到点的通信构成的,端到端的协议建立在点到点的协议基
2、础之上,提供应用进程之间的通信,在其下层,是没有应用进程整个概念的。端口号:传输层要区分收到的数据中的不同的应用进程,方法是为每个应用进程分配一个“端口号 Port Number”.某一台主机上的某个应用进程由主机IP地址、端口号唯一标识端口号也称为传输层访问点TSAP。传输层要解决的问题还有:差错控制、流量控制、排序和连接管理等问题。在TCP/IP的协议簇中的传输层协议有传输控制协议TCP,面向连接。用户数据报协议UDP,面向无连接。,4.1.1 TCP服务,TCP为主机提供许多服务。TCP是一个面向连接的协议,它必须提供会话管理和数据单元的可靠传输。IP是一个无连接协议,它依靠TIP提供可
3、靠的数据传输。 TCP提供两种重要服务:差错控制和流量控制。TCP差错和流量控制的一个独特要素是它没有否定确认。它只发送肯定确认。如果接收到的序列有错(被校验和检测的),该数据单元就从缓冲区中删去。TCP不向源主机返回任何应答。 源主机在发送数据单元时设置一个确认计时器。当发生错误(校验和错或其它错)时,计时器将超时,源主机将重传数据单元。同样的机制也适用于接收数据单元的顺序出错。计时器并非固定时长,它是可变的,基于往返时间,往返时间包括前向时间(即到达目的的时间)、目的处理时间和反向延迟时间(即确认到达源主机的时间)。,发起一个会话,一台计算机中的应用程序如果需要向其它计算机中的应用程序发送
4、信息,它将把数据传递给传输层。传输层的TCP从应用程序那里接收到数据,然后将其分割成较小的报文段。TCP 将这些报文段封装在IP数据报中,这些数据报将在网络中路由。,4.1.2 服务质量(QoS),连接建立延迟:传输连接请求和传输确认收到之间的时间延迟。连接建立失败的概率:在最大建立延迟时间之内,连接无法建立的概率。吞吐率:每秒传输的数据量:从源主机到宿主机的吞吐率和从宿主机到源主机的吞吐率是分别衡量的。传输延迟:信息从源主机传输至宿主机的持续时间,传输延迟也是双向分别衡量的。残余误码率:一段特定时间内丢失或混乱的数据量占总数据量的比率。安全保护:用于防止未经授权的第三方读取或修改传输的数据。
5、优先级:确保重要应用的数据优先得到传输服务。,4.1.3 传输层端口,Internet传输层与互联网层功能上的最大区别是前者提供进程通信能力,而后者不提供进程通信能力。 为了提供进程通信功能,TCP/IP协议提出了端口(port)的概念,用于标识通信的进程。 端口实际上是一个抽象的软件结构(包括一些数据结构和I/O缓冲区)。应用程序(进程)通过系统调用与某端口建立关联(binding)后,传输层传给该端口的数据都被相应的应用进程所接收。 端口又是应用进程访问传输服务的入口点。,套接字,套接字在要领上与文件句柄类似,因为其功能是作为网络通信的终结点。一个应用程序通过定义三部分来产生一个套接字:主
6、机IP地址、服务类型(面向连接的服务是TCP,无连接服务是UDP)、应用程序所用的端口。,端口号分配,全局分配 由一个公认的中央机构根据用户需求统一进行分配,并将结果公布于众。 全局端口分配的弊端是在于不能适应大量且迅速变化的端口使用环境。 本地分配或动态联编 当某进程需要访问传输服务时,它向主机操作系统提出动态申请,操作系统根据主机状态为该进程分配一个本地唯一的端口号,然后该进程再通过系统调用将自己与相应的端口号进行关联操作。 本地分配方式不受网络规模的限制,但其它主机仍然无法获知分配情况,进程之间的通信依然难以建立。,Internet端口号分配,Internet将端口分为两部分,一部分是保
7、留端口,一部分是自由端口。 其中保留端口只占很小的数目,它以全局方式进行分配,对应于前面所讨论的服务器进程。在Internet中,每一个标准的服务器进程都拥有一个全局公认的端口号,不同机器上相同的服务器进程,其端口号相同。TCP和UDP都规定,小于256的端口号才能作为保留端口 。 自由端口以本地方式进行分配。当某进程要与远地进程通信之前,首先申请一个自由端口号并与之进行关联操作,然后与远地进程进行通信。,TCP和UDP的保留端口,4.2 用户数据报协议UDP (User Datagram Protocol ),特点 建立在 IP协议 之上 唯一增加的能力是提供协议端口,实现进程通信 UDP使
8、用IP协议提供的不可靠的数据报服务,通过端口号识别互相通信的实体。UDP提供的是无连接的、不可靠的用户数据报服务 面向交易型应用机制端系统使用UDP协议相互通信时,UDP协议只负责将应用程序传给IP层的数据发送出去,但是并不保证它们能到达。如传输中数据出错,UDP协议不负责重传,而由更高层负责。当数据正确到达后,接收端不负责确认。也由更高层负责,UDP报文格式,UDP校验和覆盖了除报文头外的一个附加头部,包括:源IP地址、目的IP地址、协议、UDP长度 目的:验证UDP数据报是否传到正确的目的端,UDP头结构定义为: structudphdr u_int16_tsource; /发送主机的UD
9、P端口 u_int16_tdest; /目标主机的UDP端口 u_int16_tlen; / UDP消息的长度 u_int16_tcheck; / 校验和;,UDP的校验和,UDP计算校验和时,用到一个12字节的伪头结构。见下图示:其中源IP地址和目标IP地址来自于IP分组头,UDP协议号为17,长度是UDP头结构中的长度相同。伪头结构只用于校验和,使用伪头结构进行校验的目的是 为了进一步证实数据被送到正确的目的地。收方UDP校验出收到的数据有错后,只是简单地丢弃数据,而不向源报告错误。,UDP的应用范围,UDP不用于那些使用虚电路的面向连接的服务,而主要用于那些面向查询-应答的服务,例如NF
10、S。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网落时间协议)和DNS(DNS也使用TCP)。,4.3 TCP协议,特点面向连接传输层协议,非常复杂提供高可靠性服务一次传输交换大量报文例子文件传输、远程登录等,4.3.1 TCP报文格式,源端口和目的端口:各2个字节,表示源和目的端口号。发送序号:4字节,指出报文中数据在发送方的数据流中的位置(以字节编号)。确认序号:4字节,指接收方希望下一次接收的字节序号。TCP头长:4比特,指出以32比特为单位的报文头部长度。该域是针对变长的“选项”域设计的。 紧急标志位URG:当URG=1时,表明此报文是紧急数据
11、,应尽快传送出去。确认标志位ACK:只有当ACK=1时确认序号字段才有意义。当ACK=0时,确认序号没有意义。,急迫标志位PSH(PuSH):当PSH=1时,请求远地TCP软件将该报文立即送给应用程序。重建标志位RST(ReseT):当RST=1时,表明出现严重差错,必须释放连接,然后重新建立连接。同步标志位SYN:当SYN=1而ACK=0时,表明这是一个建立连接请求报文,若对方同意建立该连接,则应在发回的报文中使将SYN和ACK标志位同时置1。终止标志位FIN(Final):当FIN1时,表明数据已经发送完毕,并请求释放连接。 窗口:2字节。该字段实际上是接收方告诉发送方它的接收窗口大小,其
12、单位为字节。窗口域主要是用于流量控制和拥塞控制。校验和:2字节。校验和也和UDP协议一样,使用伪头校验,只不过协议号为6。可选项:长度可变。TCP只规定了一种选项,即最长报文段MSS(Maximum Segment Size)。,TCP层格式中的控制信息字段,控制信息字段:在报头中按照从左到右的顺序URG、ACK、PSH、RST、SYN、FIN,总共占用了6比特,对TCP数据流的发送和接收起到控制的作用。在这些控制信息标志中,SYN、FIN占用一个序列号。其余4个控制标志则不占用序列号空间。URG:紧急指针有效ACK:确认字段有效PSH:推送功能RST:复位SYN:对各帧序列号进行同步FIN:
13、不再有来自发送方的数据选项选项列表结束:指示选项列表的结束无操作:用于各个选项之间段最大尺寸:指明了发送此段的TCP上可接收的段的最大尺寸,该字段只在初始连接请求阶段被发送出去(SYN置位时)。TCP必须能够实现发送和接收最大分段尺寸选项。如果在连接建立阶段没有收到该选项,则TCP必须采用默认的发送MSS536,4.3.2 TCP的超时重传机制,背景TCP是一个可靠的数据传输协议,它要求接收方收到TCP段后必须给予应答但TCP只能用acknowledgement number域中的序号来表示该序号前的所有字节都已正确接收,而没有其他否定应答或选择重发的功能。也就是说,当接收方TCP实体收到一个
14、出错的TCP段后,只是将其丢弃而不作应答,因而发送方必须采用超时重传的机制来重发久未应答的段。由于在一个巨大的互联网络中,TCP段可能在不同速率的物理线路上传输,信源和信宿间的距离可近可远,而且每时每该网络中的拥塞情况也不同,因此要选择一个合适的超时时间并不太一件容易的事。,原理TCP使用一种动态算法随时调整超时间隔。对于每个连接,都维持一个变量RTT。RTT (Round-trip Time )是当前发送方到接收方来回时间的最佳估算值。每当发送了一个段,发送方即启动一个计时器,一方面用来测量从发送TCP段到收到应答的来回时间,另一方面当超过估算的超时间隔后即进行重发。算法每当收到一个应答,T
15、CP就从计时器中得到当前的来回时间M,然后利用公式:RTT* RTT+(1-)M估算出新的 R T T值,是一个平滑因于,通常取为 7/8。因为实际的来回时间同估算值总会有一个偏差,因此利用公式 Dd+(1-)|RTT-M|计算出实际来回时间同RTT的偏差范围,这里的和估算RTT的可能不同。最后利用公式 Timeout = RTT+4D 确定出当前的超时间隔。评价这种算法在网络拥塞或收发双方距离较远时能够自动延长超时间隔,减少不必要的重发,而在网络较为空闲或双方距离较近时又能迅速减小超时间隔,及时重发出错的段,从而加快数据传输速度。,4.3.3 TCP连接,TCP为每个数据流初始化并维护特定的
16、状态信息的组合,称为一个连接。每个连接由标识该连接两端的一对套接字唯一确定,套接字是由端口号和IP地址确定,在全网范围内是唯一的。当两个进程希望通信时,它们的TCP必须首先建立一个连接,通信完成时,该连接要终止或关闭,释放资源。TCP连接的建立通过“三次握手”来建立一条连接,以减少错误连接的可能性。利用TCP中的SYN 同步标志位,启动一条连接的建立。利用TCP中的RST 复位标志位,中止异常连接的建立。TCP连接的关闭关闭(CLOSE)操作的意思是“ 我没有更多的数据要发送”,通过TCP中的FIN控制位启动关闭连接的操作。负责关闭的用户可以继续接收(RECEIVED)操作,直到它被告知另一方
17、已经关闭接收到关闭的用户可以继续发送(SEND)操作,使得发出关闭的用户能够听到该连接成功的关闭了。,连接请求(SYN=1,seq=client_isn),同意连接(SYN=1,seq=server_isn,Ack=client_isn+1),确认(SYN=0,seq=client_isn,ack=server_isn+1),客户,服务器,TCP建立连接的三次握手,时间,时间,TCP连接的状态,一条TCP连接在其生命期内会经历一系列的状态。这些状态有:LISTEN:正在等待一个来自任何远程TCP和端口的连接请求。SYNSENT:在已经发出一个连接请求后正在等待一个匹配的连接请求SYNRECEI
18、VED:在已经收到并发出了一个连接请求后等待一个证实连接请求的确认。ESTABLISHED:一个打开的连接。通过此连接接收到的数据能够被传递到用户。该状态是此连接的数据传输阶段的正常状态。FINWAIT1:或正在等待一个针对先前发送的连接终止请求的确认。FINWAIT2:正在等待一个来自远程TCP的连接终止请求。CLOSEWAIT:正在等待一个来自本地用户的连接终止请求CLOSING:正在等待一个来自远程TCP的连接终止请求的确认。LASTACK:正在等待一个先前发往远程TCP的连接终止请求的确认(包括对其连接终止请求的确认)TIMEWAIT:等足够的时间以确保远程TCP接收到了其连接终止请求
19、的确认CLOSED:根本不存在连接的状态。,TCP连接端点,TCP连接端点 TCP把端点定义为一对整数,即(host,port),其中host是主机的IP地址,而port则是该主机上的TCP端口号。 TCP连接 是用它的两个端点来表示; 中国科大的一台IP地址为202.38.64.180的主机与清华大学的一台地址为202.192.1.12的主机之间建立连接的话,它可能会由端点定义成: (202.38.64.180,1234)和(202.192.1.12,25),TCP连接的建立过程,客户 TCP 服务器 TCP1. CLOSE LISTEN2. SYN-SENT SYN-RECEIVED 3.
20、 ESTABLISHED SYN-RECEIVED4. ESTABLISHED ESTABLISHED5. ESTABLISHED ESTABLSHED说明:TCP A、B在初始时分别是处于CLOSED和LISTEN状态。A端首先发送一个SEQ100的初始化序列,SYN置位,占用一个序列号;B端在收到该请求后,发送一个序列号为300,确认号为101的段,这个段的SYN、ACK均置位,说明B端的初始发送序列号为300,同时又确认了A的SEQ100的段,A在收到了B的应答后,对其初始序列号确认,来响应B的初始化序列,然后A就可以发送事件了。其中第2、3、4行,称之为“ 三次握手”,在TCP连接的生
21、存期中,通过多种状态进行传输。这些状态称为TCP状态。一个客户机按照下列顺序经历一系列的TCP状态。如下图示:,CLOSE,FIN_WAIT_1,TIME_WAIT,FIN_WAIT_2,SYN_SENT,ESTABLISHED,接收SYN和ACK发送ACK,发送FIN,接收ACK不发送,接收FIN发送ACK,等待30秒,客户主机TCP的状态顺序,于客户机一样,服务器也经历各种TCP状态。如下图示:,CLOSE,ESTABLISHED,LAST_ACK,CLOSED_WAIT,LISTEN,SYN_RCVD,接收SYN发送SYN和ACK,接收CAK不发送,接收FIN不发送,发送FIN,接收AC
22、K不发送,服务器TCP的状态顺序,TCP连接的关闭过程,TCP ATCP B1. ESTABLISHED ESTABLISHED2. (关闭) FIN-WAIT-1 CLOSE-WAIT3. FIN-WAIT-2 CLOSE-WAIT4. (关闭) TIME-WAIT LAST-ACK5. TIME-WAIT CLOSED6. (2 MSL) 关闭说明:TCP A启动TCP关闭某连接的,TCP B收到一个FIN段,进入CLOSEWAIT状态。在第3行中,如果TCP B还有数据要发送,在报头之后,会有数据,同时对TCP A发来的FIN确认(FIN占用一个序列号)。发送完数据后,在第4行,TCP
23、B再发送一个FIN段,在没有收到确认之前是LASTACK(等待发往远程TCP的FIN的确认)状态。第5行中,TCP B在收到了它发出的FIN的确认后,进入CLOSED状态,TCP A在超时时间到后,自动关闭。,TCP关闭连接为什么采用三次握手法,正常关闭时,一端用户发出一个DR(释放连接请求)TPDU,首先要求释放连接。当该TPDU到达对方后,收方也回送一个DR TPDU,并同时启动定时器以防止其 DR TPDU丢失。当应答方的DR到达后,最初提出释放连接的一方又回送一个ACK(确认) TPDU,并断开连接。最后,当 ACK TPDU抵达目的地后,接收方也释放连接。释放一个连接意味着传输实体从
24、其记载所有接通的连接的表中删除该连接的有关信息并设法通知该连接的所有者(传输用户)。,图b表示,如果最后的ACK(确认)TPDU丢失,就需要用定时器来补救。当定时器超过时限后,连接将被强行释放。图c表示,当第二个DR(响应的DR)丢失的情形。这时,首先提出释放连接的用户将不能收到所期待的响应,待到定时器超时,再次开始要求释放连接。从图c中可以看到这种情况下是如何工作的,假设第二次没有任何TPDU丢失,并且所有TPDU都正确、及时地到达目的地。最后一种情况如图d所示。除了假设由于丢失TPDU使所有重发DR的尝试均失败以外,其他情况与图c完全相同。这样,经过N次尝试后,发送方(提出释放连接的一方)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- tcpip 讲义 教学 课件
限制150内