计算机网络:详解动态加入校园网并访问网页的全过程

您所在的位置:网站首页 学校宽带怎么连接笔记本电脑使用 计算机网络:详解动态加入校园网并访问网页的全过程

计算机网络:详解动态加入校园网并访问网页的全过程

2024-07-02 17:37| 来源: 网络整理| 查看: 265

文章目录 计算机网络:详解动态加入校园网并访问网页的全过程总览阶段一:加入校园网并利用DHCP获取IP地址阶段二:路由表的生成(对外和对内)阶段三:DNS和ARP阶段四:DNS查询报文的转发阶段五:DNS查询的进行以及查询结果的返回阶段六:TCP连接与HTTP请求总结

计算机网络:详解动态加入校园网并访问网页的全过程

问题描述

​ 在没有IP、网关、DNS信息、ARP表的情况下,如何动态加入校园网并通过浏览器访问mail.163.com电子邮件网站的全过程(按处理的先后顺序、设计的协议栈,从DHCP分配、外网访问、域名解析、层次路由、HTTP等多角度详细描述通信过程及所涉及的通信原理)

计网压轴题图像

总览

回答这一问题主要基于计算机网络中相关的协议以及简要实现过程。

参考了《计算机网络:自顶向下方法》(第八版)书中的的实例,并对一些细节进行了补充

如果存在问题,欢迎指正!

要解决这一问题,需要涉及到的问题主要有:

加入校园网,利用DHCP获取动态IP以太网交换机的交换表生成(自学习)校园网对外访问,需要进行NAT地址转换浏览器输入网址,需要进行DNS解析获取网关的MAC地址,需要进行ARP请求域内路由到DNS服务器,涉及到自治系统内/间路由选择,包括OSPF,BGP与Web服务器交互,涉及到TCP的三次握手以及HTTP协议的数据传输 阶段一:加入校园网并利用DHCP获取IP地址

将本地主机记为A,其MAC地址为S,被分配的IP为I

主机A的操作系统生成一个DHCP发现报文,将报文放入源端口68,目的端口67的UDP报文段,该报文段再放入其源IP地址为:0.0.0.0,目的IP地址为:P255.255.255.255的IP数据报中,进而再将该数据报封装在源MAC地址为:S,目的MAC地址为:FF:FF:FF:FF的以太网帧,并将帧广播到与交换机相连的所有设备(包括DHCP服务器)该帧是第一个到达交换机的帧,在交换机表记录下源MAC和接口,并向所有出端口广播该帧,包括连接到路由器的端口DHCP服务器(运行在路由器上)接收到该帧,并进行分解,获取DHCP发现报文假设DHCP服务器以CIDR块68.80.2.0/24分配IP地址,并假设DHCP服务器分配给A的IP为:I,DHCP服务器将包含IP地址,首选DNS,子网掩码,默认网关路由器的DHCP 提供报文放入一个UDP报文段,再将该报文段放入一个IP数据报中,再将该IP数据报放入一个以太网帧当中,该帧的源MAC地址为路由器与网络连接的接口MAC地址,目的MAC地址为S包含DHCP 提供报文的以太网帧经过交换机。交换机此前通过自学习记录了目的MAC为S的帧转发的接口,并将该帧转发至该接口(此时也记录下源MAC为路由器对应的接口)主机A收到包含包含DHCP 提供报文的以太网帧,从该帧提取IP数据报,从IP数据报提取UDP报文段,从UDP报文段提取到DHCP ACK报文。主机A的DHCP客户记录下他的IP地址,首选DNS服务器,子网掩码,默认网关路由器主机A以获取的IP地址向选中的DHCP服务器发送DHCP 请求报文,并回显参数(利用交换机),DHCP服务器向A发送DHCP ACK报文进行响应,确认所要求的参数(利用交换机)

至此,已经完成了阶段一,即加入校园网,并利用DHCP动态获取IP地址,首选DNS服务器,默认网关路由器,子网掩码并完成相应设置。

阶段二:路由表的生成(对外和对内)

由于问题中假设路由表中不含路由信息,因此需要先生成路由表,生成路由表的需要考虑自治系统内/间路由选择协议,假设分别为OSPF和BGP协议。首先考虑BGP协议,然后再考虑OSPF协议。

需要注意的是,问题中的网络是校园网,当涉及到外网访问时,需要考虑NAT协议进行IP地址转换。

在校园网内部,每个路由器通过发送HELLO包学习邻居节点的地址,并测量到每个邻居结点的开销(如:发送一个要对方立即响应的ECHO包,来回时间除以 2 即为延迟),路由器将所有学习到的内容封装成一个包

包以发送方的标识符开头,后面是序号、年龄和一个邻居结点列表列表中对应每个邻居结点,都有发送方到它们的延迟或开销链路状态包定期创建或发生重大事件时创建。

将这个包发送给所有其它路由器,并进行洪泛控制:

为控制洪泛,每次发送新包时序号加1。路由器记录信息对(源路由器,序号),当一个链路状态包到达时,若是新的,则分发;若是重复,或序号比路由器记录中的最大序号小,则丢弃

最后利用Dijkstra算法计算出最短路径,进一步配置自治系统内路由表表项

网段为68.80.0.0/13的边界网关路由器将其网络前缀以及通向它的路径信息通告eBGP报文通告给校园网所在的网络68.80.2.0/24的边界网关路由器

边界网关路由器首先利用NAT对该报文的目的IP和端口进行转换并记录,再利用OSPF向校园网内的所有路由器广播该路由选择信息,并进行洪泛控制。同时,当链路状态发生变化时,路由器会广播链路状态信息。若没有变化,也会周期性广播链路状态

若从BGP协议学习到多个网关可达网段68.80.0.0/13,则使用如下方法配置路由表:

首先基于管理员设定的策略,选择具有最高本地偏好的路由。其次,选择AS-PATH最短的边界网关对余下的路由,则使用热土豆路由选择,选择具有最靠近NEXT-HOP(最小开销)的路由若还剩下多条路由,则使用BGP标识符等其他策略。 同时68.80.0.0/13也会收到来自68.80.2.0/24的eBGP报文,并进行域内的路由选择配置路由表,其他的网络也利用BGP协议和自己的域内路由选择协议进行路由表配置

至此,已经完成了阶段二,即生成所需要的路由表,为接下来的数据传输进行铺垫,接下来假设在主机A上完成了打开浏览器,并输入URL:mail.163.com

阶段三:DNS和ARP

输入域名后首先要进行DNS解析操作,需要利用到DHCP分配到默认DNS服务器,因此需要判断DNS服务器与当前主机A是否处于同一网段,有需要利用DHCP分配的子网掩码。设默认网关路由器IP为M,MAC地址为MC

将主机A和DNS服务器的IP地址与子网掩码进行与操作,若结果相同,则说明二者处于同一网段,可以直接执行通信(但是需要获取DNS服务器的MAC地址)。在本问题中,二者处于不同网段,需要进行跨网段通信,因此,主机A需要获取默认网关路由器的MAC地址,并将数据报发向默认网关路由器。主机A生成一个具有目的IP为M的ARP查询报文,将该ARP报文封装在一个具有广播目的地址(FF:FF:FF:FF:FF:FF)的以太网帧当中,并向交换机发送该以太网帧,交换机将该帧转发给所有与交换机相连的设备,包括默认网关路由器。默认网关路由器在与学校网络相连的接口处收到包含该ARP查询报文的帧,发现在该ARP报文中的目的IP地址为为自身,将源MAC地址以及IP的对应关系记录在自己的ARP表中,然后,默认网关路由器封装一个源MAC地址为:MC的ARP回答报文,并发给交换机,交换机通过查找交换表将该报文发给主机A。主机A收到该ARP回答报文帧,获取默认网关路由器的MAC地址MC,并将该信息插入自己的ARP表。主机A将目的IP为首选DNS服务器,目的MAC为MC的DNS查询报文的以太网帧通过交换机发送该默认网关路由器

至此,已经完成了阶段三,利用DHCP获得的默认网关路由器和首选DNS服务器的IP地址,将DNS查询报文发送给默认网关路由器。

