计算机网络自顶向下实例

news2024/11/10 14:20:36

一名学生将便携机与学校的以太网交换机相连,下载一个Web页面

①准备:DHCP、UDP、IP和以太网

学生启动便携机,然后用一根以太网电缆连接到学校的以太网交换机,交换机与学校的路由器相连。学校的路由器与一台ISP连接,以上图为例,ISP为comcast.net。

ISP为学校提供了DNS服务,所以DNS服务器在Comcast网络中而不是学校网络中

便携机与网络连接时,没有IP地址就不能做任何事情。所以便携机采取的一个网络相关的动作是运行DHCP协议,以从本地DHCP服务器获得一个IP地址以及其他信息

DHCP是什么?为什么要使用?

动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是一种网络管理协议,用于集中对用户IP地址进行动态管理和配置。

在IP网络中,每个连接Internet的设备都需要分配唯一的IP地址。DHCP使网络管理员能从中心结点监控和分配IP地址。当某台计算机移到网络中的其它位置时,能自动收到新的IP地址。DHCP实现的自动化分配IP地址不仅降低了配置和部署设备的时间,同时也降低了发生配置错误的可能性。另外DHCP服务器可以管理多个网段的配置信息,当某个网段的配置发生变化时,管理员只需要更新DHCP服务器上的相关配置即可,实现了集中化管理。

1)便携机上的操作系统生成一个DHCP请求报文,并将这个报文放入具有目的端口67(DHCP服务器)和源端口68(DHCP客户)的UDP报文段。该报文端被放置在一个具有广播IP目的地址255.255.255.255和源IP地址0.0.0.0IP数据报

2)包含DHCP请求报文的IP数据报被放置在以太网帧中。该以太网帧具有目的MAC地址FF:FF:FF:FF:FF:FF,将该帧广播到与交换机连接的所有设备上。以太网帧的源MAC地址是便携机的MAC地址00:16:D3:23:68:8A

3)包含DHCP请求的广播以太网帧是便携机发送到以太网交换机的第一个帧,该交换机在所有的出端口广播该帧,包括连接到路由器的端口

4)路由器在具有MAC地址00:22:6B:45:1F的接口接收该广播以太网帧(帧中包含DHCP请求),路由器从以太网帧中取出IP数据报。该数据报的广播IP目的地址表明这个IP数据报需要由该节点的高层协议处理,因此该数据报的载荷(一个UDP报文)被分解向上到达UDP,DHCP请求报文从UDP报文段中抽取出来。此时DHCP服务器获得DHCP请求报文

5)假设运行在路由器中的DHCP服务器能够以CIDR68.85.2.0/24分配IP地址。则本例中,学校内使用的所有IP地址都在Comcast的地址块中。假设DHCP服务器分配地址68.85.2.101给便携机。DHCP服务器生成包含这个IP地址以及DNS服务器的IP地址(68.87.71.226)、默认网关路由器的IP地址(68.85.2.1)和子网块(68.85.2.0/24)的一个DHCP ACK报文。该DHCP报文将被放入一个UDP报文段中,UDP报文段放入一个IP数据报中,IP数据报放入一个以太网帧中。这个以太网帧的源MAC地址是路由器连到归属网络时接口的MAC地址(00:22;6B:45:1F:1B),目的MAC地址时便携机的MAC地址(00:16:D3:23:68:8A

6)包含DHCP ACK的以太网帧由路由器发送给交换机。因为交换机时自学习的,并且先前从便携机收到以太网帧,所以该交换机知道要寻址到00:16:D3:23:68:8A的帧仅从通向便携机的输出端口转发

7)便携机接收到包含DHCP ACK的以太网帧,从该以太网帧中提取IP数据报,从IP数据报中提取UDP报文段,从UDP报文段中提取DHCP ACK报文。便携机的DHCP客户则记录它的IP地址和它的DNS服务器的IP地址。同时在IP转发表中安装默认网关的地址。便携机向该默认网关发送目的地址为子网68.85.2.0/24以外的所有数据报。便携机此时已经完成了网络组件的初始化,并开始准备进行Web网页的获取

②准备:DNS和ARP

当用户将www.google.com的URL键入Web浏览器时,开启了一长串的时间,这最终使得谷歌主页显示在Web浏览器。主机的Web浏览器通过生成一个TCP套接字开始该过程,套接字用于向www.google.com发送HTTP请求。为了生成该套接字,便携机需要知道www.google.com的IP地址,使用DNS协议提供这种名字到IP地址的转换服务

