当前位置: 首页 > news >正文

网站生鲜建设市场分析怎么查询网站是什么时候做的

网站生鲜建设市场分析,怎么查询网站是什么时候做的,我的世界皮肤网站做,工程信息服务平台6.1 引言 ICMP经常被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。ICMP报文通常被IP层或更高层协议#xff08;TCP或UDP#xff09;使用。一些ICMP报文把差错报文返回给用户进程。 ICMP报文是在IP数据报内部被传输的#xff0c;如图6-1所示。 ICMP…6.1 引言 ICMP经常被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。ICMP报文通常被IP层或更高层协议TCP或UDP使用。一些ICMP报文把差错报文返回给用户进程。 ICMP报文是在IP数据报内部被传输的如图6-1所示。 ICMP的正式规范参见RFC 792[Posterl 1981b]。 ICMP报文的格式如图6-2所示。所有报文的前4个字节都是一样的但是剩下的其他字节则互不相同。下面我们将逐个介绍各种报文格式。 类型字段可以有15个不同的值以描述特定类型的ICMP报文。某些ICMP报文还使用代码字段的值来进一步描述不同的条件。 检验和字段覆盖整个ICMP报文。使用的算法与我们在3.2节中介绍的IP首部检验和算法相同。ICMP的检验和是必需的。 在本章中我们将一般地讨论ICMP报文并对其中一部分作详细介绍地址掩码请求和应答、时间戳请求和应答以及不可达端口。我们将详细介绍第27章Ping程序所使用的回应请求和应答报文和第9章处理IP路由的ICMP报文。 6.2 ICMP报文的类型 各种类型的ICMP报文如图6-3所示不同类型由报文中的类型字段和代码字段来共同决定。 图中的最后两列表明ICMP报文是一份查询报文还是一份差错报文。因为对ICMP差错报文有时需要作特殊处理因此我们需要对它们进行区分。例如在对ICMP差错报文进行响应时永远不会生成另一份ICMP差错报文如果没有这个限制规则可能会遇到一个差错产生另一个差错的情况而差错再产生差错这样会无休止地循环下去。 当发送一份ICMP差错报文时报文始终包含IP的首部和产生ICMP差错报文的IP数据报的前8个字节。这样接收ICMP差错报文的模块就会把它与某个特定的协议根据IP数据报首部中的协议字段来判断和用户进程根据包含在IP数据报前8个字节中的TCP或UDP报文首部中的TCP或UDP端口号来判断联系起来。6.5节将举例来说明一点。 下面各种情况都不会导致产生ICMP差错报文 ICMP差错报文但是ICMP查询报文可能会产生ICMP差错报文。目的地址是广播地址见图3-9或多播地址D类地址见图1-5的IP数据报。作为链路层广播的数据报。不是IP分片的第一片将在11.5节介绍分片。源地址不是单个主机的数据报。这就是说源地址不能为零地址、环回地址、广播地址或多播地址。 这些规则是为了防止过去允许ICMP差错报文对广播分组响应所带来的广播风暴。 6.3 ICMP地址掩码请求与应答 ICMP地址掩码请求用于无盘系统在引导过程中获取自己的子网掩码3.5节。系统广播它的ICMP请求报文这一过程与无盘系统在引导过程中用RARP获取IP地址是类似的。无盘系统获取子网掩码的另一个方法是BOOTP协议我们将在第16章中介绍。ICMP地址掩码请求和应答报文的格式如图6-4所示。 ICMP报文中的标识符和序列号字段由发送端任意选择设定这些值在应答中将被返回。这样发送端就可以把应答与请求进行匹配。 我们可以写一个简单的程序取名为icmpaddrmask它发送一份ICMP地址掩码请求报文然后打印出所有的应答。由于一般是把请求报文发往广播地址因此这里我们也这样做。目的地址140.252.13.63是子网140.252.13.32的广播地址见图3-12。 在输出中我们首先注意到的是从svr4返回的子网掩码是错的。显然尽管svr4接口已经设置了正确的子网掩码但是SVR4还是返回了一个普通的B类地址掩码就好像子网并不存在一样。 SVR4处理ICMP地址掩码请求过程存在差错。 我们用tcpdump命令来查看主机bsdi上的情况输出如图6-5所示。我们用-e选项来查看硬件地址。 注意尽管在线路上什么也看不见但是发送主机sun也能接收到ICMP应答带有上面“来自本机”的输出行。这是广播的一般特性发送主机也能通过某种内部环回机制收到一份广播报文拷贝。由于术语“广播”的定义是指局域网上的所有主机因此它必须包括发送主机在内参见图2-4当以太网驱动程序识别出目的地址是广播地址后它就把分组送到网络上同时传一份拷贝到环回接口。 接下来bsdi广播应答而svr4却只把应答传给请求主机。通常应答地址必须是单播地址除非请求端的源IP地址是0.0.0.0。本例不属于这种情况因此把应答发送到广播地址是BSD/386的一个内部差错。 最后一点可以通过下面的例子来说明。我们向本机IP地址和环回地址分别发送地址掩码请求 上述两种情况下返回的地址掩码对应的都是环回地址即A类地址127.0.0.1。还有我们从图2-4可以看到发送给本机IP地址的数据报140.252.12.33实际上是送到环回接口。ICMP地址掩码应答必须是收到请求接口的子网掩码这是因为多接口主机每个接口有不同的子网掩码因此两种情况下地址掩码请求都来自于环回接口。 6.4 ICMP时间戳请求与应答 ICMP时间戳请求允许系统向另一个系统查询当前的时间。返回的建议值是自午夜开始计算的毫秒数协调的统一时间Coordinated Universal TimeUTC早期的参考手册认为UTC是格林尼治时间。这种ICMP报文的好处是它提供了毫秒级的分辨率而利用其他方法从别的主机获取的时间如某些Unix系统提供的rdate命令只能提供秒级的分辨率。由于返回的时间是从午夜开始计算的因此调用者必须通过其他方法获知当时的日期这是它的一个缺陷。 ICMP时间戳请求和应答报文格式如图6-6所示。 请求端填写发起时间戳然后发送报文。应答系统收到请求报文时填写接收时间戳在发送应答时填写传送时间戳。但是实际上大多数的实现把后面两个字段都设成相同的值提供三个字段的原因是可以让发送方分别计算发送请求的时间和发送应答的时间。 6.4.1 举例 我们可以写一个简单程序取名为icmptime给某个主机发送ICMP时间戳请求并打印出返回的应答。它在我们的小互联网上运行结果如下 程序打印出ICMP报文中的三个时间戳发起时间戳orig、接收时间戳recv以及发送时间戳xmit。正如我们在这个例子以及下面的例子中所看到的那样所有的主机把接收时间戳和发送时间戳都设成相同的值。 我们还能计算出往返时间rtt它的值是收到应答时的时间值减去发送请求时的时间值。difference的值是接收时间戳值减去发起时间戳值。这些值之间的关系如图6-7所示。 如果我们相信RTT的值并且相信RTT的一半用于请求报文的传输另一半用于应答报文的传输那么为了使本机时钟与查询主机的时钟一致本机时钟需要进行调整调整值是difference减去RTT的一半。在前面的例子中bsdi的时钟比sun的时钟要慢7ms和8ms。 由于时间戳的值是自午夜开始计算的毫秒数即UTC因此它们的值始终小于86 400 000 (24×60×60×1000)。这些例子都是在下午4:00以前运行的并且在一个比UTC慢7个小时的时区因此它们的值比82 800 0002300小时要大是有道理的。 如果对主机bsdi重复运行该程序数次我们发现接收时间戳和发送时间戳的最后一位数总是0。这是因为该版本的软件0.9.4版只能提供10ms的时间分辨率说明参见附录B。 如果对主机svr4运行该程序两次我们发现SVR4时间戳的最后三位数始终为0 由于某种原因SVR4在ICMP时间戳中不提供毫秒级的分辨率。这样对秒以下的时间差调整将不起任何作用。 如果我们对子网140.252.1上的其他主机运行该程序结果表明其中一台主机的时钟与sun相差3.7秒而另一个主机时钟相差近75秒 另一个令人感兴趣的例子是路由器gateway一个Cisco路由器。它表明当系统返回一个非标准时间戳值时不是自午夜开始计算的毫秒数UTC它就用32 bit时间戳中的高位来表示。我们的程序证明了一点在尖括号中打印出了接收和发送的时间戳值在关闭高位之后。另外不能计算发起时间戳和接收时间戳之间的时间差因为它们的单位不一致。 如果我们在这台主机上运行该程序数次会发现时间戳值显然具有毫秒级的分辨率而且是从某个起始点开始计算的毫秒数但是起始点并不是午夜UTC例如可能是从路由器引导时开始计数的毫秒数。 作为最后一个例子我们来比较sun主机和另一个已知是准确的系统时钟——一个NTP stratum 1服务器下面我们会更多地讨论NTP网络时间协议。 如果我们把difference的值减去RTT的一半结果表明sun主机上的时钟要快38.551.5ms。 6.4.2 另一种方法 还可以用另一种方法来获得时间和日期。 在1.12节中描述了日期服务程序和时间服务程序。前者是以人们可读的格式返回当前的时间和日期是一行ASCII字符。可以用telnet命令来验证这个服务 另一方面时间服务程序返回的是一个32bit的二制进数值表示自UTC1900年1月1日午夜起算的秒数。这个程序是以秒为单位提供的日期和时间前面我们提过的rdate命令使用的是TCP时间服务程序。严格的计时器使用网络时间协议NTP该协议在RFC 1305中给出了描述[Mills1992]。这个协议采用先进的技术来保证LAN或WA N上的一组系统的时钟误差在毫秒级以内。对计算机精确时间感兴趣的读者应该阅读这份RFC文档。开放软件基金会OSF的分布式计算环境DCE定义了分布式时间服务DTS它也提供计算机之间的时钟同步。文献[Rosenberg, Kenney and Fisher 1992]提供了该服务的其他细节描述。伯克利大学的Unix系统提供守护程序timed(8)来同步局域网上的系统时钟。不像NTP和DTStimed不在广域网范围内工作。 6.5 ICMP端口不可达差错 最后两小节我们来讨论ICMP查询报文—地址掩码和时间戳查询及应答。现在来分析一种ICMP差错报文即端口不可达报文它是ICMP目的不可到达报文中的一种以此来看一看ICMP差错报文中所附加的信息。使用UDP见第11章来查看它。 UDP的规则之一是如果收到一份UDP数据报而目的端口与某个正在使用的进程不相符那么UDP返回一个ICMP不可达报文。可以用TFTP来强制生成一个端口不可达报文TFTP将在第15章描述。 对于TFTP服务器来说UDP的公共端口号是69。但是大多数的TFTP客户程序允许用connect命令来指定一个不同的端口号。这里我们就用它来指定8888端口 connect命令首先指定要连接的主机名及其端口号接着用get命令来取文件。敲入get命令后一份UDP数据报就发送到主机svr4上的8888端口。tcpdump命令引起的报文交换结果如图6-8所示。 在UDP数据报送到svr4之前要先发送一份ARP请求来确定它的硬件地址第1行。接着返回ARP应答第2行然后才发送UDP数据报第3行在tcpdump的输出中保留ARP请求和应答是为了提醒我们这些报文交换可能在第一个IP数据报从一个主机发送到另一个主机之前是必需的。在本书以后的章节中如果这些报文与讨论的题目不相关那么我们将省略它们。 一个ICMP端口不可达差错是立刻返回的第4行。但是TFTP客户程序看上去似乎忽略了这个ICMP报文而在5秒钟之后又发送了另一份UDP数据报第5行。在客户程序放弃之前重发了三次。 注意ICMP报文是在主机之间交换的而不用目的端口号而每个20字节的UDP数据报则是从一个特定端口2924发送到另一个特定端口8888。 跟在每个UDP后面的数字20指的是UDP数据报中的数据长度。在这个例子中20字节包括TFTP的2个字节的操作代码9个字节以空字符结束的文件名temp.foo以及9个字节以空字符结束的字符串netasciiTFTP报文的详细格式参见图15-1。 如果用-e选项运行同样的例子我们可以看到每个返回的ICMP端口不可达报文的完整长度。这里的长度为70字节各字段分配如图6-9所示。 ICMP的一个规则是ICMP差错报文参见图6-3的最后一列必须包括生成该差错报文的数据报IP首部包含任何选项还必须至少包括跟在该IP首部后面的前8个字节。在我们的例子中跟在IP首部后面的前8个字节包含UDP的首部见图11-2。 一个重要的事实是包含在UDP首部中的内容是源端口号和目的端口号。就是由于目的端口号8888才导致产生了ICMP端口不可达的差错报文。接收ICMP的系统可以根据源端口号2924来把差错报文与某个特定的用户进程相关联在本例中是TFTP客户程序。 导致差错的数据报中的IP首部要被送回的原因是因为IP首部中包含了协议字段使得ICMP可以知道如何解释后面的8个字节在本例中是UDP首部。如果我们来查看TCP首部图17-2可以发现源端口和目的端口被包含在TCP首部的前8个字节中。 ICMP不可达报文的一般格式如图6-10所示。 在图6-3中我们注意到有16种不同类型的ICMP不可达报文代码分别从0到15。ICMP端口不可达差错代码是3。另外尽管图6-10指出了在ICMP报文中的第二个32 bit字必须为0但是当代码为4时“需要分片但设置了不分片比特”路径MTU发现机制2.9节却允许路由器把外出接口的MTU填在这个32 bit字的低16 bit中。我们在11.6节中给出了一个这种差错的例子。 tcpdump 时间系列 在本书的后面章节中我们还要以时间系列的格式给出tcpdump命令的输出如图6-11所示。 时间随着向下而递增在图左边的时间标记与tcpdump命令的输出是相同的见图6-8。位于图顶部的标记是通信双方的主机名和端口号。需要指出的是随着页面向下的y坐标轴与真正的时间值不是成比例的。当出现一个有意义的时间段时在本例中是每秒之间的重发我们就在时间系列的两侧作上标记。当UDP或TCP数据正在被传送时我们用粗线的行来表示。 当ICMP报文返回时为什么TFTP客户程序还要继续重发请求呢这是由于网络编程中的一个因素即BSD系统不把从插口(socket)接收到的ICMP报文中的UDP数据通知用户进程除非该进程已经发送了一个connect命令给该插口。标准的BSD TFTP客户程序并不发送connect命令因此它永远也不会收到ICMP差错报文的通知。 这里需要注意的另一点是TFTP客户程序所采用的不太好的超时重传算法。它只是假定5秒是足够的因此每隔5秒就重传一次总共需要25秒钟的时间。在后面我们将看到TCP有一个较好的超时重发算法。 最后需要指出的是ICMP报文是在发送UDP数据报3.5ms后返回的这与第7章我们所看到的Ping应答的往返时间差不多。 6.6 ICMP报文的4.4BSD处理 由于ICMP覆盖的范围很广从致命差错到信息差错因此即使在一个给定的系统实现中对每个ICMP报文的处理都是不相同的。图6-12的内容与图6-3相同它显示的是4.4BSD系统对每个可能的ICMP报文的处理方法。 如果最后一列标明是“内核”那么ICMP就由内核来处理。如果最后一列指明是“用户进程”那么报文就被传送到所有在内核中登记的用户进程以读取收到的ICMP报文。如果不存在任何这样的用户进程那么报文就悄悄地被丢弃这些用户进程还会收到所有其他类型的ICMP报文的拷贝虽然它们应该由内核来处理当然用户进程只有在内核处理以后才能收到这些报文。有一些报文完全被忽略。最后如果最后一列标明的是引号内的一串字符那么它就是对应的Unix差错。其中一些差错如TCP对发送端关闭的处理等我们将在以后的章节中对它们进行讨论。 6.7 小结 本章对每个系统都必须包括的Internet控制报文协议进行了讨论。图6-3列出了所有的ICMP报文类型其中大多数都将在以后的章节中加以讨论。 我们详细讨论了ICMP地址掩码请求和应答以及时间戳请求和应答。这些是典型的请求—应答报文。二者在ICMP报文中都有标识符和序列号。发送端应用程序在标识字段内存入一个唯一的数值以区别于其他进程的应答。序列号字段使得客户程序可以在应答和请求之间进行匹配。 我们还讨论了ICMP端口不可达差错一种常见的ICMP差错。对返回的ICMP差错信息进行了分析导致差错的IP数据报的首部及后续8个字节。这个信息对于ICMP差错的接收方来说是必要的可以更多地了解导致差错的原因。这是因为TCP和UDP都在它们的首部前8个字节中存入源端口号和目的端口号。 最后我们第一次给出了按时间先后的tcpdump输出这种表示方式在本书后面的章节中会经常用到。
http://www.sadfv.cn/news/251061/

