《计网:自顶向下》读书笔记(一)——计算机网络与因特网
1.1 什么是因特网
1.1.1 具体构成描述
所有被联向因特网的设备都称为主机(host)或端系统(end system)。
端系统通过通信链路(communication link)和分组交换机(packet switch)连接到一起。不同的链路以不同的速率传输数据, 链路的传输速率是以bps度量的。当一台端系统有数据要向另一台端系统发送时,发送端系统将数据分段,并为每段加上首部字节,由此形成的信息包称为分组(packet)。
分组交换机的两种最著名的类型是路由器(router)和链路层交换机(link-layer switch),它们朝着最终目的的转发分组。
端系统通过因特网服务商(Internet Service Provider,ISP)接入因特网。
端系统、分组交换机和其他因特网部件,都要运行控制因特网中信息接收和发送的一系列协议(protocol)。TCP(Transmission Control Protocol,传输控制协议)和IP(Internet Protocol,网际协议)是因特网中两个最为重要的协议。
有许多专用网络,其内主机不能与其外主机交换信息,这些专用网络被称为内联网(intranet)。
1.1.2 服务描述
与因特网相连的端系统提供了一个应用程序编程接口(Application Programming Interface,API),规定了运行在一个端系统上的软件请求因特网基础设施向运行在另一个端系统上的特定目的软件交付数据的方式。因特网API是一套发送软件必须遵循的规则集合。
1.1.3 什么是协议
一个协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及在报文传输和/或接受或其他事件方面所采取的的动作。
1.2 网络边缘
1.2.1 客户机和服务器程序
客户机程序(client program)是运行在一个端系统上的程序,它发出请求,并从运行在另一个端系统上的服务器程序(server program)接收服务。客户机-服务器因特网应用程序是分布式应用程序(distributed application),客户机程序和服务器程序通过因特网互相发送报文而进行交互。
越来越多的应用程序是对等(peer-to-peer,P2P)应用程序,其中的端系统互相作用并运行执行客户机和服务器功能的程序。
1.2.2 接入网
接入网(access network)是将端系统连接到其边缘路由器(edge router)的物理链路。
- 住宅接入(residential access),将家庭端系统与网络相连。
一种住宅接入形式是通过普通模拟电话线用拨号调制解调器(dial-up modem)与住宅ISP相连。新型宽带接入技术为住宅用户提供了更高的比特速率,也为用户提供了一种接入因特网的同时还能打电话的手段,主要有两种常见类型:数字用户线(digital subscriber line,DSL)和混合光纤同轴电缆(hybrid fiber-coaxial cable,HFC)。 - 公司接入(company access),局域网通常被用于连接端用户与边缘服务器。
- 无线接入(wireless access):无线局域网(wireless LAN)和广域无线接入网(wide-area wireless access network)。
1.2.3 物理媒体
物理媒体(physical media)分为导引性媒体(guided media)和非导引性媒体(unguided media)。
- 双绞铜线
非屏蔽双绞线(Unshielded Twisted Pair,UTP)常用在建筑内计算机网络中。 - 同轴电缆
能被用作引导式共享媒体(shared media)。 - 光缆
- 陆地无线电信道
- 卫星无线电信道
常使用两类卫星:同步卫星(geostationary satellite)和低地球轨道卫星(low-earth orbiting satellite)。
1.3 网络核心
1.3.1 电路交换和分组交换
在电路交换(circuit switching)网络中,沿着端系统通信路径,为端系统之间通信所提供的资源(缓存、链路传输速度)在通信会话期间会被预留;在分组交换(packet switching)网络中,这些资源则不会被预留,会话的报文按需使用这些资源,这将导致可能不得不等待(即排队)接入通信线路。
电路交换网络中的多路复用主要有频分多路复用(Frequency-Division Multiplexing,FDM)和时分多路复用(Time-Division Multiplexing,TDM)。
分组交换中,各种应用程序在完成其任务时要交换报文(message),源主机将长报文划分为较小的数据块,并称之为分组(packet),在源和目的地之间,这些分组中的每个都通过通信链路和分组交换机传送,分组以该链路最大传输速率在通信链路上传输。
多数分组交换机在链路的输入端使用储存转发传输(store-and-forward transmission)机制,是指在交换机能够开始向输出链路传输改分组的第一个比特之前,必须接收到整个分组。一台主机经分组交换网络向另一台主机发送分组需要的时间称为储存转发时延(store-and-forward delay)。
每个分组交换机有多条链路与之相连,对于每条相连的链路,该分组交换机具有一个输出缓存(output buffer)(也称为输出队列(output queue)),它用于储存路由器准备发往那条链路的分组。分组要承受输出缓存的排队时延(queuing delay),这些时延变化程度取决于网络中的拥塞水平。一个到达的分组可能发现该缓存被等待传输的分组完全充满了,因为缓存的大小是有限的,在此情况下,将出现分组丢失或丢包(packet lost)——可能是到达的分组也可能是已经排队的分组之一被丢弃。
1.3.2 分组是怎样通过分组交换网形成其通路的
1.3.3 ISP和因特网主干
因特网是网络的网络。
第一层ISP也被称为因特网主干(Internet backbone)网络,直接与其他每个第一层ISP相连,与大量的第二层ISP和其他客户网络相连,覆盖国际区域。
第二层ISP通常具有区域性或国家性覆盖规模,并且非常重要地仅与少数第一层ISP相连接,被称为是它所连接的第一层ISP的客户(customer),第一层ISP相对该客户而言是提供商(provider)。当两个ISP彼此直接相连时,它们被称为彼此是对等的。
在一个ISP的网络中,某ISP与其他ISP的连接点被称为汇集点(Point of Presence,POP)。
1.4 分组交换网中的时延、丢包和吞吐量
1.4.1 分组交换网中的时延概述
以下4种时延总体累加起来是节点总时延(total nodal delay):
- 节点处理时延(nodal processing delay)
检查分组首部和决定将该分组导向何处所需要的时间。 - 排队时延(queuing delay)
分组在链路上输出队列中等待传输的时间。 - 传输时延(transmission delay)
将所有分组的比特推(传输)向链路所需要的时间,取决于分组长度和链路传输速率。 - 传播时延(propagation delay)
分组从链路起点传播到下一个路由器所需要的时间,取决于两台路由器之间的距离。
1.4.2 排队时延和丢包
排队时延是节点时延中最复杂和令人感兴趣的成分。
当分组到达节点时队列已满,路由器将丢弃(drop)该分组,即该分组将会丢失(lost)。
1.4.3 端到端时延
1.4.4 计算机网络中的吞吐量
任何瞬间的瞬间吞吐量(instantaneous throughput)是某主机接收到某文件的速率(以bps计)。
一段时间内某主机接收某文件的平均速率是平均吞吐量(average throughput)。
端到端之间的吞吐量是瓶颈链路(bottleneck link)的传输速率(瓶颈链路,即平均吞吐量最小的一段链路)。
1.5 协议层次和它们的服务模型
1.5.1 分层的体系结构
网络设计者以分层(layer)的方式组织协议以及现实这些协议的网络硬件和软件。某层向上一层提供的服务(service),即所谓的层的服务模型(service model)。
五层因特网协议栈(protocol stack),用自顶向下方法(top-down approach)作介绍:
- 应用层(application layer)
网络应用及其应用层协议存留的地方,包括许多协议,如HTTP、SMTP和FTP。应用层的信息分组称为报文(message)。 - 运输层(transport layer)
提供了在应用程序端点之间传送应用层报文的服务,因特网中有两个运输层协议:TCP和UDP。运输层分组称为报文段(segment)。 - 网络层(network layer)
负责将称为数据报(datagram)的网络层分组从一台主机移动到另一台主机。源主机中的因特网运输层协议(如TCP和UDP)向网络层递交运输层报文段和目的地址。网络层包括了著名的IP协议。
网络层通过一系列路由器在源和目的地之间发送分组,为了将分组从一个节点(主机或路由器)移动到路径上的下一个节点,网络层必须依靠链路层的服务。 - 链路层(link layer)
在每个节点,网络层将数据报下传给链路层,链路层沿着路径将数据报传递给下一个节点,在该下一个节点,链路层将数据报上传给网络层。链路层分组称为帧(frame)。链路层包括了以太网、WiFi和点对点协议(PPP)。 - 物理层(physical layer)
链路层提供的服务是将整个帧从一个网络元素移动到邻近的网络元素,而物理层的任务是将该帧中的一个一个比特从一个节点移动到下一个节点。
国际标准化组织(ISO)提出了大约为七层的计算机网络应用组织,称为开放互连(OSI)模型(自顶向下):
- 应用层
- 表示层(presentation layer)
使通信的应用程序能解释交换数据的含义,所提供服务包括数据压缩、数据加密以及数据描述。 - 会话层(session layer)
提供了数据交换的定界和同步功能,包括建立检查点和恢复方案的方法。 - 运输层
- 网络层
- 链路层
- 物理层
1.5.2 报文、报文段、数据报和帧
封装(encapsulation):应用层报文(application-layer message)被传送给运输层,运输层附上附加信息,构成了运输层报文段(transport-layer segment)传递至网络层,网络层增加了网络层首部信息,形成了网络层数据报(network-layer datagram)并传递给链路层,链路层增加链路层首部信息,使其成为链路层帧(link-layer frame)。在每一层,分组具有两种类型的字段:首部字段和有效载荷字段(payload field),有效载荷字段通常来自上一层的分组。
1.6 攻击威胁下的网络
1.7 计算机网络和因特网的历史
1.8 小结
博文补充(转):
计算机网络知识点
《计算机网络——自顶向下》阅读笔记