浏览器访问一个地址的过程
一次访问网页请求的全过程详解

⼀次访问⽹页请求的全过程详解第⼀步:浏览器输⼊域名例如输⼊:第⼆步:浏览器查找域名的IP地址浏览器会把输⼊的域名解析成对应的IP,其过程如下:1. 查找浏览器缓存:因为浏览器⼀般会缓存DNS记录⼀段时间,不同浏览器的时间可能不⼀样,⼀般2-30分钟不等,浏览器去查找这些缓存,如果有缓存,直接返回IP,否则下⼀步。
2. 查找系统缓存:浏览器缓存中找不到IP之后,浏览器会进⾏系统调⽤(windows中是gethostbyname),查找本机的hosts⽂件,如果找到,直接返回IP,否则下⼀步。
3. 查找路由器缓存:如果1,2步都查询⽆果,则需要借助⽹络,路由器⼀般都有⾃⼰的DNS缓存,将前⾯的请求发给路由器,查找ISP 服务商缓存 DNS的服务器,如果查找到IP则直接返回,没有的话继续查找。
4. 递归查询:如果以上步骤还找不到,则ISP的DNS服务器就会进⾏递归查询,所谓递归查询就是如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的⾝份,向其他根域名服务器继续发出查询请求报⽂,⽽不是让该主机⾃⼰进⾏下⼀步查询。
(本地域名服务器地址是通过DHPC协议获取地址,DHPC是负责分配IP地址的)5. 迭代查询:本地域名服务器采⽤迭代查询,它先向⼀个根域名服务器查询。
本地域名服务器向根域名服务器的查询⼀般都是采⽤迭代查询。
所谓迭代查询就是当根域名服务器收到本地域名服务器发出的查询请求报⽂后,要么告诉本地域名服务器下⼀步应该查询哪⼀个域名服务器,然后本地域名服务器⾃⼰进⾏后续的查询。
(⽽不是替代本地域名服务器进⾏后续查询)。
本例⼦中:根域名服务器告诉本地域名服务器,下⼀次应查询的顶级域名服务器的IP地址。
本地域名服务器向顶级域名服务器进⾏查询。
顶级域名服务器告诉本地域名服务器,下⼀次应查询的权限域名服务器的IP地址。
本地域名服务器向权限域名服务器进⾏查询。
权限域名服务器告诉本地域名服务器,所查询的主机的IP地址。
浏览器访问页面步骤

浏览器访问页⾯步骤原⽂链接:⾯试时经常被问到:浏览器访问⼀个页⾯的时候背后的步骤是怎样的?我往往是把HTTP请求和响应讲了⼀下。
现在想想,感觉仅仅回答HTTP请求和响应有点太窄了。
所以,这⾥主要从计算机⽹络的⾓度将浏览器访问⼀个页⾯的背后的过程进⾏⼀个较为详细的解读。
域名->IP当在浏览器中访问⼀个⽹址的时候,⾸先要做的就是找到域名所对应的服务器的IP地址。
浏览器通常有三个途径来找IP地址。
1. 缓存。
包括浏览器的DNS缓存和OS的DNS缓存。
2. HOST⽂件。
浏览器会去本地的HOST⽂件中寻找域名对应的IP地址。
3. 域名服务器查询。
向本地域名服务器求助(⼀般是路由器),如果得不到还得向更⾼层次的域名服务器(根域名服务器、顶级域名服务器、权限域名服务器)求助。
本地域名服务器向⾼级域名服务器查询可以是迭代查询或递归查询。
HTTP得到服务器的IP地址后,需要向服务器请求所要加载⽹页的资源(HTML⽂件、图⽚等)。
这些资源的请求和获取可以通过HTTP完成。
⽽HTTP协议位于应⽤层,其是建⽴在传输层的TCP协议的基础之上。
想要完成HTTP请求和响应还需要通过TCP建⽴⼀个浏览器跟服务器的连接。
TCP连接HTTP的默认端⼝是80。
HTTPS的默认端⼝是443。
当没有特别指定的时候,服务器的端⼝就是默认端⼝。
浏览器的请求⽅端⼝是动态端⼝(范围49152~65535),并不固定。
TCP连接的建⽴需要通过“三次握⼿”来完成。
⽽TCP连接的建⽴还需要通过许多传输层以下协议栈的协议来提供⽀持:需要通过⽹络层IP协议来完成浏览器所在主机到服务器主机间的数据传输。
需要通过ARP协议完成IP地址到硬件地址的解析。
需要通过OSPF(⼀种内部⽹关协议)完成路由选择。
......HTTP当建⽴起TCP连接后,就可以发送HTTP请求了。
浏览器向服务器发送⼀个HTTP请求来请求资源。
服务器收到⼀个HTTP请求后,对请求进⾏相应的处理,⽐如说⾝份的验证、根据⽤户⾝份确定资源的具体内容(⽐如⽤户的个⼈信息页⾯,根据⽤户ID从数据库获取相应信息再⽣成html⽂件)。
访问网页流程

访问⽹页流程1. 浏览器发送请求到 dns服务器,dns服务器进⾏域名解析,解析完成之后浏览器拿到了⽹页服务器的IP地址2. 浏览器根据拿回来的ip地址发送http请求给⽹页服务器3. ⽹页服务器接收到http请求并处理,从⾃⼰的硬盘⽬录⾥找到浏览器请求的⽹页⽂件并返回给浏览器4. 浏览器接收到⽹页服务器返回的⽹页⽂件,开始⽤⾃⼰的内核渲染⽹页,并最终展⽰到显⽰器上这⾥的每⼀步都环环相扣,中间哪个步骤都不能掉链⼦。
并且每个步骤的执⾏速度,都会影响到我们对某个⽹站打开速度的直观感受。
我们再把影响这四个步骤的速度的因素来逐⼀分析:浏览器发送请求到 dns服务器,dns服务器进⾏域名解析,解析完成之后浏览器拿到了⽹页服务器的IP地址浏览器初步解析⽤户往地址栏输⼊的字符串。
如果⽤户输⼊的字符串是合法的⽹址:浏览器会检查⾃带的预加载HSTS列表(HTTP严格传输安全列表),这个列表⾥包含了那些请求浏览器只使⽤ https 进⾏连接的⽹站。
如果⽹站在这个列表⾥,浏览器会使⽤ https ⽽不是 http 协议,否则,没有标明协议的url域名会默认使⽤ http 协议访问。
(p.s. ⼀个⽹站哪怕不在 HSTS 列表⾥,也可以要求浏览器对⾃⼰使⽤HSTS政策进⾏访问。
浏览器向⽹站发出第⼀个HTTP请求之后,⽹站会返回浏览器⼀个响应,请求浏览器只使⽤HTTPS发送请求。
然⽽,就是这第⼀个HTTP请求,却可能会使⽤户受到⿊客攻击,这也是为什么现代浏览器都预置了HSTS列表)如果⽤户输⼊的字符串不是⽹址,只是瞎⼏把打的词语:浏览器会将地址栏中输⼊的⽂字传给⽤户设置的默认搜索引擎,⽐如百度。
⼤部分情况下,在把⽂字传递给搜索引擎的时候,URL会带有特定的⼀串字符,⽤来告诉搜索引擎这次搜索来⾃这个特定浏览器。
这时⽤户想要访问的域名就是百度的域名加上在地址栏⾥瞎⼏把打的搜索关键字‘谁是世界第⼀帅’最终拼凑出来的了在以上两种情况中,浏览器都会检查输⼊⽤户输⼊的字符串是否含有不是 a-z, A-Z,0-9之类的字符。
怎么设置路由器实现外网访问本地网站

怎么设置路由器实现外网访问本地网站确定电脑与路由器正确连接,并且已连至互联网。
在地址栏中输入192.168.0.1回车,输入用户名密码,进入路由器主界面。
然后点击左侧菜单中的“虚拟服务器”,——“端口段映射”打开“端口段映射”界面。
由于网站用的是80端口,所以我们在“常用服务端口”选择“HTP80”然后点击“填充到”ID 1。
就会自动填充到列表中ID为1中,然后填写内网IP地址,你机器IP地址是多少就填写多少。
我的IP192.168.0.102。
协议可选TCP,UDP,全部。
默认即可。
选择启用,最后保存所有设置。
PS:我比喜欢本机IP地址查询方法:Win+R ——cmd——ipconfig到此路由器中的设置已经完成。
我们再看看电脑中的设置。
文章开头也说了,是要人访问在电脑上架设的网站。
本文以Windows中的IIS为例。
打开IIS,找到网站右击选择“编辑绑定”打开“网站绑定”窗口,“主机名”为空不填,IP地址写本地IP地址192.168.0.102你自己电脑上多少就填多少。
在此需要注意的是若输入外网IP无反应,有可能是防火墙拦截,此时关闭防火墙或把端口80填加到防火墙中去即可。
以上设置成功后,就可以访问了。
可以把外网地址发给你的朋友测试一下,也可以自己在IE中输入外网地址测试。
在路由器中可查看到外网IP171.8.81.*。
我们输入地址栏后看到网站打开。
说明设置成功。
除了可以设置80端口外,还有其可设置比如21,8080等。
根据需要可设置不同端口。
END感谢您的阅读,祝您生活愉快。
浏览互联网网页的方法

