协议分析
Posted Elaine
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了协议分析相关的知识,希望对你有一定的参考价值。
1.traceroute程序的操作过程。
traceroute主要能列出到达目的主机所经过的路由。
在ICMP中有一个IP记录路由(RR)选项,之所以还要另外开发traceroute是因为
1>IP首部中留下的选项的空间有限,
2>并不是所有的路由器都支持路由选项,
3>记录路由一般是单项的,所以发送端设置了该选项,那么接收端不得不从收到的IP首部中提取出所有的信息。
traceroute程序的操作过程:它发送一个TTL = 1 的IP数据报给目的主机。处理这份数据报的第一个路由器将TTL减1,丢弃该数据包,并发回一份超时ICMP报文,这样就得到了这份数据报的第一个路由器的地址。然后traceroute程序发送一份TTL = 2 的IP数据报,这样我们就可以得到这份数据报的第二个路由器的地址,积蓄这个过程,直至数据报到达目的主机。
2.TCP协议通过那些方式提供可靠性传输?
1>应用数据报被分割成TCP认为最适合发送的数据块;
2>当TCP发出一段后,他将启动一个定时器,等待目的端确认收到着个数据段,如果没有,那么超时重传;
3>当TCP收到来自TCP链接的另一端的数据后,他将发送一个确认;
4>TCP将保持他首部和数据的校验和,这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发) ;
5>既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。 (对失序数据进行重新排序,然后才交给应用层)
6>IP数据报会发生重复,TCP接收端必须丢弃重复的数据;
7>TCP提供流量控制,缓冲空间。
3.什么是Nagle算法,它有什么优点?
Nagle算法的基本定义是任意时刻,最多只能有一个未被确认的小段。 所谓“小段”,指的是小于MSS尺寸的数据块,所谓“未被确认”,是指一个数据块发送出去后,没有收到对方发送的ACK确认该数据已收到。
Nagle算法的规则(可参考tcp_output.c文件里tcp_nagle_check函数注释):
多播路由器使用IGMP报文来记录与该路由器相连网络中组成员的变化情况,其报文格式如下:
规则如下:
(1)当第一个进程加入一个组时,主机发送一个IGMP报告,如果有多个进程加入同一个组,只需发送一个报告;
(2)进程离开一个组时,不需要发送任何报告;后期路由器发送IGMP查询时,不再发送报告;
(3)多播路由器定时发送(向每个接口)IGMP查询来了解是否还有任何主机包含有属于多播组的进程,此时IGMP查询报文中的组播地址被设置为0.
(4)主机通过发送IGMP报告来响应一个IGMP查询,对每个至少还包含一个进程的组均要发回IGMP报文。
以上是关于协议分析的主要内容,如果未能解决你的问题,请参考以下文章