IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 计算机网络笔记(6)---TCP、可靠数据传输、拥塞控制 -> 正文阅读

[网络协议]计算机网络笔记(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 传输层总结

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 19:10:26  更:2021-09-11 19:10:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 1:46:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码