计算机网络实验

  • 验证性实验
    • ipconfig
    • ping
    • tracert
    • ARP
    • DCHP
    • netstat
    • DNS
    • cache
  • wireshark实验
    • 数据链路层
    • 网络层
    • 传输层
    • 应用层
  • Cisco Packet Tracer实验

验证性实验

ipconfig

ipconfig 是微软操作系统的计算机上用来控制网络连接的一个命令行工具。它的主要用来显示当前网络连接的配置信息(/all 参数)。

参考

https://docs.microsoft.com/zh-cn/windows-server/administration/windows-commands/ipconfig
https://www.itread01.com/articles/1475880029.html
https://zh.wikipedia.org/wiki/Ipconfig

1.使用 ipconfig/all 查看自己计算机的网络配置,尽可能明白每行的意思,特别注意 IP 地址、子网掩码 Subnet Mask、网关 Gateway。

2.使用 ipconfig/all 查看旁边计算机的网络配置,看看有什么异同。

✎ 问题

你的计算机和旁边的计算机是否处于同一子网,为什么?

不是,因为我电脑链接的是热点,他的电脑连接的是校园网。

ping

PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序 。ping 是工作在 TCP/IP
网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message
Protocol 因特网报文控制协议)Echo 请求报文,测试目的站是否可达及了解其有关状态。

要测试到某计算机如 重庆交通大学 Web 服务器的连通性,可以使用 ping www.cqjtu.edu.cn 命令,也可直接使用 IP 地址。

字节是指收到的包的字节数。 时间为发送包到该地址并得到相应这个过程经历的时间。 TTL全称Time to Live
,发送的包经过一个节点,该值减1,在该值还为正数时到达目的节点为一次成功的传输,当该值减为0表示可能选择了一条错误的路径,会将该包丢掉,并通知包的源地址。

使用 ping/? 命令了解该命令的各种选项并实际使用。

当你的网络出现故障不能访问某计算机如 14.215.177.39 (百度的 IP 地址之一 )
时,我们一般可采用由近及远的连通性测试来确定问题所在。现假设你的 IP 是 192.168.1.89,你旁边计算机的 IP 是
192.168.1.64,网关的 IP 是 192.168.1.1 ,那么过程如下:

ping 127.0.0.1 ,测试自己计算机的状态,如果 OK,那么说明本机网络软件硬件工作正常,否则,问题在本机,检查本机 TCP/IP
配置即网卡状态等 ping 192.168.1.64
,测试到旁边计算机的连通性,如果OK,那么说明本子网内部工作正常,否则,问题在本机网络出口到交换机之间,检查本机网卡到交换机的连线等
ping 192.168.1.1,测试到网关的连通性,如果
OK,那么说明本子网出口工作正常,否则,问题在网关,这是你无能为力的事情,报告给网管 ping
14.215.177.39,测试到百度的连通性,如果 OK,那就 OK,否则,问题在网关以外,这也是你无能为力的事情,报告给网管或者李彦宏?

tracert

TRACERT (Trace Route 的组合缩写),也称为路由追踪,该命令行程序可用于跟踪 Internet 协议 (IP)
数据包传送到目标地址时经过的路径。

要了解到某计算机如 www.baidu.com 中间经过了哪些节点(路由器)及其它状态,可使用 tracert www.baidu.com 命令,查看反馈的信息,了解节点的个数。

ping.pe 这个网站可以探测从全球主要的 ISP 到某站点如 https://qige.io 的线路状态,当然也包括各线路到该主机的路由情况。请使用浏览器访问 http://ping.pe/qige.io 进行了解。

问题:tracert 能告诉我们路径上的节点以及大致的延迟等信息,那么它背后的原理是什么?本问题可结合第二部分的 Wireshark
实验进行验证。

答:Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP数据包访问目标所采取的路径。Tracert 命令使用用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由.其命令格式如下。

tracert [-d] [-h maximum_hops] [-j computer-list]
[-w timeout] target_name

问题二:在以上两个实作中,如果你留意路径中的节点,你会发现无论是访问百度还是棋歌教学网,路径中的第一跳都是相同的,甚至你应该发现似乎前几个节点都是相同的,你的解释是什么?

答:因为第一跳为本地交换机。

问题三:在追踪过程中,你可能会看到路径中某些节点显示为 * 号,这是发生了什么?

答:由于安全考虑或网络问题而没有回应,所以会有*号

ARP

