TCP/IP协议总结
 更新时间:2009-8-1 作者:李辉 
本文关键词:IOS 网络协议 TCP/IP
    尽管OSI 参考模型得到了全世界的认同,但是因特网历史上和技术上的开发标准都是TCP/IP模型(传输控制协议/网际协议,Transmission Control Protocol/Internet Protocol)。
  从网络设备厂商的研发部门,到各个系统集成公司工程师的桌面,总能发现TCIP/IP详解一类的书籍。TCP/IP技术的学习似乎研究和管理网络的一项业内行规,如果你坐在地铁或公交车上,手里抱着一本TCP/IP分析的书本,我们能预知你的明天是光明的,并且有可能是辉煌的。
  
TCP/IP模型概述
  TCP/IP起源于20世纪60年代末美国政府资助的一个网络分组交换研究项目,TCP/IP是发展至今最成功的通信协议,它被用于当今所构筑的最大的开放式网络系统Internet之上。
  
  TCPIP是两个独立且紧密结合的协议,负责管理和引导数据报文在Internet上的传输。二者使用专门的报文头定义每个报文的内容。TCP负责和远程主机的连接,IP负责寻址,使报文被送到其该去的地方。TCP/IP也分为不同的层次开发,每一层负责不同的通信功能。但TCP/IP简化了层次设备(只有4层),由下而上分别为网络接口层、网络层、传输层、应用层,如图1-17所示。
 图1-17  TCP/IP分层与OSI对应关系  
  由于TCP/IPOSI模型之前的产物,所以两者间不存在严格的层对应关系。在TCP/IP模型中并不存在与OSI中的物理层与数据链路层相对应的部分,相反,由于TCP/IP的主要目标是致力于异构网络的互连,所以同OSI中的物理层与数据链路层相对应的部分没有进行任何限定。在表1-3列出了TCP/IP每一层所执行的服务功能和协议。
  
1-3  TCP/IP模型各层描述
描   述
协   议
应用层
定义了TCP/IP应用协议及主机程序与要使用网络的传输层服务之间的接口
HTTPTelnetFTPTFTPSNMPDNSSMTPX-Windows以及其他应用协议
传输层
提供主机之间的通信会话管理。定义了传输数据时的服务级别和连接状态
TCPUDPRTP
Internet
将数据装入IP数据报,包括用于在主机间及经过网络转发数据报时所用的源和目标的地址信息。实现IP数据报的路由
IPICMPARPRARP
网络接口层
详细指定如何通过网络实际发送数据,包括直接与网络媒体(如同轴电缆、光纤或双绞铜线)接触的硬件设备如何将比特流转换成电信号
以太网、令牌环、FDDIX.25、帧中继、RS-232v.35

 
  TCP/IP的标准是在名为Requests for CommentsRFC)的系列文档中发布的。RFC描述Internet的内部运行。TCP/IP 标准总是以RFC的形式发布,但并非所有RFC都是标准的。一些RFC只提供情报信息、实验信息或历史信息。
  
  RFC最初以Internet草案的形式拟定;它们通常由IETF职能小组中的一个或多个创作者开发。IETF职能小组是由一些在TCP/IP套件的某一技术领域中具有特定职责的个人所组成的团队。IETF将以RFC的形式发布Internet草案的最终版本,并为其分配一个RFC编号。
