2012-08-28 87 views
1

請原諒我這個愚蠢的問題。
我不太明白這些意思。如果任何人都可以明確地解釋它。謝謝很多。閱讀TCP/IP時出現問題

爲什麼當ICMP消息被返回時,TFTP客戶端會繼續重發它的請求?網絡編程的一個要素是BSD系統不會使用爲該套接字接收的ICMP消息的UDP通知用戶進程,除非該進程在該套接字上發出連接。標準的BSD TFTP客戶端不會發出連接,所以它永遠不會收到ICMP錯誤通知。

TCP/IP說明的第1卷章程6.5

+1

請提供卷,章節和頁面參考。 – EJP

回答

1

ICMP消息不會返回給應用程序,除非它發出了一個connect(),它沒有,所以它不知道它們。

+0

@張元我看不到相關性。它如何影響你的問題,或我的答案? – EJP

+0

也許文字會幫助我澄清我的問題[文字](http://www.pcvr.nl/tcpip/icmp_int.htm#6_5) – yuan

+0

@張元你在這裏提出一個概念上的問題嗎?如果是的話,它已被回答。或者你問的是你實際遇到的情況?如果是的話,什麼? – EJP

-1

通常ICMP協議用於故障診斷目的,實際上在大多數操作系統上時連接到服務器上的閉合端口時,服務器將與回覆ICMP消息類型端口不可達。

+0

謝謝,也許我的問題是不明確的。我不明白這些'網絡編程的一個元素正在發生,其中BSD系統不會通知用戶進程使用UDP接收該套接字的ICMP消息,除非進程有在該套接字上發佈連接「如果你可以解釋它會更好。 – yuan

+0

完全不正確。 UDP連接中不涉及網絡操作,因此服務器無法回覆。當你*發送*到一個非開放的端口時,你引用的ICMP信息就會出現,並且只有在它已經完成了UDP連接的情況下才會嚮應用程序報告,這是史蒂文斯在這裏所說的。 – EJP