《计算机网络-自顶向下方法》第三章-运输层 要点
什么是因特网?两种角度回答:
(1)能够描述因特网的具体构成,包括基本硬件和基本软件(具体构成描述)
(2)能够根据为分布式应用提供服务的联网基础设施来描述因特网(服务描述)
主机=端系统
连入因特网中的设备称为主机,它们位于因特网的边缘所以又叫端系统。它包括有
- 桌面计算机(PC、Mac、Linux)
- 服务器(Web和电子邮件服务器)
- 移动计算机(智能手机、平板电脑)等等。
端系统可以容纳(运行)应用程序,如Web浏览器程序、Web服务器程序。端系统还可以划分为两类:客户(client)和服务器(server)。一般服务器是更为强大的机器,因为需要处理大量数据。
端系统通过通信链路和分组交换机连接在一起。当一台端系统要向另一台端系统发送数据时,发送端系统将数据分段,并为每段加上首部字节,每个数据分段称为分组。这些分组通过网络发送到目的端系统,在那里被装配成初始数据。
1、通信链路,即不同的物理媒体。比如同轴电缆、铜线、光纤和无线电频谱。不同链路传输速度当然是不一样的,传输速率单位为比特/秒(bit/s,或bps)。
2、两种分组交换机,路由器和链路层交换机。
2-1、路由器用于网络核心中
2-2、链路层交换机用于接入网中
端系统通过因特网服务提供商接入因特网(Internet Service Provider, ISP),如本地电缆或电话公司的住宅区ISP、公司ISP、大学ISP。每个ISP是一个由多个分组交换机和多段通信链路组成的网络。
端系统、分组交换机和其他因特网部件都要运行一系列协议,这些协议控制因特网中信息的接收和发送。TCP(Transmission Control Protocol,传输控制协议)和IP(Internet Protocol,网际协议)是因特网中两个最为重要的协议。
IP协议定义了在路由器和端系统之间发送和接收的分组格式。
因特网的主要协议统称为TCP/IP。
路径
从发送端系统到接收端系统,一个分组所经历的一系列通信链路(物理媒体,物理层)和分组交换机(链路层交换机和路由器,数据链路层和网络层)称为通过该网络的路径。
因特网发送数据的类比:送信。
假定Alice使用邮政服务向Bob发一封信。Alice不能只是写了这封信(相关数据)然后把该信丢出窗外。相反,邮政服务要求Alice将信放入一个信封中;在信封中央写上Bob的全名、地址和邮政编码;封上信封;在信封的右上角贴上邮票;最后将该信封丢进一个邮局的邮政服务邮箱中。因此,该邮政服务有自己的“邮政服务API”或一套规则,这是Alice必须遵循的,这样邮政服务才能将自己的信件交付给Bob。
同理,因特网也有一个发送数据的程序必须遵循的API,使因特网接收数据的程序交付数据。
当然,邮政服务向顾客提供了多种服务,如特快专递、挂号、普通服务等。同样地,因特网向应用程序提供了多种服务。当你研发一种因特网应用程序时,也必须为你的应用程序选择其中的一种因特网服务。
协议
一个协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及报文发送和/或接收一条报文或其他事件所采取的动作。
因特网广泛地使用了协议。不同的协议用于完成不同的通信任务。
接入网
端系统连接到其边缘路由器的物理链路。边缘路由器是端系统到任何其他远程端系统的路径上的第一台路由器。
一、家庭接入网方式:
- 数字用户线(Digital Subscriber Line,DSL)(物理媒体:双绞铜线;需要DSL调制解调器;通过有线电话接入)
- 电缆 (物理媒体:光缆和同轴电缆——叫做混合光纤同轴Hybrid Fiber Coax,HFC;需要电缆调制解调器;通过有线电视接入)因为使用同轴电缆,所以同一条电缆的许多家庭同时使用网络时,速率会大大降低。
- 光纤到户(Fiber To The Home,FTTH)(物理媒体——光缆)
- 卫星(乡村环境;比拨号稍快)
- 拨号(乡村环境;速度低得可怜)
二、企业、大学校园、家庭接入网方式:
- 以太网(当今现有局域网(LAN)采用的最通用的通信协议标准)
- WiFi (DSL调制解调器或电缆调制解调器与无线局域网技术结合)
三、广域无线接入方式:
适用于手机这种移动设备的接入方式。通过蜂窝网提供商运营的基站来发送和接收分组。与WiFi范围不同,用户可以距离基站数万米,而前者只有几十米的有效距离。
- 3G/4G
- LTE
物理媒体
- 引导型媒体(电波沿固体媒体传输,光缆、双绞铜线、同轴电缆)
- 非引导型媒体(电波在空气或外层空间传输,无线局域网或数字卫星频道)
网络核心
通过网络链路和交换机移动数据的两种基本方法:
- 分组交换
- 电路交换
一、分组交换
在各种网络应用中,端系统彼此交换报文。在源和目的之间,每个分组都通过通信链路和分组交换机传送。分组以等于该链路最大传输速率的速度(当然是个理论速度,实际不可达)传输通过通信链路。
1、存储转发传输机制。交换机接收到整个分组之后再开始传输该分组的第一个比特。
2、排队时延和分组丢失(丢包)。排队时延取决于拥塞程度;丢包取决于�流量强度和发送接收速率,丢包发生于路由器的缓存溢出、分组中某些比特损坏等情况。
3、 转发表和路由选择协议。转发表用于将目的地址映射成输出链路。路由选择协议就是用于合理设置转发表的工具。
二、电路交换
两种实现方式
1、频分复用(Frequency-Division Multiplexing,FDM)
“频”是频段的宽度,也就是带宽,把一条电路的带宽分为多个较小且相同带宽的电路。如4kHz的带宽,分为4条电路,每条电路享用1kHz带宽。
2、时分复用(Time-Division Multiplexing,TDM)
类似于程序间的并发执行。多条电路在一个时间段内交替传输,并使用所有带宽。
分组交换和电路交换的对比:
- 分组交换网络中,资源不是预留的。会话报文按需使用资源,所以可能要排队等候获取资源从而接入通信线路。
- 电路交换网络中,在端系统通信会话期间,会预留端系统间通信沿路径所需资源(缓存,链路传输速率)。
传统电话网络是电路交换的例子,此时沿着发送方和接收方之间路径上的交换机都将为该连接维护连接状态。既然已经为其预留了带宽,所以发送方能够以确保的恒定速率向接收方传送数据。
分组交换类比成一家不需要预定(不预留资源)但不能保证能安排座位(需要等待)的餐馆。
电路交换类比成一家需要预定(预留资源),能保证到达餐馆立即入座点餐(不需要等待)的餐馆。
分组交换的优点:提供比电路交换更好的带宽共享;比电路交换更简单,更有效,实现成本更低。
分组交换的缺点:不适合实时服务(电话和会议视频),因为端到端时延是可变和不可预测的(主要因为排队时延的变动和不可预测所致)。
总体来说,分组交换的性能优于电路交换的性能,因为分组交换按需分配,对资源的利用率更高。
网络的网络
- 今天的因特网是一个网络的网络,结构复杂,由十多个第一层ISP和数十万个较低层ISP组成。
- 较低层与较高层的ISP相连,较高层ISP彼此相连。
- 用户和内容提供商是较低层ISP的客户,较低层ISP是较高层ISP的客户。
- 有些内容提供商已经创建自己的网络(如Google),直接在可能的地方与较低层ISP互联。
分组交换的时延
结点总时延 = 处理时延+排队时延+传输时延+传播时延
1、处理时延
检查分组首部;决定将该分组导向何处;检查比特级别的差错。
2、排队时延
取决于先期到达的正在排队等待向链路传输的分组数量。如果队列为空,且当前没有其他分组正在传输,则该分组排队时延为0。平均排队时延与流量强度有关,流量强度越接近于1,平均排队时延非常大。
3、传输时延
将所有分组的比特推(传输)向链路所需要的时间。用L比特表示该分组的长度,用R bps表示从路由器A到路由器B的链路传输速率,对于一条10Mbps的以太网链路,传输速率R就是10Mbps。传输时延是L/R。
4、传播时延
一旦一个比特被推向链路,该比特需要向路由器B传播。从该链路的起点到路由器B传播所需要的时间。传播时延是d/s。d是两台路由器之间的距离,s是传播速率。传播速率取决于物理媒体。
传输时延和传播时延的对比:
传输时延公式L/R,与分组长度和链路传输速率有关
传播时延公式 d/s,与路由器间距离和传播速率(�即物理媒体)有关
因为排队时延随时间变化,分组n发送到路由器n的往返时延实际上能够比分组n+1发送到路由器n+1的往返时延更长。
吞吐量
瞬时吞吐量,指当前端系统接收到文件的速率,像下载文件时显示的速率。
瓶颈链路:指服务器和客户之间(即两个端系统)具有N条链路,这N条链路的传输速率分别为R1,R2,R3,…,Rn。我们从服务器和客户的文件传输的吞吐量只能取它们中的最小值。min{R1, R2, R3, … , Rn}。
在因特网的核心中,装备了高速率的链路,从而很少出现拥塞。但比特从服务器向目的地的流动速率仍然是在这条传输链路上吞吐量的最小值。所以,在今天的因特网中,对吞吐量的限制因素通常是接入网。
分层的体系结构的好处
可以讨论一个定义良好的、大而复杂系统的特定部分。
方便不断更新迭代。改变服务的实现而不影响该系统其他组件。
协议的分层
- 某一层协议会向它的上一层提供服务
- 每层通过在该层中执行某些动作或使用直接下层的服务来提供服务
帮助理解这2句话的一个例子是,由第n层提供的服务可能包括报文从网络的一边到另一边的可靠传送。这可能是通过使用第n-1层的边缘到边缘的不可靠报文传送服务,加上第n层的检测和重传丢失报文的功能来实现的。
一个协议层能够用软件、硬件或两者的结合来实现。
用软件实现的有:应用层协议(如HTTP、SMTP)、运输层协议。
用硬件实现的有:物理层和数据链路层
用两者相结合实现的有:网络层
五层因特网协议栈
1、 应用层
相关协议:HTTP、SMTP、FTP、DNS...
位于应用层的信息分组称为报文(message)
2、 运输层
相关协议:TCP、UDP
TCP:提供面向连接的服务,包括可靠的传输、流量控制、拥塞控制。
UDP:不提供不必要服务的服务,没有可靠性,没有流量控制、没有拥塞控制。
位于运输层的分组称为报文段(segment)
3、 网络层
相关协议:IP协议、路由选择协议
IP协议:所有具有网络层的因特网组件都必须运行IP协议
路由选择协议:有许多路由选择协议提供不同的路由选择方案
位于网络层的分组称为数据报(datagram)
4、 数据链路层
相关协议:以太网、WiFi和电缆接入网的DOCSIS协议
某些协议基于链路提供可靠传递,但不同于TCP的可靠传递。
位于数据链路层的分组称为帧(frame)
5、 物理层
相关协议:略
物理层任务是将帧中的一个一个比特从一个结点移动到下一个结点。
端系统和分组交换机的协议栈
- 端系统实现5层因特网协议栈
- 链路层交换机只实现2层(物理层、数据链路层)因特网协议栈
- 路由器只实现3层(物理层、数据链路层、网络层)因特网协议栈
报文的封装过程
1- 某个端系统的应用程序,根据相应数据转换的实现,数据变为应用层中的报文M。
2- 报文M传送到运输层后,被附上首部信息Ht,变成报文段
3- 报文段传送到网络层后,被附上首部信息Hn,变成数据报
4- 数据报传送到数据链路层后,被附上首部信息Hl,变成帧
5- 帧传送到物理层,将帧转换成比特形式在物理媒体中传输到另一个分组交换机的物理层。
报文的解封装过程是与之相反的操作,从物理层到应用层依次去掉每层附加的首部信息,再向上层传送。
但实际上报文的封装过程可以十分复杂。比如一个大报文可能被划分为多个运输层的报文段,然后这些报文段每个也可能会被划分为多个网络层数据报。
拒绝服务攻击(Denial-of-Service(DoS) attack)
Dos使得网络、主机或其他基础设施部分不能由合法用户所使用。Web服务器、电子邮件服务器、DNS服务器和机构网络都能成为Dos攻击的目标。
DoS类型
1、 弱点攻击。攻击易受攻击的应用程序或操作系统,使得服务器停止运行,或者崩溃。
2、 带宽洪泛。攻击者向服务器发送大量分组,分组数量太多使得服务器的接入链路变得拥塞,使合法的分组无法到达服务器。
3、 连接洪泛。攻击者在服务器中创建大量的半开或全开TCP连接,使合法的连接无法被接受。
带宽洪泛攻击还有升级版为分布式Dos(DDoS),攻击者会控制其他的主机(僵尸网络),向服务器发送大量分组。