《TCP协议和封装过程.ppt》由会员分享,可在线阅读,更多相关《TCP协议和封装过程.ppt(22页珍藏版)》请在金锄头文库上搜索。
1、TCP/UDP协议pTCP/IP协议的基本传输单位是数据包(Datagram)。pTCP协议负责把数据分成若干个数据包,并给每个数据包加上包头,包头上有相应的编号,以保证在数据接收端能将数据还原为原来的格式。pIP协议在每个包头上再加上接收端主机地址,这样数据找到自己要去的地方,如果传输过程中出现数据丢失、失真等情况,TCP协议会自动要求数据重传。TCP/IPTCP/IP协议体系概述体系概述TCP/IPTCP/IP的分的分层及基本工作原理及基本工作原理p TCP/IP协议族是一组不同层次上的多个协议的组合。TCP/IP通常被认为是一个四层协议系统。应用用层传输层网网络层网网络接口接口层Teln
2、et、Ftp、Smtp等等TCP和和UDPIP、ICMP和和IGMP接口卡及接口卡及设备驱动TCP/IP协议体系p应用用层(Application LayerApplication Layer): 包含各种网络应用协议。如HTTP、FTP、telnet、SMTP、DNS、SNMP等。p传输层(Transport LayerTransport Layer):): 负责在源主机和目的主机的应用程序间建立、管理、关闭一种可靠而又有效的端到端连接,主要有TCP和UDP两个传输协议。p网网络层(Internet LayerInternet Layer):): 负责将分组独立地从信源传送到信宿,主要解决路
3、由选择、拥塞控制和网络互联等问题,如最重要的协议IP。p链路路层(Network Access LayerNetwork Access Layer):): 负责将IP分组封装成适合在物理网络上传输的帧格式并传输;或将从物理网络接收到的帧解封,取出IP分组交给网络层。网网络层协议v1 1、网、网际协议(IPIP):):v 主要负责在主机之间寻址和选择数据包的路由。IP协议不含错误恢复的编码,属于不可靠的协议。IPIP数据数据报格式格式v1 1、传输控制控制协议 TCPTCP:nTCP将数据分成数据报,用能够到达目的地的路径信息连行包装,接收端则将这些数据进行重组。它提供可靠的、面向连接的数据报传
4、递服务。nTCP协议位于IP协议上层,为数据提供错误错误校校校校验验,流量控制流量控制流量控制流量控制及及及及序列信息序列信息序列信息序列信息用以补充IP协议的不足。 传输层协议v1 1、传输控制控制协议 TCPTCP:TCPTCPTCPTCP是面向是面向是面向是面向连连接的接的接的接的协议协议。所谓连接,就是两个对等实体为进行数据通信而进行的一种结合。面向连接服务是在数据交换之前,必须先建立连接。当数据交换结束后,则应终止这个连接。面向面向面向面向连连接服接服接服接服务务具有:具有:具有:具有:连连接建立接建立接建立接建立、数据数据数据数据传输传输和连连接接接接释释放放放放这三个阶段。在传送
5、数据时是按序传送的。传输层协议TCP TCP TCP TCP 数据数据数据数据报报格式格式格式格式TCPTCP数据封装示意数据封装示意图 TCPTCP连接建立(三次握手)接建立(三次握手)发送送SYN信息信息(序号序号=x)接收接收SYN信息信息(序号序号=x)发送送ACK 信息信息(确确认号号=y+1)主机主机A主机主机B接收接收SYN信息信息(序号序号=y, 确确认号号=x+1)发送送SYN信息信息(序号序号=y, 确确认号号=x+1)接收接收ACK 信息信息(确确认号号=y+1)TCPTCP数据数据传输1、从上层应用程序接收数据TCP从应用程序接收数据,将数据封装在一个报文段中(含有第一
6、个数据字节的流编号),然后交给IP。2、定时器超时超时后,TCP重传超时报文,然后,重启定时器。3、收到ACK收到ACK后,将确认报文中确认号与发送方的SendBase(最早未被确认的字节序号)比较。TCP采取累积确认,所以确认号之前的字节都被接收方收到。当 确认号 SendBase 时,则该ACK是在确认一个或多个先前未被确认的报文段,此时发送方更新SendBase的值如果当前有未被确认的报文段,TCP重启定时器1 1、由于确、由于确认丢失而重失而重传如上图所示,B发送给A的ACK丢失,引起了主机A的重传,B在接收到重传数据报后根据序号得知这是重传报文,于是丢弃该报文,向A发送ACK。2 2
7、、连续发送的送的报文段的文段的ACKACK延延迟A连续向B发送了两个报文段,但是他们的ACK都延迟了,导致定时器超时,于是最早的未被确认的报文段92被重传,接着他们的ACK到达,它们就不会被再次重传,A收到确认后,就会将SendBase后移,并重启定时器。3 3、累、累积确确认避免先前避免先前报文段重文段重传如上图所示,B发送给A的ACK丢失,引起了主机A的重传,B在接收到重传数据报后根据序号得知这是重传报文,于是丢弃该报文,向A发送ACK。TCP TCP 快速重快速重传机制机制当一个报文段丢失时,会等待一定的超时周期然后才重传分组,增加了端到端的时延。当一个报文段丢失时,在其等待超时的过程中
8、,可能会出现这种情况:其后的报文段已经被接收端接收但却迟迟得不到确认,发送端会认为也丢失了,从而引起不必要的重传,既浪费资源也浪费时间。问题:假设两台网络浏览器正在同一台计算机上运行,正在访问同一个网站(换句话说,访问同一个端口上的相同IP地址).操作系统如何识别哪个数据包来自哪个程序?每个程序在TCP头中都有唯一的id字段吗?如果是这样,那叫什么字段?TCPTCP连接断开(四次握手)接断开(四次握手)发送送FIN接收接收FIN发送送FIN的的ACK主机主机A主机主机B接收接收FIN的的ACK发送送FIN的的ACK接收接收FIN的的ACK发送送FIN接收接收FIN状状态迁移迁移v2 2、用、用户数据数据报协议UDPUDP:UDP是无连接的服务。在无连接服务的情况下,两个实体之间的通信不需先建立好一个连接。无连接服务的另一特征就是它不需要通信的两个实体同时是活跃的(即处于激活态)。当发送端的实体正在进行发送时,它才必须是活跃的。优点是灵活方便和比较迅速,但不能防止报文的丢失、重复或失序,特别适合于传送少量零星的报文。传输层协议UDPUDPUDPUDP数据格式数据格式数据格式数据格式传输层协议没有顺序号和确认号!UDPUDP数据封装示意数据封装示意图: 传输层协议第二章:IP协议第三章:数据包在网络上的流转