ARP(Address Resolution Protocol)即地址解析协议,是用于根据给定网络层地址即 IP
地址,查找并得到其对应的数据链路层地址即 MAC地址的协议。 ARP 协议定义在 1982 年的 RFC 826。

运行 arp -a 命令查看当前的 arp 缓存, 请留意缓存了些什么。

请使用 arp /? 命令了解该命令的各种选项

一般而言,arp 缓存里常常会有网关的缓存,并且是动态类型的。

假设当前网关的 IP 地址是 10.60.255.254,MAC 地址是 54-BF-64-10-26-BC,请使用 arp -s 10.60.255.254 54-BF-64-10-26-BC 命令设置其为静态类型的。

TroubleShooting

你可能会在实作三的操作中得到 “ARP 项添加失败: 请求的操作需要提升” 这样的信息,表示命令没能执行成功,你该如何解决?

答:以管理员身份运行

DCHP

DHCP(Dynamic Host Configuration Protocol)即动态主机配置协议,是一个用于 IP
网络的网络协议,位于 OSI 模型的应用层,使用 UDP 协议工作,主要有两个用途:

用于内部网或网络服务供应商自动分配 IP 地址给用户 用于内部网管理员对所有电脑作中央管理

一般地,我们自动获取的网络配置信息包括:IP 地址、子网掩码、网关 IP 以及 DNS 服务器 IP 等。使用 ipconfig/release 命令释放自动获取的网络配置,并用 ipconfig/renew 命令重新获取,了解 DHCP 工作过程和原理。

ipconfig/release 会使计算机断网,ipconfig/renew可以使计算机恢复网络。

问题

在Windows系统下,如果由于某种原因计算机不能获取 DHCP 服务器的配置数据,那么Windows将会根据某种算法自动配置为
169.254.x.x 这样的 IP 地址。显然,这样的 IP 以及相关的配置信息是不能让我们真正接入 Internet 的,为什么?既然不能接入 Internet,那么Winodws系统采用这样的方案有什么意义?

答:自动配置的IP地址和信息只是短暂性的解决计算机不能获取 DHCP 服务器的配置数据的问题,要真正的接入Internet还是得本身计算机的正确IP地址。

netstat

无论是使用 TCP 还是 UDP,任何一个网络服务都与特定的端口(Port
Number)关联在一起。因此,每个端口都对应于某个通信协议/服务。

netstat(Network
Statistics)是在内核中访问网络连接状态及其相关信息的命令行程序,可以显示路由表、实际的网络连接和网络接口设备的状态信息,以及与
IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络服务运行状况。

Windows 系统将一些常用的端口与服务记录在 C:\WINDOWS\system32\drivers\etc\services 文件中,请查看该文件了解常用的端口号分配。

使用 netstat -an 命令,查看计算机当前的网络连接状况。更多的 netstat 命令选项,可参考上面链接 4 和 5 。

DNS

DNS(Domain Name System)即域名系统,是互联网的一项服务。它作为将域名和 IP
地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 使用 TCP 和 UDP 的 53 号端口。

Windows 系统将一些固定的/静态的 DNS 信息记录在 C:\WINDOWS\system32\drivers\etc\hosts 文件中,如我们常用的 localhost 就对应 127.0.0.1 。请查看该文件看看有什么记录在该文件中。

解析过的 DNS 记录将会被缓存,以利于加快解析速度。请使用 ipconfig /displaydns 命令查看。我们也可以使用 ipconfig /flushdns 命令来清除所有的 DNS 缓存。

使用 nslookup qige.io 命令,将使用默认的 DNS 服务器查询该域名。当然你也可以指定使用 CloudFlare(1.1.1.1)或 Google(8.8.8.8) 的全球 DNS 服务器来解析,如:nslookup qige.io 8.8.8.8,当然,由于你懂的原因,这不一定会得到正确的答案。

TroubleShooting

上面秘籍中我们提到了使用插件或自己修改 hosts
文件来屏蔽广告,思考一下这种方式为何能过滤广告?如果某些广告拦截失效,那么是什么原因?你应该怎样进行分析从而能够成功屏蔽它?

答:修改hosts文件可以让广告重定位到一个地址,使之无法访问,达到广告拦截目的。失败应该是那个广告更牛。

cache

cache 即缓存,是 IT 领域一个重要的技术。我们此处提到的 cache 主要是浏览器缓存。

浏览器缓存是根据 HTTP
报文的缓存标识进行的,是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。