浏览互联网网页的方法互联网已经成为了我们日常生活中不可或缺的一部分,而浏览互联网网页也是我们最常用的方式之一。
无论是查找信息、浏览新闻、学习知识还是进行娱乐,我们都离不开浏览网页。
本文将介绍一些常见的浏览互联网网页的方法,帮助您更好地适应现代社会的互联网环境。
1. 使用浏览器浏览器是我们访问互联网网页最常用的工具之一。
目前市面上有很多浏览器可供选择,如 Google Chrome、Mozilla Firefox、Microsoft Edge、Safari等。
不同的浏览器在操作界面和功能上可能略有差异,但基本的浏览网页功能都是相似的。
使用浏览器浏览网页的步骤如下: 1. 打开浏览器:在计算机桌面或开始菜单找到浏览器的图标,点击打开浏览器。
2. 输入网页地址:在浏览器的地址栏中输入想要访问的网页地址,然后点击回车键。
3. 等待加载:浏览器会向网页服务器发送请求,等待网页加载完毕。
4. 浏览网页:加载完毕后,您就可以浏览网页了。
使用鼠标滚轮或者滚动条可以在网页上下滚动,使用链接可以访问其他网页。
除了基本的浏览网页功能,浏览器还提供了一些实用的功能,如书签收藏、多标签页管理、插件扩展等,可以提升您的浏览体验。
2. 使用搜索引擎搜索引擎是我们在浏览互联网网页时常用的工具,它能够帮助我们找到我们所需要的信息。
常见的搜索引擎有 Google、百度、必应等。
使用搜索引擎浏览网页的步骤如下: 1. 打开浏览器:同样需要先打开浏览器。
2. 打开搜索引擎:在浏览器的搜索框中输入搜索引擎的地址,然后点击回车键。
3. 输入搜索内容:在搜索引擎的搜索框中输入您想搜索的内容,然后点击搜索按钮。
4. 查看搜索结果:搜索引擎会根据您的搜索内容显示相关的搜索结果,您可以点击搜索结果中的链接进行浏览。
搜索引擎还提供了一些高级搜索的功能,如关键字过滤、时间范围限定、搜索结果排序等,可以帮助您更精准地找到所需的信息。
3. 使用移动设备浏览网页随着智能手机和平板电脑的普及,越来越多的人开始使用移动设备来浏览网页。
在浏览器中简单输入一个网址,解密其后发生的一切(http请求的详细过程)

在浏览器中简单输入一个网址,解密其后发生的一切(http请求的详细过程)一个http请求的详细过程我们来看当我们在浏览器输入:8080/mydir/index.html,幕后所发生的一切。
首先http是一个应用层的协议,在这个层的协议,只是一种通讯规范,也就是因为双方要进行通讯,大家要事先约定一个规范。
1.连接当我们输入这样一个请求时,首先要建立一个socket连接,因为socket 是通过ip和端口建立的,所以之前还有一个DNS解析过程,把变成ip,如果url里不包含端口号,则会使用该协议的默认端口号。
DNS的过程是这样的:首先我们知道我们本地的机器上在配置网络时都会填写DNS,这样本机就会把这个url发给这个配置的DNS服务器,如果能够找到相应的url则返回其ip,否则该DNS将继续将该解析请求发送给上级DNS,整个DNS可以看做是一个树状结构,该请求将一直发送到根直到得到结果。
现在已经拥有了目标ip 和端口号,这样我们就可以打开socket连接了。
2.请求连接成功建立后,开始向web服务器发送请求,这个请求一般是GET 或POST命令(POST用于FORM参数的传递)。
GET命令的格式为:GET 路径/文件名HTTP/1.0文件名指出所访问的文件,HTTP/1.0指出Web浏览器使用的HTTP版本。
现在可以发送GET命令:GET /mydir/index.html HTTP/1.0,3.应答web服务器收到这个请求,进行处理。
从它的文档空间中搜索子目录mydir的文件index.html。
如果找到该文件,Web服务器把该文件内容传送给相应的Web浏览器。
为了告知浏览器,,Web服务器首先传送一些HTTP头信息,然后传送具体内容(即HTTP体信息),HTTP头信息和HTTP体信息之间用一个空行分开。
常用的HTTP头信息有:①HTTP 1.0 200 OK 这是Web服务器应答的第一行,列出服务器正在运行的HTTP版本号和应答代码。
通过浏览器访问网站的过程