阶段四:DNS查询报文的转发 默认网关收到该DNS查询报文之后,根据转发表,选择具有最长前缀匹配的端口进行转发。该DNS查询报文到达边界网关后,通过NAT路由器将该报文的源IP和端口号替换为真实IP与NAT转换表中没有使用的端口号进一步转发至DNS服务器所在的网络DNS查询报文到达DNS服务器所在网络后通过其内部的路由选择协议将该报文转发至DNS服务器

至此,已经完成了阶段四,完成了将DNS报文转发至DNS服务器。

阶段五:DNS查询的进行以及查询结果的返回

在这里需要考虑以下几种情况:

DNS服务器没有该域名的解析记录DNS服务器有163.com域名的记录DNS服务器有com域名的记录 DNS服务器收到DNS查询报文后,

⓵ 在它的的DNS数据库查找mail.163.com域名的A类型记录,若找到,则转到⓸,否则转到⓶

⓶ 查询是否有能解析163.com的权威域名服务器,若有,则对该服务器进行⓵,否则转到⓷

⓷ 迭代查询:1.到根DNS服务器查询能解析com的顶级域名服务器,2.到顶级域名服务器查询能解析163.com的权威域名服务器,3.到权威域名服务器上查询mail.163.com域名的A类型记录,转到⓸

⓸ 则将该记录封装在DNS回答报文中,将该DNS报文放入目的IP地址为I(主机A的IP地址)的IP数据报中,该数据报通过内部路由和边界网关路由至校园网的NAT路由器,经过查询NAT转换表中的记录,对报文中的目的IP与端口号进行转换,再将该数据报转发给主机A。

主机A收到包含DNS响应报文的IP数据报,并从中提取出DNS响应报文,获取了mail.163.com的IP地址。

至此,完成了阶段五,主机A完成了DNS解析的过程,获取了mail.163.com对应的IP地址

阶段六:TCP连接与HTTP请求

在这一阶段,主要完成的是TCP三次握手,与HTTP请求过程。设mail.163.com对应的IP地址为:MAIL

主机A先生成一个TCP套接字,用于建立TCP连接。随后,主机A生成一个目的端口为80(针对Web页面)的TCP SYN报文段,将该报文段封装在目的IP为MAIL的IP报数据报,将该数据报封装在MAC地址为默认网关(存储在ARP表中)的以太网帧当中,并向交换机发送该帧。携带TCP SYN的IP数据报经过路由到达边界网关后,利用NAT路由器将其源IP与端口转换为真实IP与NAT转换表中未使用过的端口,并记录在转换表中,并将该数据报转发至下一网络。最终,该数据报经过路由到达mail.163.com。服务器主机从数据报中提取出TCP SYN报文并分解到与端口80相联系的欢迎套接字。并产生一个TCP SYNACK报文段,封装在发送给主机A的IP数据报当中,并发送给主机A。包含TCP SYNACK报文段的IP数据报通过网络路由到校园网的边界网关,通过查NAT转换表,将报文转发给主机A。主机A收到后将其分解到22中生成的TCP套接字主机A的浏览器生成包含要获取的URL(mail.163.com)的HTTP GET报文,并将该报文写入TCP套接字。再重复步骤22-23,将该报文交付到mail.163.com。在mail.163.com的HTTP服务器从TCP套接字读取HTTP GET报文(完成了TCP三次握手的过程),并生成一个HTTP 响应报文,将主机A请求的Web页面的内容放入HTTP响应体,并将该报文发送进TCP套接字中。包含HTTP 响应的报文重复步骤25,交付给主机A,主机A的浏览器读取HTTP 响应,从HTTP响应体中提取Web页面的html,并最终显示出Web网页。

至此,完成了阶段六,实现了通过TCP套接字以及HTTP协议在浏览器上显示Web网页。

总结

​ 其实每一个阶段都不是孤立的,比如阶段二中的路由表生成,对后续的各个步骤都有重大的影响,如果没有这一部分,则无法进行网络间的通信。再比如交换机的使用,其实是贯穿了整个通信过程的。

​ 但是每个阶段之间也存在一定的依赖关系,每一个阶段的完成都对后续阶段的进行有影响,或者说完成了部分准备工作。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3