| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 计算机网络实验---Wireshark 实验 -> 正文阅读 |
|
[网络协议]计算机网络实验---Wireshark 实验 |
目录 Wireshark 实验本部分按照数据链路层、网络层、传输层以及应用层进行分类,共有 10 个实验。需要使用协议分析软件? 准备请自行查找或使用如下参考资料,了解?
🌏 参考
数据链路层实作一 熟悉 Ethernet 帧结构使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构,如:目的 MAC、源 MAC、类型、字段等。 ??问题 你会发现 Wireshark 展现给我们的帧中没有校验字段,请了解一下原因。 答:因为一般来说校验和会由网卡计算,这时wireshark抓到的本机发送的数据包的校验和是错误的,所以wireshark默认关闭了自己的校验 实作二 了解子网内/外通信时的 MAC 地址
?Ping 192.168.0.178 ?Ping baidu.com Ping qige.io ? ??问题 通过以上的实验,你会发现:
请问原因是什么? 访问本子网的计算机时,可以直接访问。访问非本子网的计算机时,需要通过网关,网关负责下一步的发送和接受,因为网关是一个子网内主机访问外网的出入口 实作三 掌握 ARP 解析过程
??问题 通过以上的实验,你应该会发现,
请问为什么? 答:ARP解析是先看arp表中是否有目的地址,如果有就不需要再次建立联系了,可以获取到目的MAC。如果没有就需要发送ARP请求,来获取目的MAC。如果目的地址是属于同一个子网,则不行要通过网关就能够进行通信,而不在同一个子网中就需要通过网关才能够建立联系。 网络层实作一 熟悉 IP 包结构使用 Wireshark 任意进行抓包(可用 ip 过滤),熟悉 IP 包的结构,如:版本、头部长度、总长度、TTL、协议类型等字段。 ??问题 为提高效率,我们应该让 IP 的头部尽可能的精简。但在如此珍贵的 IP 头部你会发现既有头部长度字段,也有总长度字段。请问为什么? 答:头部有一行是可选的,可以选择要或是不要。总长度展示了网络层所传输的数据。如果没有该部分,数据链路层在传输时会对数据进行填充,目的网络层不会把填充的部分给去掉。 实作二 IP 包的分段与重组根据规定,一个 IP 包最大可以有 64K 字节。但由于 Ethernet 帧的限制,当 IP 包的数据超过 1500 字节时就会被发送方的数据链路层分段,然后在接收方的网络层重组。 缺省的, ? ??问题 分段与重组是一个耗费资源的操作,特别是当分段由传送路径上的节点即路由器来完成的时候,所以 IPv6 已经不允许分段了。那么 IPv6 中,如果路由器遇到了一个大数据包该怎么办? 答:转发至支持该数据包的出链路上。 实作三 考察 TTL 事件在 IP 包头中有一个 TTL 字段用来限定该包可以在 Internet上传输多少跳(hops),一般该值设置为 64、128等。 在验证性实验部分我们使用了? 请使用? ???问题 在 IPv4 中,TTL 虽然定义为生命期即 Time To Live,但现实中我们都以跳数/节点数进行设置。如果你收到一个包,其 TTL 的值为 50,那么可以推断这个包从源点到你之间有多少跳? 答:假设设置TTL时大小为64,则推断这个包从源点到我之间有64-50=14跳 传输层实作一 熟悉 TCP 和 UDP 段结构
TCP ?UDP ??问题 由上大家可以看到 UDP 的头部比 TCP 简单得多,但两者都有源和目的端口号。请问源和目的端口号用来干什么? 答:源端口来表示发送方的应用程序,目的端口来表示接收终方的应用程序。通过记录收发双方的端口号,从而实现应用程序之间的通信。 实作二 分析 TCP 建立和释放连接
?1 ?2 tcp建立连接时发送的包为syn包,前两次握手时发送的包syn位为1,最后一次握手syn为0,可以作为tcp建立连接时的标识? 3 1)首先客户端发送一个fin值为1的包,用来关闭客户机到服务端的数据传送, 2)服务端收到这个fin包,发回一个ack包,表示收到这个请求 3)服务端发送一个fin包,用来关闭服务端到客户机的数据传送 4)客户机收到这个fin包,发回一个ack包 ???问题一 去掉? 答:多个连接可以加快数据的传输效率,使我们上网更流畅,同时资源消耗也比单单建立一个tcp连接要大 ??问题二 我们上面提到了释放连接需要四次挥手,有时你可能会抓到只有三次挥手。原因是什么? 答:上面挥手的第三步和第四步可能会被服务端和并发送,即当服务端没有数据要发送时,服务端收到来自客户机的fin包后,会发送一个ack和fin同时为1的包 应用层应用层的协议非常的多,我们只对 DNS 和 HTTP 进行相关的分析。 实作一 了解 DNS 解析
? ?发起请求 ?收到的回应中多了一个answer段 ??问题 你可能会发现对同一个站点,我们发出的 DNS 解析请求不止一个,思考一下是什么原因? 答:因为请求问题不一样,同一个站点,我们会请求它的ipv4地址和ipv6地址 实作二 了解 HTTP 的请求和应答
? ? ? 建议: HTTP 请求和应答的头部字段值得大家认真的学习,因为基于 Web 的编程中我们将会大量使用。如:将用户认证的令牌信息放到头部,或者把 cookie 放到头部等。 ??问题 刷新一次 qige.io 网站的页面同时进行抓包,你会发现不少的? 答:采用200应答就是要完全的将内容发送给客服端,而浏览器可以用cache对网页的数据进行缓存,不必每一项都向服务器进行请求。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 11:48:35- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |