TCP/IP 详解(第 2 版) 笔记 / 1 介绍 / 1.1 架构原则 / 1.1.1 分组数据包, 连接, 数据报

本文探讨了TCP/IP协议栈如何促进全球互联网的互通性,重点讲解了分组数据包、连接与数据报的概念,以及它们如何影响早期互联网架构的设计决策。文章揭示了数据报网络的无连接特性及其在互联网发展中的关键作用。
摘要由CSDN通过智能技术生成

目录、参考文献


1.1 架构原则

TCP/IP 协议栈,可以让各种不同大小的、不同计算机供应商生产的、运行着各种完全不同的软件的计算机、智能手机以及嵌入式设备互相通信

它是一个真正开放的系统,协议栈的定义以及其中的许多实现,都是可以公开地以很低的价格或者免费获得的
它形成了全球互联网的基础,一个二十亿人使用的广域网(wide area network (WAN))(2010 年的统计,大约占世界人口的 30%)

虽然很多人认为互联网与万维网(World Wide Web (WWW))是一回事
但互联网这个名称更多强调的是其让计算机能够互相通信的能力
而 WWW 则是一个建立在互联网之上,利用互联网进行通信的应用
WWW 可能是最重要的一个互联网应用
在二十世纪九十年代早期,正是 WWW 引起了全世界对互联网技术的广泛关注

互联网架构是在几个目标的指导下创造出来的
在 [C88] 中,Clark 提到,互联网架构的一个目标是 “ 开发一种有效的技术,能够复用已存在的互相连接的网络 ”
这句话的核心含义是,互联网架构必须能够让多个相互独立的网络互相连接,并且能够让多个不同的活动同时运行在这个互联的网络上
围绕这个主要目标, Clark 提出了几个第二级的目标:

  • 在部分网络或网关失效的情况下,互联网仍然能够继续通信
  • 互联网必须支持多种类型的通信服务
  • 互联网架构必须能够容纳各种不同的网络
  • 互联网架构必须能够对资源进行分布式管理
  • 互联网架构必须是经济实惠的
  • 互联网架构必须能够让主机比较容易地接入进来
  • 互联网架构中的资源必须是可计算的

上边提到的许多目标,本应该在目前选择的设计决策的基础上再作出一点点调整就达到了的
但在制定这些架构原则的过程中,在某些特定的选择上,少数设计选项正反过来影响着设计者
我们会对其中最重要的几个,以及它们所带来的后果进行介绍


1.1.1 分组数据包, 连接, 数据报

直到二十世纪六十年代,网络的概念都还主要基于电话网络,用于在一次通话期间让电话互联
一次通话通常靠建立一个从一方到另一方的连接来完成
建立一个连接的意思是,在两个电话之间建立一条回路(最初,是一条物理电路)
当这次通话结束后,连接会被清除,其它用户便可以再次使用该回路来进行通话
一次通话的持续时间与通话终端的身份会被用来给用户计费
当连接建立后,会为用户提供特定大小的带宽容量来发送信息(通常为语音信息)
电话网络由最初的模拟信号发展为如今的数字信号,可靠性与性能都得到了大大的提高
从回路一端进入的数据,沿着事先建立好的路径,通过若干网络交换机,最终在另一端以一种可预知的方式出现
通常会规定一个时间上限(等待时间latency)),超过这个时间未接收到数据则清理连接
电路网络会为一通电话分配一条路径,这条路径是专门为这通电话预定的
即便这条路径未被充分使用,路径仍然会被这次通话占用

分组交换packet switching)是二十世纪六十年代提出的重要概念之一(如在 [B64] 中提到的)
在分组交换中,由若干字节组成的数字信息 “ 数据块(chunk)”(分组数据包(packet)),相对独立地在网络中传输
来自不同源头或不同发送者的数据块,混合在一起进行传输,之后再将它们分开
这就是多路复用multiplexing),即多条逻辑线路复用一条物理线路
数据块从一个交换机转移到另一个交换机,经过若干交换机,最终到达目的地,每个数据块所经过的路径是可以改变的
这样的设计有两个好处:

  1. 网络的抗灾能力更强,部分路径不可用,仍能通过改变路径到达目的地
    设计者的设计目标之一就是在网络受到物理攻击时仍能正常工作
  2. 依靠统计多路复用statistical multiplexing),能更充分地利用网络连接与交换机资源

当分组交换机接收到分组数据包之后,通常会将其存入缓冲存储器buffer memory)或队列(queue)中
然后以先到先服务first-come-first-served (FCFS))的原则处理
这是最简单的调度scheduling)方式,也称为先进先出first-in-first-out (FIFO))
FIFO 缓冲管理与按需调度很容易结合起来实现统计多路复用
在互联网中,统计多路复用是将不同信息源的流量混合起来传输的主要方法
在统计多路复用中,基于到达统计(arrival statistics)或流量的时间模式将不同来源的流量混合起来
这种多路复用既简单又高效,因为只要有网络容量可以使用,流量就会使用它,网络资源总是能被充分利用,不会闲置
这个设计的一个缺点是,降低了对网络性能的可预测性
从任何一个特定应用的角度来看,网络的性能取决于共享同一个网络的其它应用的性能统计结果(而这是难以准确预测的)

像时分复用(time-division multiplexing (TDM))与静态复用(static multiplexing)这样的替代技术
通常会为每个连接预定一段时间或其它资源
虽然这些技术具有更高的可预测性,对固定比特率的电话呼叫很有用,但它们不能充分利用网络容量,因为预留的带宽可能会被闲置
如果直接使用 TDM 技术,可以在面向连接的分组数据包基础上实现虚电路(virtual circuits (VCs))
虚电路具有许多物理电路的行为,但又不依赖于物理电路交换机
这是 X.25 协议的基础,一个在二十世纪九十年代以前很流行的协议,后来渐渐被帧中继(Frame Relay)替代
最终被数字用户线路(digital subscriber line (DSL))技术与电缆调制解调器(cable modem)支持的互联网所取代(见第三章)

虚电路 VC 的抽象以及像 X.25 这样的面向连接的分组网络,需要在每个交换机中为每个连接存储一些信息或状态state
每个分组数据包只会携带少量比特的头信息,这个头信息会提供一个状态表的索引
例如在 X.25 协议中,每个分组数据包携带了 12 比特的逻辑信道标识符logical channel identifier (LCI))或逻辑信道号码logical channel number (LCN))
交换机会结合 LCI 或 LCN 与每流量状态per-flow state),为当前分组数据包的通信路径选出下一跳交换机
在一条虚电路(VC)上,在进行数据交换之前
会通过一个支持连接建立、连接清理、连接状态信息的信令协议(signaling protocol)建立起每流量状态
正因为如此,这样的网络被称为是面向连接的(connection-oriented

面向连接的网络,无论是基于回路的还是基于分组数据包的,在许多年里都是最流行的网络形式
在二十世纪六十年代末,出现了另一个选项:数据报datagram),最初应用在 CYCLADES [P73] 系统中
一个数据报是一个特殊类型的分组数据包,所有关于来源和目的地的识别信息都包含在数据报中(而不是保存在分组交换机中)
虽然这会导致需要使用更大的分组数据包,但分组交换机不再需要为每个连接保存状态
从而可以构建一个无连接的connectionless)网络,不再需要使用复杂的信令协议
互联网的设计者在早期就全面拥抱了数据报技术,这个决定对后面的协议栈产生了深远的影响

另一个相关的概念是消息边界message boundary)或记录标记record marker
如图 1-1 所示,当应用向网络发送了不止一个数据块的数据时,通信协议可以维护也可以不维护这个信息
大多数的数据报协议会维护消息边界,这很正常,因为数据报自己就有开始和结束的标记
然而,在电路或虚电路(VC)网络中,网络协议有可能不记录消息边界
当发送端一次发送了多个数据块的信息时,接收端可能会一次性读取所有数据块,或者以与发送端不同大小的数据块读取

Figure 1-1

图 1-1
消息边界就是两次写操作之间的位置或字节偏移量
使用携带消息边界的协议,接收者可以通过底层协议知道发送者的消息边界位置
使用不携带消息边界的协议(例如 TCP 这样的流协议(streaming protocol)),接收者无法通过底层协议获取关于消息边界的信息
在这种情况下,如果应用程序需要消息边界的信息就必须自己维护


目录、参考文献

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值