《TCP/IP 详解 卷一》读书笔记-----Ping

1、ping是用于测试对方主机是否可达的命令,其实本质上就是echo类型的ICMP报文。同时,ping还能用于计算RTT(round-trip time),即两台主机间的往返时延。

2、随着网络安全意识的增加,路由器的访问权限控制和防火墙等网络安全措施的使用,使得主机的可达性不仅仅取决于网络层的状况,而且也与协议的类型和端口号等等其他因素有关,所以现在ping指令的失败并不能代表目的主机就是不可达的。

3、IP record route:许多版本的ping命令在添加了-R的选项后,能够让数据报经过的每个路由器都在IP数据报的头部的可选部分(IP数据报头部最大60个字节,紧跟20个字节的固定首部后面的就是可选部分)填入自己的IP地址。当数据报到达目的主机后,再将这些IP地址填入ICMP echo的回复报文中,并且返回路径上的路由器也进行同样操作。最后,源主机就能从ping命令的返回报文中解析出与目的主机的整个交互过程需要经过那些路由器了。

当然,我们可以发现这样的机制背后是存在问题的,因为IP数据报头部的可选字段最多只有40个字节。在这40个字节里还要减去和record route相关的三个标识字节,最后能用的其实只有37个字节,也就是说只能存放9个IP v4的地址。这在现在的互联网环境下是远远不够的。

4、IP timestamp option:这和IP record route类似,不过是将原来的IP地址改为经过路由器的时间。并且它除了与record route一样的三个标识字节外,还有四个位的overflow字段用于标识记录的timestamp是否溢出,还有另外四个位的flags字段用于标识不同的timestamp类型,其中值得一提的一种类型是,在记录timestamp的同时也记录了该路由器的IP地址。其实我们仔细想想就能发现,单单记录经过路由器时的时间戳是没有多大意义的,但是如果把IP地址也记录下来,那么IP数据报头部的可选字段最多就只能记录四条记录了。

时间: 2024-10-26 07:36:08

《TCP/IP 详解 卷一》读书笔记-----Ping的相关文章

《TCP/IP详解》读书笔记

TCP/IP概述 TCP/IP通常被认为是一个四层协议: 链路层.也称数据链路层或网络接口层,包括设备驱动程序和网络接口卡,它们一起处理与电缆的物理接口细节. 网络层.处理分组在网络中的活动,如分组的选路:网络层的协议包括IP协议.ICMP协议(Internet互联网控制报文协议).IGMP协议(Internet组管理协议). 传输层.主要为两台主机上的应用程序提供端到端的通信,包括TCP(传输控制协议)和UDP(用户数据报协议). 应用层.处理特定的应用程序细节. TCP/IP协议族中不同层次

《TCP/IP详解》读书笔记(17章)-TCP传输控制协议

1.TCP的服务 在一个TCP连接中,仅有两方进行彼此通信.TCP通过下列方式来提供可靠性: 1)应用数据被分割成TCP认为最适合发送的数据块.这和UDP完全不同,应用程序产生的数据报长度保持不变.由TCP传递给IP的信息单位称为报文段或段. 2)当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段.如果不能及时收到一个确认,将重发这个报文段,这将在21章中重传策略中讨论. 3)当TCP收到发自TCP连接另一端的数据,它将发送一个确认.这个确认不是立即发送,通过将推迟几分之一秒,

《TCP/IP详解》读书笔记(18章)-TCP连接的建立与中止

TCP是一个面向连接的协议.无论哪一方向另一方发送数据之前,都必须在双方之间建立一条连接.这种两端间连接的建立与无连接协议UDP不同,UDP向另一端发送数据报时,无需任何预告的握手. 1.建立连接的协议(3次握手) 1)请求端发送一个SYN段指明客户端打算连接的服务器端口,以及初始序列号. 2)服务器发回包含服务器的初始序号的SYN报文段作为应答.同时将确认序号设置为客户的ISN加1以对客户的SYN报文段进行确认.一个SYN将占用一个序号. 3)客户端将确认序号设置为服务器的ISN加1以对服务器

TCP/IP详解卷一 学习笔记

