当前位置:文档之家› 第4章TCPIP协议簇3精品PPT课件

第4章TCPIP协议簇3精品PPT课件


事件
TCP 接收方的动作
有序数据段到达, 没有缺失的段, 所有其他数据段已经 ACKed
延迟 ACK. 等待 500ms 看是否还有数据段到达. 如果没有, 发送ACK
有序数据段到达, 没有缺失的段, 有一个延迟 ACK 等待
立即发送一个 积欠的 ACK
失序数据段到达
seq. # 高于预期值 测到间隔
发送方
接收方
udt_send(): 由rdt调用, 将分组通过不可靠的信道传 到接收方
rdt_rcv(): 当数据到达接收方 时调用
可靠数据传输: 开始起步
逐步发展收发双方的可靠数据传输协议 (rdt) 仅考虑单向的数据传输
✓ 但控制信息将双向流动! 使用有限状态机 (FSM) 来定义发送方,接收方
Rdt2.0:在可能发送出错的信道上传输
问题:如何从错误中恢复 ✓ 正向确认 (ACKs):由接收方发送报文向发送方 进行确认 ✓ 负向确认 (NAKs):由接收方发送报文向发送方 进行否认,说明分组有错 ✓ 发送方在收到NAK后进行分组重传
rdt2.0的新机制 (在 rdt1.0基础之上) ✓ 错误检测 ✓ 接收方的反馈:控制信息 (ACK,NAK)
丢失 ACK 场景
time
过早超时
可靠数据传输原理
不可靠传输通道的特性将决定可靠数据传输协 议(rdt)的复杂性。
可靠数据传输:开始起步
rdt_send(): 由上层进行调用 (e.g., 应用进程.),将数据传入 发送方并由其传给接收方的上层
deliver_data(): 由 rdt调用将数据递交给上层
4.3 传输层协议及应用
传输层与网络层的关系
Internet中的传输 层充当“收发室 ”的角色;
Internet中的网络 层充当“邮递业 务”的角色;
网络层为传输层 提供通信服务。
应用程序 (进程)
Internet
应用程序 (进程)
IP协议域 TCP/UDP协议域
传输层协议服务
TCP 服务
面向连接:在客户端和
(1)TCP 段格式
20B+Options
URG: urgent data (一般不用)
ACK: ACK # 1:valid,0:invalid
PSH: push data now (一般不用)
32 bits
source port # dest port #
sequence number
acknowledgement number
1、传输控制协议TCP
IP提供了将分组从源地址传送到目的地址的方 法,但IP是一种不可靠服务,它没有解决诸如数 据报丢失或误投递的问题;TCP是一种可靠传输 服务,解决了IP没有解决的问题,二者的结合, 提供了一种在Internet上可靠数据传输的方法。
RFC: 793, 1122, 1323, 2018, 2581
TCP协议的主要功能如下:
可靠、按序的字节流: 无“报文边界”,无结 构但有顺序
面向连接:在交换数据 前初始化收发双方的状 态,“三次握手”过程
发送& 接收缓存
全双工数据传输:在 同一连接上双向传输
流量控制:发送方的 发送速度不得超过接 收方的处理速度
流水式控制:TCP的 拥塞和流量控制,设 置窗口大小
head len
not used
UAP R SF
rcvr window size
checksum
ptr urgent data
Options
RST: TCP Con. Reset SYN: If SYN=1&ACK=0
Then setup TCP con. If SYN=1&ACK=1
Then accept TCP con. FIN: release TCP con.
发送重复的 ACK, 说明 seq. # 为下一个期望的字节
到达的数据段部分或全部填满 立即 ACK,如果数据段处于缺失的
了缺失的段
段的较低端
TCP: 重传场景
Host A
Host B
X
loss
Host A
Host B
timeout
Seq=100 timeout Seq=92 timeout
time
Internet checksum
应用数据 (可变长度)
按发送数据的 字节计算 (不是按段数!)
# bytes 接收方愿意 接受的
首部 长度
32 bit
源端口
序列号 确认号
保留
U AP RS F R CS SY I G KH T N N
校验和
任意选项(如果有的话)
数据 LLL
目的端口
窗口 紧急指针
Rdt2.0:有限状态机定义
发送方的FSM
接收方FSM
Rdt2.0:运行过程 (未发现错误)
发送方FSM
接收方FSM
Rdt2.0:运行过程 (出错情况)
发送方Ftt ffoorr eevveenntt
event: timer timeout for segment with seq # y
retransmit segment
event: ACK received, with ACK # y
ACK processing
TCP 接收方ACK 规则
状态: 当实体处于
某个“状态”时 , 下个状态只能
state 1
由下个事件来转

导致状态转换的事件 在状态转换过程中的动作
事件 动作
state 2
Rdt1.0:在可靠信道上进行可靠的数据传输
所依赖的信道非常可靠
✓ 不可能有位错 ✓ 不会丢失数据
分别为发送方和接收方建立 FSMs
✓ 发送方将数据送入所依赖的信道 ✓ 接收方从所依赖的信道读出数据
服务器进程之间需要建 立连接
可靠传输:在发送和接
受进程之间
流量控制:发送数据的
速度决超过接收的速度
拥塞控制:当网络超负
荷时,束紧发送端口, 减缓发送速度
不提供:实时性、最小
带宽承诺
UDP服务
在客户端和服务器 进程之间实现“不 可靠的”数据传输
不提供连接建立、 可靠性保证、流量 控制、拥塞控制、 实时性、最小带宽 承诺
填充
(2)TCP连接建立和拆除 传输之前源主机与目标主机有三次握手建立连接。
连接请求

响应连接请求


确认响应



三次握手完成

开始传输数据
(3)TCP:可靠数据传输
event: data received from application above create, send segment
相关主题