【计算机网络原理】GBN,SR,TCP区别以及案例介绍

  • 概念介绍

GBN、SR和TCP协议的主要区别在于它们的重传机制、确认方式以及缓存机制的不同。‌

GBN(Go-Back-N)协议在数据传输中,如果某个报文段没有被正确接收,那么从这个报文段到后面的所有报文段都需要重新发送。GBN采用累计应答的方式,如果接收端返回ACK=3,则证明报文段3以及之前的所有报文段都被正确接收。GBN不设置缓冲区,接收端不对失序到达的报文段进行缓存,保证了报文的按序交付‌。

SR(Selective Repeat)协议在接收方设置缓冲区,用于接收失序到达的报文段。如果某个报文段没有被正确接收,但后面的报文段被正确接收了,那么只需要重发这个未确认的报文段。接收端返回ACK是当前接收成功的报文段序号,不采用累计应答的方式。SR为每个报文段设置单独的计时器,单个分组计时器超时只重发这一个报文段‌。

TCP协议与GBN和SR有所不同,它采用累计应答的方式,接收端返回ACK是期待接收的下一个报文段的序号。TCP在接收端设置缓存,用于缓存正确接收但失序的报文段。TCP还具有快速重传机制,如果在一定时间内收到多个冗余的ACK,就会提前重传丢失的报文段,大大提高了效率。TCP的ACK表示接收端希望从发送端收到的下一字节的序号‌。

  • 案例介绍:

  • 答案解析: 

  • 知识拓展:

报文段ACK的区别在于它们在TCP/IP协议中的功能和作用不同。‌

报文段是TCP/IP协议网络传输过程中的基本单位,它充当运输层的分组,负责传输数据。报文段包含多个字段,其中:

  1. 源端口‌和‌目标端口‌用于标识数据的发送方和接收方。
  2. 序列号‌用于标识发送端为每个字节进行的编号,确保数据的顺序和完整性。
  3. 确认号‌用于接收端确认已接收到的数据段,并告知发送端下一个期望接收的数据字节的序号。
  4. 首部长度‌和‌控制标志位‌(如URG、ACK、PSH、RST、SYN、FIN)提供报文段的各种控制信息。

ACK(Acknowledgment的缩写)在TCP/IP协议中是一个标志位,当ACK标志位为1时,确认号字段才有效。ACK字段的作用是确认接收端已经成功接收到了发送端发送的数据,并告知发送端下一个期望接收的数据字节的序号。在TCP连接建立后,所有传送的报文段都必须将ACK标志位置为1,以确保数据的可靠传输。

报文段和 ACK(确认报文)主要有以下区别:

一、含义与功能

报文段

  • 报文段是在网络中传输的数据单元,通常在传输层(如 TCP 协议中)包含了要传输的数据信息以及一些控制信息。例如在 TCP 报文段中,包括源端口号、目的端口号、序列号、确认号、窗口大小等字段。它的主要功能是携带数据从源主机向目的主机传输。
  • 报文段可以是携带用户数据的,比如一个网页文件被分割成多个报文段进行传输。

ACK(确认报文)

  • ACK 是一种特殊的报文,其主要目的是向发送方确认已经成功接收到特定的报文段。它通常只包含少量的控制信息,如确认号,用于告知发送方下一个期望接收的报文段的序列号。
  • ACK 不携带实际的数据内容,只是作为一种反馈机制,确保数据传输的可靠性。

二、产生与触发条件

报文段

  • 由发送方根据要传输的数据生成。当应用程序有数据要发送时,传输层协议(如 TCP)会将数据分割成适当大小的报文段,并添加必要的控制信息后发送出去。
  • 触发发送报文段的条件可以是应用程序主动发送数据、超时重传、快速重传等。

ACK

  • 由接收方产生。当接收方成功接收到一个报文段后,会根据报文段中的信息(如序列号)生成相应的 ACK,并发送回给发送方。
  • 触发发送 ACK 的条件是接收方正确接收到一个报文段,并且根据协议规定的确认机制(如累计确认或立即确认)决定发送 ACK。

