计算机网络学习笔记-流量控制和可靠传输

计网:第五章 运输层 基于湖科大教书匠b站计算机网络教学视频以及本校课程老师ppt整合出的计算机网络学习笔记 阅读详情

计算机网络学习笔记

笔记主要用于记录自己的学习经历,便于日后复习。
主要参考资源:《王道计算机网络》。
视频资源转至b站:
https://www.bilibili.com/video/BV19E411D78Q?from=search&seid=1517288630122778145

流量控制和可靠传输

1.流量控制

流量控制是为了让传输过程中的发送速度和接受速度匹配,减少传输出错与资源浪费
可靠传输是发送端发送什么,接收端就要受到什么。

1.1 停止等待协议(Stop-and-Wait)

在这里插入图片描述

停止等待协议的无差错情况
注释:因为一次就一个,所以用0和1标记ack就行

在这里插入图片描述

停止等待协议的有差错情况

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

停止等待协议的特点
1.简单
2.信道利用率低。大部分时间数据都在路上,发送方很长时间闲置,资源浪费

在这里插入图片描述在这里插入图片描述

1.2 后退N帧协议(GBN)

因为停止等待协议太浪费时间了,所以尝试采用GBN,发送连续多个数据帧,以增大信道利用率。
注释:
累计确认:就是收到一个确认帧,那么它和它之前的所有帧都默认已收到,反之,如果某个确认帧没收到,那么它和它之后的所有帧都默认丢失(即使收到了也丢掉),进行重传。

在这里插入图片描述

下图是一个实例
注释:此图发送2帧时丢失,所以接收方几首收到后面的帧也是直接丢弃并且发送最晚收到的有效帧1的ACK,直至2帧的超时重传机制被触发进行重传并得到ACK之后,接收方才会接受2帧以及后面的帧

在这里插入图片描述
发送窗口不能无限大,与使用的编号的比特数有关
很简单,就是1比特编号0和1,同理2比特编号0-3,如果用1比特编号,却要4个窗口长度,那么窗口内数据编号都编不过来,直接乱套了
GBN的优缺点也显而易见,优点是提高了信道利用率,缺点是因为重传机制的原因导致已经收到数据却需要强行丢弃而造成浪费

1.3 选择重传协议(SR)

​ 为了解决GBN的缺点,我们打算尝试只重传错误的帧,这样的话就不用浪费资源吧已经收到的帧再重传一次了。和GBN相比,两者都有窗口了,和GBN的区别其实就是做了一个数据缓存,已经收到的帧不用扔了,等待之前因意外丢失的帧收到的时候确认即可,但是只能缓存窗口尺寸内的包含的帧(PS,缓存咋可能无限大)

注释:2帧丢失之后仍然在发送,但是2帧丢失之后只是缓存,并没有移动窗口,直至最后2帧收到后一次性确认2-5帧
在这里插入图片描述

同样的,因为编号的问题,发送窗口不能无限大。发送窗口最后和接受窗口大小相同,这样利用率比较高

HALCON卡尺模型实战:5分钟搞定工件尺寸测量(附完整代码) 本文详细介绍了HALCON卡尺模型在工件尺寸测量中的实战应用,通过5分钟快速搭建测量系统的完整指南,包括基础配置、高级参数调优和完整代码示例。卡尺模型能自动识别边缘并计算精确尺寸,显著提升工业视觉检测的效率和一致性,特别适用于实时测量场景。 阅读详情

相关推荐

Cadence 17.4 PSpice仿真555定时器输出方波

这里利用555定时器组成多谐振荡器产生1Hz的方波并用PSpice仿真其输出的方波波形。555定时器是一种广泛应用的中规模集成电路。根据其内部组成的不同,可分为双极型(555B)和CMOS型(555C)两类。两种类型的定时器各有所长。双极型定时器具有较大的驱动能力,其输出电流可达200mA,可直接驱动发光二级管、扬声器、继电器等负载。而CMOS型定时器的输入阻抗高、功耗低。

tj_nonstoper的博客 1万+

对GBN协议的一些理解

