| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 在浏览器中输入www.baidu.com发生了什么,用了哪些层的协议 -> 正文阅读 |
|
[系统运维]在浏览器中输入www.baidu.com发生了什么,用了哪些层的协议 |
整个流程如下:
1、由域名解析得到ip地址(依次经过浏览器缓存,系统缓存,hosts文件,路由器缓存,递归搜索域名服务器) 此时用到了DNS协议来获取域名对应的id 2、三次握手建立tcp/ip连接 tcp协议建立连接 在网络层使用ip协议发送数据给服务器 3、有浏览器发送一个http请求 4、经由路由器转发,该请求到达服务器 ip数据包在路由器之间传输,使用OSPF协议 路由器与服务器进行通信时,使用ARP协议将ip地址转换为MAC地址 5、服务器处理请求,返回一个html文件 6、浏览器解析渲染html文件显示在前端 在tcp建立完连接后,用http协议访问页面 查询www.baidu.com的IP地址: 1、浏览器搜索自己的DNS缓存(维护一张域名与IP地址的对应表); 2、若没有,则搜索操作系统中的DNS缓存(维护一张域名与IP地址的对应表); 3、若没有,则搜索操作系统的hosts文件(Windows环境下,维护一张域名与IP地址的对应表); 4、若没有,则操作系统将域名发送至本地域名服务器---(递归查询方式),本地域名服务器查询自己的DNS缓存,查找成功则返回结果,否则,(以下是迭代查询方式) 4.1. 本地域名服务器向根域名服务器(其虽然没有每个域名的具体信息,但存储了负责每个域,如com、net、org等解析的顶级域名服务器的地址)发起请求,此处,根域名服务器返回com域的顶级域名服务器的地址; 4.2. 本地域名服务器向com域的顶级域名服务器发起请求,返回baidu.com权限域名服务器(权限域名服务器,用来保存该区中的所有主机域名到IP地址的映射)地址; 4.3. 本地域名服务器向baidu.com权限域名服务器发起请求,得到www.baidu.com的IP地址; 5、本地域名服务器将得到的IP地址返回给操作系统,同时自己也将IP地址缓存起来; 6、操作系统将IP地址返回给浏览器,同时自己也将IP地址缓存起来; 7、至此,浏览器已经得到了域名对应的IP地址; ARP(地址解析协议) ARP解决的是同一个局域网内,主机或路由器的IP地址和MAC地址的映射问题。如果源主机和目的主机在同一个局域网内(目标IP和本机IP分别与子网掩码相与的结果相同,那么它们在一个子网),就可以用ARP找到目的主机的MAC地址;如果不在一个局域网内,用ARP协议找到本网络内的一个路由器的MAC地址,剩下的工作有这个路由器来完成。 ARP协议的具体内容: (1)每个主机都会有ARP高速缓存,存储本局域网内IP地址和MAC地址之间的对应关系。 (2)当源主机要发送数据时,首先检查ARP高速缓存中是否有对应IP地址目的主机的MAC地址,如果有,则直接发送数据,如果没有,就像本网段的所有主机发送ARP请求分组,该数据包包括的内容有:(源主机IP地址,源主机MAC地址,目的主机的IP地址)。 (3)当本网络的所有主机收到该ARP请求分组时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包;如果是,则首先从数据包中取出源主机的IP地址和MAC地址写入到ARP高速缓存中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。 (4)源主机收到ARP响应分组后,将目的主机的IP和MAC地址写入ARP高速缓存中,并利用此信息发送数据。如果源主机一直没有收到ARP响应分组,表示ARP查询失败。 路由选择协议 网络层主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,通过查找路由表决定通过哪个路径到达服务器,其中用到路由选择协议。 有两大类路由选择协议 1、内部网关协议 内部网关协议IGP(Internet Gateway Protocol)即在一个自治系统内部使用的路由选择协议,RIP和OSRF协议和IS-IS协议,IGRP(内部网关路由协议)、EIGRP(增强型内部网关路由协议)。 (1)RIP(应用层协议,基于UDP) RIP是一种基于距离向量的路由选择协议。RIP协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。这里的“距离”实际上指的是“最短距离”。只能包含15个路由器。RIP认为一个好的路由就是它通过的路由器的数量少,即“距离短”。RIP允许一条路径最多只能包含15个路由器。“距离”的最大值为16是即相当于不可达。RIP选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。 (2)OSPF(网络层协议) “最短路径优先”是因为使用了Dijkstra提出的最短路径算法。使用洪范法向本自治系统中所有路由器发送信息。发送的信息就是与本路由器相邻的所有路由器的链路状态(“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”),但这只是路由器所知道的部分信息。只有当链路状态发生变化时,路由器才用洪范法向所有路由器发送此信息。 2、外部网关协议 (1)BGP协议(应用层协议,基于TCP的) BGP是不同自治系统的路由器之间交换路由信息的协议。边界网关协议BGP只能是力求寻找一条能过到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。 BGP发言人:每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP发言人”/一般来说,两个BGP发言人都是通过一个共享网络连接在一起的,而BGP发言人往往就是BGP边界路由器,但也可以不是BGP边界路由器。 BGP交换路由信息:一个BGP发言人与其他自治系统中的BGP发言人要交换信息,就要先建立TCP连接,然后在此连接上交换BGP报文以建立BGP会话(session),利用BGP会话交换路由信息。使用TCP连接能提供可靠的服务也简化了路由选择协议。使用TCP连接交换路由信息的两个BGP发言人,彼此成为对方的临站或对等站。BGP所交换的路由信息就是到达某个网络所要经过的一系列AS。 路由分组转发算法 (1)首先从IP数据报首部提取目的主机的IP地址D,得出其所在的网络N。 (2)若N就是与此路由器直接相连的某个网络,则进行直接交付,直接把数据报交付给目的主机。否则就执行(3)。 (3)若路由表中有目的地址为D的特定主机路由,则把数据报传给路由表中所指明的下一跳路由器。否则执行(4)。 (4)若路由表中有到达网络N的路由,则把数据报传给路由表中所指明的下一跳路由器。否则执行(5)。 (5)若路由表中有一个默认路由,则把数据报传给默认路由所指明的默认路由器。否则执行(6)。 (6)报告转发分组出错。 路由器与交换机的区别是什么? 1)交换机工作在数据链路层;路由器工作在网络层; 2)交换机转发数据帧;路由器转发IP组; 3)交换机隔离冲突域,不隔离广播域;路由器隔离冲突域,隔离广播域; 参考:在浏览器中输入URL后,执行的全部过程。会用到哪些协议?(一次完整的HTTP请求过程) - MrHH - 博客园 (cnblogs.com) |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/15 12:21:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |