TCP/IP详解卷一08

1.Traceroute程序可以让我们看到IP数据报从一台主机传到另一台主机所经过的路由(Traceroute程序不需要中间路由器具备任何特殊的或可选的功能)。

  Traceroute程序只需要目的端运行一个UDP模块----其他不需要任何特殊的服务器应用程序。

  Traceroute程序使用ICMP报文和IP首部中的TTL字段(生存周期,由发送端初始设置一个8bit字段,跳站的计数器,用来防止数据报在选路时无休止地在网络中流动,在循环传递的数据报上加上一个生存上限)。

  当路由器收到一份IP数据报,其TTL字段是0或者1,则路由器不转发该数据报(目的主机可以将它交给应用程序)。相反,路由器将该数据报丢弃,并给信源机发送一份ICMP“超时”信息。Traceroute程序的关键在于包含这份ICMP信息的IP报文的信源地址是该路由器的IP地址。

2.Traceroute程序的操作过程。

  (1)它发送一份TTL字段为1的IP数据报给目的主机。处理这份数据报的第一个路由器将TTL值减1,丢弃数据报,并发回一份超时ICMP报文。就会得到该路径中的第一个路由器的地址。

  (2)Traceroute程序发送一份TTL值为2的数据报,这样可以得到第二路由器的地址。

  (3)继续这个过程直至该数据报到达目的主机。(但是目的主机哪怕接收到TTL值为1的IP数据报,也不会丢弃数据报并产生一份超时ICMP报文,因为数据报已到达其最终目的地)    Traceroute程序发送一份UDP数据报给目的主机,但它选择一个不可能的值作为UDP端口号(大于30000),使得目的主机的任何一个应用程序都不可能使用该端口号。Traceroute程序所要做的就是区分接收的ICMP报文是超时还是端口不可达,以判断什么时候结束。

    Traceroute程序必须可以为发送的数据报设置TTL字段。并非所有与TCP/IP接口程序(所有的实现)都支持这项功能,Traceroute程序界面通常需要用户拥有超级用户权限(可能需要特殊权限以在主机上运行该程序)

3.在局域网中进行输出

  第0行:目的主机名;IP地址;traceroute程序最大的TTL字段值为30;40字节的UDP数据报(20字节IP首部、8字节的UDP首部、12字节的用户数据)

  第1行:TTL;主机/路由器名(IP地址);对于每个TTL值,发送3份数据报。每收到一份ICMP报文,就计算并打印出往返时间(如果5秒内仍未收到3份数据报的任意一份的响应,就打印一个星号,并发送下一份数据报)(往返时间:由发送主机的traceroute程序计算的,指的是从traceroute程序到该路由器的总往返时间)

  3.2traceroute程序需要指出:

    (1)并不能保证现在的路由也是进来要采用的路由,甚至两份连续的IP数据报都可能采用不同的路由。

    (2)不能保证ICMP报文的路由与traceroute程序发送的UDP数据报采用同一路由。

    (3)返回的ICMP报文中的信源IP地址是UDP数据报到达的路由器接口的IP地址。

4.IP源站选路选项

  IP路由是动态的,即每个路由器都要判断数据报下面该转发到哪个路由器。采用traceroute程序的工具来发现实际路由。

  源站选路*(source routing)的思想是由发送者指定路由。采用形式:

  一:严格的源路由选择。发送端指明IP数据报所必须采用的确切路由。

  二:宽松的源站选路。发送端指明了一个数据报进过的IP地址清单,但是数据报在清单上指明的任意两个地址之间可以通过其他路由器。

  源站路由选项的实际称呼为“源站及记录路由”(数据报沿路由发送过程中,对IP地址清单进行了更新)

5.在一个TCP/IP网络中,traceroute程序是不可缺少的工具,操作:

  (1)发送一个TTL字段为1的UDP数据报,然后将TTL字段每次加1,以确定路径中的每个路由器。每个路由器在丢弃UDP数据报时都返回一个ICMP超时报文2,而最终目的主机则产生一个ICMP端口不可达的报文。

  

  

  

  

  

时间: 2024-10-14 10:03:13

TCP/IP详解卷一08的相关文章

《TCP/IP详解 卷一》读书笔记-----广播&多播&IGMP

1.广播和多播都只适用于UDP,因为TCP是面向连接的,需要将两台主机的两个进程绑定在一起,即IP地址和端口对 2.通常,网卡能看到网络中的每一个数据帧,但是往往它只接受目的地址与自己MAC地址相同的或者为广播地址的帧(现在有些也能接收多播地址),然后将它传输给设备驱动 3.广播的问题在于它给那些对广播数据不感兴趣的主机增加了处理负担(需要通过网卡,驱动,IP等一层层的判断),而多播的出现恰好解决了这些问题.通常一台主机会被指定加入一个或多个多播组,网卡也会被告知自己属于哪几个多播组,于是只有属

TCP/IP详解 卷一(第十四章 DNS:域名系统)