三、传输方向与作用范围

报文段

  • 传输方向通常是从发送方到接收方,可以在不同的网络节点之间进行转发。
  • 作用范围涵盖整个数据传输路径,从源主机到目的主机之间的各个网络设备都可能对报文段进行处理和转发。

ACK

  • 传输方向与报文段相反,是从接收方到发送方。
  • 作用主要是在发送方和接收方之间的通信过程中,确保数据的可靠传输。ACK 可以让发送方知道哪些报文段已经被成功接收,以便决定是否需要重传。

总结来说,报文段是TCP/IP协议中用于传输数据的基本单位,包含多个字段以确保数据的可靠传输;而ACK是一个标志位,用于确认数据的接收情况,确保数据的可靠性和顺序性‌。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/896349.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

UI自动化测试 —— web端元素获取元素等待实践!

前言 Web UI自动化测试是一种软件测试方法,通过模拟用户行为,自动执行Web界面的各种操作,并验证操作结果是否符合预期,从而提高测试效率和准确性。 目的: 确保Web应用程序的界面在不同环境(如不同浏览器、操作系统)下…

每日OJ题_牛客_[NOIP2001]装箱问题_01背包_C++_Java

目录 牛客_[NOIP2001]装箱问题_01背包 题目解析 C代码 Java代码 牛客_[NOIP2001]装箱问题_01背包 [NOIP2001]装箱问题 (nowcoder.com) 描述: 有一个箱子容量为V(正整数,0 ≤ V ≤ 20000),同时有n个物品&…

面向对象进阶(上)(JAVA笔记第二十二期)

p.s.这是萌新自己自学总结的笔记,如果想学习得更透彻的话还是请去看大佬的讲解 目录 static修饰符静态变量静态方法 工具类工具类的使用例子第一题第二题 static注意事项继承关系建立继承关系的格式继承的好处及使用场景继承的特点继承体系的设计继承中类的三大要素…

redis集群介绍

Redis集群是一种分布式存储系统,它通过将数据分散存储在多个Redis节点上来实现可扩展性和高可用性。每个节点都是一个独立的Redis服务器实例,它们通过网络相互连接,共同协作以提供数据服务。 在Redis集群中,数据被划分为多个槽&am…

巧用这4款免费视频剪辑软件,帮你释放无限的创意。

可以免费使用的视频剪辑软件对于普通创作者而言还是比较重要的。因为越来越多的人渴望通过视频来表达自己的创意、分享生活点滴以及传达各种信息。专业的软件价格贵,操作复杂。简单免费的工具才是大多数人的选择,所以我要给大家介绍几个好用且免费的剪辑…

3D Slicer 教程三 ---- 坐标系