第一天1 总述: TCP 使用不可靠的IP服务提供一种可靠的运输层服务UDP 不可靠,适用于:实时流量:语音视频流:查询DNS:数据传输:TFTP 停止等待协议. 以太网数据帧长范围是46-1500,小于46要用0来填充,大于1500要分片(MTU分片)以太网的帧首部有一个16bit的帧类型域(ip,arp,rarp)IP在首部中存入一个长度为8bit的数值,称作协议域(icmp,igmp,tcp,udp,esp,gre)TCP和UDP都用一个16bit的端口号来表示不同的应用程序(ftp,te

《TCP/IP详解》读书笔记(19章)-TCP的交互数据流

在TCP进行数据传输时,可以分为成块数据流和交互数据流两种,如果按字节计算,成块数据与交互数据的比例约为90%和10%,TCP需要同时处理这两类数据,且处理的算法不同. 书籍本章中以Rlogin应用为例观察交互数据的传输过程.提示经受时延的确认是如何工作以及Nagle算法怎样减少了通过广域网络传输的小分组的数目. 交互式输入上图为没有优化的字符输入回显的数据传输过程,一共需要四个报文段. 经受时延的确认上图第二,三个报文段可以合并---按键确认和按键回显一起发送.这种技术叫做经受时延的确认.通常

《TCP/IP详解》读书笔记(20章)-TCP的成块数据流

目前建立在TCP协议上的网络协议特别多,有telnet,ssh,有ftp,有http等等.这些协议又v金金ZGTERRF可以根据数据吞吐量来大致分成两大类:(1)交互数据类型,例如telnet,ssh,这种类型的协议在大多数情况下只是做小流量的数据交换,比如说按一下键盘,回显一些文字等等.(2)数据成块类型,例如ftp,这种类型的协议要求TCP能尽量的运载数据,把数据的吞吐量做到最大,并尽可能的提高效率.针对这两种情况,TCP给出了两种不同的策略来进行数据传输. 本章介绍TCP所使用的被称为窗口

《TCP/IP详解》读书笔记(22章)-TCP的坚持定时器

TCP通过让接收方指明希望从发送方接收的数据字节数(即窗口大小)来进行流量控制.如果窗口大小为0会发生什么情况呢?这将有效阻止发送方传送数据,直到窗口变为非0为止. ACK的传输并不可靠,也就是说,TCP不对ACK报文段进行确认,TCP只确认那些包含有数据的ACK报文段. 1.坚持定时器 假设一个场景:如果一个确认丢失了,则双方就有可能因为等待对方而使连接终止,接收方等待接收数据(因为它已经向发送方通告了一个非0的窗口),而发送方在等待允许它继续发送数据的窗口更新.为防止这种死锁情况的发生,发送

《TCP/IP详解》读书笔记(21章)-TCP的超时与重传

TCP提供可靠的运输层.它使用的方法之一就是确认从另一端收到的数据.但数据和确认都有可能会丢失.TCP通过在发送时设置一个定时器来解决这种问题.如果当定时器溢出时还没有收到确认,它就重传该数据. 对于实现而言,关键之处就在于超时和重传的策略,即怎样决定超时间隔和如何确定重传的频率. TCP管理4种不同的定时器: 重传定时器:当希望收到另一端的确认时使用. 坚持定时器:使窗口信息保持不断流动,即使另一端关闭了其接收窗口. 保活定时器:检测一个空闲连接的另一端何时崩溃或重启. 2MSL定时器:测量一

《TCP/IP详解》读书笔记(23章)-TCP的保活定时器

可能存在这么一种空闲TCP连接:没有任何数据流通过.也就是说,如果TCP连接的双方都没有向对方发送数据,则在两个TCP模块之间不交换任何信息,这意味着我们可以启动一个客户与服务器建立连接,然后长时间不使用,而连接依然保持.中间的路由器可以崩溃和重启,电话线可以被挂断再连接,但只要两端的主机没有被重启,则连接依然保持建立. 然而,许多时候一个服务器希望知道客户主机是否崩溃并关机或者崩溃又重新启动,许多实现提供的保活定时器可以提供这种能力.保活并不是TCP规范中的一部分. 保活定时器工作原理: 如果

《TCP/IP详解》学习笔记一(1-7)

以前上大学的时候学习过网络协议,对于其中报头的格式,完全是不解其意,只是囫囵吞枣记住样子拿去考试. 后来工作后在前人的指点下开始学习<TCP/IP详解>,但是当时对网络编程一点经验都没有,只是造着例子填代码,所以虽然通读了一遍,但是和没看几乎没有什么两样--因为看不懂. 现在回过头来重新来读,发现很多东西都基本能看懂了,就算有不明白的,多看2遍也就明白了.结合抓包,更能解释自己以前对这些协议的困惑,的确是一本好书,难怪以前好多人推荐我去读. 以书为主,结合抓包,记录笔记. 链路层抓不到包,暂时