第2章 TCP/IP
在上一章,我们郑重其事地介绍了OSI七层参考模型,并浓墨重彩地讲述了其中每一层负责提供的功能。OSI模型“出身名门”、条理清晰,只有一个“小小的”缺点,那就是一直没人太拿它当回事儿。所以,如果对它太认真,你就输了。
我们是有职业精神的,因此在介绍OSI模型时反复强调了这个模型是如何“曲高和寡”。我们在上一章中花大篇幅介绍OSI模型有三个目的:一是延续各类技术教材的惯例,以免将本书作为技术开蒙读物的读者在与别人讨论技术问题时,因全然不了解OSI模型而被视为十分业余;二是为了让这本冠以“CCNA教材”之名的作品能够勉强契合Cisco认证体系的教学大纲,不至于洋洋千言,却离题万里;三是最为重要的一点,为了让读者能够凭借这个将功能划分得最为细致的模型,深入理解“协议分层”的概念及其存在的必要性。
除了OSI模型,我们在第1章还介绍了另外一个更切合实际的分层模型:TCP/ IP模型。传统的TCP/IP参考模型定义了四个层级,从下至上依次为网络接口层(第一层)、网络层(第二层)、传输层(第三层)和应用层(第四层)。
读者可以通过图2-1回忆OSI模型与TCP/IP模型之间的对应关系。
注意:
图2-1中TCP/IP模型各层的命名方式很吊诡?其实,TCP/IP模型中的各层还有另一套命名方式,这套命名方式来自TCP/IP模型的前身,称为DoD模型。DoD模型其实颇有一些历史可以介绍,但如今按照DoD的命名方式提及TCP/IP模型诸层的业界人士已然越来越少,我们也不打算在这里多费笔墨。为免读者在读过本书之后对TCP/IP模型中各层的另一套命名方式一无所知,我们在图2-1中直接引用了某幻灯片中的称谓。但在本书后文中,为统一起见,我们将继续使用最为常用的命名方法。图2-1中的命名方式有可能会出现在CCNA的考试中,读者要留意理解。
TCP/IP模型与OSI模型的最大区别之一是,TCP/IP模型并不是一个凭借想象力设计出来,然后就交给人们去套用的理论模型,而是对已有的TCP/IP协议栈所进行的描述。TCP/IP协议栈是诸多网络互联协议的集合,并以其中最基础的两个协议(TCP和IP)进行命名。除了这两个核心协议,TCP/IP协议栈中还有很多其他协议。这些协议协同工作,构建了基本的网络互联框架,为不同应用层协议实现各自的目标打下了通信基础。
图2-1 OSI模型与TCP/IP模型(DoD模型)的对应关系
应用层协议相当丰富,就连许多普通用户也对一些应用层协议耳熟能详。比如在门户网站上浏览新闻时使用的HTTP,在网上银行交易纸黄金时所使用的HTTPS,下载各类视频时所使用的FTP,皱着眉头参照家用宽带路由器说明书进行配置的DHCP,都属于应用层协议。这些贴近最终用户的协议,是希望成为系统工程师的读者应当着意钻研的课题,但它们并不是Cisco路由交换认证体系中的重点,在本书中也不准备作为重点进行介绍。我们在这一章的重点是对工作在下三层同时又对网络通信发挥着至关重要作用的五大协议进行介绍,它们分别是TCP、UDP、IP、ICMP和ARP。
先抑后扬,让我们从最复杂的TCP说起。