+5TCP可靠传输流量控制_第1页
+5TCP可靠传输流量控制_第2页
+5TCP可靠传输流量控制_第3页
+5TCP可靠传输流量控制_第4页
+5TCP可靠传输流量控制_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本节内容TCP可靠传输&流量控制研/CSKAOYAN408考研大纲(传输层)通常不单独考,结合UDP、TCP考察小题*3小题*20,大题*2研/CSKAOYAN知识总览研/CSKAOYAN回顾:TCP首部的相关*用于标记数据部分第一个字节在原始字节流中的位置(seq)(ack

ack_seq)用于反馈,表示序号在该确认号之前的所有字节都已正确收到(rwnd

rcvwnd)用于反馈接收方的接收窗口大小,表示从确认号算起还ACK=0时,ack_seq无效能接收几个字节ACK=1时,ack_seq有效只有握手①的ACK=0,其他所有TCP报文段都是ACK=1研/CSKAOYAN本质上是⻓度为100的由你⾃⼰决定数组⻓度,IP=233.0.0.1TCP连接IP=166.2.2.2char[]数组,你可以⾃如果预留⻓度不够,可以⼰决定⾥边的数据IP=166.1.1.1再扩容客户进程1服务器进程客户进程2(绑定端⼝号=1111)(绑定端⼝号=996)(绑定端⼝号=2222)应⽤层应⽤层(⽤户区)(⽤户区)send()recv()send()recv()send()recv()send()recv()Socket(套接字)对象Socket(套接字)对象1Socket(套接字)对象2Socket(套接字)对象本机进程端⼝号=1111本机进程端⼝号=996本机进程端⼝号=996本机进程端⼝号=2222(对⽅)IP:端⼝号=233.0.0.1:996传输层TCP协议传输层(对⽅)IP:端⼝号=233.0.0.1:996TCP连接(对⽅)IP:端⼝号=166.1.1.1:1111(对⽅)IP:端⼝号=166.2.2.2:2222TCP协议接收缓冲区10B接收缓冲区8B(S←C)发送缓冲区7B(内核区)(内核区)10B发送缓冲区(C→S)10B接收缓冲区(C←S)发送缓冲区10B发送缓冲区9B(S→C)接收缓冲区5B⼀个端⼝可以⽀持多个TCP连TCP协议的发送缓冲区、接收缓冲区是在建⽴连接时由操作系统内核接,但每个TCP连接仅⽀持⼀分配的,⼤⼩不固定对⼀通信(全双⼯)待发送数据(100B)空char数组待发送数据(50B)空char数组待发送数据(80B)空char数组待发送数据(600B)空char数组TCP传输的底层原理本质上是⻓度为100的数组⻓度是由你来决定IP=233.0.0.1应⽤层char[]数组,你可以⾃的,如果预留⻓度不够,⼰写⼊数据IP=166.1.1.1可以再扩容数据的起始客户进程1数据的起始服务器进程(绑定端⼝号=1111)(绑定端⼝号=996)序号=600序号=200应⽤层(⽤户区)(⽤户区)send()recv()send()recv()传输层传输层TCP协议(内核区)Socket(套接字)对象本机进程端⼝号=1111(对⽅)IP:端⼝号=233.0.0.1:996Socket(套接字)对象本机进程端⼝号=996TCP协议(对⽅)IP:端⼝号=166.1.1.1:1111(内核区)10B发送缓冲区(C→S)接收缓冲区8B10B接收缓冲区(C←S)发送缓冲区8B待发送数据(100B)char[50]空数组待发送数据(50B)char[100]空数组研/CSKAOYAN重点体会:确认号、接收窗口大小握⼿①握⼿①,设置客户进程初始序号握⼿②握⼿③握⼿②,设置服务器初始序号、反馈接收窗⼝⼤⼩握⼿③,客户进程反馈接收窗⼝服务器收到3个字节数据服务器返回最新确认号、最新接收窗⼝⼤⼩t……t研/CSKAOYANTCP传输的底层原理本质上是⻓度为100的数组⻓度是由你来决定IP=233.0.0.1应⽤层char[]数组,你可以⾃的,如果预留⻓度不够,⼰写⼊数据IP=166.1.1.1可以再扩容数据的起始客户进程1数据的起始服务器进程(绑定端⼝号=1111)(绑定端⼝号=996)序号=600序号=200应⽤层待发送数据char[50]待发送数据char[100](⽤户区)(⽤户区)(100B)空数组(50B)空数组send()recv()send()recv()传输层传输层TCP协议(内核区)Socket(套接字)对象本机进程端⼝号=1111(对⽅)IP:端⼝号=233.0.0.1:996Socket(套接字)对象本机进程端⼝号=996TCP协议(对⽅)IP:端⼝号=166.1.1.1:1111(内核区)10B发送缓冲区(C→S)接收缓冲区8B10B接收缓冲区(C←S)发送缓冲区8B研/CSKAOYANTCP传输的底层原理本质上是⻓度为100的数组⻓度是由你来决定IP=233.0.0.1应⽤层char[]数组,你可以⾃的,如果预留⻓度不够,⼰写⼊数据IP=166.1.1.1可以再扩容数据的起始客户进程1数据的起始服务器进程(绑定端⼝号=1111)(绑定端⼝号=996)序号=600序号=200应⽤层(⽤户区)(⽤户区)send()recv()send()recv()传输层传输层TCP协议(内核区)Socket(套接字)对象本机进程端⼝号=1111(对⽅)IP:端⼝号=233.0.0.1:996Socket(套接字)对象本机进程端⼝号=996TCP协议(对⽅)IP:端⼝号=166.1.1.1:1111(内核区)10B发送缓冲区(C→S)接收缓冲区8B10B接收缓冲区(C←S)发送缓冲区8B待发送数据(100B)char[50]空数组待发送数据(50B)char[100]空数组研/CSKAOYANTCP传输的底层原理本质上是⻓度为100的数组⻓度是由你来决定IP=233.0.0.1应⽤层char[]数组,你可以⾃的,如果预留⻓度不够,⼰写⼊数据IP=166.1.1.1可以再扩容数据的起始客户进程1数据的起始服务器进程(绑定端⼝号=1111)(绑定端⼝号=996)序号=600序号=200应⽤层(⽤户区)(⽤户区)send()recv()send()recv()传输层传输层TCP协议(内核区)Socket(套接字)对象本机进程端⼝号=1111(对⽅)IP:端⼝号=233.0.0.1:996Socket(套接字)对象本机进程端⼝号=996TCP协议(对⽅)IP:端⼝号=166.1.1.1:1111(内核区)10B发送缓冲区(C→S)接收缓冲区8B10B接收缓冲区(C←S)发送缓冲区8B待发送数据(100B)char[50]空数组待发送数据(50B)char[100]空数组研/CSKAOYAN重点体会:累积确认注:这两条线……本应画的很接近但是画不下(⊙︿⊙)服务器连续收到两个报⽂段累积确认:收到多个连续报⽂段,只返回⼀个ACK服务器收到⼀个新报⽂段,接收缓冲区满,此时应尽快将数据按序交付应⽤层,清空缓冲区缓冲区已清空,接收窗⼝⼜变⼤了t……t研/CSKAOYANTCP传输的底层原理本质上是⻓度为100的数组⻓度是由你来决定IP=233.0.0.1应⽤层char[]数组,你可以⾃的,如果预留⻓度不够,⼰写⼊数据IP=166.1.1.1可以再扩容数据的起始客户进程1数据的起始服务器进程(绑定端⼝号=1111)(绑定端⼝号=996)序号=600序号=200应⽤层(⽤户区)(⽤户区)send()recv()send()recv()传输层传输层TCP协议(内核区)Socket(套接字)对象本机进程端⼝号=1111(对⽅)IP:端⼝号=233.0.0.1:996Socket(套接字)对象本机进程端⼝号=996TCP协议(对⽅)IP:端⼝号=166.1.1.1:1111(内核区)10B发送缓冲区(C→S)接收缓冲区8B10B接收缓冲区(C←S)发送缓冲区8B待发送数据(100B)char[50]空数组待发送数据(50B)char[100]空数组研/CSKAOYANTCP传输的底层原理本质上是⻓度为100的数组⻓度是由你来决定IP=233.0.0.1应⽤层char[]数组,你可以⾃的,如果预留⻓度不够,⼰写⼊数据IP=166.1.1.1可以再扩容数据的起始客户进程1数据的起始服务器进程(绑定端⼝号=1111)(绑定端⼝号=996)序号=600序号=200应⽤层(⽤户区)(⽤户区)send()recv()send()recv()传输层传输层TCP协议(内核区)Socket(套接字)对象本机进程端⼝号=1111(对⽅)IP:端⼝号=233.0.0.1:996Socket(套接字)对象本机进程端⼝号=996TCP协议(对⽅)IP:端⼝号=166.1.1.1:1111(内核区)10B发送缓冲区(C→S)接收缓冲区8B10B接收缓冲区(C←S)发送缓冲区8B待发送数据(100B)char[50]空数组待发送数据(50B)char[100]空数组研/CSKAOYAN重点体会:捎带确认……服务器收到2B数据,可以先不交付应⽤层捎带确认:服务器刚好有5B数据要发送,就⽴即返回ACK段,并捎带数据客户捎带确认6B数据。服务器收到数据后,虽然缓冲区未满,但只要这些数据有序,也可以按序交付应⽤层服务器清空缓冲区后,返回最新确认号、最新接收窗⼝⼤⼩服务器收到2B数据,虽然缓冲区未满,也可以按序交付应⽤层服务器清空缓冲区后,返回最新确认号、最新接收窗⼝⼤⼩t……t研/CSKAOYANTCP传输的底层原理本质上是⻓度为100的数组⻓度是由你来决定IP=233.0.0.1应⽤层char[]数组,你可以⾃的,如果预留⻓度不够,⼰写⼊数据IP=166.1.1.1可以再扩容数据的起始客户进程1数据的起始服务器进程(绑定端⼝号=1111)(绑定端⼝号=996)序号=600序号=200应⽤层(⽤户区)(⽤户区)send()recv()send()recv()传输层传输层TCP协议(内核区)Socket(套接字)对象本机进程端⼝号=1111(对⽅)IP:端⼝号=233.0.0.1:996Socket(套接字)对象本机进程端⼝号=996TCP协议(对⽅)IP:端⼝号=166.1.1.1:1111(内核区)10B发送缓冲区(C→S)接收缓冲区8B10B接收缓冲区(C←S)发送缓冲区8B待发送数据(100B)char[50]空数组待发送数据(50B)char[100]空数组研/CSKAOYANTCP传输的底层原理本质上是⻓度为100的数组⻓度是由你来决定IP=233.0.0.1应⽤层char[]数组,你可以⾃的,如果预留⻓度不够,⼰写⼊数据IP=166.1.1.1可以再扩容数据的起始客户进程1数据的起始服务器进程(绑定端⼝号=1111)(绑定端⼝号=996)序号=600序号=200应⽤层(⽤户区)(⽤户区)send()recv()send()recv()传输层传输层TCP协议(内核区)Socket(套接字)对象本机进程端⼝号=1111(对⽅)IP:端⼝号=233.0.0.1:996Socket(套接字)对象本机进程端⼝号=996TCP协议(对⽅)IP:端⼝号=166.1.1.1:1111(内核区)10B发送缓冲区(C→S)接收缓冲区8B10B接收缓冲区(C←S)发送缓冲区8B待发送数据(100B)char[50]空数组待发送数据(50B)char[100]空数组研/CSKAOYANTCP传输的底层原理本质上是⻓度为100的数组⻓度是由你来决定IP=233.0.0.1应⽤层char[]数组,你可以⾃的,如果预留⻓度不够,⼰写⼊数据IP=166.1.1.1可以再扩容数据的起始客户进程1数据的起始服务器进程(绑定端⼝号=1111)(绑定端⼝号=996)序号=600序号=200应⽤层待发送数据char[50]待发送数据char[100](⽤户区)(⽤户区)(100B)空数组(50B)空数组send()recv()send()recv()传输层传输层TCP协议(内核区)Socket(套接字)对象本机进程端⼝号=1111(对⽅)IP:端⼝号=233.0.0.1:996Socket(套接字)对象本机进程端⼝号=996TCP协议(对⽅)IP:端⼝号=166.1.1.1:1111(内核区)10B发送缓冲区(C→S)接收缓冲区8B10B接收缓冲区(C←S)发送缓冲区8B研/CSKAOYAN重点体会:超时重传机制每发出⼀……客户发出的个报⽂报⽂段丢失段,就设置超时重传计时器重传,并重置计时器客户超时重传报⽂段(重置)超时重传t……t服务器顺利收研/CSKAOYAN计时器到重传报⽂段TCP传输的底层原理本质上是⻓度为100的数组⻓度是由你来决定IP=233.0.0.1应⽤层char[]数组,你可以⾃的,如果预留⻓度不够,⼰写⼊数据IP=166.1.1.1可以再扩容数据的起始客户进程1数据的起始服务器进程(绑定端⼝号=1111)(绑定端⼝号=996)序号=600序号=200应⽤层待发送数据char[50]待发送数据char[100](⽤户区)(⽤户区)(100B)空数组(50B)空数组send()recv()send()recv()传输层传输层TCP协议(内核区)Socket(套接字)对象本机进程端⼝号=1111(对⽅)IP:端⼝号=233.0.0.1:996Socket(套接字)对象本机进程端⼝号=996TCP协议(对⽅)IP:端⼝号=166.1.1.1:1111(内核区)10B发送缓冲区(C→S)接收缓冲区8B10B接收缓冲区(C←S)发送缓冲区8B研/CSKAOYANTCP传输的底层原理本质上是⻓度为100的数组⻓度是由你来决定IP=233.0.0.1应⽤层char[]数组,你可以⾃的,如果预留⻓度不够,⼰写⼊数据IP=166.1.1.1可以再扩容数据的起始客户进程1数据的起始服务器进程(绑定端⼝号=1111)(绑定端⼝号=996)序号=600序号=200应⽤层(⽤户区)(⽤户区)send()recv()send()recv()传输层传输层TCP协议(内核区)Socket(套接字)对象本机进程端⼝号=1111(对⽅)IP:端⼝号=233.0.0.1:996Socket(套接字)对象本机进程端⼝号=996TCP协议(对⽅)IP:端⼝号=166.1.1.1:1111(内核区)10B发送缓冲区(C→S)接收缓冲区8B10B接收缓冲区(C←S)发送缓冲区8B待发送数据(100B)char[50]空数组待发送数据(50B)char[100]空数组研/CSKAOYAN重点体会:超时重传机制……客户报⽂段顺利到达服务器超时重传计时器服务器返回的ACK段丢失重传,并重置计时器客户重传报⽂段,服务器收到重复数据(重置)t……t服务器再次返回ACK超时重传段,ack=622计时器研/CSKAOYANTCP传输的底层原理本质上是⻓度为100的数组⻓度是由你来决定IP=233.0.0.1应⽤层char[]数组,你可以⾃的,如果预留⻓度不够,⼰写⼊数据IP=166.1.1.1可以再扩容数据的起始客户进程1数据的起始服务器进程(绑定端⼝号=1111)(绑定端⼝号=996)序号=600序号=200应⽤层(⽤户区)(⽤户区)send()recv()send()recv()传输层传输层TCP协议(内核区)Socket(套接字)对象本机进程端⼝号=1111(对⽅)IP:端⼝号=233.0.0.1:996Socket(套接字)对象本机进程端⼝号=996TCP协议(对⽅)IP:端⼝号=166.1.1.1:1111(内核区)10B发送缓冲区(C→S)接收缓冲区8B10B接收缓冲区(C←S)发送缓冲区8B待发送数据(100B)char[50]空数组待发送数据(50B)char[100]空数组研/CSKAOYANTCP传输的底层原理本质上是⻓度为100的数组⻓度是由你来决定IP=233.0.0.1应⽤层char[]数组,你可以⾃的,如果预留⻓度不够,⼰写⼊数据IP=166.1.1.1可以再扩容数据的起始客户进程1数据的起始服务器进程(绑定端⼝号=1111)(绑定端⼝号=996)序号=600序号=200应⽤层(⽤户区)(⽤户区)send()recv()send()recv()传输层传输层TCP协议(内核区)Socket(套接字)对象本机进程端⼝号=1111(对⽅)IP:端⼝号=233.0.0.1:996Socket(套接字)对象本机进程端⼝号=996TCP协议(对⽅)IP:端⼝号=166.1.1.1:1111(内核区)10B发送缓冲区(C→S)接收缓冲区8B10B接收缓冲区(C←S)发送缓冲区8B待发送数据(100B)char[50]空数组待发送数据(50B)char[100]空数组研/CSKAOYAN重点体会:快重传机制、立即确认机制超时重传……客户连续发出4个报超时重传……客户连续发出4个报计时器计时器⽂段,第⼆个丢失⽂段,第⼆个丢失注意观察和理解:客户的发送窗⼝服务器返回的确认号为多少?引⼊快重传机制、快重传:如果发⽴即确认:每收到⼀个报⽂接收窗⼝值为多少?段就⽴即确认,即使是失序送⽅收到三个确报⽂段,也要⽴即返回ACK中已经没有可以认号相同的冗余客户⽴即重传发送的数据了ACK,就⽴即重发对应的报⽂段⽴即确认机制丢失的报⽂段服务器收到报⽂段后,接收缓冲区已满,应尽快交付给应⽤层,并返回最计时器时间还没新确认号、最新接收窗⼝⼤⼩到,但已经完成三个报⽂段依次超时,连续重发重传了!t……t(实际上后两个报⽂段早已被顺利接收,⼤可不必重发)服务器收到三个报⽂段后,接收缓冲区已满,应尽快交付给应⽤层,并返回最新确认号、最新接收窗⼝⼤⼩t……t研/CSKAOYAN超时重传……客户连续发出4个报超时重传……客户连续发出4个报计时器计时器⽂段,第⼆个丢失⽂段,第⼆个丢失注意观察和理解:客户的发送窗⼝服务器返回的确认号为多少?引⼊快重传机制、快重传:如果发⽴即确认:每收到⼀个报⽂接收窗⼝值为多少?段就⽴即确认,即使是失序送⽅收到三个确报⽂段,也要⽴即返回ACK中已经没有可以认号相同的冗余客户⽴即重传发送的数据了ACK,就⽴即重发对应的报⽂段⽴即确认机制丢失的报⽂段服务器收到三个报⽂段后,接收缓冲区已满,应尽快交付给应⽤层,并返计时器时间还没回最新确认号、最新接收窗⼝⼤⼩到,但已经完成三个报⽂段依次超时,连续重发重传了!t……t(实际上后两个报⽂段早已被顺利接收,⼤可不必重发)服务器收到三个报⽂段后,接收缓冲区已满,应尽快交付给应⽤层,并返回最新确认号、最新接收窗⼝⼤⼩t……t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论