TCP/IP

协议

简单来说,协议就是计算机之间通过网络实现通信时事先达成的一种“约定”;这种“约定”使那些由不同厂商的设备,不同CPU及不同操作系统组成的计算机之间,只要遵循相同的协议就可以实现通信。

 

协议可以分很多种,每一种协议都明确界定了它的行为规范:2台计算机之间必须能够支持相同的协议,并且遵循相同的协议进行处理,才能实现相互通信

 

对于不同的网络,层的数量、名字、内容和功能都不尽相同。在相同的网络中,一台机器上的第N层与另一台机器上的第N层可利用第N层协议进行通信,协议基本上是双方关于如何进行通信所达成的一致。

 

不同机器中包含的对应层的实体叫做对等进程。在对等进程利用协议进行通信时,实际上并不是直接将数据从一台机器的第N层传送到另一台机器的第N层,而是每一层都把数据连同该层的控制信息打包交给它的下一层,它的下一层把这些内容看做数据,再加上它这一层的控制信息一起交给更下一层,依此类推,直到最下层。最下层是物理介质,它进行实际的通信。相邻层之间有接口,接口定义下层向上层提供的原语操作和服务。相邻层之间要交换信息,对等接口必须有一致同意的规则。层和协议的集合被称为网络体系结构。

 

每一层中的活动元素通常称为实体,实体既可以是软件实体,也可以是硬件实体。第N层实体实现的服务被第N+1层所使用。在这种情况下,第N层称为服务提供者,第N+1层称为服务用户。

 

TCP/IP协议:

TCP/IP(传输控制协议/网际协议,Transmission Control Protocol/Internet Protocol)起源于20世纪60年代末美国政府资助的一个网络分组交换研究项目,TCP/IP是发展至今最成功的通信协议,它被用于当今所构筑的最大的开放式网络系统Internet之上。TCP(传输控制协议)和IP(网际协议),为该家族中最早通过的标准。

TCP和IP是两个独立且紧密结合的协议,负责管理和引导数据报文在Internet上的传输。二者使用专门的报文头定义每个报文的内容。TCP负责和远程主机的连接,IP负责寻址,使报文被送到其该去的地方。

 

由于在网络通讯协议普遍采用分层的结构,每一层负责不同的通信功能。但TCP/IP简化了层次设备(只有4层),由下而上分别为网络接口层、网络层、传输层、应用层,当多个层次的协议共同工作时,类似计算机科学中的堆栈,因此又被称为TCP/IP协议栈(英语:TCP/IP Protocol Stack) 。

 

这些协议最早发源于美国国防部(缩写为DoD)的ARPA网项目,因此也被称作DoD模型(DoD Model)。这个协议族由互联网工程任务组负责维护。TCP/IP提供点对点的链接机制,将数据应该如何封装、定址、传输、路由以及在目的地如何接收,都加以标准化。协议族下的各种协议,依其功能不同,被分别归属到这四个层次结构之中,常被视为是简化的七层OSI模型

 

 

 

由于TCP/IP是OSI模型之前的产物,所以两者间不存在严格的层对应关系。在TCP/IP模型中并不存在与OSI中的物理层与数据链路层相对应的部分,相反,由于TCP/IP的主要目标是致力于异构网络的互连,所以同OSI中的物理层与数据链路层相对应的部分没有进行任何限定,以下是TCP/IP和OSI每一层所执行的服务功能和协议。

 

 应用层:为应用程序提供服务并规定应用程序中通信相关的细节;包括的协议如下:

①:超文本传输协议HTTP:这是一种最基本的客户机/服务器的访问协议;浏览器向服务器发送请求,而服务器回应相应的网页

 

②:文件传送协议FTP:提供交互式的访问,基于客户服务器模式,面向连接 使用TCP可靠的运输服务

  主要功能:减少/消除不同操作系统下文件的不兼容性 

 

③:远程登录协议TELNET:客户服务器模式,能适应许多计算机和操作系统的差异,网络虚拟终端NVT的意义

 

④:简单邮件传送协议SMTP:Client/Server模式,面向连接 

   基本功能:写信、传送、报告传送情况、显示信件、接收方处理信件 

 

⑤:DNS域名解析协议:DNS是一种用以将域名转换为IP地址的Internet服务

 

⑥:简单文件传送协议TFTP:客户服务器模式,使用UDP数据报,只支持文件传输,不支持交互,TFTP代码占内存小 

 

⑦:简单网络管理协议(SNMP): SNMP模型的4个组件:被管理结点、管理站、管理信息、管理协议

   SNMP代理:运行SNMP管理进程的被管理结点

   对象:描述设备的变量

   管理信息库(MIB):保存所有对象的数据结构

 

⑧DHCP动态主机配置协议: 发现协议中的引导文件名、空终止符、属名或者空,DHCP供应协议中的受限目录路径名 Options –可选参数字段,参考定义选择列表中的选择文件

 

表示层:

将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式;主要负责数据格式的转换,确保一个系统的应用层信息可被另一个系统应用层读取

 

具体来说,就是将设备固有的数据格式转换为网络标准传输格式,不同设备对同一比特流解释的结果可能会不同;因此,主要负责使它们保持一致

 

 会话层:

负责建立和断开通信连接(数据流动的逻辑通路),记忆数据的分隔等数据传输相关的管理

 

 

PS:其实在应用层、表示层、会话层这三层,协议可以共用:

 

  传输层:

只在通信双方的节点上(比如计算机终端)进行处理,而无需在路由器上处理,传输层是OSI中最重要、最关键的一层,是唯一负责总体的数据传输和数据控制的一层;

 

传输层提供端到端的交换数据的机制,检查分组编号与次序,传输层对其上三层如会话层等,提供可靠的传输服务,对网络层提供可靠的目的地站点信息主要功能。在这一层,数据的单位称为数据段(segment)

主要功能:

①:为端到端连接提供传输服务  

 

②:这种传输服务分为可靠和不可靠的,其中Tcp是典型的可靠传输,而Udp则是不可靠传输

 

③:为端到端连接提供流量控制,差错控制,服务质量(Quality of Service,QoS)等管理服务

 

包括的协议如下:

TCP:传输控制协议,传输效率低,可靠性强

UDP:用户数据报协议,适用于传输可靠性要求不高,数据量小的数据(比如QQ)

DCCP、SCTP、RTP、RSVP、PPTP等协议

 

网络层:

将数据传输到目标地址;目标地址可以使多个网络通过路由器连接而成的某一个地址,主要负责寻找地址和路由选择,网络层还可以实现拥塞控制、网际互连等功能

 

在这一层,数据的单位称为数据包(packet)

网络层协议的代表包括:IP、IPX、RIP、OSPF等

 

 数据链路层:

负责物理层面上的互联的、节点间的通信传输(例如一个以太网项链的2个节点之间的通信);该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。

 

在这一层,数据的单位称为帧(frame)

数据链路层协议的代表包括:ARP、RARP、SDLC、HDLC、PPP、STP、帧中继等

 

物理层:

负责0、1 比特流(0/1序列)与电压的高低、逛的闪灭之间的转换

规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以 及过程特性;该层为上层协议提供了一个传输数据的物理媒体。只是说明标 准

 

在这一层,数据的单位称为比特(bit)

属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、 V.35、RJ-45、fddi令牌环网等

应用层

应用层中的协议

应用层允许应用程序访问其他层的服务,它定义了应用程序用来交换数据的协议。应用层包含大量的协议,而且人们一直在开发新的协议。人们最熟悉的那些应用层协议可以帮助用户交换信息。

 

应用层协议主要包括如下几个:FTP、TELNET、DNS、SMTP、NFS、HTTP等。

 

HTTP(Hypertext Transfer Protocol)是超文本传输协议,用于实现互联 网中的WWW服务,使用端口80。

 

