【问题标题】:In the TFTP Client Server application, how does a UDP datagram modify the IP header?在 TFTP Client Server 应用程序中,UDP 数据报如何修改 IP 标头?
【发布时间】:2016-09-09 00:07:19
【问题描述】:

我正在使用 Java 构建一个 TFTP(RC1350) 应用程序。到目前为止,我已经能够在两台不同的计算机之间成功传输,无论是读取请求还是写入请求。正如 RC1350 规范所建议的那样,我通过将这些信息放入 DatagramPacket 中来指定目标地址和端口号。

基于RC1350,header的顺序如下:

      ---------------------------------------------------
     |  Local Medium  |  Internet  |  Datagram  |  TFTP  |
      ---------------------------------------------------

                  Figure 3-1: Order of Headers

它还声明“TFTP 在 Internet 标头中指定任何值”。

由于我的 TFTP 应用程序根本不接触 IP 标头,那么 IP 如何确定将什么作为地址放入 IP 标头?

【问题讨论】:

    标签: java sockets udp ip tftp


    【解决方案1】:

    TFTP 没有指定 IP 标头中的内容,但这并不意味着其中没有任何内容。

    UDP 将源端口和目的端口放在 UDP 头中,IP 将源地址和目的地址放在 IP 头中。

    【讨论】:

    • UDP 将源和目标信息放入 IP 标头?
    • "IP 将源地址和目标地址放入 IP 标头" IP 如何决定将什么作为地址放入 IP 标头?它从哪里获得这些信息?
    • IP 知道源地址(而 UDP 知道源端口)。目标地址:端口来自应用程序。具体来说,来自sendto() 方法,或者如果套接字已连接,则来自connect() 方法。
    • 准确来说:Java 从DatagramPacket 中提取目标地址并将其传递给sendto()sendto() 将其传递给操作系统。 UDP使用UDP头中的端口,IP使用IP头中的地址。这就是为什么这些信息首先出现在DatagramPacket 中的原因。
    • 是的,这是我的主要问题。我想知道源 IP 地址和目标 IP 地址实际上是如何移动到 IP 标头的。但是你解释得很好。谢谢你:)
    猜你喜欢
    • 1970-01-01
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    • 2012-07-11
    相关资源
    最近更新 更多