《OSPF网络设计解决方案(第2版)》一1.4 TCP/IP协议簇

简介:

本节书摘来自异步社区《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

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协议还提供不可靠的数据包传输服务。
从本质上来说,这些功能涵盖了数据包的处理方法、错误消息参数的定义及数据包丢弃等内容。

相关文章
|
12天前
|
缓存 网络协议 安全
【网络攻防战】DNS协议的致命弱点:如何利用它们发动悄无声息的网络攻击?
【8月更文挑战第26天】DNS(域名系统)是互联网的关键组件,用于将域名转换为IP地址。然而,DNS协议存在安全漏洞,包括缺乏身份验证机制、缓存中毒风险及放大攻击的可能性。通过具体案例,如DNS缓存中毒和DNS放大攻击,攻击者能够误导用户访问恶意站点或对目标服务器实施DDoS攻击。为了防范这些威胁,可以采用DNSSEC实现数字签名验证、利用加密的DNS服务(如DoH或DoT)、限制DNS服务器响应以及及时更新DNS软件等措施。理解并应对DNS的安全挑战对于确保网络环境的安全至关重要。
43 2
|
4天前
|
网络协议 C语言
C语言 网络编程(十三)并发的TCP服务端-以进程完成功能
这段代码实现了一个基于TCP协议的多进程并发服务端和客户端程序。服务端通过创建子进程来处理多个客户端连接,解决了粘包问题,并支持不定长数据传输。客户端则循环发送数据并接收服务端回传的信息,同样处理了粘包问题。程序通过自定义的数据长度前缀确保了数据的完整性和准确性。
|
4天前
|
网络协议 C语言
C语言 网络编程(十一)TCP通信创建流程---服务端
在服务器流程中,新增了绑定IP地址与端口号、建立监听队列及接受连接并创建新文件描述符等步骤。`bind`函数用于绑定IP地址与端口,`listen`函数建立监听队列并设置监听状态,`accept`函数则接受连接请求并创建新的文件描述符用于数据传输。套接字状态包括关闭(CLOSED)、同步发送(SYN-SENT)、同步接收(SYN-RECEIVE)和已建立连接(ESTABLISHED)。示例代码展示了TCP服务端程序如何初始化socket、绑定地址、监听连接请求以及接收和发送数据。
|
4天前
|
网络协议 C语言
C语言 网络编程(十四)并发的TCP服务端-以线程完成功能
这段代码实现了一个基于TCP协议的多线程服务器和客户端程序,服务器端通过为每个客户端创建独立的线程来处理并发请求,解决了粘包问题并支持不定长数据传输。服务器监听在IP地址`172.17.140.183`的`8080`端口上,接收客户端发来的数据,并将接收到的消息添加“-回传”后返回给客户端。客户端则可以循环输入并发送数据,同时接收服务器回传的信息。当输入“exit”时,客户端会结束与服务器的通信并关闭连接。
|
4天前
|
网络协议 C语言
C语言 网络编程(十二)TCP通信创建-粘包
TCP通信中的“粘包”现象指的是由于协议特性,发送方的数据包被拆分并在接收方按序组装,导致多个数据包粘连或单个数据包分割。为避免粘包,可采用定长数据包或先传送数据长度再传送数据的方式。示例代码展示了通过在发送前添加数据长度信息,并在接收时先读取长度后读取数据的具体实现方法。此方案适用于长度不固定的数据传输场景。
|
4天前
|
缓存 网络协议 网络性能优化
C语言 网络编程(二)TCP 协议
TCP(传输控制协议)是一种面向连接、可靠的传输层协议,通过校验和、序列号、确认应答等机制确保数据完整性和可靠性。通信双方需先建立连接,再进行通信,采用三次握手建立连接,四次挥手断开连接。TCP支持任意字节长度的数据传输,具备超时重传、流量控制及拥塞控制机制。三次握手用于同步序列号和确认双方通信能力,四次挥手则确保双方均能完成连接关闭操作,保证数据传输的可靠性。
|
4天前
|
网络协议 C语言
C语言 网络编程(十)TCP通信创建流程---客户端
在TCP通信中,客户端需通过一系列步骤与服务器建立连接并进行数据传输。首先使用 `socket()` 函数创建一个流式套接字,然后通过 `connect()` 函数连接服务器。连接成功后,可以使用 `send()` 和 `recv()` 函数进行数据发送和接收。最后展示了一个完整的客户端示例代码,实现了与服务器的通信过程。
|
4天前
|
网络协议 视频直播 C语言
C语言 网络编程(三)UDP 协议
UDP(用户数据报协议)是一种无需建立连接的通信协议,适用于高效率的数据传输,但不保证数据的可靠性。其特点是无连接、尽力交付且面向报文,具备较高的实时性。UDP广泛应用于视频会议、实时多媒体通信、直播及DNS查询等场景,并被许多即时通讯软件和服务(如MSN/QQ/Skype、流媒体、VoIP等)采用进行实时数据传输。UDP报文由首部和数据部分组成,首部包含源端口、目的端口、长度和校验和字段。相比TCP,UDP具有更高的传输效率和更低的资源消耗。
|
7天前
|
监控 安全 网络安全
深入理解SNMP:网络管理的关键协议
【8月更文挑战第31天】
26 1
|
1天前
|
网络协议
网络协议概览:HTTP、UDP、TCP与IP
理解这些基本的网络协议对于任何网络专业人员都是至关重要的,它们不仅是网络通信的基础,也是构建更复杂网络服务和应用的基石。网络技术的不断发展可能会带来新的协议和标准,但这些基本协议的核心概念和原理将继续是理解和创新网络技术的关键。
6 0
下一篇
DDNS