关于计算机网络原理问题

news2024/11/24 6:30:49

在这里插入图片描述
在这里插入图片描述
2017年12月07日星期四,

问题:
在这里插入图片描述
答案:
在这里插入图片描述
接下来,我们来分析和解答,

首先,你要知道,一个byte(字节)能表示两个十六进制数,那么四个字节就可以表示8个十六进制数,如下图:
在这里插入图片描述
色画出的部分就是这个从s发出的ip分组中,第一个4字节,正常的话应该是4X8=32个二进制,但是这样表示的话就太麻烦也不直观还很不直观,所以可以使用十六进制数来表示,因此,是45 、00、 00、28这4个十六进制数,

接下来,我们来看答案是怎么说的,答案中提到分组4和分组5,如下图,
在这里插入图片描述
我们先不管为什么用这两块的数值进行计算,我们来计算一下,看看结果是否和答案中给出的数值一致,

846B41D6

  • 846B41C6

00000010

因为是十六进制,因此十六进制的10等于十进制的16,既有10(H)=16(D),

与答案给出的16字节一致,因此,答案是没问题的,

接下来我们,来研究一下为什么要使用这两块的数值来参与运算,

1、
在这里插入图片描述
请注意,题目中给出的每一个分组报头都是包含两部分的,一部分是ip的报头(每个分组的第一行),另一部分是tcp的报头(每个分组的第二行),因此,不要看错行了,

请看上图,通过对图中所划黄线进行规律摸索,我们可以得出一个结论(下面我将结合此题给出的答案说明并论证此结论的正确性,这里请跟我先通过结论来理解为什么要用846b741c6和846b41d6这两块数据进行运算),就是图片中第四个分组里面的第二行中的第二个4字节数据表示源(c0a80008)主机向目标(d3444750)主机要发送数据序号从846b741c6开始的若干数据包,第一个序号的包的Sequence number(顺序号码)=846b741c6,而图中第5个分组的第二行中的第三个4字节数据则表示主机(d3444750)告诉主机(c0a80008)已收到了从846b741c6这个序号开始到最后一个序号为846b41d5的这些个数据包,Acknowledge number(确认号码)=846b41d6,请注意,这里,根据tcp/ip协议的规定,对收到的数据包的确认号码要自动加一,因此当主机(d3444750)确定收到了主机(c0a80008)的846b41d5这个数据包时,Acknowledge number(确认号码)自动加一,得到846b41d6并记录到分组中第二行第三个4字节中,

所以,结论就是每个分组中的第二行(tcp报头)中的第二个4字节十六进制数代表的是本分组中源端将要给目标端发送的数据包的序号即Sequence number(顺序号码),而每个分组中的第二行(tcp报头)中的第三个4字节十六进制数则代表本分组中源端向目标端进行的确认,确认收到了序号为【Acknowledge number(确认号码)-1】这个数据包,

接下来,我来证明,上述的结论和理论根据,

需要结合几幅图来进行说明,请看下面几张图,
在这里插入图片描述
首先我们要知道,在数据包的传递过程中,序号(Sequence number(顺序号码))的初始化是由系统通过算法来确定的,所以一般显示的都是随机的一个数,当然在本例中是有一个4字节的16进制数来表示的,846b741c6。
在这里插入图片描述
第二,我们要知道,通过对tcp报头中的两个位置的值进行分析后,可以判断出tcp连接的整个过程,
在这里插入图片描述
请注意看上图,1分组中的第二行(tcp报头)中第二个4字节的值就是Sequence number(顺序号码),它明确的告诉目标主机(d3444750)需要接收Sequence number(顺序号码)为846b741c5的数据包,然后2分组中的源主机(d3444750)对Sequence number(顺序号码)846b741c5的数据包进行确认,并按照tcp规则将Sequence number(顺序号码)加一后写入第二行的第三个4字节中即Acknowledge number(确认号码),同时,向自己的目标主机(c0a80008)发送Sequence number(顺序号码)为(e0599fef)的数据包,最后,3分组中的第二行中的第三个4字节对刚才从主机(d3444750)接收的(e0599fef)的数据包进行了确认【也是Acknowledge number(确认号码)+1】,又因为接到了主机(d3444750)对846b741c5的数据包的确认,因此将同时发送Sequence number(顺序号码)为846b741c6的数据包给目标主机(d3444750)。

参考书内容:TCP(Transmission Control Protocol)传输控制协议
TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:
位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence number(顺序号码) Acknowledge number(确认号码)
第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到主机B,主机B由SYN=1知道,A要求建立联机;
第二次握手:主机B收到请求后,要确认联机信息,向A发送ack number=1234568(主机A的seq number+1),syn=1,ack=1,随机产生seq number=7654321的包;
第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及ack(对A的发送来的请求,B的确认,)是否为1,若正确,主机A会再发送ack number=7654322(主机B的seq number+1),ack=1,主机B收到后确认seq number值(7654322)并且ack=1则连接建立成功。