打开 Chrome 或 Firefox 浏览器,访问 https://qige.io ,接下来敲 F12 键 或 Ctrl + Shift + I 组合键打开开发者工具,选择 Network 面板后刷新页面,你会在开发者工具底部看到加载该页面花费的时间。请进一步查看哪些文件被 cache了,哪些没有。

接下来仍在 Network 面板,选择 Disable cache 选项框,表明当前不使用 cache,页面数据全部来自于 Internet,刷新页面,再次在开发者工具底部查看加载该页面花费的时间。你可比对与有 cache 时的加载速度差异。

结论:利用缓存可以大大加快速度,这就是平时为啥再次进同一个网页要快些的原因。

wireshark实验

实作一 熟悉 Ethernet 帧结构
使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构,如:目的 MAC、源 MAC、类型、字段等。


用Cmder ping 一下qige.io

数据链路层

使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构,如:目的 MAC、源 MAC、类型、字段等。

问题:你会发现 Wireshark 展现给我们的帧中没有校验字段,请了解一下原因。

答:Wireshark 抓包前,在物理层网卡已经去掉了一些之前几层加的东西,比如前导同步码,FCS等等,之后利用校验码CRC校验,正确时才会进行下一步操作,因此,抓包软件抓到的是去掉前导同步码、FCS之外的数据,没有校验字段

掌握 ARP 解析过程
1.为防止干扰,先使用 arp -d * 命令清空 arp 缓存(这里需要用管理员身份运行)

2.ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可 arp 过滤),查看 ARP 请求的格式以及请求的内容,注意观察该请求的目的 MAC 地址是什么。再查看一下该请求的回应,注意观察该回应的源 MAC 和目的 MAC 地址是什么。

因为这里我和室友的电脑不在同一子网下

3.再次使用 arp -d * 命令清空 arp 缓存
4.然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 arp 过滤)。查看这次 ARP 请求的是什么,注意观察该请求是谁在回应。

因为这里网络问题,没有ping通。

问题 通过以上的实验,你应该会发现,

ARP 请求都是使用广播方式发送的 如果访问的是本子网的 IP,那么 ARP 解析将直接得到该 IP 对应的 MAC;如果访问的非本子网的
IP, 那么 ARP 解析将得到网关的 MAC。 请问为什么?

答:代理ARP原理:对于没有配置缺省网关的计算机要和其他网络中的计算机实现通信,网关收到源计算机的ARP请求会使用自己的MAC地址与目标计算机的IP地址对源计算机进行应答,访问非子网IP时是通过路由器访问的,路由器再把发出去,目标IP收到请求后,再通过路由器端口IP返回去,那么ARP解析将会得到网关的MAC。

网络层

使用 Wireshark 任意进行抓包(可用 ip 过滤),熟悉 IP 包的结构,如:版本、头部长度、总长度、TTL、协议类型等字段。

问题
为提高效率,我们应该让 IP 的头部尽可能的精简。但在如此珍贵的 IP 头部你会发现既有头部长度字段,也有总长度字段。请问为什么?

答:头部长度是来表明该包头部的长度,可以使得接收端计算出报头在何处结束及从何处开始读数据。总长度是为了接收方的网络层了解到传输的数据包含哪些,如果没有该部分,当数据链路层在传输时,对数据进行了填充,对应的网络层不会把填充的部分给去掉。

根据规定,一个 IP 包最大可以有 64K 字节。但由于 Ethernet 帧的限制,当 IP 包的数据超过 1500 字节时就会被发送方的数据链路层分段,然后在接收方的网络层重组。
缺省的,ping 命令只会向对方发送 32 个字节的数据。我们可以使用 ping 202.202.240.16 -l 2000 命令指定要发送的数据长度。此时使用 Wireshark 抓包(用 ip.addr == 202.202.240.16 进行过滤),了解 IP 包如何进行分段,如:分段标志、偏移量以及每个包的大小等

问题

分段与重组是一个耗费资源的操作,特别是当分段由传送路径上的节点即路由器来完成的时候,所以 IPv6 已经不允许分段了。那么
IPv6中,如果路由器遇到了一个大数据包该怎么办?

答:因为在 IPv6中分段只能在源与目的地上执行,不能在路由器上进行。因此当数据包过大时,路由器就会直接丢弃该数据包包,并向发送端发回一个"分组太大"的ICMP差错报文,之后发送端就会使用较小长度的IP数据报重发数据,所以路由器会直接丢弃再通知发送端进行重传。

问题

在 IPv4 中,TTL 虽然定义为生命期即 Time To Live,但现实中我们都以跳数/节点数进行设置。如果你收到一个包,其
TTL的值为 50,那么可以推断这个包从源点到你之间有多少跳?