王道书上的讲解不清楚,包括王道网课(2020)讲得也不清楚。 自己试着讲一下为什么窗口最大值 ≤ 2 (e^n) - 1 设用2个比特给帧编号:00、01、10、11 则帧序列为 [ 0,1,2,3 ],[ 0,1,2,3 ]... ...以此循环 那么按照公式,滑动窗口最大值为:3 假设发送窗口的大小为 4 如果第一个窗口发送的 0 1 2 3 号的确认帧全部丢失(即接收方收到...

qq_41228018的博客 1620

全国30米分辨率逐年植被覆盖度(FVC)数据集

植被覆盖度是描述地表植被的重要参数与生态环境的基本指标,在大气圈、土壤圈、水圈和生物圈中都占据着重要的地位,区域及全球范围的植被覆盖度估算对植被及相关领域的研究具有重要意义。分别对LANDSAT 5/7/8系列数据计算FVC,其中Landsat5 和Landsat 7NDVI计算利用 B4和B3波段,Landsat8 和Landsat9 NDVI计算利用 B5和B4波段。算法从当年所有观测数据中,以低云、低探测角度和最高NDVI值为标准,选择最佳的可用像元值,并进行换算。(3) FVC的计算。

地球资源数据云的官方博客 1808

计算机网络学习笔记二、 可靠传输机制与流量控制

计网面试知识点一、 流量控制与可靠传输机制 1. 背景   网络中进行数据传输时,如果发送方发送速率过快,超过了接收方的接收速度,会发生丢包等网络错误,因此需要对发送方发送速率加以控制,使得接收方能够及时接收数据,这种做法称为流量控制。流量控制是保证TCP可靠性的一个方面。   数据链路层进行流量控制的手段简单来说就是,接收方收不下,那就不回复确认(ACK)。   滑动窗口机制是进行流量控制的一种技术手段。 2. 滑动窗口协议   滑动窗口协议指的是一类协议,指采用滑动窗口机制设计的一些协议包括:1位滑动窗

菜到不敢run 677

Bootloader Design of PIC18 series MCU

注意:下列描述是在PIC单片机上启用Bootloader的一个相关知识的近似完备集。所有需要了解的,与bootloader与用户态程序交互的理论知识都已给出。包含内存组织,跳转,中断等必备功能的描述。

含光左卫的工作笔记集 1268

手把手教你用Silvaco Atlas复现GaN蓝光LED仿真:从网格划分到光谱分析全流程避坑

本文详细介绍了如何使用Silvaco Atlas进行GaN蓝光LED仿真,从网格划分到光谱分析的全流程避坑指南。重点讲解了网格划分技巧、材料参数设置、极化效应处理以及结果分析方法,帮助用户快速掌握半导体器件仿真技术,提升研发效率。

weixin_42552716的博客 226

计算机网络学习笔记之数据链路层的流量控制与可靠传输机制

计算机网络学习笔记之数据链路层的流量控制与可靠传输机制数据链路层的流量控制与可靠传输机制流量控制、可靠传输与滑动窗口机制单帧滑动窗口与停止-等待协议多帧滑动窗口与后退N帧协议(GBN)多帧滑动窗口与选择重传协议(SR)参考文献 数据链路层的流量控制与可靠传输机制 流量控制、可靠传输与滑动窗口机制 流量控制涉及对链路上的帧的发送速率的控制,以使接收方有足够的缓冲空间来接收每个帧。 例如,在面向帧的自动重传请求系统中,当待确认帧的数量增加时,有可能超出缓冲存储空间而造成过载。 流量控制的基本方法是由接收方控制发

FriendshipTang的博客 2301

unity人物刚体移动_Unity3D实现2D人物移动-总结篇

背景最近研究Unity3d,2d寻路的实现。所以又一次涉及到了角色坐标位移的问题。系统的对于角色鼠标点击移动这个简单问题进行整理和总结。本来就是一个简单的几何问题,结果发现已经有两个小坑,顺便填上,这里做下总结。实现需求:通过鼠标点击,控制2d角色移动,就是点哪里,角色向移动到哪里问题分解:按照时间进行动画分解,鼠标输入(动画开始)、平移(动画进行)、移动结束(动画结束)前提:这里前面的文章基本解...

weixin_39610366的博客 1277

【计算机网络】个人学习笔记——第五章 运输层:TCP&UDP&三次握手、四次挥手&TCP的可靠传输原理&TCP的拥塞控制与流量控制

计算机网络第五章运输层的个人学习笔记,本章的重点是TCP协议及其有关工作原理。主要包括:TCP协议,UDP协议,TCP协议的连接建立过程(三次握手与四次挥手),TCP可靠传输的实现原理,TCP协议的流量控制与拥塞控制

发布一些个人学习笔记,分享一些可能在安全学习道路上遇到的问题、心得,一起学习一起进步 1737

HTML音乐爱心3D旋转相册完整源码

HTML音乐爱心3D旋转相册完整源码

LilyCoder的博客 1380

高通SA8295P音频接口深度解析:全面掌握SA8295P的LS-I2S、PCM/TDM与高性能音频处理技术设计

SA8295P提供丰富的音频接口选项,包括LS-I2S、PCM/TDM和HS-I2S接口,具备灵活的配置选项,适合各种高保真音频和高速数据传输应用。结合LS-I2S和PCM/TDM接口:在复杂的音频编解码器设计中,可结合使用LS-I2S和PCM/TDM接口,以处理和传输不同的音频数据流。使用HS-I2S接口:在软件定义无线电(SDR)系统中,高速I2S接口可处理高速数据流,如无线电信号的解码和处理。LS-I2S(低速I2S)接口是SA8295P的一部分,提供了丰富的音频数据传输选项。

weixin_43199439的博客 1410

【学习笔记】【计算机网络】【传输层】UDP、TCP差异详解;TCP的可靠传输、流量控制、拥塞控制、三次握手、四次挥手;timewait中2MSL的必要性;

这里写自定义目录标题五、传输层1、 UDP协议详解2、 TCP协议详解1、传输控制协议(Transmission Control Protocol)2、基本原理3、可靠传输4、流量控制5、拥塞控制6、三次握手 - 建立连接;6、四次挥手- 断开连接;3、套接字编程参考 五、传输层 传输层是面向用户的最底层;也是面向通信的最高层; 用于管理端到端的通信连接; 前面学的网络层已经解决了:虚拟互联网络中怎样进行数据路由、决定了数据的走向; 可以看作进程之间的通信;(之前的域套接字、共享内存只是单机通信) 端口

多丰富下自己呀 653

基于CutLSTM-ATT 模型的刀具磨损预测-【一个月之内发一篇中文核心辅导】

基于CutLSTM-ATT 模型的刀具磨损预测-【一个月之内发一篇中文核心辅导】

317

《计算机网络》—— 5. 运输层

本博客总结了运输层的一些基础知识

weixin_43178683的博客 412

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

编程与数学 03-002 计算机网络 04_数据链路层功能

数据链路层是计算机网络中的重要层次,负责在相邻节点之间可靠地传输数据。数据链路层的主要任务包括封装成帧、差错控制和流量控制。封装成帧是数据链路层的基本任务之一,通过将网络层传下来的IP数据报封装成帧,加上帧头和帧尾,然后通过物理层传输到相邻节点。差错控制是数据链路层的另一个重要任务,通过差错检测和纠正机制来保证数据的正确传输。流量控制是数据链路层的另一个重要任务,通过控制发送方的发送速率,使得接收方能够及时处理接收到的数据。数据链路层的协议包括点对点协议(PPP协议)和以太网数据链路层协议。

明月看潮生的博客 1204

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

研究生复试-计算机网络学习笔记

第一章;计算机网络体系结构 1,计算机网络功能;数据通信,资源共享,分布式处理,提高可靠性,负载均衡。 2,计算机网络性能指标:带宽,时延,时延带宽积,往返时间。吞吐量,速率。 3,分层结构;OSI;物理层-数据链路层-网络层-传输层-会话层-表示层-应用层 物理层;在屋里媒体上为数据端设备透明传输原始比特流。 数据链路层:将网络层传下来的IP数据报封装成帧。成帧,差错控制,流量控制,传输管理。 ...

qq_33043295的博客 687

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【计算机网络】Tcp报文的组成,Tcp是如何实现可靠传输的?

详解计算机网络中的Tcp的报文组成,以及相比于Udp,Tcp是如何实现可靠传输的(确认应答,超时重传,三次握手四次挥手,滑动窗口,流量控制,拥塞控制)

yican2580的博客 4871

【计算机网络】第七话·计算机网络的流量控制

从今天开始,我将正式开启一个新的打卡专题——【计算机网络·宇宙计划】,没错!这是今年上半年的一整个系列计划!本专题目的是通过百天刷题计划,通过题目和知识点串联的方式,刷够1000道题!完成对计算机网络相关知识的全方位复习和巩固;同时还配有专门的笔记总结和文档教程哦!想要搞定,搞透计算机网络的同学,欢迎订阅本专栏!

kikokingの比特宇宙 5961

【计算机网络】流量控制与可靠传输机制

流量控制与可靠传输在计算机网络中的数据链路层和传输层均有所体现,只是体现形式不一致,但是对应的协议相同相同,为此本章主要介绍滑动窗口协议、停止-等待协议、后退N帧协议和选择重传协议。...

haoweixl的博客 2129

计算机网络:流量控制与可靠传输机制

🍔你(发送方)喂朋友(接收方)吃汉堡朋友嘴里塞满时说:"慢点!等我咽下去再喂!" → 这就是流量控制如果不管不顾猛塞,朋友会吐(缓冲区溢出)📱旧手机接收大文件时跳提示:"存储空间不足"发送方需要暂停发送 → 流量控制起作用。

m0_73254888的博客 1281

《计算机网络》深入学:流量控制与可靠传输

本文介绍了计算机网络中流量控制和可靠传输的基本原理与实现机制。首先阐述了发送方与接收方处理能力差异导致的问题,提出了流量控制和可靠传输两种解决机制。随后详细分析了三种核心协议:停止-等待协议的简单低效特性,后退N帧协议的累积确认机制及其重传问题,以及选择重传协议通过缓存乱序包实现的更高效率。文章还探讨了现代TCP协议如何结合这些理论,采用混合确认机制和动态窗口调整,并指出当前面临的长肥管道等新挑战。最后通过对比表格总结了三种协议的差异,强调这些机制在网络传输效率与可靠性平衡中的重要性。

计算机科学、人工智能、数据分析和大数据方向的研发和教学。 1324

【计算机网络篇】数据链路层 功能|组帧|流量控制与可靠传输机制

数据链路层是OSI模型的第二层,主要负责在相邻网络节点间提供可靠的数据传输。它通过帧同步、差错控制和流量控制来确保数据的完整性和准确性。这一层使用MAC地址识别设备,并在物理层传输的比特流上添加控制信息,形成数据帧。常见的数据链路层协议包括以太网和PPP,它们定义了数据封装和传输的具体方法。在本书中重要程度仅次于网络层,是非常重要的学习章节。下面我将逐步为大家介绍其重点。以上就是今天要讲的内容了,主要在组帧,流量控制与可靠传输机制方面做了重点的讲解,里面划分了很多值得重视的小点,在书中也是作为重要内容。

m0_74202856的博客 3176

【计算机网络】TCP 如何实现可靠传输

文章“【计算机网络】TCP 如何实现可靠传输”探讨了TCP协议如何实现数据的可靠传输。TCP通过序列号、确认应答、重传机制和拥塞控制等方式确保数据在传输过程中不丢失、不损坏、不重复,并保证数据按顺序到达。通过这些机制,TCP实现了可靠的端到端数据传输,成为互联网通信的基础协议之一。

朝花夕拾 1万+

《计算机网络》流量控制与可靠传输机制

一、流量控制与可靠传输机制 1、数据链路层的流量控制 2、流量的控制方式 停止-等待协议 :发送接收窗口均为1 滑动窗口协议 后退N桢协议(GBN):发送窗口大于1,接收窗口为1 选择重传协议(SR):发送接收窗口均大于1 3、可靠传输、滑动窗口、流量控制三者关系 可靠传输:发送端发啥,接收端接啥 流量控制:控制发送速率,使接收方有足够的缓冲空间来接收每一桢。 二、停止-等待协议 这里只讨论可靠传输的原理,不考虑数据在哪一层传送。 为什么要有停止-等待协议? 除了比特出差错,底层

weixin_51233575的博客 3278

【计算机网络】传输层(四)—— TCP 可靠传输、流量控制、拥塞控制

为了计算超时计时器的重传时间,TCP采用一种自适应算法,它记录一个报文段发出的时间,以及收到相应确认的时间,这两个时间之差称为报文段的往返时间(Round-TripTime,RTT)。在下图中,如果接收方己收到第一个报文段,此时B希望收到的下一个报文段的数据是从第4个字节开始的,那么B发送给A的报文中的确认号字段应为4。由于某种原因,B还未收到 字节4~6 的报文段,此时接收方 仍在等待字节4(和其后面的字节),因此接收方到发送方的下一个报文段将确认号字段置为4。...

haoweixl的博客 3179

计算机网络——数据链路层(流量传输与可靠传输机制)

计算机网络——数据链路层(流量传输与可靠传输机制)

qq_67693066的博客 2302
上一篇: 计算机网络学习笔记-第三章数据链路层
下一篇: 常见智力题
Guo_Chuang
博客等级 码龄6年 9粉丝 61原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值