扩展阅读材料:

TCP传输连接中的SYN、ACK、SEQ、AN分别是什么意思?他们所带的数字又是代表什么?

SYn=1.ACK=0,SEQ=200
SYN=1,ACK=1.SEQ=4800,AN=201
SYN=1,ACK=1.SEQ=201,AN=4801

SYN,ACK是标志位
SEQ,AN是数据包序号
SYN=1, ACK=0, SEQ=200 的意思是:发送端发出一个SYN请求(SYn=1),同时发送端发送了一个序号为SEQ=200的数据包,
SYN=1, ACK=1, SEQ=4800, AN=201 的意思是:接收端的确认信息,收到了序号为SEQ=200的数据包,同时接收端也发送了一个初始数据包序号为SEQ=4800的数据包,并等待发送端确认,

SYN=1,ACK=1.SEQ=201,AN=4801的意思是:首先,发送端通过接收端送回的AN=201,知道接收端已成功的接收了序号为SEQ=200的数据包,接下来发送端要发送序号为SEQ=201的数据包,并且同时告知接收端刚才送来的序号为SEQ=4800的包已收到,

August2024the31thSaturday

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Simulink代码生成:关系运算与逻辑运算

文章目录 1 引言2 模块使用实例2.1 关系运算2.2 关系运算 3 代码生成4 总结 1 引言 在Simulink中经常需要判断两个信号的大小关系、是否相等,或者判断布尔类型信号的与、或、非等。本文研究通过关系运算与逻辑运算模块实现上述需求。 2 模块使用实例 2.1 关系运算…

hello树先生——二叉搜索树

文章目录 一.搜索二叉树的性质二,功能函数接口1.二叉树的节点结构,分为左右指针和数据2.二叉树的插入函数3.删除接口4.中序遍历 三.测试项目 一.搜索二叉树的性质 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不…

uniapp scroll-view滚动触底加载 height高度自适应

背景&#xff1a; scroll-view组件是使用&#xff0c;官网说必须给一个高度height&#xff0c;否则无法滚动&#xff0c;所以刚开始设置了<scroll-view :style"height: 94vh" :scroll-y"true">设置了一个高度&#xff0c;想着vh应该挺合适的&#xf…

眼镜清洗机哪个品牌好?2024超声波清洗机推荐

眼镜作为日常生活不可或缺的配件&#xff0c;其卫生状况直接影响着我们的健康。日常简单的擦拭往往忽略了隐匿于镜片细微处的细菌群落&#xff0c;未彻底清洁的眼镜可能潜藏健康隐患。因此&#xff0c;深度清洁眼镜显得尤为关键&#xff0c;而超声波清洗机正是一种高效便捷的解…

探索《黑神话:悟空》背后的先进技术

黑神话&#xff1a;悟空》是一款备受期待的国产动作角色扮演游戏&#xff0c;凭借其令人惊叹的画面效果和极具深度的游戏玩法&#xff0c;吸引了全球玩家的目光。究竟是什么让这款游戏如此出色&#xff1f;让我们一起来探讨《黑神话&#xff1a;悟空》在开发过程中采用的几项尖…

java计算机毕设课设—固定资产管理系统(附源码、文章、相关截图、部署视频)

这是什么系统&#xff1f; java计算机毕设课设—固定资产管理系统(附源码、文章、相关截图、部署视频) 获取资料方式在最下方 本系统主要用于高校中的“资产”进行管理。具体地讲&#xff0c;固定资产管理系统就是通过资产的增加、删除、查看、借出、归还、维修等一系列手段…

lvs-nat的https模式设置

前言&#xff1a;LVS工作模式分为NAT模式、TUN模式、以及DR模式。在lvs服务器上&#xff0c;设置虚拟ip并做负载均衡使用。使用LVS架设的服务器集群系统有三个部分组成&#xff1a;最前端的负载均衡层&#xff08;Loader Balancer&#xff09;&#xff0c;中间的服务器群组层&a…

NCH DrawPad Pro for Mac/Win:强大的图像编辑处理软件

NCH DrawPad Pro for Mac/Win是一款功能全面的图像编辑和设计软件&#xff0c;专为Mac和Windows用户设计。它不仅适用于专业设计师&#xff0c;也深受业余爱好者和创意工作者的喜爱。DrawPad Pro凭借其丰富的绘图工具、强大的编辑功能和便捷的模板库&#xff0c;为用户提供了卓…

书生大模型实战营基础(3)——LangGPT结构化提示词编写实践