8)便携机上的操作系统生成一个DNS查询报文,将字符串www.google.com放入DNS报文的问题段中。该DNS报文则放置在一个具有53号(DNS服务器)目的端口的UDP报文段中。该UDP报文段则被放入具有IP目的地址68.87.71.226(DHCP ACK返回的DNS服务器地址)和源IP地址68.85.2.101的IP数据报中

9)便携机将包含DNS请求报文的数据报放入一个以太网帧中。将该帧发送到学校网络中的网关路由器。即使便携机知道了学校网关路由器的IP地址(通过DHCP ACK返回报文),也不知道对应的MAC地址。因此需要使用ARP协议

10)便携机生成一个具有目的IP地址68.85.2.1ARP查询报文,将该ARP报文放置在一个具有广播目的地址的以太网帧中,并向交换机发送该以太网帧,交换机将该帧交付给所有连接的设备,包括网络路由器

11)网关路由器在通往学校网络的接口上接收到包含该ARP查询报文的帧,发现ARP报文中目标IP地址68.85.2.1匹配其接口的IP地址。网关路由器因此准备一个ARP回答,指示它的MAC地址00:22:6B:45:1F:1B对应IP地址68.85.2.1。网关路由器将ARP响应报文放入一个以太网帧中,目的地址为00:16:D3:23:68:8A,并向交换机发送该帧,再有交换机将该帧交付给便携机

12)便携机接收包含ARP回到报文的帧,并从ARP回答报文中抽取网关路由器的MAC地址(00:22:6B:45:1F:1B

13)便携机最终能够使包含DNS查询的以太网帧寻址到网关路由器的MAC地址。帧中的IP数据报具有IP目的地址68.87.71.226(DNS服务器),该帧具有目的地址00:22:6B:45:1F:1B(网关路由器)。便携机向交换机发送该帧,交换机将该帧交付给网关路由器

③准备:域内路由选择到DNS服务器

14)网关路由器接收帧并抽取包含DNS查询的IP数据报。路由器查找该数据报的目的的地址(68.87.71.226),并根据转发表决定该数据报应被发送到Comcast网络中最左边的路由器。IP数据报被放置在链路层帧中,该链路将学校路由器连接到最左边的Comcast路由器,并且该帧通过这条链路发送

15)Comcast网络中的最左边路由器接收到该帧,抽取IP数据报,检查该数据报的目的地址(68.87.71.226),并根据其转发表确定出口。通过该出口向DNS服务器转发数据报,而转发表已经根据Comcast的域内协议(RIP、OSFP或IS-IS)以及因特网的域间协议BGP所填写

域内协议

RIP:RIP是一种基于距离矢量(Distance-Vector)算法的协议,它使用跳数(Hop Count)作为度量值来衡量到达目的地址的距离。由于RIP是基于距离矢量算法的路由协议,存在着收敛慢、路由环路、可扩展性差等问题

OSPF:开放式最短路径优先OSPF(Open Shortest Path First)是一个基于链路状态的内部网关协议。泛洪完成后在计算最短路径算法。每台路由器使用数据库建立一个完整的拓扑图并计算通向每个目的网络的最佳路径

IS-IS:IS-IS(Integrated IS-IS或Dual IS-IS)使用最短路径优先SPF(Shortest Path First)算法进行路由计算。将网络状态转化为一张带权有向图,每台设备根据有向图计算一条最短路径树,从而选择最短路径

域外协议

BGP:边界网关协议(Border Gateway Protocol,BGP)是一种用来在路由选择域之间交换网络层可达性信息的路由选择协议。当BGP运行于同一AS内部时,被称为IBGP(Internel BGP,内部边界网关协议);当BGP运行于不同AS之间时,称为EBGP(Externel BGP,外部边界网关协议)

16)最终包含DNS查询的IP数据报到达DNS服务器。DNS服务器抽取DNS查找报文,在DNS数据库中查询www.google.com,找到包含对应www.google.com的IP地址(64.233.169.105)的DNS源记录。这种缓存数据源于google.com的权威DNS服务器。该DNS服务器形成了一个包含这种主机名到IP地址映射的DNS回答报文,将该DNS回答报文放入UDP报文段中,将该报文段放入向便携机寻址的IP数据报中。数据报通过Comcast网络反向转发回学校网络路由器,并通过学校的交换机发送到便携机