答:由ICMP 回显应答的 TTL 字段值等于128减去TTL返回值,跳数则为128-50=78跳。

传输层

1、用 Wireshark 任意抓包(可用 tcp 过滤),熟悉 TCP 段的结构,如:源端口、目的端口、序列号、确认号、各种标志位等字段。

2、用 Wireshark 任意抓包(可用 udp 过滤),熟悉 UDP 段的结构,如:源端口、目的端口、长度等。

问题

由上大家可以看到 UDP 的头部比 TCP 简单得多,但两者都有源和目的端口号。请问源和目的端口号用来干什么?

答:源端口来表示发送终端的某个应用程序,目的端口来表示接收终端的某个应用程序。
端口号就是来标识终端的应用程序,从而实现应用程序之间的通信。

应用层

1、先使用 ipconfig /flushdns 命令清除缓存,再使用 nslookup qige.io 命令进行解析,同时用 Wireshark 任意抓包(可用 dns 过滤)。


2、你应该可以看到当前计算机使用 UDP,向默认的 DNS 服务器的 53 号端口发出了查询请求,而 DNS 服务器的 53 号端口返回了结果。

问题

你可能会发现对同一个站点,我们发出的 DNS 解析请求不止一个,思考一下是什么原因?

答:为了使服务器的负载得到平衡(因为每天访问站点的次数非常多)网站就设有好几个计算机,每一个计算机都运行同样的服务器软件。这些计算机的IP地址不一样,但它们的域名却是相同的。这样,第一个访问该网址的就得到第一个计算机的IP地址,而第二个访问者就得到第二个计算机的IP地址等等。这样可使每一个计算机的负荷不会太大。

问题

刷新一次 qige.io 网站的页面同时进行抓包,你会发现不少的 304
代码的应答,这是所请求的对象没有更改的意思,让浏览器使用本地缓存的内容即可。那么服务器为什么会回答 304 应答而不是常见的 200 应答?

答:浏览器中的缓存,可以直接在缓存区获取到需要的内容,不需要服务器在回复对应的内容,可以减少服务器的一些工作,减小开销。采用200应答就是要完全的将内容发送给客服端,这个会增加服务器的一些开销等。

Cisco Packet Tracer实验

用交换机构建以下LAN,以下拓扑结构的局域网

|机器名|IP|子网掩码|
|pc0| 192.168.1.1 |255.255.255.0
|PC1|192.168.1.2|255.255.255.0
|PC2|192.168.2.1|255.255.255.0
|PC3|192.168.2.2|255.255.255.0

问题:
PC0 能否 ping 通 PC1、PC2、PC3 ?
PC3 能否 ping 通 PC0、PC1、PC2 ?为什么?
将 4 台PC 的掩码都改为 255.255.0.0 ,它们相互能 ping 通吗?为什么?
使用二层交换机连接的网络需要配置网关吗?为什么?

答:
1.能ping通PC1,不能ping通PC2、PC3。
2.能ping通PC2,不能ping通PC0、PC1。PC0和PC1的IP地址与子网掩码相与得到的结果是192.168.1.0,PC2和PC3的IP与子网掩码相与得到的是192.168.2.0,分别表示PC0和PC1处于同一子网下,PC2和PC3处于同一子网下,所以PC3不能ping通PC0和PC1。
3.能,因为ip地址与子网掩码相与后的结果都是192.168.0.0,表示都处于同一子网192.168.0.0下。
4.集线器Hub是工作在物理层,而交换机则是工作在物理层和数据链路层。两种工作的区域不同。

计算机网络(棋歌教学网站实验)相关推荐

  1. 计算机网络Wireshark实验-棋歌教学网

    计算机网络Wireshark实验 实验简介 实验准备 实验内容展示 数据链路层 实作一 熟悉 Ethernet 帧结构 实作二 了解子网内/外通信时的 MAC 地址 实作三 掌握ARP解析过程 网络层 ...

  2. 计算机维修进度安排表,教学进度表实验安排表考勤成绩册计算机网络技术教学进度表(计09本).doc...

    教学进度表实验安排表考勤成绩册计算机网络技术教学进度表(计09本).doc (1页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 教 学 ...

  3. 计算机网络教学网站设计,计算机网络教学网站设计

    摘要:利用ASP技术和数据库技术,设计了一个功能全面的计算机网络教学网站.网站使用FLASH作透明背景,增强了网站的动态效果.网站中的留言信息管理系统,实现人机交互和师生互动.网络教学课件使用Powe ...

  4. asp.netkg117《计算机网络》教学网站的设计与实现,《计算机网络》教学网站的设计与实现 毕业论文.doc...

    <计算机网络>教学网站的设计与实现 [摘要]:随着网络建设的逐步普及,大学高校局域网络的建设是高校向高水平.研究性大学跨进的必然选择,高校校园网网络系统是一个非常庞大而复杂的系统,它不仅为 ...

  5. java-php-python-ssm计算机组成原理教学网站计算机毕业设计

    java-php-python-ssm计算机组成原理教学网站计算机毕业设计 java-php-python-ssm计算机组成原理教学网站计算机毕业设计 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  6. 高职计算机网络技术课设,计算机专业毕业论文:高职计算机网络技术课堂教学改革研究...

    计算机专业毕业论文:高职计算机网络技术课堂教学改革研究 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 根据本节教材用实验和猜测相结 ...

  7. 计算机强化课程计算机网络,大学计算机网络技术课程教学改革

    [摘要]在课程体系建设上,要将计算机网络技术课程理论内容与实践应用相结合,在高校应与学生的未来职业生涯建立必然联系.在计算机网络教学理念上,不断开拓思路,合理调整课程体系结构,从而实现课程改革的创新. ...

  8. 虚拟化实验室推进计算机网络专业实践教学的解决方案(论文体)

    虚拟化实验室推进计算机网络专业实践教学的解决方案 谌玺 天朝下 重庆市 辛苦街 累死路 摘要:经过几年来对高校计算机网络及信息安全专业的教学与实验课程的关注与分析,发现在实施"实践性&quo ...

  9. php教育网站设计案例_课程教学网站的设计与实现(MySQL)(含录像)

    课程教学网站的设计与实现(MySQL)(含录像)(开题报告,毕业论文17000字,程序代码,MySQL数据库)摘 要 随着Internet技术的发展,人们的学习生活已经离不开网络.未来社会人们的生活和 ...

  10. 微型计算机原理与接口技术 教案,微型计算机原理与接口技术教学网站的设计和开发...

    摘要: 本论文工作是建设微型计算机原理及接口技术课程的教学辅助网站和开发该课程的考试系统,实现利用计算机网络技术辅助执行部分教学功能,向学生传授知识和训练技能的教学活动.该辅助教学系统主要由用Drea ...

最新文章

  1. 【机器学习】基于人工鱼群算法的非线性函数寻优
  2. 团队离职率30%,被CTO怼了:这5招记住了,再有人离职,先把自己裁了!
  3. 大数据分析之Hadoop
  4. CF#1288A Deadline (函数求最值问题)
  5. Collections工具类 java
  6. 大数据 挑战 机会_大数据可视化面临哪些挑战
  7. 回文数 详解(C++)
  8. android内存泄露_Java应用程序中的内存泄漏及内存管理
  9. html电脑添加高德地图,vue-cli项目h5页面或者PC端页面引入高德地图组件,多点标注,自定义弹窗的详细描述...
  10. JAVA循环嵌套 方法的定义与重载 数组 数组异常 练习
  11. 如何将pdf压缩到最小?怎么将pdf文档压缩至更小?
  12. HTML文档的基本结构
  13. 第十三届蓝桥杯C++B组国赛D题——最大数字(AC)
  14. Java基础知识点总结(面试版)
  15. docker容器下载vim
  16. SAN存储的局限性相关介绍
  17. 如何使用phpdoc生成PHP文档
  18. 论文中如何写mysql的介绍_论文中数据库概念设计怎么写
  19. jxl 统计图_人教版试卷|小学数学,数学试卷下载_21试卷_21世纪教育网
  20. Pytest-html生成独立的报告以及Python打印日志

热门文章

  1. 【CP2K教程(一)】元动力学(metadynamics)与增强采样技术
  2. syswow64删除文件_Win7系统电脑中的Syswow64是什么文件夹?能不能删除?
  3. Resnet网络介绍
  4. 电子计算机的指法,键盘指法图/电脑键盘指法练习
  5. Linux系统安装教程(详细版)
  6. 计算机硬件调查和报价600字,600字调查报告.docx
  7. SequoiaDB 网络通信三剑客(maxsocketpernode,maxsocketperthread,maxsocketthread)
  8. Qdata模块-python获取关键词百度指数
  9. 加权平均np.average()
  10. Debezium系列之:手动创建存放ddl database.history.kafka.topic对应的topic