第一次实验:Protocol Layers

2023-10-31

目的:
了解协议和分层是如何在数据包中表示的。它们是构建文本的1.3和1.4中所涉及的网络的关键概念。
环境:
Wireshark;wget

实验报告正文
# 实验过程

捕获跟踪

Pick a URL and fetch it with wget or curl*.*

请添加图片描述

捕获结果如下

请添加图片描述

检查跟踪

请添加图片描述

协议为HTTP,是一个GET

请添加图片描述

另一个数据包,信息字段中有“200 OK”

数据包结构

请添加图片描述

  • Ethernet占用14字节

请添加图片描述

  • IP占用20字节

请添加图片描述

  • TCP占用20字节

请添加图片描述

  • HTTP占用156字节
Ethernet IP TCP HTTP
14B 20B 20B 156B
Ethernet Header Ethernet Payload Ethernet Payload Ethernet Payload
IP Header IP Payload IP Payload

协议开销

请添加图片描述

有效开销为 156 156 156B

协议开销:
66 + 54 + 210 − 156 + 60 = 234 B 66 + 54 + 210 - 156 + 60 = 234B 66+54+210156+60=234B
有效信息占比为
156 / 390 = 40 % 156/390 = 40\% 156/390=40%
由此可知协议开销很大。

复用密钥

Which Ethernet header field is the demultiplexing key that tells it the next higher layer is IP?

请添加图片描述

Ethernet报头字段是 Type ,对应取值为 0x0800

Which IP header field is the demultiplexing key that tells it the next higher layer is TCP? What

请添加图片描述

IP包头字段是 Protocol ,对应取值为 6

Explore on your own

不携带高层数据的短TCP数据包的作用

请添加图片描述

在三次握手协议中,需要客户端先发送TCP-服务器发回确认-客户端再次确认,这些数据包都是不含高层数据的短TCP。以上图中的TCP为例,为第三次握手。

服务器响应的数据包中第一个包和最后一个包有什么不同

  1. 第一个包通常包含响应的 HTTP 头部,而最后一个包则包含 HTTP 实体的最后一部分或者完整的实体。
  2. 第一个包和最后一个包的序列号和确认号(sequence number and acknowledgment number)也会不同,因为它们传输的是不同的数据。

底层加密如何实现

如果底层添加了加密,则底层将在从高层传递下来的消息中添加一个新的消息头(用于加密和解密),并将该消息传递到下一层。这意味着每个底层消息不再仅仅是一个被修改的高层消息,而是一个新的被加密的消息。这可能会导致下层消息的数量增加,因为一条高层消息可能需要多个被加密的消息来传输。这也使得协议分析和网络分析更加复杂。除此之外,密钥不应进行传输,而应与接收方协商防止加密失效。

下层增加压缩的变化

下层会将头附加到从高层传递下来的消息中,因此如果下层增加了压缩,该模型会发生变化。具体来说,在下层增加了压缩后,下层接收到来自高层的消息时,会将其压缩后附加头部,然后将消息和头部作为一个新的消息传递到下一层。在接收端,下层会解压消息并去除头部,然后将解压后的消息传递到上层。因此,压缩的添加会导致消息在传递过程中被改变,但整个分层模型的基本结构不会发生改变。请添加图片描述

