【计算机网络】笔记——TCP-1

1 篇文章 0 订阅

RDT复习

RDT 1.0

可靠信道上的可靠数据传输:底层通信完全可靠。

RDT 2.0(停等协议)

  • 比特差错信道,按序接收。
  • 差错检测,接收方反馈(ACK/NAK),重传(ARQ)。

RDT 2.1

  • ACK和NAK可能受损
  • 重传+序号

RDT 2.2

  • 去掉NAK

RDT 3.0

  • 经具有比特差错的丢包信号的可靠数据传输。
  • 加一个计时器,等到合理时间后,发送方可重传。

流水线可靠数据传输协议

流水线对(pipeline)rdt的影响

  • 必须增加序号范围。
  • 两端必须缓存对个分组。
  • 解决流水线的差错回复方法。
    • 滑动窗口协议:回退n步GBN;选择重传SR。

TCP

connection-oriented protocal

  • 是一个点到点的传输。
  • 面向连接的。
  • 可靠的,有序字节流。
  • 流水线的。
  • 流控制的。
  • 全双工(双向的)

TCP长度20bytes
UDP长度8bytes

TCP的序号(Seq)和确认号(ACK)

数据编号(sequence number):字节为单位,首个字节的编号。(面向字节流)

确认号(acknowledgement number):字节为单位。期望接受的下一个字节的序列号(sequence number)。

rdt3.0 中定义确认号为当前字节的序列号,注意区分。

如何解决失序字节包

由实现决定,TCP未定义。

TCP-RTT

TCP的RTT比RTT长。
太短没必要。
太长对丢包的反应过慢。

估计RTT要取平均。

E s t i m a t e d R T T = ( 1 − α ) × E s t i m a t e d R T T + α × S a m p l e R T T EstimatedRTT = (1 - \alpha ) \times EstimatedRTT + \alpha \times SampleRTT EstimatedRTT=(1α)×EstimatedRTT+α×SampleRTT

过去样本影响呈指数级下降。

timeout应该大于EstimatedRTT

EstimatedRTT + “safe margin”

D e v R T T = ( 1 − β ) × D e v R T T + β × ∣ S a m p l e R T T − E s t m i a t e d R T T ∣     β = 0.25 DevRTT = (1-\beta) \times DevRTT + \beta \times | SampleRTT - EstmiatedRTT | \ \ \ \beta = 0.25 DevRTT=(1β)×DevRTT+β×SampleRTTEstmiatedRTT   β=0.25

TCP 的可靠传输

  • 基于IP的不可靠传输。
  • 流水线。
  • 累积确认。
  • 定时器,处理超时重传。

TCP发送

从APP接受数据:

  • 为segement创建序列号(Seq)。
  • 启动定时器。

超时:

  • 重发
  • 重启定时器

TCP流控制

接收方有一个缓冲区。类似队列。IP报一边一直进,一边一直出给应用进程。

RcvBuffer 默认4096bytes

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值