一个完整的网络访问过程

环境:

目前的网络环境为一台全新的用于公司内网中的客户机,公司的服务器设备有DHCP服务器,DNS服务器。我们接下来描述的过程为:客户机在插上网线的那一刻,到访问百度首页的整个网络过程。

第一阶段:

1.插上网线时,客户机会发送DHCP discovery广播包,请求IP地址

【大喇叭喊谁能提供IP地址】

2.DHCP服务器收到请求 发送 DHCP offer广播包,告诉客户机说我这有IP地址。

【大喇叭喊我能提供IP地址,谁先喊谁先提供】

3.客户机收到该广播包,并且发送DHCP Requset广播包,同时请求IP地址相关参数(网关,dns,子网掩码等)。如果该网络有多台DHCP服务器,则其他的服务器不会响应这个请求。

【听到好多人喊,再大喇叭喊我用第一个回我的那个人提供的IP地址,其他都回吧,同时请求相关参数】

4.服务器收到广播包,然后发送 DHCP ACK包,即向客户机发送IP地址,网关,dns,子网掩码相关参数。

该过程完成后,客户机就有了IP地址,子网掩码,网关,dns等参数。可以在内网中通信。

客户机发送discovery广播包.png

DHCP服务器接收.png

包内容:


discovery包内容.png

第二阶段:

接着,客户机打开浏览器,在地址栏输入www.baidu.com后回车。

1.客户机先去访问缓存,接着访问host文件,由于是全新的机器,所以两处文件都没有数据。

2.客户机需要知道百度的IP地址,所以去访问DNS服务器。假设DNS服务器跟客户机在一个网段内。DNS服务器的地址从DHCP服务器那里已经继承过来,知道了DNS服务器的IP地址还不能发送数据,还需要是的DNS服务器的MAC地址。接着客户机发送arp广播包获取DNS服务器的MAC地址。

【大喇叭喊IP地址为x.x.x.x的人你的MAC地址是多少,DNS收到后就会回应MAC地址】

3.获取完MAC地址之后客户机即可组织发送数据,向DNS服务器请求百度的IP地址。客户机会先发送一个NDS请求包,DNS服务器收到后会先看缓存,如果缓存里面有百度的地址,那么就会回发给客户机NDS回复包。如果缓存里没有,那么DNS服务器就会看自己负不负责解析baidu.com 这个域名,不负责那就转发给远程DNS服务器,再回发数据包。

报文格式如下:

格式.png

请求包Queries区域的字段有:

name:域名

name length:域名长度

label count:

type:资源记录类型,一般是A,也就是A记录,代表主机

class:Internet,一般是IN

NDS回复包比请求包多一个Answers区域,字段有:

name:域名

type:同上

class:同上

time to live:缓存时间,秒

data length:解析IP地址的大小,4个字节

address:IP地址

4.使用ARP协议获取默认网关的MAC地址。

第三阶段:

5.客户机将数据包发送给网关,路由器根据路由协议及路由表选择一条最优路径,将客户机数据转发给所获取IP地址的百度服务器的目的网关,该网关再将数据转发给那个获取IP的百度服务器,进行TCP三次握手

6.客户机使用http协议发送请求数据给web服务器

7.百度web服务器收到请求后查找相应的结果,然后原路返回给客户机

8.客户机收到数据通过浏览器的渲染功能显示网页

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、第八章 Samba服务器2、第八章 NFS服务器3、第十章 Linux下DNS服务器配站点,域名解析概念命令:...
    哈熝少主阅读 3,783评论 0 10
  • 1. OSI,TCP/IP,五层协议的体系结构,以及各层协议 OSI分层 (7层):物理层、数据链路层、...
    iCaptain阅读 2,502评论 0 4
  • 一、什么是TCP/IP 网络和协议 1. TCP/IP是一类协议系统,它是一套支持网络通信的协议集合。网络是计算机...
    karlon的马甲阅读 6,634评论 1 24
  • 话说两台电脑要通讯就必须遵守共同的规则,就好比两个人要沟通就必须使用共同的语言一样。一个只懂英语的人,和一个只懂中...
    哲逗年阅读 932评论 0 0
  • 大家都知道上网的最基本前提是要在终端上设置IP、子网掩码、网关、DNS等地址信息,在家里或者在办公室很多时候打开电...
    hangba843阅读 1,848评论 0 5