TCPIP工作原理教案第07章传输控制协议(TCP)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第7章传输控制协议(TCP)2本章学习目标了解面向连接的概念了解TCP报文端的结构及其首部各个字段的意义理解TCP连接的建立和关闭的过程理解TCP保证可靠性的机制:顺序号、超时与重传和确认了解TCP的流量控制方法了解TCP的拥塞控制策略37.1TCP协议1.TCP连接2.数据流传输3.可靠传输4TCP连接TCP协议与UDP一个重要的不同之处是TCP是面向连接的而UDP是非连接的TCP传输数据前必须先在发送者和接受者之间通过握手建立一个连接5TCP常用端口号6数据流传输TCP协议只是把应用程序要传输的数据当成无结构的可以分成字节的比特流TCP协议“不知道”所传输的数据的意义7可靠传输TCP是可靠的传输层协议,它使用多种技术来保证数据的可靠交付87.2TCP报文段结构04101631源端口目的端口顺序号确认号头部长度保留URGACKPSHRSTSYNFIN窗口校验和紧急指针可选项填充数据9报文段头部源端口(16比特):报文段发送者端口号目的端口(16比特):报文段接收者端口号顺序号(32比特):TCP为每个要传送的字节分配一个正整数,称为顺序号。10报文段头部(续)确认号(32比特):当控制位ACK置位时,此域包含的顺序号为接收端希望接收的下一个字节的顺序号。首部长度(4比特):以32比特为单位的报文段首部的长度,即指出数据区在报文段中的位置。保留位(6比特):保留未用,全置为0。11报文段头部(续)控制位(6比特)URG:置位时表示紧急指针字段有效。ACK:置位时表示确认号字段有效。PSH:置位时表示本报文段要求PUSH操作,此时TCP会立即发送缓冲区中的数据,而不必等待缓冲区填满;在接收端,TCP立即把接收到的数据送给应用程序。RST:置位时表示连接复位,用于在连接发生异常时复位连接。SYN:置位时表示与对方同步顺序号。FIN:置位时表示发送方没有数据发送了,用于关闭连接。12报文段头部(续)窗口(16比特):指出接收方可以接收的最大字节数,可以认为是接收端缓冲区的大小。校验和(16比特):用于检测数据是否在传输过程中受到破坏。13校验和计算所用到伪头部格式081631源IP地址目的IP地址0协议标识符TCP长度14报文段头部(续)紧急指针(16比特):当URG位置位时此字段才有效。有效时标识了此报文段中紧急数据最后一个字节相对于此保文段数据区第一个字节的偏移量。可选项:此字段位数是可变的,没用到的位用0填充使其长度为32比特。157.3TCP的连接管理◆连接的建立◆连接的关闭16TCP连接的建立--三次握手过程主机A主机B发送SYNSEQ=x接收到SYN、ACK连接建立发送ACK=y+1SEQ=x+1接收到SYN信号发送SYN,SEQ=yACK=x+1接收到ACK连接建立17TCP连接的关闭主机A主机B关闭连接、发送FIN、SEQ=z接收到FIN、SEQ=yACK=z+1发送FIN、ACKSEQ=y+1、ACK=z+1接收到ACK不发送报文接收到FIN发送ACKACK=y+2SEQ=z+1接收到ACK187.4顺序号和确认顺序号(Sequencenumber)是一个正整数。当TCP要发送数据时,它随机选择一个初始顺序号,顺序号依次递加,按顺序分配给后续的每个字节的数据19顺序号顺序号的最大值为()。当数据过大,顺序号超过此数,则顺序号对取模123232220顺序号示例21接收端对接收数据的确认227.5滑动窗口机制和流控制(Flowcontrol)为了充分利用网络的带宽,提高网络的运行效率,TCP采用滑动窗口机制控制数据的发送23滑动窗口示例247.6糊涂窗口症状(Sillywindowsyndrome)接收端缓冲区饱和应用程序读取一个字节通告窗口为一个字节发送方发送一个字节25避免糊涂窗口在发送端,防止逐个字节地发送数据,而是收集了一定数量的数据后再打包发送----Nagle算法接收端糊涂窗口的一种解决方法是延迟发送确认另一种解决方法称为Clark方法267.7拥塞控制(Congestioncontrol)当在网络中传输的数据过多而超过网络的容量时,数据传输的延时将大大增加,这就导致拥塞的发生。拥塞发生后,一方面数据的延迟严重,另外路由器由于超载而丢弃数据,这些都会使得发送端重传更多的报文,更多的报文进入到网络中又加剧网络拥塞的状况。如果这种状况持续下去,将发生所谓拥塞崩溃的现象27防止发生拥塞崩溃TCP采用了限制发送端发送数据的多少和速率的方法287.8溢出时间和重传为了确保可靠性,TCP要求接收端对收到的数据进行确认。TCP为每个发送报文段安排了一个定时器并设定一个溢出时间,如果在定时器溢出时还未收到确认信号,发送端则重新发送数据29溢出时间合理---自适应重传算法RTToutTime_sampletriproundNewRTTOldRTT___*)1()_(307.9TCP连接的状态转换图TCP连接主要经过连接的建立、数据的传输和连接的关闭三个阶段,在各个不同的阶段,TCP连接可能处于不同的状态状态转换图说明各个状态的转换关系31CLOSEDLISTENSYN_RCVDSYN_SENTESTABLISHEDFIN_WAIT_1CLOSINGFIN_WAIT_2TIME_WAITCLOSE_WAITLAST_ACK关闭开始被动打开主动打开发送SYN收到SYN发SYN、ACKRST发送SYN收到SYN,发SYN、ACK(同时打开)关闭超时收到SYN、ACK发ACK收到ACK收到FIN发送ACK关闭发送FIN关闭发送FIN关闭发送FIN收到ACK收到ACK收到FIN发送ACK收到FIN、ACK发送ACK收到FIN发送ACK收到ACK超时发送RST32TCP有限状态机各个状态的描述33小结TCP是一种重要的网络协议,它为应用程序提供了可靠的面向连接的数据流传输服务。TCP使用顺序号、确认和重传等技术保证传输的可靠性。滑动窗口机制使得TCP能有效地使用网络资源。通过改变窗口的大小和通告窗口,TCP可以对流量进行一定的控制。TCP还提供了拥塞避免、慢启动和加速递减等算法来解决网络发生拥塞的情况.

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功