17)便携机从DNS报文抽取出www.google.com的IP地址。最终,便携机准备接触www.google.com的服务器

④Web客户-服务器交互:TCP和HTTP

 18)此时便携机已经拥有www.google.com的IP地址,它能生成TCP套接字,该套接字用于向www.google.com发送HTTP GET报文。当用户生成TCP套接字时,便携机中的TCP必须先与www.google.com中的TCP执行三次握手。便携机因此先生成一个具有目的端口80(针对HTTP)的TCP SYN报文段,将该数据报放置在居于目的IP地址64.233.169.105的IP数据报中,将数据报放入目的MAC地址00:22:6B:45:1F:1B的帧中,并向交换机发送该帧

19)在学校网络、Comcast网络和谷歌网络中的路由器朝着www.google.com转发包含TCP SYN的数据报,使用每台路由器中的转发表。不同网络之间链路转发的路由器的转发表项是由BGP协议决定的

20)最终,包含TCP SYN的数据报到达www.google.com。从数据报中抽取TCP SYN报文,并分解到与端口80相联系的欢迎套接字。对于谷歌HTTP服务器和便携机之间的TCP连接生成一个连接套接字。产生一个TCP SYNACK报文段,将其放入一个向便携机寻址的数据报中,最后放入链路层帧中,该链路将www.google.com连接到其第一条路由器

21)包含TCP SYNACK报文段的数据报通过谷歌、Comcast和学校网络,最终抵达便携机的以太网卡。数据报在操作系统中分解到步骤18生成的TCP套接字中,从而进入连接状态

22)借助便携机上的套接字,最终可以向www.google.com发送字节。便携机上的浏览器生成包含要获取的URL的HTTP GET报文。HTTP GET报文写入套接字,其中GET报文称为一个TCP报文段的载荷,该TCP报文段放置进一个数据报中,交付到www.google.com。

23)在www.google.com的HTTP服务器从TCP套接字读取HTTP GET报文,生成一个HTTP响应报文,将请求的Web页内容放入HTTP响应体中,并将报文发送进入TCP套接字中

24)包含HTTP回答报文的数据报通过谷歌、ComCast和学校网络转发,抵达便携机。便携机上的Web浏览器程序从套接字读取HTTP响应,从HTTP响应体中抽取Web网页的html,最终显示了Web网页

至此,打开一个网页的流程彻底结束

⑤结语

上述过程尽量展示了计算机网络自顶向下方法的许多基础知识。但也忽略了一些可能的附加协议(运行在学校网关路由器中的NAT,到学校网络的无线接入,接入学校网络或对报文段或数据报加密的安全协议,网络管理协议),以及公共因特网中对Web缓存,DNS等级体系的考虑

至此沿着协议栈向下的旅程结束,有关物理层的讨论严格意义上并不属于计算机网络,而是属于通信理论

NAT:是一种地址转换技术,可以将IP数据报文头中的IP地址转换成另一个IP地址,并通过转换端口号达到地址重用的目的。用于缓解IPv4公网地址枯竭

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

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

相关文章

Java架构师高可用架构设计

目录 1 导学2 高可用到底是什么3 高可用架构的原则4 集群保障高可用5 限流保障高可用6 熔断降级保障高可用7 隔离保障高可用8 回滚保障高可用9 重试机制保障高可用10 备用系统11 辅助手段12 总结1 导学 在本章学习里面我们会先去学习耳熟能详的高可用到底是什么,然后呢去学习高…

src实战-两处nacos未授权访问

目录 一、hunter上搜索web.title”nacos”,查找中国境内的资产,定位到两个地址。 二、访问一下8086端口,界面很明显是nacos,直接抓包,创建用户。 三、登录网站,里面看到配置管理。 四、查看下redis.yml…

OSPF不同网络类型建立邻居实验

个人名片: 🐼作者简介:一名大二在校生,喜欢编程🎋 🐻‍❄️个人主页🥇:小新爱学习. 🐼个人WeChat:hmmwx53 🕊️系列专栏:&#x1f5bc…

欧科云链研究院:仰传统机构之“鼻息”,RWA的关键不在于Web3技术

前言 RWA与资产代币化正成为区块链与Web3技术在全球范围最受关注的用例之一。香港、新加坡等众多国家及地区都在积极推进相关实践及布局。欧科云链研究院从今年4月开始密切关注RWA发展,并在《》一文中率先提出“RWA将成为香港Web3最值得期待的应用方向”。 伴随着R…