域名系统(DNS Domain Name System)是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换及有关电子邮件的选路信息. 从应用角度上看,对DNS的访问时通过一个地址解析器(resolver)来完成的. 在Unix主机中,该解析器主要是通过两个库函数gethostbyname(3)和gethostbyaddr(3)来访问的.前者接收主机名字返回IP地址,而后者接收IP地址来寻找主机名字. 解析器通过一个或多个名字服务器来完成这种相互转换. DNS基础 D

TCP/IP详解卷一07

1.Ping:目的是为了测试另一台主机是否可达.Ping程序发送一份icmp回显请求报文给主机,并等待返回ICMP回显应答(用ping作为诊断工具山如剖析ICMP,检测IP记录路由和时间戳选项的机会)(地址掩码和时间戳请求也都直接在内核中处理). 2.发送回显请求的ping程序为客户,被ping的主机为服务器.(Unix系统中在实现ping程序时是把ICMP报文中的标识符字段设置成发送进程的ID, 此时序列号从0开始,每发送一次回显请求就会加1(ping程序打印出返回的每个分组的序列号,允许查看

TCP/IP详解 卷一(第三章 IP:网际协议)

IP是TCP/IP协议族中最为核心的协议.所有的TCP.UDP.ICMP及IGMP数据都以IP数据报格式传输. IP提供不可靠.无连接的数据报传送服务. 1.不可靠:就是它不能保证IP数据报能成功地到达目的地.IP仅提供最好的传输服务. 2.无连接:每个数据报的处理都是相互独立的,IP数据报可以不按发送顺序接收. 1.IP首部 其中TTL(time-to-live)生存时间字段设置了数据报可以经过的最多路由器数. 一旦经过一个处理它的路由器,它的值就减去1.当该字段的值为0时,数据报就被丢弃.

TCP/IP详解 卷一(第二章 链路层)

在TCP/IP协议族中,链路层主要有三个目的: 1.为IP模块发送和接收IP数据报 2.为ARP模块发送ARP请求和接收ARP应答 3.为RARP请求和接收RARP应答 TCP/IP支持多种不同的链路层协议,本文主要讨论以太网链路层协议.PPP协议以及大多数实现都包含的环回(loopback)驱动程序. 使用ipconfig命令查看本机的网络接口 其中eth0就是以太网接口,lo是环回接口. 1.以太网IP数据包的封装 2.PPP协议(点对点协议) 3.环回接口 环回接口允许在同一台主机上的客户

TCP/IP详解 卷一(第一章 概述)

很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但TCP/IP协议族允许它们相互进行通信. 1.分层 TCP/IP不是一个协议,而是一个协议族,通常它被认为是一个四层的协议系统,下面展示了TCP/IP协议族中不同层次的协议 2.互联网的地址 互联网上每个接口必须有一个唯一的Internet地址(IP地址).IP地址(IPv4)长32bit,下面是5类不同的互联网地址格式 下面是各类IP地址的范围 3.端口号 TCP和UDP采用16bit的端口号来识别应用程序 4.RFC RFC(

TCP/IP详解 卷一(第七、八章 Ping、Traceroute程序)

Ping程序 Ping程序由Mike Muuss编写,目的是为了测试另一台主机是否可达. 该程序发送一份ICMP回显请求报文给主句,并等待返回ICMP回显应答. ping程序还能测出到这台主机的往返时间 Traceroute程序 Traceroute程序是一个能更深入探索TCP/IP协议的方便可用的工具 Traceroute程序可以让我们看到IP数据报从一台主机传到另一台主机所经过的路由. 下图是书本的一个例子

《TCP/IP详解 卷一》读书笔记-----第三章 IP

1.Network byte order:数据在网络中的传输是按照大端模式来的,即如果需要传递一个四个字节的int变量,先传递最高的字节,然后依次类推.因此无论主机存储数据用的是大端模式还是小端模式,在传输之前都必须将其转换为大端. 2.IP数据报报头的检验和字段只对报头进行检验.因为通常IP数据报的数据字段中包含的TCP,UDP,ICMP,IGMP数据头部都包含对自身每个比特的校验,所以并不需要在IP数据报报头中进行重复校验. 3.IP路由:当IP层收到一个数据报之后,首先1)检验目的IP地址

《TCP/IP详解 卷一》读书笔记-----TCP数据流

1.Delayed Acknowledgements:TCP通常不会在收到数据之后立即返回一个ACK,而是会有一个延时,希望能ACK报文段中带上一些数据,通常这个延时为200ms 2.Nagle Algorithm:在TCP连接中,只能有一个小的报文段未被确认.即TCP在发送了一个小的报文段之后,会将之后的小数据都收集起来,直到之前的小报文段得到确认,才将收集到的小数据打包成一个报文段发出.这样做的减少了网络中小报文段的数量,减轻了网络的阻塞,提高了传输的效率 3.当一个包到达以后,它首先被设备