打赏

局域网的通信协议

TCP/IP协议

IPX/SPX协议

NetBIOS协议和NetBEUI协议

Apple Talk协议

 

 

1、TCP/IP协议

  TCP/IP协议,不是一个简单的协议,而是一组小的、专业化协议,包括TCP、IP、UDP、ARP、ICMP以及其他的一些被称为子协议的协议。

TCP/IP协议群中的子协议或TCP/IP核心协议,被设计成运行在OSI模型的传输层或网络层的协议,它们为网络中的各主机提供通信服务,并为四层模型的最高层“应用层”中的协议提供服务。

 

 

什么是TCP/IP?

   如果要了解一个人,可以从他归属的集体聊起来。我们的HTTP协议就属于TCP/IP协议家族中的一员,了解HTTP协议再整个网络流程中的地位,也能更加充分的理解HTTP协议。

      要想了解什么是TCP/IP协议,就要知道为什么有这个协议。中国人和中国人说话,要遵循汉语的的语法结构,使用汉语的发音。当我们和外国人交流时,就要适用外国的语言了,遵循外国的语法机构和发音。其实这就是一种协议,只不过我们称之为语言。计算机再这方面体现的更为直观,两台机器之间该如何通信呢,就需要制定各种各样的协议了。例如:文件传输适用TCP协议。域名系统适用DNS协议。有了些协议的存在,各种数据流按照规则传输,计算机之间得意通信。

       TCP/IP协议是一个协议集合。大家叫的时候方便说,所以统称为TCP/IP。TCP/IP协议族中有一个重要的概念是分层,TCP/IP协议按照层次分为以下四层。应用层、传输层、网络层、数据链路层。为什么要分层?这就如同*1978年的大包干,责任到人。一个层只负责一个层次的问题,如果出问题了,和其他的层次无关,只要维护这个层次也就好了。其实编程语言里也能体现这个分层理论,即封转性、隔离。这里不再延伸细谈。下面我是制作的一个简图。

  下面是从网络上找到的TCP/IP通信数据流

 

  

  

 

  TCP/IP协议群中有一组路由协议作为其特色协议,这些协议有助于路由器更有效管理信息流。分别如下:

  1.1  IP(国际协议)  

  IP协议:IP(Internet protocol),这里的IP不是值得我们通常所说的192.168.1.1.这个IP指的是一种协议,而后面的数字值得是IP地址。IP协议的作用在于把各种数据包准确无误的传递给对方,其中两个重要的条件是IP地址,和MAC地址(Media Access Control Address)。由于IP地址是稀有资源,不可能每个人都拥有一个IP地址,所以我们通常的IP地址是路由器给我们生成的IP地址,路由器里面会记录我们的MAC地址。而MAC地址是全球唯一的,除去人为因素外不可能重复。举一个现实生活中的例子,IP地址就如同是我们居住小区的地址,而MAC地址就是我们住的那栋楼那个房间那个人。关于MAC地址,如果我没讲清楚,可点击连接,查看百度。以下内容摘抄自《图解HTTP》

   使用 ARP 协议凭借 MAC 地址进行通信

   IP 间的通信依赖 MAC 地址。在网络上,通信的双方在同一局域网(LAN)内的情况是很少的,通常是经过多台计算机和网络设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的 MAC 地址来搜索下一个中转目标。这时,会采用 ARP 协议(Address Resolution Protocol)。ARP 是一种用以解析地址的协议,根据通信方的 IP 地址就可以反查出对应的 MAC 地址

    感兴趣的可以参考ARP协议(Address Resolution Protocol),题外话,从文档上来看,百度百科要比维基百科介绍的好的多。

 你向另外一台电脑发送一条信息,怎么再茫茫人海中瞬间找到对方,以下是图示:

 

   1.2 TCP(传输控制协议) 

  如果说IP协议是找到对方的详细地址。那么TCP协议就是把安全的把东西带给对方。各有分工,互不冲突。

      按层次分,TCP属于传输层,提供可靠的字节流服务。什么叫字节流服务呢?这个名字听起来让人不知所以然,下面听下我通俗的解释。所谓的字节流,其实就类似于信息切割。比如你是一个卖自行车的,你要去送货。安装好的自行车,太过庞大,又不稳定,容易损伤。不如直接把自行车拆开来,每个零件上都贴上收货人的姓名。最后送到后按照把属于同一个人的自行车再组装起来,这个拆解、运输、拼装的过程其实就是TCP字节流的过程。

     我们看下严谨的学术表达是怎样的:

     所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。而可靠的传输服务是指,能够把数据准确可靠地传给对方。一言以蔽之,TCP 协议为了更容易传送大数据才把数据分割,而且 TCP 协议能够确认数据最终是否送达到对方。

     为了确保信息能够确保准确无误的到达,TCP采用了著名的三次握手策略(three-way handshaking).下面我写一段对话来模拟下这三次握手。

 

  1.3 UDP(用户数据报协议)

  UDP(User Data Protocol,用户数据报协议)