2023版IDEA的下载、安装、配置、快捷键、模板、插件与使用

🎉 为什么会有这篇教程:熟悉 IDEA 并能灵活熟练使用 IDEA 能极大提高您的开发效率!!! 📍 本文教程基于当前 idea 的最新版本 2023.2.2。 📍 本文教程的所有操作图片均是实操测试截图或 gif 动态…

LSTM的预测算法 - 股票预测 天气预测 房价预测 计算机竞赛

0 简介 今天学长向大家介绍LSTM基础 基于LSTM的预测算法 - 股票预测 天气预测 房价预测 这是一个较为新颖的竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 1 基于 Ke…

中老年网红,下一个流量红海?丨小红书银发博主内容分析

有“中老年女性收割机”之称的短视频网红主播“秀才”,账号9月2日被封的消息一发出,便刷屏了各大社交平台的热榜。如果说“秀才”是行走的“中老年妇女收割机”,那么网红“一笑倾城”,则被称为“中老年男人心目中的易梦玲”。数据…

矩阵病态问题

病态(ill-conditioned)矩阵病态(ill-posed)方程 病态矩阵 矩阵的frobenius范数: 对每一个元素平方,求和再开平方 矩阵的条件数:矩阵的frobenius范数与该矩阵的逆的frobenius范数的乘积 对于同阶矩阵,矩阵的…

LayoutInflater.inflate的用法

LinearLayout ll findViewById(R.id.ll); LayoutInflater layoutInflater LayoutInflater.from(this); layoutInflater.inflate(R.layout.aa,ll); 把第一个参数的xml内容加到第二个参数viewgroup中。 如果第二个参数为null,就直接view xxxxxx.inflate();

Unity设计模式——模板模式

模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得 子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 Abstract Class 是抽象类,其实也就是一抽象模板,定义并实现了一个模版方法。这…

面试过不了?超全,高频接口测试面试题+答案,预判你的预判...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 面试题1&#xff…

Postgresql源码(115)LLVM JIT运行逻辑分析(上)

1 JIT入口开关 总入口:jit_enabled打开 且 生成计划成本超过jit_above_cost启动JIT。 计划成本超过jit_optimize_above_cost,执行PGJIT_OPT3使用O3对IR进行优化。计划成本超过jit_inline_above_cost,执行PGJIT_INLINE。jit_expressions开关如…

MES生产管理系统 MES系统

MES生产管理系统 MES系统 MES包括ERP及生产管理,主要有销售,采购,仓库,财务,设备管理,生产,报工,质量管理模块。适用于各行各业的生产情况。 1.销售模块(销售订单&…

证件照如何自己换底色?快速证件照换底色方法

提交证件照信息的时候,通常需要满足一些规定,比如某一种背景底色,当不符合要求的时候,我们该怎么更换证件照底色呢?其实可以使用证件照换背景(证件照换背景 证件照换颜色 照片换背景-压缩图)工具…

Android Studio git 取消本地 commit(未Push)

操作比较简单 1.选中项目然后依次选择:Git->Repository->Reset HEAD 2.然后再to Commit中输入HEAD^,表示退回到上一个版本。

c++中什么时候用double?

c中什么时候用double? 在C中,通常使用double数据类型来表示浮点数,特别是当需要更高的精度时。以下是一些情况下可以考虑使用double的示例: 1. **需要高精度的计算**:当您需要进行精确的浮点数计算时,double通常比flo…

CANoe从零学习第2期课程,全新上线!

课程内容的视频解读 CANoe编程宝典课程内容介绍 课程内容的视频解读,复制链接,打开抖音查看 :CANoe编程宝典课程内容介绍 - 抖音

2023年中国划船机产量、销量及市场规模分析[图]

划船机是一种健身器材,它模拟了划船的运动,可以锻炼身体的肌肉力量和协调性。划船机通常由座椅、把手、脚踏板和传动装置组成,使用者可以通过拉动把手来模拟划船的动作,从而达到锻炼身体的目的。 划船机产业链 资料来源&#xff…

4+1视图与UML

目录 逻辑视图过程视图开发视图物理视图(部署视图)用例视图 41视图,即逻辑视图,过程视图,实现视图,部署视图,用例视图。 为什么不用一个视图? 针对多个用户,即终端用户&a…

史上最强,Jmeter接口测试-dubbo接口实战(超级详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、dubbo插件准备…