的時候我使用一個Arduino以太網UDP數據報發送到遠程主機。我用它來發送一個數據包的代碼是:設置IP數據包的生存期(TTL)傳出UDP數據報上的Arduino以太網
Udp.begin(localPort);
...
Udp.beginPacket(remoteIP, remotePort);
Udp.write(data);
Udp.endPacket();
我的問題是,我需要自定義傳出UDP/IP數據包的TTL,但沒有Udp.begin,Udp.beginPacket,Udp.write和Udp.endPacket提供的參數設置這樣的選項。
我知道TTL字段屬於IP header,但似乎你不使用Arduino的Ethernet/socket/w5100庫處理原始IP數據包。
我EthernetUDP::beginPacket
看着上面函數的定義,expecially在這裏我想知道找到一些有用的東西是叫就在我傳遞消息的有效載荷,但我卡住了,因爲它包含了比一個多不了多少調用startUDP()
(socket.cpp),後者處理W5100類的方法,這些方法對我來說不是很清楚。
難道有人知道,如果有一個莫名其妙的高級設備設置數據包的TTL,還是應該去深入到圖書館來實現呢?
只是好奇,你還記得默認TTL是什麼?我遇到了一些接收數據包的網絡設備的問題,但我無法獲得答覆,除非我在同一子網上,即使在中間交換機上進行了適當的配置。 – snicker
W5100中的默認TTL爲128。 –