首先,我们需要知道计算机是如何上网的。

计算机之间的通信是建立在五层架构上的,一台计算机要想实现与互联网中另外一台台计算机之间的通信,计算机至少需要知道下面四个参数:

*本机的IP地址
*子网掩码
*网关的IP地址
*DNS服务器的IP地址

其中本机的 IP 地址和子网掩码的作用与来历已经在互联网分层结构实现中说明了

网关的 IP 地址也是必须知道的,这个是因为一般情况下我们访问的主机都和我们不在一个子网中。所以需要把数据包先发给本机所处子网的网关,再由网关转发给目标主机(一般情况一次通信会转发很多次,直到抵达目标主机)。大致如下图示:

DNS 服务器的 IP 地址也是必须知道的,因为我们一般直接获得的都是域名,比如(www.google.com)。DNS (域名系统)协议的作用是将域名转换成 IP 地址,我们向 DNS 服务器发送 DNS 数据包, DNS 服务器会做出响应告知我们该域名对应的 IP 地址是多少。

知道了上述四个参数,一台计算机就可以上网了。

静态 IP 上网

大家都用过 Windows 系统,想必对于这个界面应该不会陌生

这是windows系统的一个设置窗口,可以指定上网必需的四个参数。指定以后,每次开机都会固定同样的 IP 地址,因此这种上网方式被称为静态 IP 上网

但是,我们可以发现这种设置是具备一定专业性的。连上网线,我们还需要知道所处子网的网关 IP、子网掩码、固定可用不会被占用的本机 IP、还有可访问的 DNS 服务器 IP。可以说相当专业了。而且这样做了以后,此台电脑的 IP 地址会保持不变,其他电脑就不能使用了,会使得资源利用不够灵活。所以现在基本上大家都是采用动态 IP 上网。

动态 IP 上网

所谓的动态 IP 上网,就是开机连上网线后,会自动分配到一个可用的 IP 地址,不需要再认为设定,这样就方便了好多。它使用了 DHCP 协议。

DHCP 协议(Dynamic Host Configuration Protocol)

这是一种应用层协议,建立在 UDP 协议之上,整个数据包如下:

其中协议规定:

  1. 最前面的以太网标头,设置发出方(本机)的 MAC 地址接收方(DHCP服务器)的 MAC 地址。前者是本地网卡的 MAC 地址,后者此时尚不知,就填入一个广播地址FF-FF-FF-FF-FF-FF
  2. 接下来的 IP 标头,设置发出方IP 地址接收方IP 地址。这时,这些都还不知道,于是发出方的 IP 地址设置为0.0.0.0,接收方的 IP 地址设置为255.255.255.255
  3. 最后的 UDP 标头,设置发出方端口接收方端口。这一部分 DHCP 协议规定好的是,发出方是68端口,接收方是67端口。

数据包构造完成后便可以发出了。这时是以太网广播发送,同一个子网络的每台计算机都会收到这个包。因为接收方地址为FF-FF-FF-FF-FF-FF,看不出是发给谁的,于是每台收到此包的计算机还必须再分析这个包的 IP 地址。当看到发出方为0.0.0.0.0,接收方为255.255.255.255时, DHCP 服务器便知道是发给自己的包,而其他计算机会丢弃这个包。

然后,DHCP 服务器读出这个包,履行自己的职能,分配好一个 IP 地址,并发送一个 DHCP 响应包。这个响应包的相关设置类似,以太网标头为双方 MAC 地址, IP 标头 发送方为 DHCP 服务器 IP 地址,接收方为255.255.255.255。 UDP 端口为 67 (发出方)和 68 (接收方),分配给请求项的 IP 地址和本网路的具体参数包含在数据部分。

动态上网全流程总结

  1. 电脑开机,接上网线,连入网络;
  2. 利用 DHCP 协议动态获取本机 IP本网络参数(子网掩码、网关IP、DNS的IP等);
  3. 打开浏览器,输入www.google.com并回车;
  4. 利用 DNS 协议获得www.google.com的 IP ;
  5. 将数据包依次通过互联网的五层架构发送出去,并接收返回数据屏幕显示,完成一次网络通信。

