发布网友 发布时间:2022-04-23 00:59
共1个回答
热心网友 时间:2022-06-29 21:05
IP是英文Internet Protocol(网络之间互连的协议)的缩写,中文简称为“网协”,也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守 IP协议就可以与因特网互连互通。IP地址具有唯一性,根据用户性质的不同,可以分为5类。另外,IP还有进入防护,知识产权,指针寄存器等含义。
MAC:Media Access Control 媒体访问控制 MAC 协议最重要的功能是确定网上的某个站点占有信道,即信道分配问题 对于共享信道,通常采用的信道访问协议有 Ø无冲突的信道访问协议(轮询、预约、频分、时分等) Ø有冲突的信道访问协议 传统的以太网采用总线结构,MAC采用一种竞争的方式占用信道(CSMA/CD) CSMA/CD的基础是CSMA,CSMA源于ALOHA的思想 MAC协议的主要作用是保证公平性和有效的资源共享。MAC机制主要分为两类:1基于竞争的协议2无竞争的信道协议。基于竞争的协议假定网络中没有中心实体来分配信道资源,每个节点必须通过竞争媒体资源来进行传送,当超过一个节点同时尝试发送时,碰撞就会发生。相反,无竞争的协议为每个需要需要通信的节点分配专用的信道资源。无竞争的协议能够有效的减少冲突,其代价是突发数据业务的信道利用率可能会比较低。
ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
ICMP协议大致分为两类,一种是查询报文,一种是差错报文。其中查询报文有以下几种用途:1.ping查询(不要告诉我你不知道ping程序) 2.子网掩码查询(用于无盘工作站在初始化自身的时候初始化子网掩码) 3.时间戳查询(可以用来同步时间)
1.ICMP协议介绍 IP协议并不是一个可靠的协议,它不保证数据被送达,自然的,保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是ICMP(网络控制报文)协议。 当传送IP数据包发生错误--比如主机不可达,路由不可达等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这也就是为什么说建立在IP层以上的协议是可能做到安全的原因。ICMP数据包由8bit的错误类型和8bit的代码和16bit的校验和组成。而前 16bit就组成了ICMP所要传递的信息。书上的图6-3清楚的给出了错误类型和代码的组合代表的意思。 尽管在大多数情况下,错误的包传送应该给出ICMP报文,但是在特殊情况下,是不产生ICMP错误报文的。如下 1.ICMP差错报文不会产生ICMP差错报文(出IMCP查询报文)(防止IMCP的无限产生和传送) 2.目的地址是广播地址或多播地址的IP数据报。 3.作为链路层广播的数据报。 4.不是IP分片的第一片。 5.源地址不是单个主机的数据报。这就是说,源地址不能为零地址、环回地址、广播地 址或多播地址。 虽然里面的一些规定现在还不是很明白,但是所有的这一切规定,都是为了防止产生ICMP报文的无限传播而定义的。 ICMP协议大致分为两类,一种是查询报文,一种是差错报文。其中查询报文有以下几种用途: 1.ping查询(不要告诉我你不知道ping程序) 2.子网掩码查询(用于无盘工作站在初始化自身的时候初始化子网掩码) 3.时间戳查询(可以用来同步时间) 而差错报文则产生在数据传送发生错误的时候。就不赘述了。 2.ICMP的应用 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 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还给我们一个看主机到目的主机的路由的机会。这是因为,ICMP的ping请求数据报在每经过一个路由器的时候,路由器都会把自己的ip放到该数 据报中。而目的主机则会把这个ip列表复制到回应icmp数据包中发回给主机。但是,无论如何,ip头所能纪录的路由列表是非常的有限。如果要观察路由, 我们还是需要使用更好的工具,就是要讲到的Traceroute(windows下面的名字叫做tracert)。 3.ICMP的应用 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文档来了解这些,这里就不赘述了。