FTP(File Transfer Protocol):用于传输独立的文件,通常用于交互式用户会话。一般般上传下载用FTP服务,数据端口是20H,控制端口是21H。

 

Telnet用户远程登录服务,使用23H端口,使用明码传送,保密性差、简单方便。

 

SMTP(Simple Mail Transfer Protocol):用于传输邮件和附件用来控制信件的发送、中转,使用端口25

 

DNS(Domain Name Service)域名解析服务,用于将主机名称(例如,www.microsoft.com)解析为IP地址并在DNS服务器之间复制名称信息提供域名到IP地址之间的转换,使用端口53

 

RIP:路由信息协议 是路由器用来在 IP 网络上交换路由信息的协议。

 

SNMP:简单网络管理协议 用于收集网络管理信息并在网络管理控制台和网络设备(例如,路由器、网桥和服务器)之间交换网络管理信息。

 

NFS(Network File System)是网络文件系统,用于网络中不同主机间的文件共享。

传输层

传输层

传输层(又称主机到主机传输层)为应用层提供会话和数据报通信服务。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送,即耳熟能详的“三次握手”过程,从而提供可靠的数据传输。传输层承担OSI传输层的职责。传输层的核心协议是TCP(Transmission Control Protocol)UDP(User Datagram protocol)。TCP提供一对一的、面向连接的可靠通信服务。TCP建立连接,对发送的数据包进行排序和确认,并恢复在传输过程中丢失的数据包。与TCP不同,UDP提供一对一或一对多的、无连接的不可靠通信服务。

 

不论是TCP/IP还是在OSI参考模型中,任意相邻两层的下层为服务提供者,上层为服务调用者。下层为上层提供的服务可分为两类:面向连接服务和无连接服务。

 

1)面向连接的网络服务

面向连接的网络服务又称为虚电路(Virtual Circuit)服务,它具有网络连接建立、数据传输和网络连接释放三个阶段。是按顺序传输可靠的报文分组方式,适用于指定对象、长报文、会话型传输要求。

 

面向连接服务以电话系统为模式。要和某个人通话,首先拿起电话,拨号码,通话,然后挂断。同样在使用面向连接的服务时,用户首先要建立连接,使用连接,然后释放连接。连接本质上像个管道:发送者在管道的一端放入物体,接收者在另一端按同样的次序取出物体;其特点是收发的数据不仅顺序一致,而且内容也相同。

 

2)无连接的网络服务

无连接网络服务的两实体之间的通信不需要事先建立好一个连接。无连接网络服务有3种类型:数据报(Datagram)、确认交付(Confirmed Delivery)与请求回答(Request reply)。

 

无连接服务以邮政系统为模式。每个报文(信件)带有完整的目的地址,并且每一个报文都独立于其他报文,由系统选定的路线传递。在正常情况下,当两个报文发往同一目的地时,先发的先到。但是,也有可能先发的报文在途中延误了,后发的报文反而先收到;而这种情况在面向连接的服务中是绝对不可能发生的。

网络层Internet

Internet层的职责包括寻址、打包和路由功能。Internet 层与 OSI 模型的网络层类似。Internet 层包含ARP、IP(IPv4、IPv6)、ICMP、IGMP协议,下面将详细地介绍每一种协议。

负责相邻计算机之间的通信。其功能包括三方面

  1. 处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。
  2. 处理输入数据报:首先检查其合法性,然后进行寻径--假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。
  3. 处理路径、流控、拥塞等问题。

网络层包括:IP(Internet Protocol)协议、ICMP(Internet Control Message Protocol)

 

控制报文协议、ARP(Address Resolution Protocol)地址转换协议、RARP(Reverse ARP)反向地址转换协议。

 

IP是网络层的核心,通过路由选择将下一条IP封装后交给接口层。IP数据报是无连接服务。

 

ICMP是网络层的补充,可以回送报文。用来检测网络是否通畅。

Ping命令就是发送ICMP的echo包,通过回送的echo relay进行网络测试。

名词与相关协议的具体意义

IP

IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP是一个数据报协议,它主要负责在主机之间为数据包进行寻址和路由。

 

但IP是无连接的协议,这意味着它在交换数据之前不建立连接,所以IP也是不可靠的,因为IP并没有做任何事情来确认数据包是否按顺序发送的或者有没有被破坏,IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。IP总是尽“最大努力”来尝试传送数据包,但IPv4数据包可能会丢失、错序发送、重复或延迟,所以需要更高层协议(例如,TCP或某个应用协议)必须能够确认所传送的数据包并根据需要恢复丢失的数据包。

 

高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。

 

IP确认包含一个选项,叫作IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好像是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。

 

图1-21显示了IP数据包头部结构

 IP数据包头部信息

IP数据包头各部分解释如下。

  • 版本:用于传输数据的IP版本,大小为4位。

 

  • 头部长度:用于规定报头长度。

 

  • 服务类型:用于设置数据传输的优先权或者优先级,其大小为8位。

 

  • 总长度:指出数据报的总长,数据报总长=报头长度+数据长度,大小为16位。

 

  • 标识:用于标识所有的分段,大小为16位。

 

  • 分段标志:确定一个数据报是否可以分段,同时也指出当前分段后面是否还有更多分段,大小为3位。

 

  • 分段偏移量:由目标计算机用于查找分段在整个数据报中的位置,大小位13位。

 

  • 生存时间:在路由器丢弃数据报之前允许数据报通过的网段数;TTL 是由发送主机设置的;路由器在转发 IPv4 数据包时会使 TTL 递减 1,此字段用于防止数据包在 IPv4 网络中无休止地循环传播,长度为8位。

 

  • 协议:指定用于创建数据字段中的数据的上层协议,大小为8位。

 

  • 校验和:检查所传输数据的完整性,大小为16位。

 

  • 源地址:源IP地址,字段长度为32位。

 

  • 目标地址:目标IP地址,字段长度为32位。

 

  • 选项:不止一个必须的字段,字段长度具体取决于所选择的IP选项。

 

  • 数据:包含网络中传输的数据,IP数据报还包括上层协议的报头信息。

 

TCP

TCP全称是Transmission Control Protocol,TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。

TCP和UDP都是IP层的传输协议,是IP与上层之间的处理接口。TCP和UDP端口号被设计来区分运行在单个设备上的多重应用程序的IP地址。由于同一台计算机上可能会运行多个网络应用程序,所以计算机需要确保目标计算机上接收源主机数据包的软件应用程序的正确性,以及响应能够被发送到源主机的正确应用程序上。该过程正是通过使用TCP或UDP端口号来实现的。

TCP相比于IP,它可以提供可靠的、面向连接的网络数据传递服务。传输控制协议主要包含下列任务和功能:

 

  1. 确保IP数据报的成功传递。
  2. 对程序发送的大块数据进行分段和重组。
  3. 确保正确排序及按顺序传递分段的数据。
  4. 通过计算校验和,进行传输数据的完整性检查。
  5. 根据数据是否接收成功发送肯定消息。通过使用选择性确认,也对没有收到的数据发送否定确认。
  6. 为必须使用可靠的、基于会话的数据传输程序,如客户端/服务器数据库和电子邮件程序,提供首选传输方法。
  7.  

TCP的连接建立过程又称为TCP三次握手。首先发送方主机向接收方主机发起一个建立连接的同步(SYN)请求;接收方主机在收到这个请求后向发送方主机回复一个同步/确认(SYN/ACK)应答;发送方主机收到此包后再向接收方主机发送一个确认(ACK),此时TCP连接成功建立

 

一旦初始的三次握手完成,在发送和接收主机之间将按顺序发送和确认段。关闭连接之前,TCP使用类似的握手过程验证两个主机是否都完成发送和接收全部数据。TCP工作过程比较复杂,包括的内容如下。

 

TCP连接关闭:发送方主机和目的主机建立TCP连接并完成数据传输后,会发送一个将结束标记置1的数据包,以关闭这个TCP连接,并同时释放该连接占用的缓冲区空间。

 