请添加图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第一次实验:Protocol Layers 的相关文章

  • 使用意图过滤器从 URL 打开 Android 应用程序不起作用

    我有一个 Android 应用程序 人们用它来替代网站 因此 当用户遇到网站的 URL 时 我想为他们提供在我的应用程序中而不是在浏览器中 打开 URL 的选项 换句话说 我希望出现弹出窗口 让他们在我的应用程序和浏览器 可能还有其他应用程
  • 静默地将 api 资源移动到另一个 url

    我已经用 WepApi 2 编写的 api 与主网站紧密结合 我决定将其与另一个网络应用程序解耦 以使事情更加隔离 我遵循了这样的步骤 将所有 API 控制器提取到另一个项目 创建属性以将当前使用旧 URL 的所有用户重定向到新 URL 由
  • Node.JS Web 服务器中的安全性

    所以 我正在学习 Node JS 到目前为止我很喜欢它 我已经有几个项目在工作了 我想我可以在其中使用nodejs 不过 我担心安全问题 如果我使用 Node JS http 模块编写自定义 Web 服务器 我是否可能非常容易受到攻击 Ap
  • 如何自定义解析错误的 HTTP 400 响应?

    我编写了一个 REST API 服务 要求所有响应均为 JSON 但是 当 Go HTTP 请求解析器遇到错误时 它会返回 400 作为纯文本响应 而不会调用我的处理程序 例子 gt curl i H Authorization Basic
  • 是否可以阻止在每个 HTTP 请求中发送 cookie?

    我最近发现 这里 每个网络请求都会发送浏览器cookie吗 https stackoverflow com questions 1336126 does every web request send the browser cookies
  • 对于非文本媒体类型,发送带有 Content-Type 标头的字符集参数是否绝对错误?

    我发现了两个软件之间的错误 其中一个正在发出标头 Content Type application x bittorrent charset utf 8 另一个是错误地处理这个问题 但如果删除 charset 参数 则可以正确处理它 我需要
  • Jsoup http 日志记录

    有没有办法记录http请求和响应 我们假设以下请求 Connection Response res Jsoup connect LOGIN URL HERE data user USER pass PASS method Connectio
  • DefaultHttpClient GET 和 POST 命令 Java Android

    好的 这是我的应用程序 一个 Android 应用程序 允许我从移动应用程序 而不是从网站 将 CokeZone 代码提交到 CokeZone co uk 所以我编写了这部分代码来执行登录后命令 然后检查我是否登录后 问题是 发送 post
  • 我首次设置 AWS EB 时创建的默认安全组是什么?

    我对几个组所扮演的角色感到困惑 这些组似乎已自动添加到我的 AWS 安全组列表中 并以我收集的默认配置进行连接 并且想知道它们是如何工作的 以及它们的安全性如何 改变 具体来说 有三个神秘之处 launch wizard 1其中有一条入站规
  • 如何使用独立的 Jetty 进行服务器推送

    我正在尝试使用独立的 Jetty 在静态网站上测试服务器推送功能 我的网站由一个index html 1个CSS 一堆图像组成 目录结构为 Album index html style css images image 1 png a se
  • 由于请求的资源上不存在“Access-Control-Allow-Origin”标头,无法获取与 Axios 的链接请求

    我正在尝试使用 cryptocompare api 来获取 axios 的 coindata 列表 但我不知道如何解决这个问题 我相信这是一个 CORS 问题 但我不确定 完整错误如下 加载失败https www cryptocompare
  • OkHttp如何获取Json字符串?

    Solution 这是我这边的一个错误 正确的方法是响应 body string 以外响应 body toString 我使用 Jetty servlet URL 是http 172 16 10 126 8789 test path jso
  • 在处理程序之后访问 HTTP 请求上下文

    在我的日志记录中间件 链中的第一个 中 我需要访问一些在链下游的某些身份验证中间件中编写的上下文 并且仅在处理程序本身执行之后 旁注 需要首先调用日志记录中间件 因为我需要记录请求的持续时间 包括在中间件中花费的时间 此外 当权限不足时 身
  • 是否可以修改 $_SESSION 变量?

    恶意用户是否可以将 SESSION 在 php 中 变量设置为他想要的任何值 很大程度上取决于您的代码 有一点非常明显 SESSION username REQUEST username
  • 当会话令牌无效时,我应该使用什么状态代码?

    创建 Web 服务 RESTful 时 当会话令牌无效时我应该使用什么状态代码 目前我公司的人给我发了一个404 未找到 但我认为这是不正确的 因为资源存在 也许我应该使用 401 Unauthorized 你怎么认为 您建议我在这种情况下
  • 多个客户端如何同时连接到服务器上的一个端口(例如 80)? [复制]

    这个问题在这里已经有答案了 我了解端口工作原理的基础知识 但是 我不明白的是多个客户端如何同时连接到端口 80 我知道每个客户端都有一个唯一的 对于他们的机器 端口 服务器是否从可用端口回复客户端 并简单地声明回复来自 80 这是如何运作的
  • 使用 Http Post 发送图像

    我想使用 Http Post 将图像从 android 客户端发送到 Django 服务器 该图像是从图库中选择的 目前 我正在使用列表值名称 Pairs 将必要的数据发送到服务器并接收来自 Django 的 JSON 响应 是否可以对图像
  • 收到“路径‘OPTIONS’被禁止”。 ASP.NET网站异常

    我收到错误System Web HttpException Path OPTIONS is forbidden 自从我们将网站转移到新的服务器设置以来 我无法重新创建该错误 但我每天至少会收到几次有关此异常的电子邮件 有什么想法可能导致此问
  • 从 R 中的 HTTPS 连接逐行读取

    当创建连接时open r 它允许逐行读取 这对于批量处理大数据流非常有用 例如这个脚本 https gist github com jeroenooms d33a24958d99bb969ac0通过一次读取 100 行来解析相当大的 gzi
  • GET 和 POST 方法有什么区别? [复制]

    这个问题在这里已经有答案了 可能的重复 什么时候用POST 什么时候用GET https stackoverflow com questions 46585 when do you use post and when do you use

