计算机网络学习笔记(6)---TCP、可靠数据传输、拥塞控制

1 TCP

1.1 TCP概述

(1)点对点:一个发送方,一个接收方;(2)可靠地、按序的字节流;

(3)流水线机制---TCP拥塞控制和流量控制机制设置窗口尺寸;(4)发送方/接收方缓存

(5)全双工(full-duplex)---统一连接中能够传输双向数据流;

(6)面向连接:

a、通信双方在发送数据之前必须建立连接;b、连接状态只在连接的两端中维护、在沿途结点中并不维护状态;c、TCP连接包括:两台主机上的缓存、连接状态变量、socket等;

(7)流量控制机制;

1.2 TCP段结构

1.3 TCP:序列号和ACK 

 1.4 TCP可靠数据传输

1、TCP可靠数据传输概述

2、TCP RTT(定时器超时时间设置)和超时 

(1) SampleRTT:测量从段发出去到收到ACK的时间---忽略重传

(2) SampleRTT变化:测量多个SampleRTT,求平均值,形成RTT的估计值EstimateedRTT

 3、TCP发送方事件

 4、TCP重传示例

 

 5、TCP ACK生成

 

 6、快速重传机制

 (1)问题:TCP的实现中,如果发生超时,超时时间间隔将重新设置,即将超时时间间隔加倍,导致其很大;-----导致重发丢失的分组之前要等待很长时间

 (2)分析:通过 ACK检测分组丢失---Sender会背靠背的发送多个分组,如果某个分组丢失,可能会引发多个重复的ACK;

(3)解决:如果Sender收到对同一数据的3个ACK,则假定该数据之后的段已经丢失----快速重传:在定时器超市之前即进行重传;

 1.5 TCP流量控制(flow control)---速度匹配机制

(1)接收方为TCP连接分配buffer;(2)上层应用可能处理buffer中的数据速度较慢;

流量控制: 发送方不会传输的太多、太快以至于淹没接收方(buffer溢出)

假设:TCP receiver丢失乱序的segments,

a、Receiver通过在Segment的头部字段将RcvWindow告诉Sender;

b、Sender限制自己已经发送的但还未收到ACK的数据不超过接收方的空闲RcvWindow尺寸;

1.6 TCP连接管理

TCP sender(发送方)和receiver(接收方)在传输数据前需要建立连接;

1、初始化TCP变量:(1)Seq.#;(2)Buffer和流量控制信息;

2、Client(客户端):连接发起者:Socket clientSocket = new Socket("hostname","port number");

3、Server(服务器):等待客户连接请求:Socket connectionSocket = welcomeSocket.accept();

三次握手---Three way handshake

Step 1:client host sends TCP SYN segment to server;(specifies initial seq#,no data)注释:客户端向主机发送一个SYN报文段,不携带数据,将SYN标志位置1,表示建立连接,传递初始序列号;

 Step 2:server host receives SYN,replies with SYNACK segment;(server allocates buffers,specifies server initial seq.#)注释:主机收到SYN报文段,答复SYNACK报文段,服务器会分配缓存为这个连接,选择自己服务器的初始报文段;

Step 3:client receives SYNACK,replies with ACK segment,which may contain data;注释:客户机收到SYNACK,会答复一个ACK报文段,标志位不置1,这个会携带数据;

TCP连接管理:建立

TCP连接管理:关闭-----segment报文段

 1.7 拥塞控制原理

1、拥塞(Congestion)

(1)非正式定义:"太多发送主机发送了太多数据或者发送速度太快,以至于网络无法处理"

(2)表现:分组丢失(路由器缓存溢出);分组延迟过大(在路由器缓存中排队)

(3)拥塞控制VS流量控制

2、拥塞的成因和代价

(1)路由器有无限缓存---时延无限大

 (2)一个路由器---有限buffers,Sender重传分组

 (3)四个发送方,多跳,超时/重传

 

 3、拥塞控制的方法

 a、端到端拥塞控制:

 (1)网络层不需要显示的提供支持;(2)端系统通过观察loss、delay网络行为判断是否发生拥塞;(3)TCP采取这种方法;

b、网络辅助的拥塞控制:

(1)路由器向发送方显式地反馈网络拥塞信息;(2)简单的拥塞指示(1bit):SNA,DECbit,TCP/IP ECN,ATM;(3)指示发送方应该采取何种速率;

4、案例:ATM ABR拥塞控制

1.8 TCP拥塞控制的基本原理

 (1)加性增---乘性减:AIMD(Additive Increase,Multiplicative Decrease)

 原理:逐渐增加发送速率,谨慎探测可用带宽,知道发生los;

AIMD---Additive Increase:每个RTT将CongWin增大一个MSS---拥塞避免(MSS最大段的长度)

AIMD---Multiplicative Decrease:发生loss后将CongWin减半;

(2) TCP慢启动:SS

a、TCP连接建立时,CongWin=1;例如MSS=500byte,RTT=200msec,初始速率=20kbps;

b、可用带宽可能远远高于初始速率:希望快速增长

c、原理:当连接开始时,指数性增长;

d、指数性增长:每个RTT将CongWin翻倍,收到每个ACK进行操作;

e、初始速率很慢,但是快速攀升;

 

 (3)Threshold变量


 (4) Loss事件的处理

a、3个重复的ACKs:CongWin切到一半,然后线性增长

b、Timeout事件:CongWin直接设为1个MSS,然后指数增长,达到threshold后,再线性增长;

注:3个重复的ACKs表示网络还能够传输一些segments;timeout事件表明拥塞更为严重;

(5)TCP拥塞控制:总结

 6、TCP拥塞控制算法

 

 1.9 TCP性能分析

 2.0 传输层总结

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值