- 浏览: 1198039 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (361)
- java综合 (33)
- 项目管理 (10)
- 工作流 (6)
- spring (11)
- hibenate (17)
- struts (0)
- javascript,html,css,ajax,jquery (11)
- IDE (9)
- 生活 (0)
- 工作 (0)
- 杂记 (1)
- 数据库 (96)
- 服务器 (5)
- 可视编辑 (0)
- freemarker (6)
- 操作系统 windows (13)
- web页面 (6)
- jms (15)
- 调优 (4)
- 测试和bug管理 (2)
- 原理 (1)
- 項目-atf (17)
- 安全 (3)
- xml (4)
- 操作系统 liunx (21)
- 网络 (22)
- office (11)
- 设计 (2)
- 软件 (1)
- 数据库 mysql (6)
- 胖客户端-flex (1)
- 正则 (9)
- oracle- liunx (3)
- sql2000 (2)
- 模式 (1)
- 虚拟机 (2)
- jstl (2)
- 版本控制 打包工具 (0)
- AOP (1)
- demo (1)
- 小软件 (2)
- 感恩 (1)
- iphone 4 (1)
- 反欺诈业务经验整理 (0)
最新评论
-
sea0108:
mark
java内存模型 -
XingShiYiShi:
方便把:testPNR();具体实现发出来吗?谢谢
用正则表达式解析 航信的电子客票和pnr报文 -
wh359126613:
如果js和webservice不在同一个服务器上,有跨域问题如 ...
使用javascript调用webservice示例 -
雨飛雁舞:
...
oracle 动态性能(V$)视图 -
ouyang1224:
好东西
oracle 动态性能(V$)视图
1.IMCP协议介绍
前面讲到了,IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是ICMP(网络控制报文)协议。
当传送IP数据包发生错误--比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这 也就是为什么说建立在IP层以上的协议是可能做到安全的原因。ICMP数据包由8bit的错误类型和8bit的代码和16bit的校验和组成。而前 16bit就组成了ICMP所要传递的信息。书上的图6-3清楚的给出了错误类型和代码的组合代表的意思。
尽管在大多数情况下,错误的包传送应该给出ICMP报文,但是在特殊情况下,是不产生ICMP错误报文的。如下
ICMP差错报文不会产生ICMP差错报文(出IMCP查询报文)(防止IMCP的无限产生和传送)
目的地址是广播地址或多播地址的IP数据报。
作为链路层广播的数据报。
不是IP分片的第一片。
源地址不是单个主机的数据报。这就是说,源地址不能为零地址、环回地址、广播地 址或多播地址。
虽然里面的一些规定现在还不是很明白,但是所有的这一切规定,都是为了防止产生ICMP报文的无限传播而定义的。
ICMP协议大致分为两类,一种是查询报文,一种是差错报文。其中查询报文有以下几种用途:
ping查询(不要告诉我你不知道ping程序)
子网掩码查询(用于无盘工作站在初始化自身的时候初始化子网掩码)
时间戳查询(可以用来同步时间)
而差错报文则产生在数据传送发生错误的时候。就不赘述了。
2.ICMP的应用--ping
ping可以说是ICMP的最著名的应用,当我们某一个网站上不去的时候。通常会ping一下这个网站。ping会回显出一些有用的信息。一般的信息如下:
Reply from 10.4.24.1: bytes=32 time<1ms TTL=255 Reply from 10.4.24.1: bytes=32 time<1ms TTL=255 Reply from 10.4.24.1: bytes=32 time<1ms TTL=255 Reply from 10.4.24.1: bytes=32 time<1ms TTL=255 Ping statistics for 10.4.24.1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms |
ping这个单词源自声纳定位,而这个程序的作用也确实如此,它利用ICMP协议包来侦测另一个主机是否可达。原理是用类型码为0的ICMP发请 求,受到请求的主机则用类型码为8的ICMP回应。ping程序来计算间隔时间,并计算有多少个包被送达。用户就可以判断网络大致的情况。我们可以看到, ping给出来了传送的时间和TTL的数据。我给的例子不太好,因为走的路由少,有兴趣地可以ping一下国外的网站比如sf.net,就可以观察到一些 丢包的现象,而程序运行的时间也会更加的长。
ping还给我们一个看主机到目的主机的路由的机会。这是因为,ICMP的ping请求数据报在每经过一个路由器的时候,路由器都会把自己的ip放到该数 据报中。而目的主机则会把这个ip列表复制到回应icmp数据包中发回给主机。但是,无论如何,ip头所能纪录的路由列表是非常的有限。如果要观察路由, 我们还是需要使用更好的工具,就是要讲到的Traceroute(windows下面的名字叫做tracert)。
3.ICMP的应用--Traceroute
Traceroute是用来侦测主机到目的主机之间所经路由情况的重要工具,也是最便利的工具。前面说到,尽管ping工具也可以进行侦测,但是,因为ip头的限制,ping不能完全的记录下所经过的路由器。所以Traceroute正好就填补了这个缺憾。
Traceroute的原理是非常非常的有意思,它受到目的主机的IP后,首先给目的主机发送一个TTL=1(还记得TTL是什么吗?)的UDP(后面就 知道UDP是什么了)数据包,而经过的第一个路由器收到这个数据包以后,就自动把TTL减1,而TTL变为0以后,路由器就把这个包给抛弃了,并同时产生 一个主机不可达的ICMP数据报给主机。主机收到这个数据报以后再发一个TTL=2的UDP数据报给目的主机,然后刺激第二个路由器给主机发ICMP数据 报。如此往复直到到达目的主机。这样,traceroute就拿到了所有的路由器ip。从而避开了ip头只能记录有限路由IP的问题。
有人要问,我怎么知道UDP到没到达目的主机呢?这就涉及一个技巧的问题,TCP和UDP协议有一个端口号定义,而普通的网络程序只监控少数的几个号码较 小的端口,比如说80,比如说23,等等。而traceroute发送的是端口号>30000(真变态)的UDP报,所以到达目的主机的时候,目的 主机只能发送一个端口不可达的ICMP数据报给主机。主机接到这个报告以后就知道,主机到了,所以,说Traceroute是一个骗子一点也不为过:)
Traceroute程序里面提供了一些很有用的选项,甚至包含了IP选路的选项,请察看man文档来了解这些,这里就不赘述了。
发表评论
-
VPN技术比较
2009-03-30 19:07 1667VPN技术比较 来源: 作 ... -
关于SSL VPN技术原理及其应用全面解析
2009-03-30 19:01 2488随着电子商务、企业信息化、教育信息化等信息化进程的推进,整个社 ... -
HTTP Status Messages
2009-03-30 17:31 1277http://www.btinternet.com/~wild ... -
IP地址精解
2009-03-30 15:08 1099为什麽我们要学二进位 ... -
TCP协议握手协商通信详解
2009-03-30 15:06 23901、建立连接协议(三 ... -
IPv6远水不解近渴 IPv4仍需挑大梁
2009-03-30 14:52 1238“IP地址资源的危机并 ... -
TCP/IP详解学习笔记(13)-TCP坚持定时器,TCP保活定时器
2009-03-30 14:52 1962TCP一共有四个主要的定 ... -
TCP/IP详解学习笔记(12)-TCP的超时与重传
2009-03-30 14:51 1862超时重传是TCP协议保证 ... -
TCP/IP详解学习笔记(11)-TCP交互数据流,成块数据流
2009-03-30 14:50 1579目前建立在TCP协议上的 ... -
TCP/IP详解学习笔记(10)-TCP连接的建立与中止
2009-03-30 14:50 1567TCP是一个面向连接的 ... -
TCP/IP详解学习笔记(9)-TCP协议概述
2009-03-30 14:49 1657于看到了TCP协议,这是T ... -
TCP/IP详解学习笔记(8)-DNS域名系统
2009-03-30 14:49 1566前面已经提到了访问一台机器要靠IP地址和MAC地址,其中,M ... -
TCP/IP详解学习笔记(7)-广播和多播,IGMP协议
2009-03-30 14:48 20241.单播,多播,广 ... -
TCP/IP详解学习笔记(6)-UDP协议
2009-03-30 14:48 16101.UDP简要介绍UDP是传输层协议,和TCP协议处于一个分 ... -
TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节
2009-03-30 14:47 11721.静态IP选路 1.1.一 ... -
TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议
2009-03-30 14:45 1544把这三个协议放到一起 ... -
TCP/IP详解学习笔记(2)-数据链路层
2009-03-30 14:43 1721数据链路层有三个目 ... -
TCP/IP详解学习笔记(1)-基本概念
2009-03-30 14:34 1337http://blog.chinaunix.net/u2/ ... -
使用 netstat 命令监视网络状态
2009-03-30 14:33 2801http://docs.sun.com/app/docs/do ... -
TCP/IP详解
2009-03-30 13:58 1745TCP和UDP处在同一层---运输层,但是TCP和UDP最不同 ...
相关推荐
第4章 ARP:地址解析协议 38 第5章 RARP:逆地址解析协议 47 第6章 ICMP:Internet控制报文协议 50 第7章 Ping程序 61 第8章 Traceroute程序 71 第9章 IP选路 83 第10章 动态选路协议 95 第11章 UDP:用户数据报协议...
在《TCP/IP详解第三卷》中,TCP协议的详细解析占据了重要篇幅。TCP是一种面向连接的、可靠的传输协议,通过三次握手建立连接,通过滑动窗口机制实现流量控制和拥塞控制,确保数据的正确无误传输。书中详细阐述了TCP...
《TCP/IP详解》第一卷是关于网络通信协议TCP/IP的经典入门教材,由W. Richard Stevens撰写。该书深入浅出地讲解了TCP/IP协议族,是网络工程师和相关技术人员必备的参考资料之一。TCP/IP协议族是现代互联网通信的基础...
该资料是《TCP/IP详解 卷1:协议》的源代码 对应的书籍资料见: TCP/IP详解 卷1:协议(09年度畅销榜TOP50)(08年度畅销榜TOP50) http://download.csdn.net/detail/fksec/4657587 基本信息 原书名: TCP/IP ...
### TCP/IP详解-卷一 知识点梳理 #### 第1章 概述 - **1.1 引言** TCP/IP是Internet的核心协议,由一系列协议组成,包括但不限于传输控制协议(TCP)、用户数据报协议(UDP)以及网际协议(IP)。这一节简要介绍...
《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输...
3. **ICMP(Internet控制消息协议)**:ICMP用于网络诊断,如ping和traceroute命令就依赖于ICMP。配套代码可能包含发送和接收ICMP报文的实现,有助于理解网络可达性和故障排查。 4. **UDP(用户数据报协议)**:UDP...
与其他的TCP/IP书藉的最大不同在于,本书不仅仅讲述了RFCS的标准协议,而且结合大量实例讲述了TCP/IP协议包的定义原因及在各种不同的操作系统中(如Sunos4.1.3、Soloris2.2、AIX3.2.2)的应用与工作方式,这样可以以...
"TCP/IP 详解学习笔记" TCP/IP 协议是计算机网络中最重要的协议族之一,它为计算机之间的通信提供了标准的语言。TCP/IP 协议族包括了 IP 协议、IMCP 协议、TCP 协议,以及我们更加熟悉的 HTTP、FTP、POP3 协议等等...
- TCP协议:详述TCP的连接建立、数据传输、流量控制和拥塞控制等机制。 - UDP协议:介绍UDP的简单性和适用场景。 - 应用层协议:涵盖各种应用层协议的详细工作流程。 - 实例分析:通过实际网络通信示例解析TCP/IP...
1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 1.11 RFC 10 1.12 标准的简单服务 11 1.13 互联网 12 1.14 实现 12 1.15 ...
此外,ICMP(Internet Control Message Protocol)用于网络诊断和错误报告,如ping和traceroute命令就是基于ICMP实现的。 3. **传输层**:此层有两个重要的协议,TCP(Transmission Control Protocol)和UDP(User ...
4. **ICMP协议**:介绍Internet控制消息协议,它是IP层用于错误报告和信息查询的协议,如ping和traceroute命令就是基于ICMP实现的。 5. **ARP协议**:讲解地址解析协议,如何将IP地址映射到物理地址(MAC地址)的...
《TCP/IP详解卷一:协议》是一本网络编程领域的权威著作,由著名的计算机科学家W. Richard Stevens撰写。这本书深入浅出地介绍了TCP/IP协议族的基本概念、原理和实现细节,对于想要深入理解网络通信机制的读者来说,...
4. **ICMP协议**:介绍互联网控制消息协议(ICMP)的作用,如错误报告和网络诊断,如ping和traceroute命令的实现原理。 5. **ARP与RARP**:解析地址解析协议(ARP)和反向地址解析协议(RARP),如何将IP地址映射到...
《TCP/IP详解卷一:协议》是网络技术领域的一部权威之作,由Stephen A. Stevens撰写,详细介绍了TCP/IP...通过学习TCP/IP协议,我们可以更好地理解互联网的工作方式,为网络开发、运维和故障排查等工作打下坚实的基础。
这本书分为多个章节,每个章节都详细介绍了不同的网络协议和机制,是IT从业者和学习者不可或缺的参考书籍。 TCP/IP协议族是互联网的基础,其全称为传输控制协议/因特网协议,由四层模型(在网络层有时被分为五层)...
5. **TCP协议**:传输控制协议提供可靠的数据传输服务,涉及TCP连接的建立与终止(三次握手和四次挥手)、序列号和确认、流量控制、拥塞控制等机制。 6. **UDP协议**:用户数据报协议是无连接的传输层协议,适用于...