随机推荐

  • json字段 react_react 解析json

    Copyright 2013 2017 David Caldwell Permission to use copy modify and or distribute this software for any purpose with or
  • Python的sort函数和sorted、lambda和cmp

    1 sort和sorted 我们需要对List进行排序 Python提供了两个方法 对给定的List L进行排序 方法1 用List的成员函数sort进行排序 方法2 用built in函数sorted进行排序 从2 4开始 iterabl
  • STM32移植lwip之建立tcp服务器

    本篇目标 在之前能ping通pc机的工程基础上搭建tcp连接 并可以收发数据 在网络调试工具上显示 材料准备 基础工程 修改后能ping通pc机的工程 STM32官方移植lwip修改代码 调试工具 用来调试tcp连接下的数据接收 网络调试助
  • QT从入门到入土(七)——鼠标事件

    引言 个人认为 事件机制是Qt最难以理解且最为精妙的一部分 事件主要分为两种 在与用户交互时发生 比如按下鼠标 mousePressEvent 敲击键盘 keyPressEvent 等 系统自动发生 比如计时器事件 timerEvent 等
  • 嵌入式系统-CAT1025 EEPROM芯片自学报告

    一 芯片简介 CAT1025 是基于微控制器系统的存储器和电源监控的完全解决方案 它利用低功耗 CMOS 技术将 2K 位的串行 EEPOM 和用于掉电保护的系统电源监控电路集成在一块芯片内 存储器采用 400KHz 的 I2C 总线接口
  • 搜索引擎solr系列---高亮配置及问题总结

    solr的高亮配置有两种方式 一种是配置形式 具体是在配置文件中配置的 该方式我没有用过 所以我这里就不写它了 另一种就是以代码的形式 我只会用这种方式 所以只写这部分 其实还要一种就是自我实现 这个更简单粗暴 1 高亮的代码具体如下 pa
  • 数据结构—散列表(哈希表)的原理以及Java代码的实现

    本文详细介绍了散列表的概念 散列函数的选择 散列冲突的解决办法 并且最后提供了一种散列表的Java代码实现 数组的特点是寻址容易 插入和删除困难 而链表的特点是寻址困难 插入和删除容易 而对于tree结构 它们的查找都是先从根节点进行查找
  • ElasticSearch 简介及基本操作

    简介 什么是ElasticSearch ElasticSearch 简称 ES 是基于Apache Lucene构建的开源搜索引擎 是当前最流行的企业级搜索引擎 Lucene本身就可以被认为迄今为止性能最好的一款开源搜索引擎工具包 但是lu
  • vue+element-ui初体验入门拥有自己的前台项目以及配置文件讲解(1)vue项目创建

    阿丹 之前一直在写jsp页面 自从发现vue可以支持更好看更高级的页面效果之后开始研究一下 这篇文章 可以带领兄弟们简单的得到实现一个简易的自己vue项目 如果想部署服务器上 可以参考阿丹的部署vue的文章哈 准备工作 编译工具 idea
  • python后端学习(五)迭代器、生成器、协程

    迭代器 迭代是访问集合元素的一种方式 迭代器是一个可以记住遍历的位置的对象 迭代器对象从集合的第一个元素开始访问 直到所有的元素被访问完结束 迭代器只能往前不会后退 1 可迭代对象 我们已经知道可以对list tuple str等类型的数据
  • CoreData之MagicalRecord源码解读

    CoreData之MagicalRecord源码解读 CoreData 与SQLite 说到数据持久化 很难让人不想到又爱又恨的CoreData 说到CoreData可能大多数人就是想到的繁琐 最直接的原因就是使用CoreData涉及的类特
  • “极狐•华为HI版本”的尴尬与困境

    2021年4月上海汽车展 发生了一起震惊中国汽车界的营销事件 华为在车展的前4天 4月15日 发布了一段高级辅助驾驶的演示视频 图1 在4月15日发布的视频中 2块显示屏叠在一起 告诉我们这是测试车 这个视频当中 汽车的内饰是和普通的电动轿
  • Qt程序的打包案例

    1 在Qt内构建并运行release 2 在运行后生成的文件夹中找到 exe后缀文件 然后复制 到桌面创建一个新文件夹 如login文件夹 3 在桌面创建一个文件夹 名字可以随意取 equip system 把刚复制的exe粘贴到里边 4
  • Flink主要组件以及工作流程

    Flink简介 Flink 是一个框架和分布式处理引擎 用于对无界和有界数据流 批处理和流处理 进行有状态计算 并且 Flink 提供了数据分布 容错机制以及资源管理等核心功能 Flink提供了诸多高抽象层的API以便用户编写分布式任务 D
  • 基于深度学习的无人驾驶道路检测

    最近在自学深度学习 网上有很多计算机视觉比赛和资源 比如kaggle 天池 百度飞浆 paddle现在做得越来越好 于是我就选择了百度飞浆 支持国产开源框架 也自己跑通了代码 以此记录一下学习过程 若有纰漏 恳请各位大佬多多指点 目录 一
  • EasyExcel导出案例(只有你想不到)

  • 红黑、B、B+————数据结构//复习复习复习

    二叉排序树 树型操作鼻祖 其他树的增删查都如此 平衡二叉树 查找效率最高 但维护成本高 对平衡二叉树的插入操作而言 其本质上比二叉排序树 BST 的插入操作多了一个平衡操作 解决了二叉排序树插入操作可能出现的斜树 不平衡问题 我们以插入一个
  • 【Python】刷题常用语法汇总

    Python刷题常用语法汇总 一 字符串操作 字符串是不可更改的对象 因此无法直接修改字符串的某一位字符 一种可行的方式是 将字符串转换为列表 修改列表的元素后 再重新连接为字符串 s thisisastring l list s l 0
  • Java代码实现本地创建文件,读取文件,删除指定目录下的文件

    目录 一 需求 二 实现 1 完成创建文件 写入文件 2 读取文件 3 删除文件 测试 注意 java的split方法分割字符串 分隔符如 及注意点 一 需求 1 创建文件夹 以规定格式保存信息到指定文件 并存放在相应目录下 2 在保存的目
  • 第一次实验:Protocol Layers

    第一次实验 Protocol Layers 捕获跟踪 Pick a URL and fetch it with wget or curl 检查跟踪 数据包结构 协议开销 复用密钥 Which Ethernet header field is