目录 0、基础知识 1、准备 1.1环境配置 1.2创建项目路径 2、模型部署 2.1获取模型 2.2部署模型为OpenAI server 3.提示工程(Prompt Engineering) 3.1 什么是Prompt 3.2 什么是提示工程 3.3 提示设计框架 4、任务 4.1利用LangGPT优化提示词 0、基础知识 Prompt&…

在Ubuntu系统上使用Docker部署.NET 6程序

基础用法 1. 安装Docker 首先&#xff0c;确保你的Ubuntu系统上安装了Docker。可以通过以下命令安装Docker&#xff1a; sudo apt update sudo apt install docker.io 安装完成后&#xff0c;启动Docker并设置为开机自启&#xff1a; sudo systemctl start docker sudo sys…

站长神器,AI批量生成原创文章工具免费用还能自动发布到站点

今天给大家带来的一款站长神器软件&#xff0c;一个专业AI原创文章批量自动生成工具&#xff0c;支持多种CMS&#xff0c;站群内容一键式管理分发&#xff0c;支持多任务创建&#xff0c;自动根据文章内容关联配图&#xff0c;每条任务支持独立AI模型、独立创作风格、独立写作模…

一体化运维管理软件在大中型机房管理中的挑战与应对方案

随着信息化技术的不断发展&#xff0c;大、中型机房作为企业数据处理与存储的核心场所&#xff0c;其运维管理的复杂性和挑战性也日益增加。面对日益增长的运维需求和不断变化的业务环境&#xff0c;传统的手工运维方式已经无法满足现代机房管理的要求。因此&#xff0c;一体化…

Vulnhub靶场 | DC系列 - DC5

文章目录 DC-5信息收集扫描靶机的IP地址扫描开放的端口访问80端口 文件包含漏洞渗透过程向日志中写入一句话木马使用蚁剑连接webshell在 /tmp下新建文件 一句话木马&#xff08;留个后门&#xff09;使用蚁剑虚拟终端反弹shell到kali在kali开启监听使用蚁剑虚拟终端反弹shell到…

OpenCV库的一些实用代码示例

OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库&#xff0c;它提供了大量的图像和视频分析功能。除了你提到的灰度转换、图像反转、高斯滤波和图像保存等基本操作外&#xff0c;OpenCV还包含许多其他功能&#xff…

linux Vim的安装和基本使用

Vim 什么是 Vim Vim是一个高度可定制的文本编辑器&#xff0c;源自Unix系统的vi编辑器。它被广泛用于类Unix系统中&#xff0c;包括Linux、Mac OS和Windows平台。Vim特别受到程序员的青睐&#xff0c;因为它提供了丰富的编程功能&#xff0c;如代码补全、编译及错误跳转等。这…

Apache Struts2开发模式漏洞解析与修复

1.引言 在现代Web应用开发中&#xff0c;Apache Struts2是一个广泛使用的MVC框架。然而&#xff0c;当一些开发方便的功能错用在生产环境时&#xff0c;会导致严重的安全隐患。本文将详细解析Struts2开发模式&#xff08;devMode&#xff09;带来的安全风险及其修复方法。 2.…

vim常用快捷键问答

vim的光标位置操作快捷键有哪些&#xff1f;怎样记忆它们&#xff1f; 在 Vim 中&#xff0c;光标位置的操作快捷键非常重要&#xff0c;可以帮助你更高效地编辑文本。下面是一些常用的光标位置操作快捷键&#xff1a; 基本移动 h&#xff1a;光标左移一个字符j&#xff1a;光…

【吊打面试官系列-Redis面试题】Redis 是单进程单线程的?

大家好&#xff0c;我是锋哥。今天分享关于 【Redis 是单进程单线程的&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; Redis 是单进程单线程的&#xff1f; Redis 是单进程单线程的&#xff0c;redis 利用队列技术将并发访问变为串行访问&#xff0c;消除了传统…

Linux-vim

文章目录 vi和vimvim的基本概念vim的基本操作vim正常模式命令集插入模式从插入模式切换为命令模式移动光标删除文字复制替换撤销上一次操作更改跳至指定的行 vim末行模式命令集列出行号跳到文件中的某一行查找字符保存文件推出vim vi和vim vi/vim的区别简单点来说&#xff0c;…

【初学人工智能原理】【14】机器学习:最后一节课也是第一节课(完结)

前言 本文教程均来自b站【小白也能听懂的人工智能原理】&#xff0c;感兴趣的可自行到b站观看。 代码及工具箱 本专栏的代码和工具函数已经上传到GitHub&#xff1a;1571859588/xiaobai_AI: 零基础入门人工智能 (github.com)&#xff0c;可以找到对应课程的代码 正文 随着…