TCP重置:TCP允许在传输的过程中突然中断连接。

 

TCP数据排序和确认:在传输的过程中使用序列号和确认号来跟踪数据的接收情况。

 

TCP重传:在TCP的传输过程中,如果在重传超时时间内没有收到接收方主机对某数据包的确认回复,发送方主机就认为此数据包丢失,并再次发送这个数据包给接收方。

 

TCP延迟确认:TCP并不总是在接收到数据后立即对其进行确认,它允许主

机在接收数据的同时发送自己的确认信息给对方。

 

TCP数据保护(校验和):TCP是可靠传输的协议,它提供校验和计算来实现数据在传输过程中的完整性。

 

如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。

TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。

面向连接的服务(例如TelnetFTPrloginX WindowsSMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。

TCP包的结构

TCP数据包头部总长最小为20字节,其结构如图。

 

  1. 源端口:指定了发送端的端口。
  2. 目的端口:指定了接受端的端口号。
  3. 序列号:指明了段在即将传输的段序列中的位置。
  4. 确认号:规定成功收到段的序列号,确认序号包含发送确认的一端所期望收到的下一个序号。
  5. TCP偏移量:指定了段头的长度。段头的长度取决于段头选项字段中设置的选项。
  6. 保留:指定了一个保留字段,以备将来使用。
  7. 标志:SYN(表示同步)、ACK(表示确认)、PSH(表示尽快地将数据送往接收进程)、RST(表示复位连接)、URG(表示紧急指针)、FIN(表示发送方完成数据发送)。
  8. 窗口:指定关于发送端能传输的下一段大小的指令。
  9. 校验和:校验和包含TCP段头和数据部分,用来校验段头和数据部分的可靠性。
  10. 紧急:指明段中包含紧急信息,只有当URG标志置1时紧急指针才有效。
  11. 选项:指定了公认的段大小,时间戳,选项字段的末端,以及指定了选项字段的边界选项。

UDP

UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。

UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。

UDPTCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如 NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务 包括NTP(网络时间协议)和DNS(DNS也使用TCP)。

欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。

ICMP

ICMP与IP位于同一层,它被用来传送IP的控制信息。它主要是用来提供有关通向目的地址的路径信息。ICMP的‘Redirect’信息通知主机通向其他系统的更准确的路径,而‘Unreachable’信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接‘体面地’终止。PING是最常用的基于ICMP的服务。

IPV4

IPv4,是互联网协议(Internet Protocol,IP)的第四版,也是第一个被广泛使用,构成现今互联网技术的基石的协议。1981年Jon Postel 在RFC791中定义了IP,Ipv4可以运行在各种各样的底层网络上,比如端对端的串行数据链路(PPP协议和SLIP协议) ,卫星链路等等。局域网中最常用的是以太网。

传统的TCP/IP协议基于IPV4属于第二代互联网技术,核心技术属于美国。它的最大问题是网络地址资源有限,从理论上讲,编址1600万个网络、40亿台主机。但采用A、B、C三类编址方式后,可用的网络地址和主机地址的数目大打折扣,以至IP地址已经枯竭。其中北美占有3/4,约30亿个,而人口最多的亚洲只有不到4亿个,中国截止2010年6月IPv4地址数量达到2.5亿,落后于4.2亿网民的需求。虽然用动态IP及Nat地址转换等技术实现了一些缓冲,但IPV4地址枯竭已经成为不争的事实。在此,专家提出IPV6的互联网技术,也正在推行,但IPV4的使用过过渡到IPV6需要很长的一段过渡期。中国主要用的就是ip4,在win7中已经有了ipv6的协议不过对于中国的用户们来说可能很久以后才会用到吧。

传统的TCP/IP协议基于电话宽带以及以太网的电器特性而制定的,其分包原则与检验占用了数据包很大的一部分比例造成了传输效率低,网络正向着全光纤网络高速以太网方向发展,TCP/IP协议不能满足其发展需要。

1983年TCP/IP协议被ARPAnet采用,直至发展到后来的互联网。那时只有几百台计算机互相联网。到1989年联网计算机数量突破10万台,并且同年出现了1.5Mbit/s的骨干网。因为IANA把大片的地址空间分配给了一些公司和研究机构,90年代初就有人担心10年内IP地址空间就会不够用,并由此导致了IPv6 的开发。

IPv6

IPv6是Internet Protocol Version 6的缩写,其中Internet Protocol译为“互联网协议”。IPv6是IETF(互联网工程任务组,Internet Engineering Task Force)设计的用于替代现行版本IP协议(IPv4)的下一代IP协议。

与IPV4相比,IPV6具有以下几个优势:

一、IPv6具有更大的地址空间。IPv4中规定IP地址长度为32,即有2^32-1(符号^表示升幂,下同)个地址;而IPv6中IP地址的长度为128,即有2^128-1个地址。

二、IPv6使用更小的路由表。IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。

三、IPv6增加了增强的组播(Multicast)支持以及对流的控制(Flow Control),这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS,Quality of Service)控制提供了良好的网络平台。

