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