(1) UDP是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。

(2) 由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。

(3) UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。

(4) 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。

(5)UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态表(这里面有许多参数)。

(6)UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。

我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。

UDP的包头结构: 源端口 16位 目的端口 16位 长度 16位 校验和 16位

 

 

  1.4 ICMP(网际控制报文协议)

 http://www.cnblogs.com/jingmoxukong/p/3811262.html#_label0 

 

 

  1.5 ARP(地址解析协议)

ARP协议简介
    ARP,全称Address Resolution Protocol,中文名为地址解析协议,它工作在数据链路层,在本层和硬件接口联系,同时对上层提供服务。

数据链路如以太网或令牌环网都有自己的寻址机制,这是使用数据链路的任何网络层都必须遵守的,IP数据包常通过以太网发送,以太网设备并不识别32位IP地址,它们是以48位以太网地址(MAC地址)传输以太网数据包,设备驱动程序从不检查IP数据报中的目的IP地址。因此,必须把IP目的地址转换成以太网目的地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。ARP协议用于将网络中的IP地址解析为目的硬件地址(MAC地址),以保证通信的顺利进行。

1 ARP帧结构
  ARP帧的具体结构,如图1 ARP帧结构 所示。

以太网帧头中的前两个字段是以太网的目的地址和源地址。目的地址为全1时为广播地址。

两个字节长的以太网帧类型表示后面数据的类型。对于ARP请求或应答来说,该字段的值为0X0806.
  硬件类型字段:指明了发送方想知道的硬件地址的类型,以太网的值为1;

协议类型字段:表示要映射的协议地址类型,IP为0X0800;
  硬件地址长度和协议地址长度:指明了硬件地址和高层协议地址的长度,这样ARP帧就可以在任意硬件和任意协议的网络中使用。对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4;
  操作字段:用来表示这个报文的类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4;
  发送端的以太网地址:源主机硬件地址,6个字节;
  发送端IP地址:发送端的协议地址(IP地址),4个字节;
  目的以太网地址:目的端硬件地址,6个字节;
  目的IP地址:目的端的协议地址(IP地址),4个字节。

 

2 ARP的工作原理  

    在硬件层次上进行的数据帧交换必须有正确的接口地址(即硬件地址),但是,TCP/IP有自己的地址:32 bit的IP地址,知道主机的IP地址并不能让内核(如以太网驱动程序)发送一帧数据给主机,内核必须知道目的端的硬件地址才能发送数据,ARP的功能是在32 bit的IP地址和采用不同网络技术的硬件地址之间提供动态映射。从逻辑Internet地址到对应的物理硬件地址需要进行翻译,这就是ARP的功能。

ARP高效运行的关键是由于每个主机上都有一个ARP高速缓存。这个高速缓存存放了最近Internet地址到硬件地址之间的映射记录。高速缓存中每一项都有一个默认的生存时间,起始时间从被创建时开始算起。

ARP高速缓存中的表项一般都要设置超时值,完整的表项(如IP地址有相应的MAC地址对应的表项)设一个超时值(例如20分钟),不完整的表项(IP地址没有相应的MAC地址对应,即不存在此主机的表项)设置另外一个超时值(例如3分钟)。如果表项被再次使用时未超时,它的超时值会被重新设定为默认值;如果表项被再次使用时已超时,表明这个表项不可信,需要重新发送ARP请求更新此表项。

在Windows操作系统中,可以在:开始->运行,输入cmd,进入控制台,执行arp/?可以查看ARP的所有命令。
  ARP的工作原理如下:
  1、首先,每台主机都会在自己的ARP高速缓冲区 (ARP Cache)中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系。
  2、当源主机需要将一个数据包发送到目的主机时,会首先检查自己 ARP列表中是否存在该IP地址对应的MAC地址,如果有﹐就直接使用此MAC地址;如果没有,主机就先将目标主机的IP地址与自己的子网掩码进行"与"操作,以判定目标主机与自己是否位于同一网段内。假如目标主机与自己在同一网段内,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址;如果目的主机在一个远程网络上,那么就通过路由器等路由设备转发此ARP请求到远程网络中广播。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。
  3、源主机和目的主机在一个网络内的情况下:网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP和自己的IP地址是否一致。如果不相同就不回应,但是该主机仍然会检查自己的ARP高速缓存,如果此请求的源IP地址已经在高速缓存中,那么就用ARP请求帧中的发送端硬件地址对高速缓存中相应的内容进行更新;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉它需要查找的MAC地址;

