计算机网络——自顶向下的方法第一章的学习
直接开始看这本书了。
第一章就是基本介绍
梗概
今天的因特网无疑是有史以来由人类创造、精心设计的最大系统,该系统具有数以亿计的相连的计算机、通信链路和交换机,有数十亿的用便携计算机、平板电脑和智能手机连接的用户,并且还有一批与因特网连接的“物品”,包括游戏机、监视系统、手表、眼 镜、温度调节装置、体重计和汽车。
第1章概述了计算机网络和因特网。这一章的目标是从整体上粗线条地勾勒岀计算机网络的概貌,并且描述本书内容的框架。这一章包括大量的背景知识,讨论大量的计算机网络构件,而且将它们放在整个网络的大环境中进行讨论。
什么是因特网
因特网(Internet)是一种特定的计算机网络,也叫“公共因特网”,也是我们俗称的公网。
什么是因特网?我们会以软硬件(具体构成)和服务两个方面来回答这个问题。
具体构成描述
因特网是一个世界范围的计算机网络,即它是一个互联了遍及全世界数十亿计算设备 的网络。在不久前,这些计算设备多数是传统的桌面PC、Linux 工作站以及所谓的服务器。
现在连接到互联网的设备种类越来越多,已经不仅仅局限于 PC,服务器和其它专用网络设备(路由器,交换机等等)。计算机网络这个术语已经有点过时了,用因特网术语来说,所有这些设备都称为主机(host)或端系统(end system)。
端系统通过通信链路(communication link)和分组交换机(packet switch)连接到一起的。
物理的通信链路包括同轴电缆、铜线、光纤和无线电频谱。当一台端系统要向另一台端系统发送数据时,发送端系统将数据分段,并为每段加上首部字节。由此形成的信息包用计算机网络的术语来说称为分组(packet)。这些分组通过网络发送到目 的端系统,在那里被装配成初始数据。
分组交换机从它的一条入通信链路接收到达的分组,并从它的一条出通信链路转发该分组。市面上流行着各种类型、各具特色的分组交换机,但在当今的因特网中,两种最著 名的类型是路由器(router)和链层交换机(link-layer switch)。这两种类型的交换机朝着最终目的地转发分组。链路层交换机通常用于接入网中,而路由器通常用于网络核心中。从发送端系统到接收端系统,一个分组所经历的一系列通信链路和分组交换机称为通过该网络的路径(route或path)
端系统通过因特网服务提供商(Internet Service Provider, ISP)接入因特网,因特网就是将端系统彼此互联,它们都运行着 TCP/IP 协议,遵守命名和地址规则。TCP (Transmission Control Protocol,传输控制协议)和IP (Internet Protocol,网际协议)是因特网中两个最为重要的协议。IP协议定义了在路由器和端系统之间发送和接收的分组格式。
服务描述
从生活上看来,我们对于网络的使用包括web冲浪,即时通信,在线游戏,视频会议等等。因为这些应用程序涉及多个相互 交换数据的端系统,故它们被称为分布式应用程序(distributed application)。重要的是, 因特网应用程序运行在端系统上,即它们并不运行在网络核心中的分组交换机中。
这里产生了一个问题:如果把因特网视为一个服务(应用程序)的话,运行在一个端系统上的应用程序怎样才 能指令因特网向运行在另一个端系统上的软件发送数据呢?因特网提供了一个套接字接口,该接口规定了运行 在一个端系统上的程序请求因特网基础设施向运行在另一个端系统上的特定目的地程序交 付数据的方式。这是发送程序必须遵守的规则,因此因特网能够将数据交付目的地。
这就好比送信,送信的时候需要写上地址,收件人,邮编,贴邮票等信息,然后通过国家提供的邮件服务系统投递到邮箱中,邮递员根据信息帮你把信件送达。
什么是协议
考虑计算机网络中另一个重要 的时髦术语:协议(protocol)。什么是协议?协议是用来干什么的?
人类活动类比
就好比你想问陌生人一个问题的时候,你通常不能直接进入主题,因为你不知道对方的信息,甚至不确定对方是否说中文。因此你试探性地说了声“你好”,此时如果他也回复“你好”,说明在语言方面你们没有障碍了,你们的协议是一样的可以通信。如果他一脸懵,那么此时就可以考虑它是否不知道中文(不支持这个协议),如果你不会其它的语言,那么你们之间无法正常交流。
网络协议
就跟两个人说话差不多,不过它们依赖于物理媒介——网络电缆。
再上面右图中,,你的计算机将向该Web服务器发送一条连接请求报文,并等待回答。 该Web服务器将最终能接收到连接请求报文,并返回一条连接响应报文。得知请求该 Web文档正常以后,计算机则在一条GET报文中发送要从这台Web服务器上取回的网页名字。最后,Web服务器向计算机返回该Web网页(文件)。
报文的交换以及发送和接收这些报文时所采取的动作是定义一个协议的关键元素:
协议(protocol)定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送和/或接收一条报文或其他事件所采取的动作。掌握计算机网络领域知识的过程就是理解网络协议的构成、原理和工作方式的过程。
网络边缘
通常我们的设备连接到网络称为 端系统,因为它们处于网络边缘。
端系统也称为主机(host)。主机有时又被进一步划分为两类:客户端(client)和服务器(server)。客户端通常是桌面PC、移动PC和智能手机等,而服务器通常是更为强大的机器,用于存储和发布Web页面、流视频、中继电子邮件等。
接入网
考虑接入网,这是指将端系统物理连接到其边缘路由器(edge router)的网络。边缘路由器是端系统到任何其他 远程端系统的路径上的第一台路由器。
家庭接入:DSL、电缆、FTTH、拨号和卫星
今天,宽带住宅接入有两种最流行的类型:数字用户线(Digital Subscriber Line,DSL)和电缆。
DSL利用电话公司现有的本地电话基础设施,而电缆因特网接入(cable Internet access) 利用了有线电视公司现有的有线电视基础设施。住宅从提供有线电视的公司获得了电缆因特网接入。。因为在这个系统中应用了光纤和同轴电缆,所以它经常被称为混合光纤同轴(Hybrid Fiber Coax,HFC)系统。
一种提供更高速 率的新兴技术是光纤到户(Fiber To The Home,FTTH),这个应该也是我们现在用的比较多的。
企业接入:以太网和WIFI
在公司和大学校园以及越来越多的家庭环境中,使用局域网(LAN)将端系统连接到边缘路由器。尽管有许多不同类型的 局域网技术,但是以太网到目前为止 是公司、大学和家庭网络中最为流行的接入技术。
一个无线LAN用户通常必须位于接入点的几十米范围内。基于IEEE 802. 11技术的无线LAN接入,更通俗地称为WIFI。
广域无线接入:3G和LTE
蜂窝移动电话,在基站几万米的范围内都可以接收发送分组。
物理媒体
主流的计算机网络的物理媒体包括以下几种
- 双绞铜线:最便宜并且最常用的导引型传输媒体是双绞铜线。一百多年来,它一直用于电话网。 事实上,从电话机到本地电话交换机的连线超过99%使用的是双绞铜线。一对电线构成了一个通信链路。无屏蔽双绞线(Unshielded Twisted Pair, UTP)常用在建筑物内的计算机网络中,即用于局域网(LAN)中。目前局域网中的双绞线的数据速率从10Mbps到10Gbps。所能达到的数据传输速率取决于线的粗细以及传输方和接收方之间的距离。
- 同轴电缆:同轴电缆由两个铜导体组成,但是这两个导体是同心的而不是并行的。借助于这种结构及特殊的绝缘体和保护层,同轴电缆能够达到较高的数据传输速率。同轴电缆能被用作导引型共享媒体(shared medium) 。特别是,许多端系统能够直接与该电缆相连,每个端系统都能接收由其他端系统发送的内容。
- 光纤:光纤是一种细而柔软的、能够导引光脉冲的媒体,每个脉冲表示一个比特。一根光 纤能够支持极高的比特速率,高达数十甚至数百Gbps。它们不受电磁干扰,长达100km 的光缆信号衰减极低,并且很难窃听。然而,高成本的光设备,如发射器、接收器和交换机,阻碍光纤在 短途传输中的应用,如在LAN或家庭接入网中就不使用它们。
- 陆地无线电信道:无线电信道承载电磁频谱中的信号。它不需要安装物理线路,并具有穿透墙壁、提供与移动用户的连接以及长距离承载信号的能力,因而成为一种有吸引力的媒体。
- 卫星无线电信道:略
网络核心
这一节我们研究因特网的主要构成。
分组交换
在网络中,端系统彼此交换报文。报文能够包含协议设计者需要的任何东西。报文可以执行一种控制功能,也可以包含数据,例如电子邮件数据、JPEG图像或MP3音频文件。为了从源端系统向目的端系统发送一个报文,源将长报文划分为较小的数据块,称之为分组(packet) 。
在源和目的地之间,每个分组都通过通信链路和分组交换机(packet switch ) 传送。(交换机主要有两类:路由器(router)和链路层交换机(link-layer switch)。)分组会被以等于该链路最大传输速率的速度传输分组。
存储转发传输
指的是传输一个分组的第一个比特之前,必须完整地接收到整个分组。
考虑由两个端系统经一台路由器连接构成的简单网络:
路由器的任务就是把一个入分组交换到一条岀链路,可以看到,此时分组部分传输到了路由器,但是此时它还不能马上转发,因为分组还没有接收完。仅当路由器已经接收完了该分组的所有比特后,它才能开始向出链路传输。
排队时延和分组丢失
每台分组交换机有多条链路与之相连。对于每条相连的链路,该分组交换机具有一个输出缓存(output buffer,也称为输出队列(output queue)),它用于存储路由器准备发往 那条链路的分组。
如果说网络请求过忙,那么有可能导致一个交换机累计了很多的分组,缓冲区满了之后再次到达的分组将出现分组丢失(丢包)(packet loss)。到达的分组或已经排队的分组之一将被丢弃。
转发表和路由选择协议
不同的计算机网络在得到了分组之后会有不同的方式完成转发,这里主要讲因特网所采用的方法。
在因特网中,每个端系统都会有一个叫“IP地址”的地址。这一部分很好理解,就是发包的时候,包中会包含目的地址,路由器收到包的时候,会查找自己的转发表(转发表是目的ip地址到输出链路的映射),发现适当的链路把分组导向该链路。
然后这里又出现了一个问题,就是这个转发表到底是怎么配置的,是网络管理员手动配置,还是它自行配置呢,配置错了又当如何处理。因特网具有一些特殊的路由选择协议(routing protocol),用于自动地设置这些转发表。例如,一个路由选择协议可以决定从每台路由器到每个目的地的最短路径,并使用这些最短路径结果来配置路由器中的转发表。
电路交换
通过网络链路和交换机移动数据有两种基本方法:电路交换(circuit switching)和分组交换(packet switching),这里就要讲另一个电路交换了。电路交换就像电话线一样,电话拨通之后,即使你不说话,这个资源也要被占用。而如果是分组交换,那么我就会按需使用这些资源,我QQ挂着并不占用网络带宽,只有我发消息的时候会占用一部分带宽。
电路交换和分组交换可以这么比喻成餐馆:一家餐馆只能接受预定,另一家餐馆则不预定,有空就可以就坐。
电路交换就像要预定的餐馆一样,预定了之后,即使它来的很晚,甚至不来,那么这个座位你也不能给别人用,你只能跟顾客抱歉说:我们已经满了,资源利用率不会特别高,但是一旦我预定成功了,那么我享受的这个服务是非常稳定的,无论我何时来,这里总有一个位置为我而留。
分组交换就像后者一样,虽然对于餐馆老板来说,最大化地利用了资源,但是保不准一些大客户可能因此被拒之门外了,服务是不稳定的。
来看看下面这个例子
这是一个典型的电路交换,主机A向主机B发送数据的时候,需要占用四条链路中的其中一条,在要收发数据的时候,预留一条通道专门给这两个主机通信,它只能获得相邻交换机最大带宽的四分之一,这是电路交换。
分组交换,该分组被发送进网络,而不预留任何链路资源之类的东西。如果因为此时其他分组也需要经该链路进行传输而使链路之一出现拥塞,则该分组将不得不在传输链路发送侧的缓存中等待而产生时延。因特网尽最大努力以实时方式交付分组,但它不做任何保证。
电路交换网络中的复用
链路中的电路是通过频分复用(Frequency- Division Multiplexing, FDM )或时分复用(Time-Division Multiplexing, TDM)来实现的。
对于频分复用来说,就是划分不同的频段来给主机使用。
对于时分复用来说,时间被划分为固定期间的帧,并且每个帧又被划分为固定数量的时隙。当网络跨越一条链路创建一条连接时.网络在每个帧中为该连接指定一个时隙。 这些时隙专门由该连接单独使用,一个时隙(在每个帧内)可用于传输该连接的数据。
分组交换与电路交换的对比
其实优缺点很明显,这里不赘述了,因特网主要采用分组交换。
网络的网络
这一节主要讲到了ISP的分层模型,个人电脑直接接入互联网所需成本过高,所以一般由国家去承担建造成本,那么国家会向第一层的ISP给钱,然后它自己能创建出许多的ISP来供运营商接入互联网(移动,联通,电信),那么电信再提供接口向个人去收费,差不多是这样一个意思。
今天的因特网是一个网络的网络,其结构复杂,由十多个第一层ISP和数 十万个较低层ISP组成。ISP覆盖的区域多种多样,有些跨越多个大洲和大洋,有些限于 狭窄的地理区域。较低层的ISP与较高层的ISP相连,较高层ISP彼此互联。用户和内容提供商是较低层ISP的客户,较低层ISP是较高层ISP的客户。近年来,主要的内容提供商也已经创建自己的网络,直接在可能的地方与较低层ISP互联。
分组交换网中的时延、丢包和吞吐量
在理想的情况下,我们在因特网传输数据都是不会有丢失的,但是实际情况往往不那么理想,这一小节主要研究时延和丢包的问题。
分组交换网中的时延概述
当分组从一个节点(主机或路由器)沿着这条路径到后继节 点(主机或路由器),该分组在沿途的每个节点经受了几种不同类型的时延。这些时延最为重要的是节点处理时延(nodal processing delay) 排队时延(queuing delay)、传输时延 (transmission delay)和传播时延(propagation delay),这些时延总体累加起来是节点总时延(total nodal delay)。
处理时延
这个就是路由器得到了分组之后,从首部剥离 IP 地址并查找转发表的处理过程。
排队时延
这个前面讲过,就是网络拥堵的时候,必须排队等候,等链路空闲再发送。
传输时延
物理上,传输数据会由一定的延迟,比如物理信道的传输速率为 v bps,我需要转发长度为 n bit的分组,那么我需要花费 $\frac{n}{v}$ 秒的时间。
传播时延
一旦一个比特被推向链路,该比特需要向路由器B传播。从该链路的起点到路由器B传播所需要的时间是传播时延。在这里,比特的传输并不会瞬间到达,而会和距离有关,一般来说,物理链路的比特传播速率接近于光速。
同样的算法,假设传播速率为 $v\ m/s$,两台路由器之间的距离为 $d\ m$,它的传播时延就是 $\frac{d}{v}\ s$。
传输时延和传播时延的比较
这里举了一个例子,两个收费站间隔 1000KM,在这条道路上,可以理解为一个链路,那么收费站门口会进行收费然后放行,假设它每秒能放行12辆车过去,那么这就好比这个高速公路的传输速率,传输速率为 12辆/s。但是我要过12辆车就真的只需要1秒(这一秒指的是传输时延)吗?其实不然,因为我车走过这个高速公路也需要一定的时间。这里所用的时间就可以理解为传播时延了。
排队时延和丢包
排队时延
这里讲到了一个论,就是流量强度的计算,假设路由器每秒有a个分组到达,每个分组长 L 比特,而路由器链路的传输速率为 $R\ bps$,那么流量强度 $\sigma=\frac{La}{R}$ 当比值大于 1 的时候,显然包会堆积在这台路由器中,排队时延无穷大,实际上等于 1 的时候也是这样,虽然不知道为啥,只有小于1的时候才能保证低排队时延。
经过求证,知道一二了,这里的速度是平均速度,而包到达的过程是随机过程符合泊松分布,流量速度会存在激增,因此会的到一个无穷大的时延。
丢包
当到达路由器的时候,之后到达的分组将发现一个满的队列。由于没有地方存储这个分组,路由器将丢弃(drop)该分组,即该分组将 会丢失(lost) 。
而这个分组对于源主机来说已经传到了因特网中,但是它永远不会到达目的主机,因为他已经被丢弃了,而丢失的分组我们可能需要重传。
端到端时延
考虑两个端系统之间的时延,实际就是所经过路由器的传输时延,传播时延,处理时延,排队时延的总和,假设网络无拥堵,那么此时排队时延可以忽略不计。
traceroute
这个命令可以查看自己到目的主机所经过的路由。
端系统、应用程序和其他时延
有一种是有意地时延,为了便于传输某些共享媒体,这个后面的章节会探讨到。
另一种是媒体分组化时延,这能够影响用户在使用在线对话时的质量。
计算机网络中的吞吐量
熟悉起来了,感觉跟之前的网络流算法差不多,当拓扑比较特殊的时候,可能会存在一个瓶颈链路限制整个网络的吞吐量。
协议层次及其服务模型
分层体系结构
这里举了一个例子就是我们坐飞机的时候,它的服务也是分层的。在计算机看来,我们想给另一个计算机发送一句话 hello
,这是我们的目的。对应成坐飞机就是我们想要我们的人去到指定的地方。
但是我们自己肯定是不能一个人独自通过天空的航道的,我们需要搭乘飞机,在搭乘飞机之前我们也不是直接就能上去的,上去之前要托运行李,安检,登机等等的环节,并且我们坐飞机最少不了的步骤就是购票了。
书上使用了这张图
那么分层一下大概就是这样的:
协议分层
为了给网络协议的设计 提供一个结构,网络设计者以分层(layer)的方式组织协议以及实现这些协议的网络硬件和软件。
低层次的协议为高层次的协议提供服务,第n层提供的服务可能是一个可靠交付,但是需要依靠 n-1 层的不可靠交付和 n 层的出错重传机制实现的。一个协议层能够用软件、硬件或两者的结合来实现。诸如HTTP和SMTP这样的应用 层协议几乎总是在端系统中用软件实现,运输层协议也是如此。
将这些综合起来,各层的所有协议被称为协议栈(protocol stack)。因特网的协议栈由5个层次组成:物理层、链路层、网络层、运输层和应用。
应用层
在这一层中有很多我们会直接用到的协议。比如说我们平时冲浪用到的 http 协议,发送邮件用到的 SMTP 协议,传输文件用到的 FTP 协议,以及完成域名地址解析的 DNS 协议。
我们把位于这一层的信息分组称为 报文。
运输层(传输层)
这一层中有两个主要协议:TCP 协议和 UDP 协议,我们把传输层的分组称为报文段。
TCP 提供了面向连接的服务,这种服务包括了了应用层报文向目的地的确保传递和流量控制。TCP 也将长报文划分为短报文,并提供拥塞控制机制,因此当网络拥塞时,源抑制其传输速率。
UDP 协议向它的应用程序提供无连接服务。这是一种不提供 不必要服务的服务,没有可靠性,没有流量控制,也没有拥塞控制。
网络层
这个地方的分组称为数据报(datagram)的网络层分组从一台主机移动到另一 台主机。上层除了将报文段传到网络层之外,还需要向网络层递交目的地址。
网络层的著名协议就是网际协议 IP,该协议定义了在数据报中的各个字段以及端系统和路由器如何作用于这些字段。除此之外,因特网具有许多路由选择协议,但是我们依然经常称网络层为 IP 层,这反映了 IP是将因特网连接在一起的黏合剂这样的事实,所有工作在网络层的设备必须运行 IP,也必须被分配一个 IP 地址。
链路层
我们把链路层分组称为帧(frame),网络层会把数据报下传给链路层。可以通过链路层提供可靠的传递。链路层的例子包括以太网、WiFi和电缆接入网的DOCSIS协议,而一个数据报可能被沿途不同链路层的协议处理。
物理层
物理层的任务 是将该帧中的一个个比特从一个节点移动到下一个节点,在这层中的协议仍然是链路相关 的,并且进一步与该链路(例如,双绞铜线、单模光纤)的实际传输媒体相关。物理层基于物理媒介会有不同的协议:一个是关于双绞铜线的,另一个是关于同轴电缆的,还有一个是关 于光纤的,等等。在每种场合中,跨越这些链路移动一个比特是以不同的方式进行的。
OSI模型
OSI模型把应用层拆分,多了会话层和表示层。表示层的作用是使通信的应用程序能够解释交换数据的含义,会话层提供了数据交换的定界和同步功能,包括了建立检查点和恢复方案的方法。
这引发了一个问题,如果一个应用程序需要该层次的服务该怎么办呢?那就是留给应用程序开发者处理。应用程序开发者决定一个服务是否是重要的,如果该服务重要,应用程序开发者就应该在应用程序中构建该功能。
封装
首先来看这样的一张链路:
主机实现了整个五层的协议,而路由器只实现到网络层,交换机只实现到链路层。
这张图也说明了一个重要的概念——封装,在一到四层中,它们的分组包含两个字段,一个是来自上层提供的有效荷载字段,另一个是自己添加的首部字段。
对于运输层来说,有效荷载字段就是 M,首部是 $H_t$
对于网络层来说,有效荷载字段是 $M+H_t$,首部是 $H_n$
面对攻击的网络
网络存在着一个阴暗面,其中的“坏家伙”试图对我们的日常生活进行破坏,如损坏我们与因特网相连的计算机,侵犯我们的隐私以及使我们依赖的因特网服务无法运行。
我们主要聊聊计算机如何受到攻击以及当今最流行的攻击类型。
通过恶意程序
因为我们会向因特网收发数据,我们有可能下载到一些恶意的东西,这些恶意的东西可统称为恶意软件 (malware),它们能够进入并感染我们的设备。一旦恶意软件感染我们的设备,就能够做 各种不正当的事情,包括删除我们的文件,安装间谍软件来收集我们的隐私信息。我们的受害主机也可 能成为数以千计的类似受害设备网络中的一员,它们被统称为僵尸网络(botnet)。
至今为止的多数恶意软件是自我复制(self-replicating)的:在感染一台主机后,会通过网络试图感染其它主机。以这种方式,自我复制的恶意软件能够指数式地快速扩散。恶意软件能够以病毒或蠕虫的形式扩散。
主要有两种形式的恶意软件,一种是病毒,一种是蠕虫。
- 病毒(virus)是一种需要某种形式的用户交互来感染用户设备的恶意软件,比如通过病毒发送一封带有恶意软件的附件,你不小心打开了之后就中了该病毒,并可能通过邮件服务再次发送给其它通信录的好友。
- 蠕虫(worm)是一种无须任何明显用户交互就能进入设备的恶意软件,一般是主机开了某样容易被攻击的服务,导致被别有用心的人进入并运行了蠕虫程序。
通过攻击网络基础设施
另一种类型的安全性威胁是拒绝服务攻击(Denial-of・Service ( DoS) attack),DoS攻击使得网络、主机或其他基础设施部分不能由合法用户使用。
大多数因特网DoS攻击属于下列三种类型之一:
- 弱点攻击,就是发现服务的漏洞,构造合适的请求使得服务无法正常使用。
- 带宽洪泛。攻击者向目标主机发送大量的分组,分组数量之多使得目标的接入链路变得拥塞,使得合法的分组无法到达服务器。
- 连接洪泛。攻击者在目标主机中创建大量的半开或全开TCP连接(将在第3章中讨论TCP连接)。该主机因这些伪造的连接而陷入困境,并停止接受合法的连接。
带宽洪泛比较好理解,就是通过占满该服务器的带宽导致其它正常到达服务器的包拥塞,使得无法为正常用户提供服务,如果服务器带宽为 R bps,那么攻击者将需要以大约 R bps的速率来产生危害。
但是服务器的性能普遍较高,单一的攻击机器可能无法产生如此大的流量伤害服务器。并且如果所有流量都从同一个源出发,那最终到达服务器的流量受限于中间链路的最小带宽。基于Dos攻击,出现了分布式 Dos (Distributed DoS, DDoS)攻击。
DDoS攻击充分利用由数以千计的受害 主机组成的僵尸网络,相比于来自单一主机的DoS 攻击,DDoS攻击更加难以检测和防范。
通过分组嗅探
你并不能保证数据是否被链路中的某个设备监听,你所请求的数据可能会被别有用心的人获取,如果在登录请求的时候没有经过合理的数据处理,那么用户名和密码将被暴漏无遗。
通过伪装成信任的人
通过IP欺骗(IP spoofing),我们可以达到一些目的。举个简单的例子,一个主机(2.2.2.2
)它只会执行来自 1.1.1.1
机器的命令,然后我构造了一个包,去请求 1.1.1.1
的某个服务,又修改了自己的源 IP 地址为 2.2.2.2
,如果 1.1.1.1
的执行结果可以被我们控制,那么我们就能间接控制 2.2.2.2
了,因为它对 1.1.1.1
完全信任。
为了解决这个问题,我们需要采用端点鉴别,即一种使我们能够确信一个报文源自我们认为它应当来自的地方的机制。因为一开始的因特网建立在互相信任的基础上,但是,今天的用户仍然需要通信,当他们不必相互信任时,他们也许希望匿名通信,也许间接地通过第三方通信……总之,会遇到很多安全性的问题。我们应当记住:在相互信任的用户之间的通信是一种例外而不是规则。
计算机网络和因特网的历史
分组交换的发展:1961〜1972
当时以电话为主要通信工具,电话使用的是电路交换,当时有三个研究组首先发明了分组交换作为电路交换的替代品。
因特网的雏形 ARPnet 出现,在ARPAnet端系统之间的第一台主机到主机协议一一称为网络控制协议(NCP)。
1972年出现了第一个电子邮件程序。
专用网络和网络互联:1972〜1980
这个时候出现了很多种类型的网络,网络的数目开始激增,人们开始研究怎么使这些网络互联起来。
这个时间段,三个互联网的主要协议(TCP,UDP,IP)已经初备雏形。
网络的激增:1980 -1990
网络开始进入家庭。1983 年1月1日见证了 TCP/IP 作为 ARPAnet 新的标准主机协议的正式部署,替代了 NCP协议。
因特网爆炸:20世纪90年代
这个时候主要出现了万维网(World Wide Web)应用程序。因特网此时已经支持上百种应用程序,最受欢迎的是:
- 电子邮件,包括附件和Web可访问的电子邮件。
- Web,包括Web浏览和因特网商务。
- 即时讯息(instant messaging),具有联系人列表。
- MP3的对等(pee-to-peer)文件共享,由Napster开仓I」。
最新发展
自2000年开始,我们见证了家庭宽带因特网接入的积极部署——不仅有电缆调制解调器和DSL,而且有光纤到户。
告诉公共WIFI的出现不仅使得运动中保持持续的连接成为可能,还产生了基于位置的应用服务。
社交网络的兴起,网络社交已经逐渐称为生活中的一部分。
云应用的发展。
小结
本章大概讲了计算机网络的概念,分层模型,和计算机发展历史以及面临的威胁。
课后练习
R1.“主机”和“端系统”之间有什么不同?列举几种不同类型的端系统。Web服务器是一种端系统吗?
没有不同,只是两种不同的叫法。智能手机、电脑、电视、WEB服务器、游戏机等等。WEB服务器也是一种端系统。
R2.“协议”一词常被用于描述外交关系。维基百科是怎样描述外交协议的?
类似合同的一种东西。
R3.标准对于协议为什么重要?
就像和人交流一样,交流需要双方都会一种语言,对于计算机而言,交流需要两台计算机实现相同的协议,以至于在这台计算机表达的意思在另一台计算机上不会出现歧义。
R4. 列出6种接入技术。将它们分类为住宅接入、公司接入或广域无线接入。
- 住宅接入:DSL(数字用户线)、电缆、FTTH(宽带到户)、拨号和卫星
- 公司接入:以太网和WiFi
- 广域无线接入:3G和LTF
R5. HFC宽带是专用的,还是用户间共享的?在下行HFC信道中,有可能发生碰撞吗?为什么?
用户共享的,在下行通道中,所有的分组都是由单独的端系统发出,所以不会发生碰撞。
后面的都不太会了……后面再来看看。