我正在自己的PXE服务器上工作(这样我就可以安装我想要测试的新操作系统,而不需要查找和格式化USB)。我已经通过检查心理医生/PyPXE项目来说明,但是很快就实现了我自己的TFTP。我正在我的笔记本电脑上再次测试英特尔UNDI PXE-2.1。
心理医生不支持的一件事是发送大文件(>3200万)。RFC (1350,二三四七)不讨论该如何做,但显然我有两种选择。第一个选项是增加块大小,但由于PXE客户端显然忽略了分段IP数据包,因此无法工作。
第二种选择是使用滚动块,即在到达终点时从开始开始计数。客户端保存数据,但是当数据结束时,客户端开始发送ack作为块0 0xffff (即使这不是最后一个块)。
我试图关闭连接并为该块发送空数据包。第一个导致了PXE上的错误,第二个导致了PXE的无限循环。
,为了结束会话,我需要发送哪些数据包来响应方框0 0xffff?
发布于 2014-05-25 13:05:43
1) TFTP服务器应该真正实现块大小选项(如果不是这样的话)--您将被限制为512字节块。请参阅RFC 2348。碎片总是可以避免协商一个空白大小,使整个数据包永远不会超过最小MTU (在典型的以太网环境中1500)。
2)您必须实现一个TFTP“翻转”;在发送并获得加标块#= 0xFFFF之后,您应该将下一个块发送为块#= 0x0000,以此类推,直到完成传输。当您测试此特性时,一定要使用能够处理TFTP块翻转的TFTP客户端;今天可用的几乎所有PXE客户端都能很好地完成这一任务。
除了您的学习经验,编码您自己的PXE服务器,请考虑您将遇到无数的isuess的道路上。如果您需要快速的结果,只需谷歌"pxe服务器“的列表,准备使用PXE服务器选项。
https://stackoverflow.com/questions/23850172
复制相似问题