本节书摘来自异步社区《OSPF网络设计解决方案(第2版)》一书中的第1章,第1.4节,作者 【美】Thomas M. Thomas II, CCIE #9360,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.4 TCP/IP协议簇
OSPF网络设计解决方案(第2版)
所谓协议,是指管理网络中设备之间交换信息的规则约定的集合。本节将对最为常用的一个协议簇——TCP/IP进行讨论,但并不涉及TCP/IP深层次的内容。即便如此,为了更好地掌握全面的网络协议原理,你依然需要对TCP/IP有较为深刻地理解;这些深入的内容会在后续OSPF章节中进行穿插。
TCP/IP协议簇也被称为TCP/IP栈,它是当今被最为广泛实施的互联网络标准之一。TCP/IP的全称为传输控制协议/互联网络协议,其中TCP和IP是TCP/IP协议簇中的两个核心协议。下面的内容将阐述它们在TCP/IP协议栈中的地位。
TCP/IP最初是为美国政府分组交换WAN——ARPAnet所开发的,拥有超过25年的历史。尽管在当时,Internet还是专用网络,而TCP/IP被设计用于专门服务该网络。但是随后,TCP/IP不断朝着流行化的趋势发展,成为了如今网络中最为开放的公有协议簇之一。这主要归功于TCP/IP能够连接不同的网络,并且消除网络中不同物理硬件的差异。也正是因为如此,TCP/IP才成为了今天Internet的标准,被当今几乎所有的大型和小型网络所使用。
TCP/IP与OSI参考模型并非绝对兼容;但是,TCP/IP能够运行在遵循OSI模型的下层层面上,如OSI模型的数据链路层及物理层,而网络层则使用IP进行通信。从本质上来说,OSI参考模型的第3层及以下层面和TCP/IP的层面结构非常相似。图1-5描绘了OSI模型和TCP/IP协议簇层面之间的映射关系。
![402fd0c668a59630ea6009a9392660823b976aba](https://yqfile.alicdn.com/402fd0c668a59630ea6009a9392660823b976aba.png?x-oss-process=image/resize,w_1400/format,webp)
1.4.1 TCP/IP功能
鉴于OSI模型已然成为了标准的网络构架,那么你可以把TCP/IP视为网络的一种语言。当两者相互结合,便创造出了强大且多变的Internet。本节将对TCP/IP的主要功能进行一般性的阐述,然后再分别讨论TCP和IP协议。
在TCP层面中的数据单元,被称之为段(segment)。而在IP层面中,则称之为包(packet)。在数据链路层中,被称之为帧(frame)。以上名称都在图1-3中进行了说明。
如果传输的数据单元对于当前网络拓扑而言过大的话,那么IP层面将负责把数据报进行分段处理。例如,在令牌环网络中,可接受的以太网帧的大小是不定的。因此,IP将对数据的大小进行处理,从而保证传输所需。
在Internet中,从源到目的地的路径通常拥有多条可选。因此,被分段的数据报很有可能会选择不同的路径进行传输。最终,当分段信息到达目的站点后,IP协议栈必须对其进行排序,然后重组成原始的数据报。其中,每个被分段的数据报都拥有完整的IP头部信息,并且它们在第2层是以帧的形式进行传输的。
注意
除了2个网络层协议(IP和Internet控制消息协议[ICMP])及2个传输层协议(TCP和UDP)以外,TCP/IP协议簇还包括运行于上层层面的一系列协议,如FTP、Telnet等。
在TCP/IP的上层协议中,一些是TCP/IP所特有的;一些则源自于其他的协议栈,但是能够运行在TCP/IP上。本书并不打算对这些TCP/IP的上层协议进行讨论,因为这些内容已经超出了本书的范围。
关于TCP/IP更为详细的内容,推荐阅读由Richard Stevens所著的TCP/IP Illustrated,Volume I。虽然书中的实例略显陈旧,但正文内容却翔实清晰。在读者选择阅读时,相信该书已经重版。希望在新版中,第一版内高质量的内容能够得到保留。唯一遗憾的是,原书作者Stevens已经去世,无法亲自参与修订。
1.4.2 TCP概述
在TCP/IP协议簇中,TCP作为传输层内的重要协议,可提供面向连接的传输服务。TCP从位于上层层面的协议接收数据消息,然后为远程设备的TCP层面提供公认可靠的,及面向连接的数据内容。在TCP/IP协议簇内,TCP具备以下5种重要功能:
提供标准的数据格式,并在两台计算机之间交互确认信息,以达成可靠性传输;
能够确保数据正确地到达;
能够在一台设备上区分不同的会话;
定义了如何进行差错恢复;
定义了如何对数据流的传输过程进行初始化,及何时完成传输过程。
1.4.3 IP概述
IP协议是网络层的主要协议,它提供了不可靠的、无连接的服务。但是,如果使用了TCP,那么IP协议便能够依靠TCP对丢失的数据包进行检测和恢复。当使用UDP时,由于UDP没有相应的功能,那么此时 IP协议便无法对丢包进行恢复。在TCP/IP协议簇内,IP协议具备以下3种重要功能。
定义了在整个协议簇中进行数据传输时所使用的基本格式和规范。
为等待发送的数据选择去往所需目的地的相应路径,即提供路由功能。
除此以外,IP协议还提供不可靠的数据包传输服务。
从本质上来说,这些功能涵盖了数据包的处理方法、错误消息参数的定义及数据包丢弃等内容。