




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 7 章传输控制协议 TCP要求: 1. 掌握 TCP 的可靠性机制:确认、重传、序号;2. 掌握 TCP 的流控和提高传输效率策略:滑动窗口机制;3. 掌握 TCP 连接的建立与关闭协议:三次握手; 4. 掌握TCP 的报文段格式; 5.掌握TCP 的拥塞控制技术; 6.掌握TCP 避免糊涂窗口综合症的技术;了解紧急数据发送和强迫数据发送。 7.概述 7.1要实现可靠的数据流传输服务,必须解决哪几个问题?1. 可靠性:防丢失:确认与重传;防重复:报文段序号; 2. 传输效率、流量控制: 滑动窗口机制; 3. 拥塞控制:加速递减与慢启动技术; 4. 建立连接: 三次握手协议;改进的三次握手协
2、议。 关闭连接: 5.可靠传输服务有哪些特点?面向数据流; 虚电路连接;有缓冲的传输; 无结构的数据流;全双工连接。7.2 提供可靠性 1. 防丢失带重传的肯定确认技术接收方收 数据接收数据发送方数据后向源站发 发送分组 确认( ACK );发送确认接收分组发送分组接收确认设置定时发送确认接收分组器,源站在限定 超时重传 时间内未收到 ACK ,则重发。 接收确认两个问题 :如何对待重复的数据?定时器时限设置多长?2. 防重复可捎带的累计确认技术 为每一分组赋予序号。 确认时也指明确认哪个分组。 序号同时保证了分组间的正确顺序。3. RTT 与重传定时器 问题:超时重传,如何设置定时器的时限?
3、 两个概念: RTT:往返时间,报文段发出到收到确认信息间的时间段。自适应重传算法:监视每个连接的性能,由此推算出合适的定时时限。当连接的性能变化时,随时修改定时时限。 重传定时时限的计算方法: 早期的方法改进的方法算法和定时器补偿 Karn ( 1)早期的方法 R:RTT 的估计值 M:本次测量的 RTT 值 RT0:定时时限修改估计值 : R R + (1-)M(0 <1 ,通常取 =0.9 )计算时限 : RT0 = R(早期取 2,后改为 4)缺陷 : 在 RTT 变化较大的场合,说明网络某处处于拥塞状态,但上述方法对此反映不敏感,从而造成不必要的重传,进一步加重网络负担。( 2
4、)改进的方法 R:RTT 的估计值 M:本次测量的 RTT 值 RT0:定时时限 Diff :差值Dev :平均偏差的估计值Diff M -RR R + *DiffDev Dev + *(|Diff| -Dev)( Dev 的估计值) RT0 R +*Dev 、在 0 1 之间,通常取: 322 = 1/2 = 2 , =1/2 ,( 3)Karn 算法和定时器补偿确认二义性: 对于重传的报文段,收到确认后是对哪一次传输的确认无法确定。 结果:RTT样本值无法使用;Karn算法:思想:当超时重传发生时,不再更新 RTT 估计器,忽略重传样本。定时器补偿: 超时重传发生,加大定时时限:RT0 *
5、RT0 (通常取 2,即指数避退)。对重传分组的后续分组,定时时限不变,直到获得一个新的有效样本时再更改时限值。7.3传输效率和流量控制- 滑动窗口机制 1. 一般的滑动窗口机制思想允许发送方不必等确认到来就可继续送下面的分组,但规定一个上限。若多个分的确认未到时, 则暂停发送。分组流 WindowSize=812345678910111213已发并已发未未发但不能发送可以发得到确认得到确认2. TCP 的滑动窗口技术分组 WindowSize=400 (5) TC 连两端各有 1 2 .100 1011024100 410 个窗口(送窗口和未发已发已发不能发送得到确认得到确认可以发收窗口)(
6、1) 数据流的各字节被编上序号。 (2) TCP 的滑动窗口按字节操作而不是按报文段或分组操作。 (3) TCP窗口大小为字节数。最大为 65535 字节。(4)通信双方都设有发送和接收缓冲区(相当于发送窗口和接收窗口)。默认大小各系统有差异,如 4096 、等。发送缓冲区大小为默认窗口大小。 16384 、8192 3. TCP端到端流量控制 - 窗口大小可变技术 时机:目的主机缓冲区变小而不能接收源主机更多的数据时,就要进行流量控制。TC 技术可随时改变窗口大小。目的主机在确时,还向源主机告知目的主机接收缓冲区的大小320321399200201101 始时 400 发送窗口,变为120
7、确认( 200 )窗口通告( 120 )说明:接收方使用 0 窗口通告来停止所有的传输。此时,除了紧急数据和窗口试探报文外,不发其它数据。窗口通告丢失或造成死锁 0 防止非 窗口试探报文:7.4糊涂窗口综合症SWS1.什么是 SWS?接收方的小窗口通告造成发送方发送一系列小的报文段,严重浪费网络带宽。2. 启发式的避免策略:接收方:(1)避免小窗口通告,在零窗口通告之后,只在可用缓冲区显著增加(缓冲区空间的一半或一个 MSS)后才发送新的窗口通告(2)推迟确认(最多 500ms ),窗口大小不到避免SWS 策略所需的尺寸时,不确认。为了使发送方正确估计RTT,至少每隔一个报文段要进行正常的确认
8、。发送方: 避免小报文段发送 Nagle 算法 : 自适应推迟传输以便将数据组块( 1)连接建立后,最初的数据会立即发送。( 2)当缓冲区中数据不足一个报文段,则推迟发送。等到一个确认来到(确认触发)时,发送缓冲区中的小报文段。问题:可能出现死锁吗?确认丢失。 3. 说明 Nagle 算法的两个优点: 自适应: 确认到达得越快,数据也就发送得越快;计算简单: 不需要定时器。可关闭 Nagle 算法,应用程序接口一般提供选项算法。Nagle来关闭TCP-NODELAY7.5 TCP拥塞控制技术拥塞:交换节点(如路由器)数据报负载过重的现象。 回顾:IP 层的拥塞控制技术:( ICMP 源站抑制报
9、文),是一种被动机制。 TCP 拥塞控制的必要性:在 TCP 层,拥塞造成时延增加, 这又会造成超时重传, 控制不当会进一步加重拥塞。 采用了一种主动控制机制。TCP7.6 TCP报文源端目标端序确认窗 码元比保首部长 紧急指校验和填充选项(若有)数据 1. 报文段和序号:报文段是 TCP 软件间传输数据的基本单元,每个报文段都有一个序号。 (1) 选取初始序号 (2) 第 n+1 段的序号 =第 n 段序号 + 第 n 段数据区字节数 ) 相当于每个字节都有一个序号(首部长度: 4 字节计数,最大15 ,TCP首部长度 20-60 序号:当前报文的序号 确认号: 希望接收的对方下一报文段序号
10、 ( 已成功接收到的数据字节序+1) 说明:(1) 序号和确认序号在一起使得确认可捎带进行。 (2)TCP采用累计确认策略。问题:采用累计确认,确认丢失不一迫使发送方重传,为什么? (3) TCP 采用经受时延的确认(时延一般为 200ms )。缺点:发送方无法收到所有成功传输的报文段的确认信息,对往返时间样本的精确测量带来影响。窗口:通告对等端缓冲区大小,使发送方修改窗口的大小,以便进行收发双方的流量控制。问题: 初始窗口大小如何确定?默认值,在建立连接时互相通告校验和计算: 加入伪首部,必须( UDP 可选) 源 IP 目标 IP 长度 TCP0 协议码元比特(标识报文段的目的与内容):U
11、RACPSRSSYFI 字节强紧连序确同复同步正常关闭连接异常关闭连接建立连接带有确认选项: 第一版 TCP:定义了选项表结束、 无操作、 MSS(最大报文段长度。选项表结 Kind=0(1byte 无操 Kind=1(1byte功能:使得选项达字节的整数倍MSSMSS(2byte)Kind=2(1byte)len=4(1byte) MSS 过小:效率低 MSS过大:考虑分片,丢失可能性增大 MSS接近路径 MTU时为最佳(由于路径改变,很难) 。字节 536 ,默认 MSS报文能协商 SYN 只有说明:选项:第二版 TCP(rfc1323):增加了窗口扩大因子和时间戳。窗口扩大因Kind=l
12、en= 移位数功能:将 TCP 窗口定义从 16bit 扩大到 32bit 。R2=65535 移位数 = R :窗口大小说明: 只能出现在一个 SYN 报文段中;主动建立连接的一方发送这个选项,被动方收到该选项后才能发此选项;每个方向上的扩大因子可以不同;时间戳选项:kind=len=1时间戳 (4 bytebyte时间戳 发送方填时间戳回显应 (4时间戳回显应答: 接收方确认复制发回 功能:更好地估算RTT 防止回绕的序号 问题: 如果接收方发送了一个对两个报文段的确认,那么应该复制哪一个报文的时间戳字段呢?解决:TCP 为每个连接保留一个时间戳数值。 1. TCP 设置两个变量:( 1)
13、tsrecent: 每个连接的时间戳数值;(2)lastack:最后发送的ACK 的确认序号; 2.当包含 lastack的报文段到达时,其中的时间戳被保存至tsrecent3.发送确认, tsrecent 将被写入时间戳回显应答字段,确认序号则被保存到。 lastack分析: 1. 若 ACK 被接收方延迟,则回显的是第一个报文段。例:若包含 11024 和10252048 字节的两个报文段到达,则: lastack为 1025 ,回显时间戳为 11024 的时戳。原因:发送方在进行重传超时时间的计算时,必须将延迟的 ACK 也考虑在内。 2. 若收到的报文失序,则丢失的报文段到达时,它的时
14、 结果:造成 RTT估计过高,比过低好 间戳被回显。例:收到报文的顺序为11024->20494072->10252048 ,则处理情况如下:(1)确认号为 1025 ,回显时间戳为 11024 的时戳;( 2)确认号为 1025 ,回显时间戳为 11024 的时戳;的时戳;10252048 ,回显时间戳为 4073 )确认号为 3 (功能 : 连接的建立与关闭7.7 TCP1.同意连接协商,做:三次握手 1. 建立连接 好传输数据的准备;2. 各自报文 ISN 服务客户 始序列协不能 报文 SY 发送1') ;seq=x REQUESTSYN 接收 3. 协商 MSS(只
15、有 SYN seq=y,ACK x+1发送SYN报文段能协商 ACCEPTEDSYN+ACK接收 MSS)。ACK y+1 发送 CONFIRM 说明:ACK 接收 报文段占用初始 SYN 发送数据的第一序号 , 。ISN+1 字节序号为关闭连接: 改进的三次握手2. 说明:2网点 1网点FI 报文段占用 FI 发 seq= ACFI 接 ACKx+ 报文段不占用序号 TC 提供了半关 AC 接收能力:连接的一端在结 FIN seq=y 发送 束它的发送后还能接收 ACKx+1FIN+ACK 接收 来自另一端数据。ACKy+1 发送 有些编程接口提供ACK 接收 close 来关闭 TCP 连
16、接,提供 shutdown 加特殊参数来实现半关闭。异常时强行关闭连接 3.报文段;双方立即停连接复位RST,发起端发 RST 止传输,并退出连接。一个 DOS命令:NetstatActive ConnectionsProto Local AddressForeign AddressStateTCPkoukou:1056ESTABLISHED 列出与每个端口相关的进程 o:Netstat 显示路由表r:Netstat7.8紧急数据和强迫数据发送 1. 紧急数据发送和带外数据带外数据 :源站不能按字节流的顺序而需要立即发给接收方并及时处理的数普通数据流中的紧急数 UR1紧急数据 接收方收到 UR
17、G报文段,立即把紧急数据交应用程序处理,然后再处理普通数据流。通常,紧急数据从数据区最前端开始。但有些系统只字节紧急数据,可位于数据区任意地方。1 传送2. 强迫数据发送 应用背景:通常,TCP 为提高网络利用率,在缓冲区中积累够一个最大报文段容量的数据后才发送。在交互环境或实时性要求高的场合,每条命令(甚至每个字符)希望及时传送。TCP 提供推(PUSH)操作,以强迫发送当前数据流中的数据而不必等待缓冲区满。应用方式: 发送方将PSH 置“1”,以通知接收方尽快把该报文段数据交应用程序。7.9TCP的定时器 1.重传定时器: 设定丢失重传的时间间隔。2. 坚持定时器 在接收方发出 0'
18、; 窗口通告后,发送方为了防止死锁发生,用一个坚持定时器周期性地向接收方发送窗口探察报文,防止“ 0”窗口通告后窗口恢复通告丢失后造成死锁。 3. 保活定时器 (间隔: 2 小时)在服务器端检测半开放的连接。如果一个给定的连接在两个小时内没有任何动作,则服务器会向客户端发送一个探察报文段,根据响应情况进行处理。客户机可能的四种状态:客户机正常工作,并从服务器可达: 2 小时后保活 定时器复位;若期间有通信,通信后2 小时再复位;客户机崩溃: 服务器连续发 10 个探察报文,回应超 时时间间隔设置为 75 秒,若始终没有回应,则终止连接; 客户机崩溃后重新启动: 服务器收到 RST 回应报文,终
19、止连接; 。2同状态客户机正常工作,但从服务器不可达:任何状态 / 复位 CLOSED开始被动打开 关闭主动打开 /synsyn/syn+ack /syn/syn+ackLISTEN 发送 /synSYNSYNSENT超时/复位关闭RECVD复位acksyn+ack/ack/fin关闭CLOSEESTAB-WAITLISHED fin/ack/fin关闭 /fin关闭ack/fin/ackLASTFINCLOSINGACKWAIT-1ack/ack/两倍报文段寿命后超时fin/ackTIMEFINWAITWAIT-27.11 TCP攻击实例 AB 攻击 H 冒充估计欺骗:核心:ISN 1. IP 报文发送 SYNH冒充 B 向 A报回 SYN+AC:被伪装:目标 RS 发现错误,发发现错误 A:黑客机 H 死,攻击步骤: A 假设 ISNh 向报文, A 发送 SYNH(1)冒充 BSYNISNA), ,SYN+ACK(ACK ISNh+1A (2)向 B 回应白发) ACK ISNa+1 (到回应假冒)(3HBACKA?(难点) 问题:ISNa= 增长的规律 ISN 掌握解决:2. TCP 端口扫描 TCP 实现的基本规则:若 SYN 或者 FIN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 活动板房租赁合同协议书
- 中介收款合同协议书范本
- 一种智能出行解决方案
- 共建共用仓库合同协议书
- 出租车合伙合同协议书
- 网络营销年度十大案例
- 夫妻雇佣合同协议书范本
- 多人股份合同协议书6
- 中国车用养护品项目创业计划书
- 美容美发行业数化店面运营策略
- 人力资源管理学习通章节答案期末考试题库2023年
- 贵州省医疗服务项目收费标准
- 病原学标本采集与送检规范
- 黑河学院辅导员考试题库
- 抖音运营工作计划模版(3篇)
- 显微镜望远镜的设计与组装
- 风电财务经济评价讲义资料课件
- 中石油职称英语通用教材
- GHS化学品(含危险品)标签标志与象形符号
- GA/T 2002-2022多道心理测试通用技术规程
- 2022年长沙市雨花区社区专职工作者考试试题
评论
0/150
提交评论