2012-08-28 44 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