DHCP 实现动态 IP 上网简析相关推荐

  1. 使用动态ip上网稳定吗?

    在这个互联网时代,动态ip和pppoe大家应该都是比较熟悉了,那么哪个更稳定呢?哪个上网更好呢?请看下面分享. 动态IP是什么? 通过Modem.ISDN.ADSL.有线宽频.小区宽频等方式上网的计算 ...

  2. 静态库调用_静态链接和动态链接对比简析

    0. 简介 在Linux环境下进行开发工作,代码要经过编译链接生成二进制可执行文件,才能被CPU识别并执行:程序的编译过程可以参考另外一篇文章<linux程序编译过程简析>:链接过程分为两 ...

  3. 【动态内存管理】动态内存函数简析

    前言

  4. 动态IP(DHCP)、静态IP、拨号(PPPOE)三种上网设置区别

    动态IP(DHCP).静态IP.拨号(PPPOE)三种上网设置区别 一.动态IP(DHCP)  动态IP上网,又叫做DHCP上网.自动获取IP上网.动态IP这种上网方式,在未使用路由器的情况下,只需要 ...

  5. 电脑ip地址设置_路由器动态IP和静态IP上网方式怎么设置【设置教程】

    在我们设置路由器的过程中,路由器设置界面一般会给我们提供4种上网方式选项,分别是:"让路由器自动选择上网方式(推荐)"."PPPoE(ADSL虚拟拨号)".&q ...

  6. 路由器动态ip怎么设置上网

    路由器动态ip设置上网的方法 (一).通过设置向导设置动态IP上网 1.登录设置界面:在浏览器的地址栏中输入:192.168.1.1然后按下回车键-->在弹出的对话框中,输入默认用户名.密码,登 ...

  7. wr885n虚拟服务器设置,动态IP设置:选择动态IP(以太网宽带

    tplink885n设置操作步骤如下 一台新购买(恢复出厂设置)的TL-WR885N路由器,要实现上网功能,需要进行下面3个步骤 :1.TL-WR885N路由器安装;2.设置电脑IP地址;3.TL-W ...

  8. 电脑ip地址设置_关于路由器动态IP如何设置教程

    动态ip一般都是用于居民公寓内部或者是校园区,为了节省网络资源,而采取的一种措施:那么到底该怎么样设置动态ip的无线路由器,使之能够共享无线网络呢? 无线路由器动态IP上网的设置,其实非常的简单:只需 ...

  9. 静态IP与动态IP有什么区别,分别在什么时候用到

    一.静态IP与动态IP区别: 1.动态IP需要在连接网络时自动获取IP地址以供用户正常上网,而静态IP是ISP在装机时分配给用户的IP地址,可以直接连接上网,不需要获取IP地址. 网络世界中,数据的传 ...

最新文章

  1. MariaDB/MySQL防止重复插入相同记录:INSERT IGNORE或者REPLACE
  2. 网络营销外包——网络营销外包专员浅析网站首页设计需要注意哪些
  3. 【3分钟掌握】什么是DNS解析
  4. 此时无法停用连接。这个连接可能在用一个或多个不支持即插即用的协议,或者它是由其他用户或系统帐户初始化的。...
  5. sizeof()计算结构体的大小
  6. Summed-Area Variance Soft Shadow Mapping(SAVSM):一
  7. Need ffmpeg exe. You can download it by calling: imageio.plugins.ffmpeg.download()
  8. PC/104总线简述
  9. 罗技 连点 脚本_拳头与罗技G展开合作 将推出《英雄联盟》主题外设--新闻中心...
  10. python支持复数类型以下说法错误的是_关于Python的数字类型,以下选项中描述错误的是...
  11. lvgl v8之Styling the scrollbars
  12. 水平制表符 \t 和 垂直制表符\v的区别
  13. 一周搜索热点20170528
  14. python根据生日自动批量产生中奖双色球
  15. mysql outer join报错_千与千寻-MySQL联结join
  16. 如何把图片转化成excel表格?
  17. Eclipse 常用快捷键整理
  18. 上传文件时,服务器报错:IOFileUploadException: Processing of multipart/form-data request failed. 设备上没有空间
  19. jQuery---链式编程
  20. 2018年中国外贸进出口总值30.51万亿元 贸易顺差收窄

热门文章

  1. 学术速运|利用分子动力学来模拟洗脱溶液中的环肽构象
  2. nyoj892买牛奶
  3. abaqus切削为什么没有切屑,教你如何用Abaqus模拟金属切削(二)
  4. 微信小程序 wxss之 background 属性
  5. 寻找中国最好百名产品经理:豆瓣阿北360周鸿祎
  6. MySQL--表的创建以及数据类型
  7. 开源Zip文件压缩算法 ICSharpCode.SharpZLib
  8. 利用建造者(Builder)模式构建 Java 对象
  9. 破壳漏洞的原理与利用
  10. 【渝粤教育】电大中专计算机职业素养 (3)作业 题库