免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4252 | 回复: 9

BOOTP协议的疑问 [复制链接]

论坛徽章:
0
发表于 2008-09-19 22:07 |显示全部楼层
客户端不知道自己的IP,所以以源IP:0.0.0.0,目标IP:255.255.255.255发送请求,服务器端则以源IP:服务器IP,目标IP:为客户端分配的IP,为客户返回应答,但问题是客户还没有IP地址,如何接收目标地址为服务器所分配的地址的应答包呢?莫非只要不设IP地址,IP层就不对目标地址进行验证了?

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
发表于 2008-09-19 23:45 |显示全部楼层
不是的。一个PC是否会接收包,是由MAC地址决定的。但是这个包是否会送到IP层则是有IP决定的。\r\n\r\n但是DHCP是监听在链路层工作的,因此它可以截获这个包。\r\n\r\n不过按照我的想法,此处的目标IP设置为0.0.0.0似乎更加合理。但是DHCP的实现就是如此。不过这个不会影响DHCP CLIENT进程收包的。

论坛徽章:
0
发表于 2008-09-20 22:09 |显示全部楼层
有了MAC地址后,主机会向网关发arp包得到IP地址?bootp不熟悉。

论坛徽章:
0
发表于 2008-09-20 23:32 |显示全部楼层
但问题是客户还没有IP地址,如何接收目标地址为服务器所分配的地址的应答包呢?
\r\n\r\n这个问题问得好,请看下面的两段话,针对您的疑问给出了明确的答案。\r\n
\r\nA BOOTP server that receives the request looks up several pieces of configuration information for the computer that issued the request, places the information in a single BOOTP Response message, and returns the reply to the requesting computer. Thus, in a single step, a computer can obtain information such as the computer\'s IP address, the server\'s name and IP address, and the IP address of a default router.\r\n\r\nLike other protocols used to obtain configuration information, BOOTP broadcasts each request. Unlike other protocols used for configuration, BOOTP appears to use a protocol that has not been configured: BOOTP uses IP to send a request and receive a response. How can BOOTP send an IP datagram before a computer\'s IP address has been configured? The answer lies in a careful design that allows IP to broadcast a request and receive a response before all values have been configured. To send a BOOTP datagram, IP uses the all-1\'s limited broadcast address as a DESTINATION ADDRESS , and uses the all-0\'s address as a SOURCE ADDRESS . If a computer uses the all-0\'s address to send a request, a BOOTP server either uses broadcast to return the response or uses the hardware address on the incoming frame to send a response via unicast. (The server must be careful to avoid using ARP because a client that does not know its IP address cannot answer ARP requests.)\r\n\r\nThus, a computer that does not know its IP address can communicate with a BOOTP server. \r\n\r\n

论坛徽章:
0
发表于 2008-09-22 10:30 |显示全部楼层
不是的。一个PC是否会接收包,是由MAC地址决定的。但是这个包是否会送到IP层则是有IP决定的
\r\n问题是现在讨论的是BOOTP,BOOTP是在传输层实现的,使用UDP报文,除非IP层在没有配置IP地址前接受任何从链路层递交上来的数据报。\r\n\r\n
The answer lies in a careful design that allows IP to broadcast a request and receive a response before all values have been configured
\r\n这句话是否说明了IP层在没有配置IP地址前可以接受任何从链路层递交上来的数据报呢?

论坛徽章:
0
发表于 2008-09-22 11:50 |显示全部楼层

回复 #5 lanying_wzw 的帖子

To send a BOOTP datagram, IP uses the all-1\'s limited broadcast address as a DESTINATION ADDRESS , and uses the all-0\'s address as a SOURCE ADDRESS . If a computer uses the all-0\'s address to send a request, a BOOTP server either uses broadcast to return the response or uses the hardware address on the incoming frame to send a response via unicast. \r\n\r\n0.0.0.0作为source地址向255.255.255.255发请求,BOOTP server就可以获得客户端的mac地址了。

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
发表于 2008-09-22 12:13 |显示全部楼层

回复 #5 lanying_wzw 的帖子

是的。\r\n\r\n不是说UDP数据包一定是在传输层才能接收的。在更低的层也是可以的。但是更高的层肯定是不行的。\r\nDHCP 服务端和客户端监听的都是原始套接字接口的,这可以抓取到任何的包。\r\n\r\n另外,即使你的机器没有配IP,是一样可以接收IP包的。但是处理的过程和配了正确的IP是不一样的。我说过了一个机器是否收包取决的是MAC,而不是IP。

论坛徽章:
0
发表于 2008-09-22 15:53 |显示全部楼层
我当然知道在链路层什么包都能收到了,BOOTP客户端完全可以访问链路层,获取UDP包,但我的问题是,当客户端没有设置IP地址的时候,一个IP层以上的应用能否接收到下层的包?系统的IP层会丢弃IP包,还是将用户数据递送给高层?

论坛徽章:
0
发表于 2008-09-22 16:11 |显示全部楼层
英文原义:Bootstrap Protocol\r\n  中文释义:自举协议\r\n  注解:该协议是一个基于TCP/IP协议的协议,它可以让无盘站从一个中心服务器上获得IP地址,为局域网中的无盘工作站分配动态IP地址,并不需要每个用户去设置静态IP地址。使用BOOTP协议的时候,一般包括Bootstrap Protocol Server(自举协议服务端)和Bootstrap Protocol Client(自举协议客户端)两部分。\r\n  应 用:该协议主要用于有无盘工作站的局域网中,客户端获取IP地址的过程如下:首先,由BOOTP启动代码启动客户端,这个时候客户端还没有IP地址,使用广播形式以IP地址0.0.0.0向网络中发出IP地址查询要求。接着,运行BOOTP协议的服务器接收到这个请求,会根据请求中提供的MAC地址找到客户端,并发送一个含有IP地址、服务器IP地址、网关等信息的FOUND帧。最后,客户端会根据该FOUND帧来通过专用TFTP服务器下载启动镜像文件,模拟成磁盘启动。

论坛徽章:
0
发表于 2008-09-22 17:30 |显示全部楼层
但问题是客户还没有IP地址,如何接收目标地址为服务器所分配的地址的应答包呢?莫非只要不设IP地址,IP层就不对目标地址进行验证了?\r\n==================================\r\nserver会根据client发来的广播帧里的mac地址,发给client一个数据帧,里面包含client的ip,server的IP、网关等信息的FOUND帧。此时client就会把自己设置为此ip。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP