六 计算机网络和因特网
6.1 引言
一个将世界上几十亿台计算机互相连接的系统,我们对因特网的认识不应该是一个单独的网络, 而是一个网络结合体,一个互联网络。
6.1.1 网络
网络是一系列可用于通信的设备相互连接构成的。
设备由如下 1. 主机(终端),如台式机、笔记本电脑、工作站、手机等
连接设备路由器:将一个网络与另一个网络相连交换机:将不同设备连接在一起调制调节器:可以改变数据形式
局域网
局域网(LAN
): 通常是与单个办公室、建筑或校园内的几个主机相连的私有网络在一个局域网中,每台主机都有作为这台主机在局域网中唯一定义的一个标识和一个地址一台主机向另一台主机发送的数据包中包括源主机和目标主机的地址广域网
局域网的大小通常是受限的,跨越一个办公室、一座大楼或一个校园,而广域网的地理跨度更大, 可以是一个城镇、一个州、一个国家,甚至横跨世界局域网将主机相连,广域网则将交换机、路由器或调制调节器之类的连接设备互连局域网为机构私有,广域网则由通信公司创建并运营点对点广域网:通过传输媒介(电缆或无线)连接两个通信设备的网络交换广域网:至少两个端的网络,交换广域网用于当今全球通信的骨干网, 是几个点对点广域网通 过开关连接产生的结合体互联网
两个或多个网络(通常是局域网和广域网)相互连接时,它们构成一个互联网络(网际网)
6.1.2 因特网
因特网:成千上万个互联网络组成
骨干网:在顶层,为通信公司拥有,通过一些复杂的交换系统相互连接, 这些交换系统称为网络对等汇点供应商网络:在第二层,规模较小的网络,付费使用骨干网上的一些服务,与骨干网相连, 有时也连接其他供应商网络客户网络:在边缘,真正使用基于因特网服务的网络,向供应商网络付费得到服务骨干网和供应商网络也被称为因特网服务供应商(ISP
): 骨干网被称为国际因特网服务供应商供应商网络被称为国内或地域性因特网服务供应商
6.1.3 硬件和协议
因特网是通过连接设备将大大小小的网络互相交织在一起构成的基本结构。 然而,如果仅仅将这些部分连接在一起,很明显什么都不会发生。为了产生沟通, 既需要硬件也需要软件设备。这就像当进行一个复杂的计算时, 我们同时需要计算机和程序。这些硬件和软件的组合是如何通过协议分层来互相配合的。
6.1.4 协议分层
协议:定义了发送器、接收器以及所有中间设备必须遵循的以保证有效通信的规则协议分层:简单的通信可能只需要一条简单的协议,当通信变得复杂, 可能需要将任务分配到不同的协议层,那么在每一个协议层都需要一个协议情景
协议分层可以将大任务简化成几个更小、更简单的任务
优点:可以将服务和实施分开,每层使用更低层的服务,并向较高一层提供服务
分层原则
第一条原则:要达到双向通信,需要保证每一个协议层都可以进行两个对立且方向相反的工作第二条原则:两个站点中每一层的两个对象必须完全相同逻辑连接
发送该协议层创建的对象是基于每层的逻辑(假想的)连接, 逻辑连接可以帮助我们更好地理解在数据通信和建立数据关系网络中遇到的分层工作
6.1.5 TCP/IP协议族
因特网中使用的协议集(一组通过不同分层进行组织的协议)被称为TCP/IP
协议族TCP/IP
协议族是一个分层协议,由特定功能的交互式模块组成,每一个高层协议都基于一个或多个底层协议提供服务
分层架构
为了展示TCP/IP
协议族中的分层是如何在两台主机通信中的作用, 我们假设使用一个由3
个LAN
构成的小网络,且链路层开关与每个LAN
相连, 同时这些链接都与同一个路由器相连
计算机A
与B
进行通信,共有5
个设备:源主机A
、链接1
中的链路层开关、 路由器、链接2
中的链路层开关、目标主机B
每个设备涉及的层组都由其在网络上扮演的角色所涉及的层组决定, 两台主机涉及5
个协议层,源主机A
在应用层创建消息通过协议层向下发送到物理层,目标主机B在物理层接收消息,通其他协议层发送至应用层路由器只涉及3
个层,路由器只用来路由,没有传输层和应用层链路层开关只涉及2
个层:数据链路层和物理层
地址和数据包名称
任何涉及两步校验的通信需要两个地址:源地址和目标地址
每个协议层都需要一组地址,但物理层不需要地址,因为物理层的数据交换的单位是位
, 无法得到地址
应用层:使用名称来定义提供服务的站点,如或邮箱地址等传输层:地址被称为端口号,端口号作用是在源和目标之间定义应用层程序,通过各程序的本地地址 来区分多个同时运行的本地程序网络层:在整个因特网范围是全球化的,独一无二地定义了该设备与因特网的连接链路层:有时称为MAC地址,每个链路层地址在计算机网络中定义一个特定的主机或路由器
6.2 应用层
TCP/IP
协议族的第5
层叫做应用层。应用层向用户提供服务。 通信由逻辑连接提供; 也就是说,假设两个应用层通过之间假想的直接连接发送和接收消息。
6.2.1 提供服务
应用层与其他层不同的地方在于,它是协议族中的最高层。在这层中的协议不向其他协议提供服务, 它们只接收在传输层的协议提供的服务。这意味着该层的协议可以轻易去除。 只要新的协议可以使用传输层中任意一个协议提供的服务,这个新的协议就可以添加到应用层上。
特点1. 不向其他层提供服务,只接受传输层提供的服务 2. 应用层协议只要可以使用传输层,就可以添加到应用层
6.2.2 应用层模式
客户机-服务器模式(Client/Server 模式)
较为传统的模式叫做客户机-服务器模式。在这种模式中,服务提供者是一个应用程序, 叫做服务器进程,这个进程一直持续运转,等待另一个叫做客户端进程的应用程序通过因特网连接要求服务。
通常一些服务器进程可以提供某特定种类的服务,但是向这些服务器进程请求服务的用户会很多, 因此很多服务器进程需要一直运行,而客户端进程只在需要时运行。
不能把客户端程序当成服务器程序运行,反之亦然
传统服务1. 万维网(www
)和它的超文本传输协议(HTTP
)、
文件传输协议(FTP
)安全外壳协议(SSH
)邮件服务
端到端模式(P2P模式)
端到端模式(通常缩写为P2P模式)是一个新的模式;在这种模式中,不需要一个一直运行 并等待客户端进程连接的服务器进程。这个责任是在端与端之间共享的。 一台与网络相连接的计算机可以在一个时间段提供服务又在另一个时间段接收服务。 一台计算机甚至可以在同一时间提供和接收服务
特点1. 不需要服务器进程 2. 可以在同一时间提供或接收服务 3. 容易扩展,不需要专门的服务器,分散服务器压力,成本低 4. 安全性差 5. 适应性差
6.2.3 标准化C/S应用 -- web与超文本传输协议
万维网和超文本传输协议
Web
是具有连接分布在世界各地的文档中信息的存储库。
分布式
分布在世界上的每一个Web
服务器都可以往这个存储库中添加新的网页超文本
文档中链接的另一个文档,可以检索到被链接的文档,编辑这种文档的语言称为HTML
(超文本标记语言)站点
客户通过浏览器访问服务器的服务,提供的服务分布在许多地方,称为站点网页
每个站点存储一个或多个文档称为网页,每个网页之间可以通过超文本进行链接
客户端(浏览器)
浏览器由三部分组成: 1. 控制器:接收键盘或鼠标的输入,使用客户端程序存取文档,在文档被存取后, 控制器使用一个解释器在屏幕上显示文档
客户端协议:HTTP协议、FTP协议等解释器:HTML、Java、JavaScript等
服务器
存储网页,每当客户端请求到达时,相应的文档会发送至客户端
统一资源定位器(URL)
作为文件,网页需要唯一的标识来区分
URL
的4个标识符: 1. 协议:HTTP、FTP等 2. 主机:服务器的IP地址或域名 3. 端口号:服务器应用程序的预定义的16位整数 4. 路径:在服务器操作系统中文件目录和名字
统一资源定位器(URL
)使用3
种不同的分隔符将4
个部分分隔 1.protocol://host/path
大多数情况使用
protocol://host:port/path
当需要端口号时使用
UR
L示例 *http://redirect./rd
/sgo
超文本传输协议(HTTP
)
是用来定义如何编写C/S
程序以便于从网络中检索网页的协议,HTTP
客户端发送请求, 服务端返回响应,服务端使用的默认端口号为80
,而客户端使用临时端口。
6.2.4 标准化C/S应用 -- 文件传输协议 FTP
文件传输协议(FTP
)是TCP/IP
提供的标准协议,用于从一台计算机复制文件到另一台计算机。 虽然从一个系统到另一个系统的文件传输看起来简单直接,但有些问题必须首先处理。
两个系统可能使用不同的文件命名约定。两个系统也可能有不同的方式表示数据。两个系统有不同的目录结构。客户端有三部分组成:用户接口、客户端控制进程、客户端数据传输进程服务端有两部分组成:服务器控制进程、服务器数据传输进程控制连接建立在控制进程间,数据连接建立在数据传输进程间
命令和数据的分开传输使得FTP效率更高。 控制连接使用非常简单的通信规则,一次只需传输一行命令或一行响应。 另一方面,数据连接需要更复杂的规则,因为传输的数据是多种多样的。
两个连接的生命周期
控制连接: 在整个交互式FTP
会话中都保持打开数据连接: 为每个文件传输打开和关闭每次涉及使用文件传输命令时,它就打开文件传输结束后,它就关闭6.2.5 标准化C/S应用 -- 电子邮件
电子邮件(electronic mail
或e-mail
)允许客户交换信息。
电子邮件被认为是一个单向事务。
Alice
发给Bob
的一封简单邮件的过程需要9
个不同步骤。Alice
和Bob
使用了三个不同的代理程序: 1. 用户代理(UA
)
信息传送代理(MTA
)信息访问代理(MAA)。
当Alice
需要向Bob
发送信息时 1. 她运行用户代理程序,准备信息,
然后发送信息到她的邮件服务器。在Alice
处的邮件服务器使用队列来存储信息,等待发送。信息需要通过网络从Alice
的MTA
客户端 处传到Bob
的MTA
服务端处。在由Bob
的MTA
服务端存储到邮箱(服务器硬盘的一部分,一个有权限限制的特殊文件。 只有邮箱的主人可以进入它)中
当Bob
需要阅读Alice
发生来的邮件时
在Bob
处的 用户代理 允许Bob
阅读收到的邮件。然后Bob
使用一个MAA
客户端从第二服务器上运行的MAA
服务器检索邮件。当邮件检索成功后,展示给Bob
阅读
6.2.6 标准化C/S应用 -- TELNET和SSH
TELNET
(Terminal Network)终端网络,最早的远程登录协议之一TELNET
以明文的(没有加密)发送所有数据,包括密码,不安全SSH
(安全外壳)是一个可以用作多个目的(如远程登录和文件传输)的安全应用程序 最初是为了替代TELNET而设计
6.2.7 标准化C/S应用 -- 域名系统DNS
使用IP
地址唯一的标识主机与网络之间的连接,但是我们更愿意使用名字而不是数字化的地址, 需要一个可以将名称映射到地址的目录系统中央目录系统早期中央目录系统承担所有的映射工作,随着计算机网络的发展, 中央目录系统压力很大,一旦出现故障,整个通信网络就会瘫痪。
分布式目录系统
将目录映射的工作分布到世界上的很多专门的计算机上
示例,文件传输
用户将 主机名 传递给文件传输客户端。文件传输客户端将 主机名 传递给 域名系统客户端。每台计算机在启动之后得知一台域名系统服务器的地址。
域名系统客户端 发送消息 和 查询给域名系统服务器, 查询利用已知的域名系统服务器的IP
地址命名文件传输服务器。
域名系统服务器给出需要的文件传输服务器的IP
地址。域名系统客户端将IP
地址传输给文件传输服务器。文件传输客户端现在使用得到的IP
地址访问文件传输服务器。
命名空间
可以把每一个IP
地址映射到一个唯一的名称上,因为IP
地址是唯一的,所以名称也必须唯一, 这些名称通过分层进行组织
分层的命名空间第一部分定义组织的本质第二部分定义组织的名称第三部分定义组织中的部门 ...
网络中的域名系统
在网络中,域名空间(树)分为三个不同部分
一般域国家域反向域: 作用是设置IP
地址时找到该主机的名称,由于随着网络的快速发展, 跟踪反向域变得极为困难,已不再使用
一般域
根据注册主机的一般行为对它们进行定义,树上的每个节点定义一个域, 一般域的第一层允许14
个可能的标签
国家域
使用两个字符组成的国家缩写(如us
为United States
缩写,ch
为China
的缩写)
第二个标签是可以编制的,也可以是更特定的国别称号, 如美国用州的缩写作为国别缩写us的细分(如ca.us
)
6.3 传输层
TCP/IP
协议族中的传输层位于应用层和网络层之间, 它从 网络层接收服务并且 为应用层提供服务。
传输层作为一个客户程序和服务器程序之间的联络,是一个过程间连接。
它是一个在网络中从一点向另一点进行数据传输的 端与端之间 逻辑媒介。
6.3.1 传输层服务
进程间通信
传输层的第一个义务是提供进程间通信。 一个进程是使用传输层服务的应用层实体(运行中的程序)。
传输层的责任是将消息送抵相应的进程
地址:端口
作用: 是用于区分进程
在主机上的进程叫做客户程序,客户程序需要来自通常运行在远程主机上的进程提供的服务,
运行在远程主机上的进程叫做服务器程序。这两个进程(客户和服务器程序)有着相同的名称。
为了通信,我们必须定义本地主机、本地进程、远程主机和远程进程。
本地主机和远程主机用IP
地址进行定义。定义进程,使用到了端口号
在TCP/IP
协议族中,端口号是0
到65535
(16
位)之间的整数。
用来定义客户程序的端口号叫做临时端口号。临时这个词的意思是短命的, 用在这里是因为客户程序的使用寿命通常很短。临时端口号建议使用大于1023
的数。
服务器程序也必须定义一个端口号。这个端口号不可以随机选择。TCP/IP
协议族已经决定给服务器使用通用端口号,这些端口号被称为知名端口号。
每一个客户进程知道相应服务器进程的知名端口号。
6.3.2 传输层协议
讨论两种传输层协议:UDP
(用户数据报协议) 和TCP
(传输控制协议)。
用户数据报协议(UDP协议)
不可靠的无连接传输协议,是一个极其简单同时开销最少的协议。
除了提供进程间通信外,没有想网络层添加任何东西
用户数据报(UDP数据包)有一个固定大小为8
字节的头由于UDP
用户数据报是存储在总长度为65535
字节的IP
数据报中的,所以整体长度比较短
传输控制协议(TCP协议)
传输控制协议(TCP
)是一个面向连接的可靠协议。 它明确地定义了连接设施、数据传输和连接拆卸段以提供面向连接的服务。
面向连接的服务: 指的是在(来自应用层的)同一消息中的所有数据包(段)之间有连接(关联)。TCP
使用序列号来定义段的顺序。序列号与每一段的字节数有关。
例如: 在一个6000
字节的消息中,第一段的序列号是0
,第二段的序列号是2000
, 第三段的序列号是4000
(实际过程更复杂,我们尝试对其进行了简化)。
如果一段丢失了,接收者会持有另外两段直到发送者重置丢失的那段。
端
TCP
协议将一些字节组合成一个叫做段的数据包, 在每一段之前加上一个头(目的是方便控制),并将这些段发送到网络层进行传输, 这些段都封装在IP
数据报 中
6.4 网络层
TCP/IP
协议族中的网络层负责源到目的地(计算机到计算机 或 主机到主机)的消息发送。
负责源主机到目的主机的数据传输
6.4.1 网络层服务
打包
在源主机的网络层数据包中封装有效负荷(从上一层接收的数据), 并且从来自目的主机网络层的数据包中解封有效负荷
负责将数据包从发送者 送至 接收者,同时保证数据包的内容不被改变传输层的有效负荷 可以 封装在多个 网络层数据包中源网络层协议从 传输层协议接收数据包,添加包含源地址和目标地址以及其他网络层协议所需信息的头。网络层协议在逻辑上将该数据包传递至目标处的网络层协议。目标主机接收网络层数据包,解除有效负荷的封装并将其传输至上一层协议。
数据包传递
网络层的数据包传递是无连接且不可靠的
不可靠传递: 数据包可能毁损、丢失或者重复无连接传递: 网络层对每个数据包的处理是单独的。
路由
网络层为将数据包从源主机传输到目的主机负责
网络层在可能的路由路线中找到最优路线,需要一些特定的策略来定义最优路线
6.4.2 网络层协议
网络层有很多协议,但最主要的协议是网际协议(IP
协议), 其他协议都是辅助协议,帮助IP
完成职责
两类网络协议:IPv4
和IPv6
IPv4
用来标记每个设备和互联网之间的连接的标识符,也叫作网络地址, 是一种32
位的地址,唯一但 又通用地定义了主机或路由器与网络之间的连接
IP
地址是连接的地址而非主机或路由器的地址,当一个设备移到另外的网络中,它的IP
地址可能会改变
IPv4
地址是独一无二的,每个地址定义一个且只有一个设备与网络之间的连接, 如果一个设备(如路由器)有多个网络连接,那么就有多个IPv4
地址。
IPv4地址的三种表示法1. 以二进制表示法
`8`位为一组
带点的十进制表示法
将每组二进制转为十进制十六进制表示法
四位二进制对应一位十六进制
IPv4地址分级1. 地址的第一部分叫做前缀,定义网络
地址的第二部分叫做后缀,定义节点(设备和网络的连接)
前缀和后缀的长度取决于网络(组织)的站点
IPv4数据报*IP
使用的数据包叫做数据报,数据报是一种长度不一的数据包
数据包包括两部分
头: 长度是20~60
字节,包含路由和传递时必要的信息有效负荷(数据)
IPv6
扩大IPv4
的地址空间,同时重新设计IP
数据包的格式,并修改一些辅助性协议
IPv4
地址最大能够表示 $2^32$ 台网络设备
IPv6地址*为了防止地址耗尽,IPv6
使用128
位来定义任何连接到网络中的设备
IPv6地址显示为二进制或冒号十六进制的格式
二进制用于计算机的存储十六进制用于人们的使用
IPv6地址分级* 站点(组织)
子网到主机的连接
6.5 数据链路层
TCP/IP
协议没有定义数据链路层中的任何 协议
源和目标主机只包含一个数据链路层,每个路由器有两个数据链路层
6.5.1 节点和链接
* 节点:主机和路由器看作节点
链接:节点之间的网络看作链接
数据链路层的通信是节点对节点的
连接节点的链接不是LAN
就是WAN
。
6.5.2 局域网LAN
局域网可以是有线或无线网络
有线LAN
: 以太网
以太网的发展经历了4个阶段: * 标准以太网(10Mbps
,每秒一千万位)
快速以太网(100Mbps
)千兆以太网(1Gbps
)万兆以太网(10Gbps
)
数据数率(每秒传输的位数),每一阶段都增加了10
倍
这些位不是一个接一个发送的,每组数据都被打包起来称为帧
包含负荷(数据)源地址(6
字节)目的地址(6
字节)数据类型(2
字节)循环校验位(4
位,校验数据完整性)
无线LAN
: 无线以太网和蓝牙* 使用空气作为传输媒介,通过电磁波传播
无线以太网(WiFi,wireless fidelity)定义了两种服务:基本服务集(BSS)和扩展服务集(ESS)蓝牙 用于连接不同功能的设备,如电话、笔记本、照相机、打印机等蓝牙发覆盖范围有限应用:无线鼠标、无线键盘、蓝牙音箱等
6.5.3 广域网WAN
有线广域网:点对点 或 交换式 1. 点对点无线WAN
拨号上网服务拨号网络或连接使用电话网络提供的服务来传输数据对数字化数据通信的需求导致了拨号调制解调器的发明调制调节器: 信号调制器 和 信号解调器, 调制器通过数据制造信号解调器从调制信号中恢复数据数字用户线路(DSL)
在传统调制解调器达到它们的最高数据速率后,电话公司开发出的另一种技术,来提供高速网络连接DSL
技术是一系列通过不同的首字母区分的技术(ADSL、VDSL、HDSL和SDSL)ADSL
(非对称数字用户线路): 在下游方向(从网络到居民)比在上游方向(从居民到网络)提供更快的速度
无线WAN
WiMax
(全球互联接入)
它提供两种服务(固定WiMax)将主要工作站与固定工作站或移动电话之类的移动工作站相连接手机网络卫星网络
6.6 物理层
将从数据链路层接收的位 转换 成用于传输的电磁信号,信号通过媒介进行传输
6.6.1 数据和信号
在 物理层 的通信是节点对节点的,但是节点交换的是电磁信号
模拟数据和数字数据* 模拟数据: 连续的信息
数字数据: 垦现的是离散的值
* 模拟信号: 在一个时间段中有无限种不同的等级强度
数字信号: 可以只拥有有限个定义的值,每个值可以是任意数字
6.6.2 数字化传输
数数转换技术: 将数字数据转换为数字信号的方法
模数转换技术: 将模拟数据转换为数字信号的方法
6.6.3 模拟传输
数模转换技术:基于数字数据的信息改变模拟信号的某个特征的过程
模模转换技术:基于模拟数据的信息改变模拟信号的某个特征的过程
6.7 传输介质
在物理层产生的电子信号需要传输介质来从一端传输到另一端。 传输介质通常在物理层之下,并且受到物理层的直接控制
在电信中,传输介质可以分为两大类:导向介质和无导向介质。 * 导向介质包括双绞线、同轴电缆和光纤。
无导向介质是自由空间。