一. 第八章《Traceroute程序》

问题一:Traceroute的基本工作原理?

trcertroute建立一个UDP数据包,不断修改TTL值并发送出去,如果收到"超时错",表示刚刚到达的是路由器,而如果收到的是"端口不可达"错误,表示刚刚到达的就是目的主机。这样路由跟踪完成,程序结束。

二. 第九章 《IP选路》

问题一:IP搜索路由表的步骤

搜索匹配的主机地址----》搜索匹配的网络地址----》搜索默认选项

IP层进行的选路实际上是一种选路机制,它搜索路由表并决定向哪个网络接口发送分组。

问题二:如果路由表中没有默认项,而又没有找到匹配项,这时如何处理?

结果取决于该IP数据报是由主机产生的还是被转发的。

如果数据报是由本机产生的,那么就给发送该数据报的应用程序返回一个差错,或者是“主机不可达差错”或者是“网络不可达差错”。

如果是被转发的数据报,就给原始发送一份ICMP主机不可达的差错报文。

问题三:ICMP重定向差错报文是怎么来的,在何种场合出现?

主机

|

|

——————————————————————

| |

| |

R1 R2

1) 主机发送IP数据报给R1,因为主机的默认路由指向的下一跳是R1。

2) R1收到数据报并且检查它的路由表,发现R2是发送该数据报的下一跳。当他将数据报发送给R2的时候,发现发送的接口与接受的端口是一样的,因此同时发送一个ICMP重定向报文给主机。

3) R1接受到ICMP重定向报文后,接下来的数据报就发送给R2,而不再发送给R1。

问题四:重定向报文有什么规则?

重定向报文只能有路由器生成。

重定向报文是为主机而不是为路由器使用的。

三. 第11章 《UDP:用户数据报协议》

??问题一:UDP和TCP的简单介绍。

UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。

TCP是面向流字符,应用程序产生的全体数据与真正发送的单个IP数据报可能没什么联系。

问题二:UDP报头字段和含义?

源端口号(2)

目地端口号(2)

UDP长度:是UDP的报文总长度,是多于的。 IP总长度减去首部长度就是此值。(2) 

UDP校验和:注意点:校验和是可选的。 (TCP是必选的)校验和覆盖UDP首部和数据(TCP也一样覆盖首部和数据,但是IP指覆盖首部)(2)

问题三: UDP的校验和是怎么计算的?
UDP的校验和要计算首部和数据部分。

首部还包括伪首部。

多了12个字节的伪首部。

注意点:UDP长度计算两次。

如果检验和有错,则UDP数据报被悄悄丢弃,不产生任何差错报文。

问题四:为什么要加有伪首部?

目的是让UDP两次检查数据是否已经正确到达目的地。

IP接受正确的目的地址,传送到正确的上层程序。

所有伪首部包括:源IP地址,目的IP地址,0,协议号,UDP长度。

??问题五: IP分片,UDP和ICMP分片的实例子。