如果源主机和目的主机不在一个网络内, ARP请求将由路由器转发至其它网络。如果能找到目的主机,就将此路由器的MAC地址当作目的主机的网络地址发给源主机,以后源主机和目的主机之间的信息交换都要经过此路由器,这个路由器就被称作ARP代理;如果没有找到目的主机,在ARP高速缓存中会产生一条不完整的表项记录下来。
  4、源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。

 

 

免费ARP

    免费ARP是指主机发送ARP查找自己的MAC地址。这通常发生在系统引导期间进行接口配置的时候。

    免费ARP有两方面的作用:

  1、 一个主机可以通过它来确定另一个主机是否设置了相同IP地址。主机并不希望对此请求有一个回答。但是,如果收到一个回答,它会在日志上产生一个错误消息。这样就可以警告系统管理员,某个系统配置有误。

  2、 如果发送免费ARP的主机正好改变了硬件地址(例如:换了一块网卡)那么这个ARP请求可以使其它主机高速缓存中旧的硬件地址进行相应的更新。

 

 

4 ARP欺骗

    ARP欺骗是指通过一定的手段使自己拥有其它的身份,从而达到欺骗的目的。ARP协议的工作原理决定ARP欺骗只会存在于局域网内。

ARP欺骗主要分为二种,一种是对路由器ARP表的欺骗;另一种是对内网主机的网关欺骗。 
     第一种ARP欺骗的原理是―――截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断通知路由器,使真实的地址信息无法保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常主机无法收到信息。

  第二种ARP欺骗的原理是―――冒充网关。它的原理是冒充网关,不停的向网络中发送构造好的广播ARP帧,让其它主机的ARP高速缓存中保存的网关的IP地址对应的MAC地址是本机的MAC地址,让被欺骗的主机向本机发数据,本机就可以截获这些数据,如果本机向外转发这些数据,那些被欺骗的主机感觉一切正常,它们感觉不到数据已经被截获了;本机如果不转发这些数据,那些被欺骗的主机就无法对外进行通信了。

  当然,还有其它欺骗方式:如欺骗某一台主机、用ARP进行泛洪攻击等。

 

5 ARP欺骗攻击的防范

  1、建立MAC数据库,把局域网内所有网卡的MAC和对应的IP地址记录下来,以便及时查询备案。

  2、用监控软件可以监控是否受到ARP攻击。例如网关监听:网关上面使用监控程序截取每个ARP帧,用分析软件分析这些ARP帧。ARP欺骗攻击的帧一般有以下两个特点,满足之一可视为攻击帧:(1)以太网数据包头的源地址、目标地址和ARP数据帧的协议地址不匹配;(2)ARP数据包的发送和目标地址不在自己网络网卡MAC数据库内,或者与自己网络MAC数据库 MAC->IP不匹配。查看这些数据包(以太网数据包)的源地址(也有可能伪造),就大致知道哪台机器在发起攻击了。

 

 

 2、IPX/SPX协议

  

   IPX/SPX(网际包交换/序列包交换)需要确保运行在NetWare 3.2版本及更低版本的局域网可以互操作,并能用于运行NetWare操作系统更高版本的局域网上。其他的网络操作系统,如Windows Server 2008和工作站操作系统如Windows 7,能使用IPX/SPX协议与Novell NetWare系统进行网际互联。在Windows系统中,IPX/SPX被称为NWLink。

  IPX/SPX的核心协议

  IPX协议

  

  SPX协议

  SAP协议

  NCP协议

  

 

3、 NetBIOS协议和NetBEUI协议

4、Apple Talk协议  

  从事艺术或教育的商业团体和事业机构,如广告公司、学校以及绘图公司,常常使用Apple Macintosh计算机。

 

 

 参考:http://www.cnblogs.com/roverliang/p/5176456.html

作者:大数据和人工智能躺过的坑
出处:http://www.cnblogs.com/zlslch/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。 如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能 打赏我一杯咖啡【物质支持】,也可以点击右下角的【好文要顶】按钮【精神支持】,因为这两种支持都是我继续写作,分享的最大动力!

posted @ 2016-10-27 09:48  大数据和AI躺过的坑  阅读(2461)  评论(0编辑  收藏  举报