上篇提到3D Slicer 教程二 ---- 数据集-CSDN博客 3d slicer的坐标系与大多数医学影像软件使用LPS(左、后、上)坐标系统不太一样, 今天就仔细介绍一下坐标系的区别,复盘一下在影像处理中遇到的坐标问题(集中在坐标处理相关的,图像插值,图像处理, 定位线,翻…

服务器软件之Tomcat

服务器软件之Tomcat 服务器软件之Tomcat 服务器软件之Tomcat一、什么是Tomcat二、安装Tomcat1、前提:2、下载3、解压下载的tomcat4、tomcat启动常见错误4.1、tomcat8.0 startup报错java.util.logging.ErrorManager: 44.2、java.lang.UnsatisfiedLinkError 三、Tomca…

Ansible概述

目录 一、ansible简介 二、absible的特点 三、ansible的工作原理以及流程 四、ansible环境安装部署 五、ansible命令行模块 六、inventory 主机清单 一、ansible简介 Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。…

应用层——电子邮件、MIME、简单网络管理协议SNMP

电子邮件 电子邮件系统采用三个主要构件组成:用户代理、邮件服务器、电子邮件所需的协议 我们可以简单的认为邮件服务器中有很多邮箱,还有用来缓存再转发邮件的缓存,发送方使用用户代理通过邮件发送协议。例如SMTP将邮件发送给发送方。 邮件服…

基于MATLAB的混沌序列图像加密程序

设计目的 图像信息生动形象,它已成为人类表达信息的重要手段之一,网络上的图像数据很多是要求发送方和接受都要进行加密通信,信息的安全与保密显得尤为重要,因此我想运用异或运算将数据进行隐藏,连续使用同一数据对图…

排序04 视频播放建模

视频播放时长 用p拟合y,t是用户的实际观看时长,用y和p熵作为损失函数,使得p接近y。 输出z,对z做sigmoid变换。 exp(z)可以视为对播放时长的预估 视频完播 回归方法 二元分类方法 调整:预估完播率不能直接使用

预置持久化应用或者常驻应用会导致自升级不了android:persistent=”true”属性

1.错误打印: 2.问题原因: Android系统策略限制,持久化&system 不能自升级 3.持久化应用通常会在AndroidManifest.xml上下文有没配置android:persistent”true”属性 4.解决方案: 1.应用去掉android:persistent”true”属性…

【基于docker的深度学习训练环境】关键步骤记录

最近给公司搭建了一个小型的深度学习环境,实现了多人通过SSH对GPU资源的利用,下面对一些关键架构和易用性部分进行记录。 一、整体软硬件框架 1、硬件配置,采用的双GPU的方案,两块消费级显卡。 2、应用层架构 宿主机系统为ubunt…

【Redis】缓存预热、雪崩、击穿、穿透、过期删除策略、内存淘汰策略

Redis常见问题总结: Redis常见问题总结Redis缓存预热Redis缓存雪崩Redis缓存击穿Redis缓存穿透 Redis 中 key 的过期删除策略数据删除策略 Redis内存淘汰策略一、Redis对过期数据的处理(一)相关配置(二)内存淘汰流程&a…

WSL2-轻量级AI训练场景最佳生产环境

WSL2 只适用于 Win 10 、Win11 在运行 AI 软件、AI 模型训练,Linux 是最佳的操作系统。 在运行各种软件,如:Stable Diffusion Web UI 等,使用 Docker 容器运行也更方便后期的快速复用,同样的 Docker 容器在 Linux 中…

【STM32学习】PWM学习(四),散热风扇的控制,PWM调速调制,

目录 1、基础概念 2、PWM调速风扇功能介绍 2.1风扇功率 2.2、PWM输出流程图 2.3、PWM占空比计算 2.4参数计算 3、配置实现 3.1、添加TIM1功能 3.2、生成代码 3.3、修改代码 1、基础概念 参考:【STM32学习】PWM脉冲宽度调制学习笔记,&#xff…

关于k8s集群高可用性的探究

1. k8s的高可用的核心是什么? 说到核心、本质 意味着要从物理层来考虑技术 k8s是一个容器编排管理工具,k8s受欢迎的时机 是docker容器受欢迎时,因为太多的docker容器,管理起来是一个大工程 那么刚好k8s是google自己用了十来年…

《向量数据库指南》揭秘:GraphRAG如何重塑知识图谱与RAG的融合之道

嘿,各位向量数据库和AI领域的探索者们,我是你们的老朋友,大禹智库的向量数据库高级研究员王帅旭,也是《向量数据库指南》的作者。今天,咱们来聊聊一个既前沿又实用的话题——GraphRAG,一个通过结合知识图谱来增强检索增强生成(RAG)能力的新方法。如果你对向量数据库和A…

web网页QQ登录

代码&#xff1a; <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>QQ登录ent</title> </head> <style>ul > li{list-style: none; } a …

Axure重要元件三——中继器函数

亲爱的小伙伴&#xff0c;在您浏览之前&#xff0c;烦请关注一下&#xff0c;在此深表感谢&#xff01; 课程主题&#xff1a;中继器函数 主要内容&#xff1a;Item、Reperter、TargetItem 1、中继器的函数&#xff1a;Item\Reperter\TargetItem Item item&#xff1a;获取…