通过浏览器访问⽹站的过程
没有使⽤CDN的情况
访问的过程如图所⽰:
1.⽤户在⾃⼰的浏览器输⼊要访问的⽹站域名。
2.浏览器向本地DNS服务器请求对应域名的解析
3.本地DNS服务器中如果缓存有此域名的解析结果,则直接向⽤户相应解析结果,如果没有缓存此域名的解析结果,则以递归的⽅式向整体DNS系统请求解析,获得结果后应答浏览器
4.浏览器得到域名解析的结果,就是该域名服务器的IP地址,浏览器向此IP发出请求
5.服务端响应请求,把相应的数据传给浏览器
使⽤CDN时的情况
1. 当终端⽤户(北京)向 下的某资源发起请求时,⾸先向LDNS(本地DNS)发起域名解析请求。
2. LDNS检查缓存中是否有 的IP地址记录。
如果有,则直接返回给终端⽤户;如果没有,则向授权DNS查询。
3. 当授权DNS解析 时,返回域名CNAME 对应IP地址。
4. 域名解析请求发送⾄阿⾥云DNS调度系统,并为请求分配最佳节点IP地址。
5. LDNS获取DNS返回的解析IP地址。
6. ⽤户获取解析IP地址。
7. ⽤户向获取的IP地址发起对该资源的访问请求。
如果该IP地址对应的节点已缓存该资源,则会将数据直接返回给⽤户,例如,图中步骤7和8,请求结束。
如果该IP地址对应的节点未缓存该资源,则节点向源站发起对该资源的请求。
获取资源后,结合⽤户⾃定义配置的缓存策略,将资源缓存⾄节点,例如,图中的北京节点,并返回给⽤户,请求结束。
获取ip地址的方法

