尽管OSI 参考模型得到了全世界的认同,但是因特网历史上和技术上的开发标准都是TCP/IP模型(传输控制协议/网际协议,Transmission Control Protocol/Internet Protocol)。
从网络设备厂商的研发部门,到各个系统集成公司工程师的桌面,总能发现TCIP/IP详解一类的书籍。TCP/IP技术的学习似乎研究和管理网络的一项业内行规,如果你坐在地铁或公交车上,手里抱着一本TCP/IP分析的书本,我们能预知你的明天是光明的,并且有可能是辉煌的。
TCP/IP模型概述
TCP/IP起源于20世纪60年代末美国政府资助的一个网络分组交换研究项目,TCP/IP是发展至今最成功的通信协议,它被用于当今所构筑的最大的开放式网络系统Internet之上。
TCP和IP是两个独立且紧密结合的协议,负责管理和引导数据报文在Internet上的传输。二者使用专门的报文头定义每个报文的内容。TCP负责和远程主机的连接,IP负责寻址,使报文被送到其该去的地方。TCP/IP也分为不同的层次开发,每一层负责不同的通信功能。但TCP/IP简化了层次设备(只有4层),由下而上分别为网络接口层、网络层、传输层、应用层,如图1-17所示。
图1-17 TCP/IP分层与OSI对应关系
由于TCP/IP是OSI模型之前的产物,所以两者间不存在严格的层对应关系。在TCP/IP模型中并不存在与OSI中的物理层与数据链路层相对应的部分,相反,由于TCP/IP的主要目标是致力于异构网络的互连,所以同OSI中的物理层与数据链路层相对应的部分没有进行任何限定。在表1-3列出了TCP/IP每一层所执行的服务功能和协议。
表1-3 TCP/IP模型各层描述
层 |
描 述 |
协 议 |
应用层 |
定义了TCP/IP应用协议及主机程序与要使用网络的传输层服务之间的接口 |
HTTP、Telnet、FTP、TFTP、SNMP、DNS、SMTP、X-Windows以及其他应用协议 |
传输层 |
提供主机之间的通信会话管理。定义了传输数据时的服务级别和连接状态 |
TCP、UDP、RTP |
Internet层 |
将数据装入IP数据报,包括用于在主机间及经过网络转发数据报时所用的源和目标的地址信息。实现IP数据报的路由 |
IP、ICMP、ARP、RARP |
网络接口层 |
详细指定如何通过网络实际发送数据,包括直接与网络媒体(如同轴电缆、光纤或双绞铜线)接触的硬件设备如何将比特流转换成电信号 |
以太网、令牌环、FDDI、X.25、帧中继、RS-232、v.35 |
网络接口层中的协议
网络接口层又称为“网络访问层”,主要负责向网络媒体发送TCP/IP数据包并从网络媒体接收TCP/IP数据包。TCP/IP独立于网络访问方法、帧格式和媒体,可以使用TCP/IP接口层技术组织以太网、无线LAN和WAN网络之间进行通信。
TCP/IP支持的网络接口类型包括:标准以太网、令牌环、串行线路网际协议(SLIP)FDDI、串行光学、ATM、点对点协议(PPP)、虚拟IP地址等。网络接口层技术将在本书后续章节详细介绍。
Internet层中的协议
Internet层的职责包括寻址、打包和路由功能。Internet 层与 OSI 模型的网络层类似。Internet 层包含ARP、IP(IPv4、IPv6)、ICMP、IGMP协议,下面将详细地介绍每一种协议。
1.地址解析协议(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使用相同的报头结构,如图1-18所示。
图1-18 ARP/RARP报头结构
硬件类型 |
协议类型 | |
硬件地址长度 |
协议长度 |
操作类型 |
发送方的硬件地址(0~3字节) | ||
源物理地址(4~5字节) |
源IP地址(0~1字节) | |
源IP地址(2~3字节) |
目标硬件地址(0~1字节) | |
目标硬件地址(2~5字节) | ||
目标IP地址(0~3字节) |