网络接口层中的协议
  
  网络接口层又称为网络访问层,主要负责向网络媒体发送TCP/IP数据包并从网络媒体接收TCP/IP数据包。TCP/IP独立于网络访问方法、帧格式和媒体,可以使用TCP/IP接口层技术组织以太网、无线LANWAN网络之间进行通信。
  
  TCP/IP支持的网络接口类型包括:标准以太网、令牌环、串行线路网际协议(SLIPFDDI、串行光学、ATM、点对点协议(PPP)、虚拟IP地址等。网络接口层技术将在本书后续章节详细介绍。
Internet层中的协议
  
  Internet层的职责包括寻址、打包和路由功能。Internet 层与 OSI 模型的网络层类似。Internet 层包含ARPIPIPv4IPv6)、ICMPIGMP协议,下面将详细地介绍每一种协议。
  
  1.地址解析协议(ARP
  ARP协议是Address Resolution Protocol(地址解析协议)的缩写。ARP IP 地址解析成 LAN 硬件使用的媒体访问控制地址。IP数据包常通过以太网发送,但以太网设备并不识别32IP地址,它们是以48位以太网地址传输以太网数据包。因此,必须把IP目的地址转换成以太网目的地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。ARP协议用于将网络中的IP地址解析为目标硬件地址(MAC地址),以保证通信的顺利进行。
  
  RARP协议,即Reverse Address Resolution Protocol(反向地址解析协议)的缩写,RARP负责将主机的物理地址转换为IP地址。例如,局域网中有一台主机只知道物理地址而不知道IP地址,那么可以通过RARP协议发出征求自身IP地址的广播请求,然后由RARP服务器负责回答。ARPRARP使用相同的报头结构,如图1-18所示。
1-18  ARP/RARP报头结构
硬件类型
协议类型
硬件地址长度
协议长度
操作类型
发送方的硬件地址(0~3字节)
源物理地址(4~5字节)
IP地址(0~1字节)
IP地址(2~3字节)
目标硬件地址(0~1字节)
目标硬件地址(2~5字节)
目标IP地址(0~3字节)

  
  另外,为使广播量最小,ARP维护IP地址到媒体访问控制地址映射的缓存以便将来使用。ARP缓存可以包含动态和静态项目。动态项目随时间推移自动添加和删除。静态项目一直保留在缓存中,直到重新启动计算机为止。
  
  每个动态ARP缓存项的潜在生命周期是10分钟。新加到缓存中的项目带有时间戳,如果某个项目添加后2分钟内没有再使用,则此项目过期并从ARP缓存中删除;如果某个项目已在使用,则又收到2分钟的生命周期;如果某个项目始终在使用,则会另外收到2分钟的生命周期,一直到10分钟的最长生命周期。在工作站PCWindows环境中,可以使用命令arp-a查看当前的ARP缓存,如图1-19所示。在路由器和交换机中可以用show arp完成相同的功能。
  
  下面举个例子:ARPRARP协议的工作原理。两个位于同一个物理网络上运行TCP/IP的主机,如图1-20所示,主机A和主机B。主机A分配的IP地址是192.168.1.1,主机B分配的IP地址是192.168.1.2
 
1-19  查看ARP缓存 
  
  
  
1-20  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通信,为它找到主机的媒体访问控制地址。
  2Internet协议(IP  
  IP是一个数据报协议,它主要负责在主机之间为数据包进行寻址和路由。但IP是无连接的协议,这意味着它在交换数据之前不建立连接,所以IP也是不可靠的,这意味着它不能保证数据包的正确传送。
  
  IP总是尽最大努力来尝试传送数据包,但IPv4数据包可能会丢失、错序发送、重复或延迟,所以需要更高层协议(例如,TCP或某个应用协议)必须能够确认所传送的数据包并根据需要恢复丢失的数据包。图1-21显示了IP数据包头部结构。
1-21  IP数据包头部信息
版本
头部长度
服务类型
总长度
标识
分段标志
分段偏移量
生存时间
协议
校验和
源地址
目标地址
选项
填充
数据
  IP数据包头各部分解释如下。
版本:用于传输数据的IP版本,大小为4位。
头部长度:用于规定报头长度。
服务类型:用于设置数据传输的优先权或者优先级,其大小为8位。
总长度:指出数据报的总长,数据报总长=报头长度+数据长度,大小为16位。
标识:用于标识所有的分段,大小为16位。
分段标志:确定一个数据报是否可以分段,同时也指出当前分段后面是否还有更多分段,大小为3位。
分段偏移量:由目标计算机用于查找分段在整个数据报中的位置,大小位13位。
生存时间:在路由器丢弃数据报之前允许数据报通过的网段数;TTL 是由发送主机设置的;路由器在转发 IPv4 数据包时会使 TTL 递减 1,此字段用于防止数据包在 IPv4 网络中无休止地循环传播,长度为8位。
协议:指定用于创建数据字段中的数据的上层协议,大小为8位。
校验和:检查所传输数据的完整性,大小为16位。
源地址:源IP地址,字段长度为32位。
目标地址:目标IP地址,字段长度为32位。
选项:不止一个必须的字段,字段长度具体取决于所选择的IP选项。
数据:包含网络中传输的数据,IP数据报还包括上层协议的报头信息。
  3Internet控制消息协议(ICMP
  ICMP全称是Internet Control Message Protocol,中文名为Internet控制消息协议。ICMP负责向数据通信中的源主机报告错误,可以实现故障隔离和故障恢复。
  
  网络本身并不是十分可靠的,在网络传输过程中,可能会发生许多突发事件并导致数据传输失败。前面说到的IP是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的ICMP协议却恰好弥补了IP的缺陷,它使用IP进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。另外,通过ICMP,使用IP通信的主机和路由器可以报告错误并交换受限控制和状态信息。
  
  在下列情况中,通常自动发送ICMP消息:
* IP数据报无法访问目标。
* IP路由器(网关)无法按当前的传输速率转发数据报。
* IP路由器将发送主机重定向为使用到达目标的更佳路由。
  在IP数据包中封装和发送ICMP消息,如图1-22所示。
  
 
 
1-22  ICMPIP数据包封装
  
  这里需要注意:由于ICMP 消息是在 IP 数据包中携带的,因此也是不可靠的。不同类型的 ICMP 消息在 ICMP 报头中标识,表1-4列出并说明最常见的 ICMP 消息类型。
  
1-4  ICMP消息类型
ICMP消息
描   述
请求回显
确定IP节点(主机或路由器)能否在网络上使用
回显答复
回复ICMP回显请求
无法连接目标
通知主机数据报无法传递
源结束
通知主机由于拥塞而降低发送数据报的速率
重定向
通知首选路由的主机
超时
指明IP数据报的生存时间(TTL)已到期

 
  网络管理员经常使用Ping命令发送ICMP回显请求消息并记录收到ICMP回显答复消息。使用这些消息,可以检测网络或主机通信故障并解决常见的TCP/IP连接问题。
  4Internet组管理协议(IGMP
  
  IGMP全称是Internet Group Multicast Protocol,中文名为Internet组管理协议。该协议运行于主机和与主机直接相连的组播路由器之间,是IP主机用来报告多址广播组成员身份的协议。通过IGMP,一方面可以通过IGMP主机通知本地路由器希望加入并接收某个特定组播组的信息。另一方面,路由器通过IGMP周期性地查询局域网内某个已知组的成员是否处于活动状态。
  
  IGMP的主要作用是解决网络上广播时占用带宽的问题。在网络中,当给所有客户端发出广播信息时,支持IGMP的交换机会将广播信息不经过滤地发给所有客户端。但是这些信息只需要通过组播的方式传输给某一个部分的客户端。