四、IPv6加入了对自动配置(Auto Configuration)的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。

五、IPv6具有更高的安全性。在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,极大的增强了网络的安全性。

地址解析协议(ARP)

ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。ARP 把IP 地址解析成 LAN 硬件使用的媒体访问控制地址。IP数据包常通过以太网发送,但以太网设备并不识别32位IP地址,它们是以48位以太网地址传输以太网数据包。因此,必须把IP目的地址转换成以太网目的地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。ARP协议用于将网络中的IP地址解析为目标硬件地址(MAC地址),以保证通信的顺利进行。

 

RARP协议,即“Reverse Address Resolution Protocol”(反向地址解析协议)的缩写,RARP负责将主机的物理地址转换为IP地址。例如,局域网中有一台主机只知道物理地址而不知道IP地址,那么可以通过RARP协议发出征求自身IP地址的广播请求,然后由RARP服务器负责回答。ARP和RARP使用相同的报头结构,如所示。

 ARP/RARP报头结构

 

 

另外,为使广播量最小,ARP维护IP地址到媒体访问控制地址映射的缓存以便将来使用。ARP缓存可以包含动态和静态项目。动态项目随时间推移自动添加和删除。静态项目一直保留在缓存中,直到重新启动计算机为止。

 

每个动态ARP缓存项的潜在生命周期是10分钟。新加到缓存中的项目带有时间戳,如果某个项目添加后2分钟内没有再使用,则此项目过期并从ARP缓存中删除;如果某个项目已在使用,则又收到2分钟的生命周期;如果某个项目始终在使用,则会另外收到2分钟的生命周期,一直到10分钟的最长生命周期。在工作站PC的Windows环境中,可以使用命令“arp-a”查看当前的ARP缓存,如图1-19所示。在路由器和交换机中可以用show arp完成相同的功能。

 

当主机A要与主机B通信时,以下步骤可以将主机B软件指定的地址(192.168.1.2)解析成主机B硬件指定的媒体访问控制地址。

 

第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配硬件地址。

 

第2步:如果主机A在缓存中没有找到映射,它将询问“192.168.1.2的硬件地址是什么?”从而将ARP请求帧广播到本地网络上的所有主机。源主机A的硬件和软件地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机未找到匹配值,它将丢弃ARP请求。

 

第3步:主机B确定ARP请求中的IP地址与自己的IP地址匹配,将主机的硬件/软件地址映射添加到本地ARP缓存中。

 

第4步:主机B将包含其硬件地址的ARP回复消息直接发送回主机A。

 

第5步:当主机A收到从主机B发来的ARP回复消息时,会用主机B的硬件/软件地址映射更新ARP缓存。主机B的媒体访问控制地址一旦确定,主机A就能向主机B发送IP通信,为它找到主机的媒体访问控制地址

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值