计网学习笔记一 Networking && Internet
参考书籍:
- James F. Kurose, Keith W. Ross. 计算机网络—自顶向下方法 (7th). 机械工业出版社,2018.
- William Stallings. 数据与计算机 通信 (8th). 电子工业出版社
1.What is the Internet made of ?
Component View 具体构成角度
-
这个角度根据 Internet 的硬件和软件组件来描述。
-
所有连接到网络的设备被称为主机(
host
) 或端系统(end systems
)。 -
host / end-systems
通过 通信链路(communication links
) 和分组交换机(packet switch
) 连接到一起。-
通信链路包括不同类型的物理媒介:如同轴电缆、铜线、光纤还有无线电频谱等,它们以不同的传输速率传输数据(单位 比特/秒),构建物理上的网络。
-
当一台端系统要向另一台发送数据时,发送端将数据分段,并为每段加上首部字节——这样形成的信息包叫分组(
packet
)这篇博文解释了 分组 和 包 的概念区别: https://www.cnblogs.com/sddai/p/5649939.html
-
分组交换机目前有两种最有名的类型:路由器(
router
)和链路层交换机(link-layer switch
),分别完成的工作是 使packet在各个 physical network 中传输(用于网络核心中,网络核心的概念下文阐述) 和 接收入链路层帧并将它们转发出链路。
-
-
连接好后,端系统要真正的接入 Internet 还需要通过因特网服务提供商(
ISP
)。-
每个 ISP 是一个由多个分组交换机和多段通链路组成的网络;低层的 ISP 通过国家的、国际的高层ISP(如 AT&T)互联起来,而高层ISP是由通过高速光纤链路互联的高速路由器组成的。无论是高层还是低层ISP 每个都是独立管理的。
国内十大ISP服务商: https://www.cnblogs.com/onepixel/p/10238221.html
-
各ISP为端系统提供了各种不同类型的网络接入,包括如住宅宽带接入、高速局域网接入、无线接入等。
-
ISP 也为内容提供者提供因特网接入服务,将 Web 站点直接接入因特网。
-
-
所有的 Internet 部件都要运行一系列协议(protocol),协议控制着 Internet 中信息的接收和发送。(见下文)
Service View 提供服务角度
- 这个角度根据基础设施向分布式应用程序提供的服务来描述。
- 可以把Internet看成是一种通信基础设施(
communication infrastructure
)。它支持着 分布式应用程序(distributed application
)运行。分布式应用程序包括:Web
,VoIP
,email
,online
games
,e-commerce
,file sharing
。 - Internet为分布式应用程序提供通信服务(
communication service
)。
Protocols 协议的定义
一个协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及报文发送和/或接收一条报文或其他事件所采取的动作。
2.How to connect to the Internet ?
Network Edge 网络边缘
通常把与Internet相连的计算机和其他设备称为端系统(end-system
),因为它们位于inernet的边缘。它包括了桌面计算机、服务器和移动计算机以及其它非传统设备。端系统也称为主机(host
),因为它们容纳(即运行)应用程序,如 Web 浏览器程序、Web服务器程序等。有两种model:
- Client/server model 客户机/服务器模型:客户机发出请求,从始终在线的服务器接受服务。例如:web浏览器/服务器,email客户端/服务器。
- Peert-to-peer model 点对点模式:最小限度或者不使用专用服务器,例如:Skype, BitTorrent。
Access Networks 接入网
接入网是指将端系统连接到其边缘路由器(edge router
)的物理链路。边缘路由器是指端系统到任何其它远程端系统的路径上的第一台路由器。接入方式有以下三种:
-
家庭接入 Residential (home) access networks
DSL 数字用户线
: 由本地电话公司(即当前用户的ISP)部署,它将信号编码分成三个信道,使电话呼叫和网络连接能同时共享DSL线路。HFC 混合光纤同轴电缆
:由有线电视公司部署,一个重要特征为共享广播媒体,多个家庭共享对ISP路由器的访问(信道共享)FTTH 光纤到户
:由本地中心局部署,类似HFC,并且划分为两种体系结构:AON 和 PON
-
机构接入 Institutional access networks
广泛被企业、学校、家庭使用。
-
无线接入 Mobile access networks
通过基站或者无线接入点接入,由运营商提供,方式主要有无线局域网和广域无线接入。(即wifi和数据)
这些接入技术也相应地使用了物理媒介(physical medium
)。分为两类,导引型媒介有双绞铜线、同轴电缆和光纤等,非导引型媒介有陆地无线电信道和卫星无线电信道。
The Network Core 网络核心
网络核心即由互联因特网端系统的分组交换机和链路构成的网状网络。
通过网络链路和交换机移动数据有两种基本方法:电路交换和分组(packet)交换。两种方法的一个类比是:
考虑两家餐馆,一家需要顾客预订(电路交换),而另一家不需要预订但不保证能安排顾客(分组交换)。对于需要预订的那家餐馆,我们在离开家之前必须承受先打电话预订的麻烦。但当我们到达该餐馆时,原则上我们能够立即人座并点菜。对于不需要预订的那家餐馆,我们不必麻烦预订餐桌,但也许不得不先等待一张餐桌空闲后才能入座。
Circuit switching 电路交换
在电路交换网络中,在端系统间通信会话期间,预留了端系统间通信沿路径所需要的资源(缓存,链路传输速率)。如图,发出预留请求后就像在交换机内建立了一条“电路”,每次建立连接都要进行准入判断。
电路交换有着性能稳定,并且一旦电路建立起来后交换非常的简单迅速。但它的缺点在于电路的建立和拆解比较复杂,并且在用户拥挤时的效率并不高(线路专用的原因),建立电路的延迟也比较长。
Packet switching 分组交换
分组交换使用存储转发运输机制,每个分组都包含了它的目的地信息,每个分组都是独立处理的;对于每条相连的链路,分组交换机有一个输出缓存(buffer),用于存储路由器准备发往链路的分组。这种方式要承受存储转发时延、排队时延还有丢包的风险。
分组交换对网络资源的使用非常有效率,鲁棒性较高,交换易于建立。但它的性能有着不可预测性,并且需要对buffer进行管理和对拥堵进行控制。
Virtual Circuit 虚电路分组交换
相当于电路交换和分组交换结合。
三种交换对比
Network of networks 网络的网络
当今的Internet由接入ISP、区域ISP、第一层ISP、PoP、多宿、peer、IXP和内容提供商网络组成。
3.Protocol Layers and Service Model
Standard Protocol Architectures 标准协议体系结构
有两个标准:OSI模型和TCP/IP协议簇。
由ISO定义的OSI模型和TCP/IP网络协议栈的关系:https://zhuanlan.zhihu.com/p/362525505
TCP/IP现在广泛用于全球互联网应用。应用层支持网络应用,协议有FTP、SMTP、HTTP;传输层负责进程-进程的数据传输,协议有TCP, UDP;网络层负责跨网络的数据报路由,协议有IP(唯一协议,因为ip协议处于协议栈的腰部,关系着全世界网络的是否能互相连接);链路层负责在相邻路由器/主机之间传输数据,协议有PPP、以太网等。物理层负责“线上”的比特传播。
总结如下:
- 应用层: 应用层协议用于各个端系统中的应用程序交换信息分组, 该信息分组称为应用层报文.
- 运输层: 运输层的作用是将应用层报文封装成运输层报文段,并将其在应用程序端点之间传送. 在因特网中有TCP和UDP两种运输协议, 任一个都能封装并运输应用层报文, 运输层的分组称为运输层报文段.
- 网络层: 网络层负责将运输层的报文段和目的地址封装成网络层数据报, 用于下一层的传输.
- 链路层: 链路层会把网络层的数据报封装成链路层帧, 并把该帧传递给下一个结点.
- 物理层: 物理层的任务是将链路层每帧中的一个个比特移动到下一个节点,, 具体会落实到不同的物理媒介(双绞铜线, 光纤等).
Encapsulation 封装
自顶向下:在发送主机端,一个应用层报文(application-layer message) 被传送给运输层。在最简单的情况下,运输层收取到报文并附上附加信息(所谓运输层首部信息),该首部将被接收端的运输层使用。应用层报文和运输层首部信息一道构成了运输层报文段(tuansport-layer segment)。运输层报文段因此封装了应用层报文。附加的信息也许包括了下列信息:允许接收端运输层向上向适当的应用程序交付报文的信息;差错检测位信息,该信息让接收方能够判断报文中的比特是否在途中已被改变。运输层则向网络层传递该报文段,网络层增加了如源和目的端系统地址等网络层首部信息,生成了网络层数据报(network-layer datagram)。该数据报接下来被传递给链路层,链路层(自然而然地)增加它自己的链路层首部信息并生成链路层帧(link-layer frame)。所以我们看到,在每一层,一个分组具有两种类型的字段:首部字段和有效载荷字段(payload feld)。有效载荷通常是来自上一层的分组。
一层层的封装形成了一个个PDU(协议数据单元)。
Pros and cons of layering 分层的优缺点
优点:将复杂的网络系统结构化地清晰划分开来;可以把每层向上层提供的服务作为接口抽象出来,改变接口的实现并不会影响上层的使用,增加灵活性。
缺点: 有时候不能利用到跨层的信息;过多的分层会使得费用变高,以及产生冗余。
4.Network Performance
我们可以从时延、丢包、吞吐量三个角度来衡量一个network的性能。
Delay 时延
packet 从一台主机(源)出发,通过一系列路由器传输,在另一台主机(目的地)中结束它的历程。当packet从一个结点(主机或路由器)沿着这条路径到后继结点(主机或路由器),该packet在沿途的每个结点经受了几种不同类型的时延。这些时延最为重要的是结点处理时延(nodal processing delay)、排队时延(queuing delay)、传输时延(transmission delay)和传播时延(propagation delay),这些时延总体累加起来是结点总时延(total nodal delay)。
时延 | 产生原因 | 地点 | 时间数量级 |
---|---|---|---|
processing delay 处理时延 | 路由器检查packet首部和决定packet所向链路,检查比特级别错误等行为 | 路由器 | 微秒 |
queuing delay 排队时延 | 在队列中packet等待传输 (前面还有packet) | 路由器 | 微秒 |
transmission delay 传输时延 | 将packet的比特一个一个推出网口,完整推到链路上所用时间 | 路由器 | 毫秒-微秒 |
propagation delay 传播时延 | packet在链路上物理传播的时间 | 链路 | 毫秒 |
关于传输时延和传播时延的比较:由于中文翻译的原因,很多人会误以为两种时延差别不大(还是得看英文原文)。传输时延是路由器将分组推出所需要的时间,而与两台路由器之间的距离无关,用packet长度除以带宽bandwidth就得出这个transmission delay。另一方面,传播时延是一个比特从一台路由器向另一台路由器传播所需要的时间,而与packet长度或带宽无关,主要看链路长度和物理媒介传播速度。
端对端时延:end-to-end delay 可以说是packet走过的总时延。将经过的所有路由器上的时延以及链路上传播的时延加起来可得到值。
Loss 丢包
丢包loss
的过程发生在packet进入路由器后发现队列已满的情况下。由于没有地方存储packet,路由器将会丢弃drop
这个packet,这个丢失的概率随着流量强度的增加而增加。丢失的packet可能基于端对端的方式进行重传。
Throughput 吞吐量
吞吐量的定义是:At what rate is the destination receiving data from the source.也就是说,假如主机收到了一个大小为 F 的大文件,主机接收到这个文件的所有比特用时 T 秒,则文件传送的平均吞吐量为 F/T bps
。
下图很好的描述了 transmission rate 和 throughput、 transfer time 和 transmission delay的关系:
而对于端对端的多链路网络,吞吐量是这多个链路速率中最小的传输速率——也就是瓶颈链路(bottleneck-link
)的传输速率。