获取ip地址的方法获取IP地址的方法。
IP地址(Internet Protocol Address)是指互联网协议地址,是分配给网络上的每一个设备的数字标识,用于在网络中定位设备。
获取IP地址是网络管理和故障排除中的重要步骤,下面将介绍几种获取IP地址的方法。
1. 通过命令提示符获取IP地址。
在Windows操作系统中,可以通过命令提示符来获取IP地址。
首先点击开始菜单,输入“cmd”打开命令提示符窗口,然后输入“ipconfig”命令并按下回车键。
系统将显示出本机的IP地址、子网掩码、默认网关等信息。
通过这种方法可以快速获取本机的IP地址,方便进行网络设置和故障排除。
2. 通过网络设置界面获取IP地址。
除了使用命令提示符,还可以通过操作系统的网络设置界面来获取IP地址。
在Windows操作系统中,可以在控制面板的网络和共享中心中找到网络适配器的设置,查看本机的IP地址和其他网络信息。
在Mac OS和Linux系统中,也可以通过类似的网络设置界面来获取IP地址。
3. 通过路由器管理界面获取IP地址。
在局域网中,设备的IP地址通常由路由器动态分配,可以通过路由器的管理界面来查看设备的IP地址分配情况。
首先在浏览器中输入路由器的管理地址,登录路由器管理界面,然后找到局域网设置或DHCP分配页面,查看已连接设备的IP地址信息。
通过这种方法可以了解局域网内设备的IP地址分配情况。
4. 通过网络工具获取IP地址。
除了以上方法,还可以使用一些网络工具来获取IP地址。
例如,可以使用网络扫描工具来扫描局域网内的设备,并获取其IP地址和其他网络信息。
此外,还可以使用网络监控工具来实时监控设备的IP地址变化情况,及时发现网络故障和安全问题。
总结。
获取IP地址是网络管理和故障排除中的重要步骤,可以通过命令提示符、网络设置界面、路由器管理界面和网络工具等多种方法来获取IP地址。
掌握这些方法可以帮助用户更好地管理和维护网络设备,保障网络的正常运行和安全性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我来回答这个问题吧,整个过程比较复杂,也不知道哪些步骤对你有用,就说得详细一些吧,采用分条的形式,看哪里你能用到就参考哪里吧,呵呵!
1.若DNS缓存中没有相关数据,则IE浏览器先向DNS服务器发出DNS请求:
这一过程的目的是获取这个域名所对应的IP地址;
IE浏览器向本机DNS模块发出DNS请求,DNS模块生成相关的DNS报文;
DNS模块将生成的DNS报文传递给传输层的UDP协议单元;
UDP协议单元将该数据封装成UDP数据报,传递给网络层的IP协议单元;
IP协议单元将该数据封装成IP数据包,其中目的IP地址为DNS服务器的IP地址;
封装好的IP数据包将传递给数据链路层的协议单元进行发送;
发送时如果ARP缓存中没有相关数据,则发送ARP广播请求,等待ARP回应;
得到ARP回应后,将IP地址与路由下一跳MAC地址对应的信息写入ARP缓存表;
写入缓存后,以路由下一跳地址填充目的MAC地址,并以数据帧形式转发;
这个转发过程可能会进行多次,这取决于DNS服务器在校园网中的位置;
DNS请求被发送到DNS服务器的数据链路层协议单元;
DNS服务器的数据链路层协议单元解析收到的数据帧,将其内部所含有的IP数据包传递给网络层IP协议单元;
DNS服务器的IP协议单元解析收到的IP数据包,将其内部所含有的UDP数据报传递给传输层的UDP协议单元;
DNS服务器的UDP协议单元解析收到的UDP数据包,将其内部所含有的DNS报文传递给该服务器上的DNS服务单元;
DNS服务单元收到DNS请求,将域名解析为对应的IP地址,产生DNS回应报文;
(所有应用层报文必须通过传输层、网络层和数据链路层,因此在下面的叙述中,我将简化这一过程的叙述,简化形式如下面的样子,其中单箭头为本机内部传递,双箭头为网络上的发送)
DNS回应报文→UDP→IP→MAC→→请求域名解析的主机;
请求域名解析的主机收到数据帧,该数据帧→IP→UDP→DNS→IE浏览器;
将域名解析的结果以域名和IP地址对应的形式写入DNS缓存表。
2.IE浏览器与建立TCP连接:
IE浏览器向发出TCP连接请求报文;
该请求TCP报文中的SYN标志位被设置为1,表示连接请求;
该TCP请求报文→IP(DNS)→MAC(ARP)→→校园网关→→主机;
该TCP请求报文经过IP层时,填入的目的IP地址就是上面DNS过程获得的IP地址;
经过数据链路层时,若MAC地址不明,还要进行上面所叙述的ARP过程;
收到的数据帧→IP→TCP,TCP协议单元会回应请求应答报文;
该请求应答TCP报文中的SYN和ACK标志位均被设置为1,表示连接请求应答;
该TCP请求应答报文→IP→MAC(ARP)→→校园网关→→请求主机;
请求主机收到数据帧→IP→TCP,TCP协议单元会回应请求确认报文;
该请求应答TCP报文中的ACK标志位被设置为1,表示连接请求确认;
该TCP请求确认报文→IP→MAC(ARP)→→校园网关→→主机;
收到的数据帧→IP→TCP,连接建立完成;
在这个过程中,任何一个报文出错或超时,都要进行重传;
这个过程被称为TCP建立连接的三次握手。
3.IE浏览器开始HTTP访问过程
IE浏览器向发出HTTP-GET方法报文;
该HTTP-GET方法报文→TCP→IP→MAC→→校园网关→→主机;
收到的数据帧→IP→TCP→HTT P,HTTP协议单元会回应HTTP协议格式封装好的HTML超文本形式数据;
HTTP-HTML数据→TCP→IP→MAC(ARP)→→校园网关→→请求主机;
请求主机收到的数据帧→IP→TCP→HTTP→IE浏览器,浏览器会以网页形式显示HTML 超文本,就是我们所看到的网页。
4.断开TCP连接
IE浏览器向发出TCP连接结束请求报文;
该请求TCP报文中的FIN标志位被设置为1,表示结束请求;
该TCP结束请求报文→IP→MAC(ARP)→→校园网关→→主机;
收到的数据帧→IP→TCP,TCP协议单元会回应结束应答报文;
该结束应答TCP报文中的FIN和ACK标志位均被设置为1,表示结束应答;
该TCP结束应答报文→IP→MAC(ARP)→→校园网关→→请求主机;
这个过程需要双向进行,因此主机也会按上述流程再做一次;
整个过程被称为TCP断开连接的四次握手。
呵呵,好麻烦的一个过程对不对?我也写了好长时间诶,希望对你有所帮助!
-------------------------------------------------------------
这个人很耐心,已经解释得很详细了。
不过我是个吹毛求疵的人,非得把每个细节都弄得很清楚。
其中最让我纠结的是ip地址转换到mac地址的过程。
或许你说那不就是arp协议吗?那你就想的简单了点。
首先ip地址是网络层(layer 3)的概念,mac地址是数据链路层(layer 2)的概念。
网络层主要任务是路由,而数据链路层是提供相邻两个网络实体间端到端的数据传输,可以理解成为局域网内两台机器间的数据传输。
数据链路层的作用范围是局域网,那么其mac地址肯定是局域网内某台机器的mac地址。
并且arp协议的作用范围也是局域网。
但是ip数据包的目的地址未必都是局域网内的,如果不是,在局域网内进行arp广播查询该ip地址对应的mac地址,肯定没有人回应,因为大家谁都不拥有这个ip地址。
于是先要知道ip地址是不是同一个局域网里的,这个不难,使用子网掩码就可以确定。
如果是同一个局域网,那么就可以arp了。
那如果不是呢??
这就要靠网络层了。
到这时候我才惊讶地发现,路由表不是只在路由器上才有的(以前我可都是这么以为的),本机上照样有,而且也有路由过程。
在 windows下CMD下输入命令“route print”,就可以看到本机上的路由表(linux下是"route")。
部分路由表项如下(我机器的ip是10.77.100.113,子网掩码是 255.255.255.0 ):
----------------------
Network
Destination Netmask Gateway Inter face Metric
0.0.0.0 0.0.0.0 10.77.100.1 1 0.77.100.113 10
10.77.100.0 255.255.255.0 10.77.100.113 10.77.100 .113 10
----------------------
最后一条其实意思就是,如果ip地址是同一个局域网中的地址,则直接发送到该ip
地址就可以了(表中看起来是路由给自己,我估计是这个意思,linux下就是一个星号表示的,更能理解)。
中间那条其实就是默认路由路径(因为任何一个ip地址 AND 0.0.0.0 后肯定都是
0.0.0.0 的),其意思就是,如果其他路由项都不符合,则发送到默认网关。
扯远一点。
默认情况下,windows机器不会充当路由器的功能,它不会转发(forward)自己接受到的但是目的地址不是自己的包。
但是这是可以设置的,通过开启路由转发功能,就能充当一个路由器了。
这样,局域网中另一台机器就可以把默认网关设置为你的ip,然后他的所有到外网的包都先交给你,然后你再路由转发出去。
貌似多次一举,但是这样你的机器可以控制别人的上网功能。
譬如一个家里,老爸把他儿子的机器的默认网关设置为自己的机器的,当这个狡猾的老爸不想让儿子上网的时候,就关闭自己机器的路由转发功能,可怜的儿子就上不了网了,而且不知道为什么。
-_-!!
譬如XP下可以修改注册表项:HKEY_LOCAL_MACHINE
\SYSTEM\CurrentControlSet\Services\Tcpip \Parameters 中的 IPEnableRouter=1。
顺便说说命令“route -f”,它可以删除路由表中涉及默认网关的项。
我曾经使用该命令删除掉中间那条,结果访问外网就不行了,实际错误就是找不到路由项。
和同宿舍一个哥们讨论该问题,当他发现“route -f”可以让机器不能上外网时,立马说可以用这个搞恶作剧啊,让人上不了网,估计没几个人能找出问题来,只有重启机器。
我汗-_-!!
所以ip地址转换到mac地址的过程就更清晰了:
------------------------
1、首先得到ip包需要送达的目的地址 ip-des ;
2、查路由表,根据匹配 ip-des 的路由表项得到下一跳(next hop)的中间目的地址ip-next (可以保证 ip-next 是局域网中的地址);
3、在arp缓存中查找 ip-next 对应的mac地址,如果缓存中没有,再到局域网中使用arp协议进行询问;
4、得到了mac地址,一切就好办了----将mac地址放到帧头,发送数据。
------------------------
由此看出绝不是仅仅arp那么简单。
几个有用的命令(注意linux下需要root权限):
------------------------
查看本地路由表:
windows: route print
linux: route
查看本地arp缓存:
windows: arp -a。