相关文章:

  • 怎么知道网站是某个公司做的wordpress文章目录页面
  • 网站开发好学wordpress函数文件夹
  • 巩义企业网站快速优化多少钱网站建设中 显示 虚拟机
  • 网站设计专业需要什么软件网站开发app定制
  • 网站建设升级的必要性网站制作钱
  • 个人做的网站能备案吗人工智能自动做网站
  • 珠海专业做网站制作营销策划推广
  • 网站文章采集工具wordpress 主题 panda
  • 怎么自己网站搜不到了hugo 怎么做网站
  • 怎么做网站推广云浮江门建设造价信息网站
  • 静安微信手机网站制作wordpress电话修改
  • 天津网站建设的公司哈尔滨模板建站系统
  • 网站建设哪家信誉好柏乡网站建设
  • 网站建设大约要多少钱定制产品网站有哪些
  • 网站运行维护方案如何对一个网站做性能
  • 东阳企业网站微商城建设政务公开网站建设管理
  • 台州企业网站搭建特点网站关键词优化外包
  • 罗湖区住房和建设局网站wordpress固定链接规则文件夹
  • 申晨推荐的营销网站app开发制作教程
  • 新吴区推荐做网站电话济南网站建设选搜点网络VIP
  • 做网站需要的资质新公司名称取名
  • 中国空间站即将建成保定网站电话
  • 马蹄室内设计网站郴州文明网网站
  • 升级网站服务器网站建设kpi考核
  • 网站建设的界面风格有哪些百度上做广告怎么收费
  • 织梦转wordpress插件下载地址快抖霸屏乐云seo
  • 制作网站需要的技术wordpress写博客插件
  • 崂山区建设管理局网站怎么了黑杭州安卓软件开发
  • 外贸怎么建立自己的网站织梦网站修改使用
  • 国外做家纺的网站深圳做网站的公司有哪些