Networking && Internet 计网学习笔记一
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,onlinegames,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各层先不详细介绍,我们只需要知道:
TCP/IP现在广泛用于全球互联网应用。应用层支持网络应用,协议有FTP、SMTP、HTTP;传输层负责进程-进程的数据传输,协议有TCP, UDP;网络层负责跨网络的数据报路由,协议有IP(唯一协议,因为ip协议处于协议栈的腰部,关系着全世界网络的是否能互相连接);链路层负责在相邻路由器/主机之间传输数据,协议有PPP、以太网等。物理层负责“线上”的比特传播。

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)的传输速率。

Networking && Internet 计网学习笔记一的更多相关文章
- React官网学习笔记
欢迎指导与讨论 : ) 前言 本文主要是笔者在React英文官网学习时整理的笔记.由于笔者水平有限,如有错误恳请指出 O(∩_∩)O 一 .Tutoial 篇 1 . React的组件类名的首字母必须 ...
- JavaScript进阶--慕课网学习笔记
JAVASCRIPT—进阶篇 给变量取个名字(变量命名) 变量名字可以任意取,只不过取名字要遵循一些规则: 1.必须以字母.下划线或美元符号开头,后面可以跟字 ...
- 如鹏网学习笔记(十五)ASP.NET MVC核心基础笔记
一.ASP.Net MVC简介 1,什么是ASP.NET MVC? HttpHandler是ASP.net的底层机制,如果直接使用HttpHandler进行开发难度比较大.工作量大.因此提供了ASP. ...
- 如鹏网学习笔记(七)HTML基础
HTML笔记 一.HTML简介 1,HTML (Hyper Text Mark-up Language) 超文本标记语言,是一种编程语言,也可以说是一种标准.规范. 2,HTML提供了一系列标记(标签 ...
- JavaScript入门--慕课网学习笔记
JAVASCRIPT—(慕课网)入门篇 我们来看看如何写入JS代码?你只需一步操作,使用<script>标签在HTML网页中插入JavaScript代码.注意, <script&g ...
- 如鹏网学习笔记(十)DOM
DOM笔记一.DOM简介 Document Object Model 文档对象模型 DOM的节点树模型:整个文档按照从大到小的节点划分,每一个内容都算作一个节点 DOM API 编程接口 可以用来操作 ...
- 如鹏网学习笔记(九)JavaScript
JavaScript笔记 一.JavaScript简介 1,JavaScript是一种计算机编程语言,可以像等其他编程语言那样定义变量,执行循环等. 2,JavaScript代码主要执行在浏览器上,为 ...
- HTML基本语法(慕课网学习笔记)
标题 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8& ...
- 如鹏网学习笔记(四).Net常用类库
.Net常用类库 一.String成员方法(常用) 1,bool Contains(string str) 判断字符串对象是否包含给定的内容 2,bool StartsWith(String str) ...
- 如鹏网学习笔记(十四)ASP.NET
Asp.net笔记 一.Socket类 进行网络编程的类,可以在两台计算机之间进行网络通讯 过程: 向服务器发送指令: GET /index.html HTTP/1.1 Host:127.0.0.1: ...
随机推荐
- c++ *和& 指针,取内容,别名,取地址
*前面有类型符时为定义指针 &前面有类型符时为定义引用变量(别名) (int ,float,long,double,char等 ) *p:定义xx类型的指针 int *p 整型指针,char ...
- 关于python导包问题(新手向)
包和模块 首先要弄清这两个概念, 在python 中 一个文件夹中包含__init__.py 文件(这个文件是包的初始化文件,在你导入包或包下面的模块的时候,这个文件会最开始运行),就会被python ...
- 关于python3调用matplotlib中文乱码问题
问题描述 我用来绘制柱形图,横坐标上面的数据, 但是网上大部分说的都是更改横纵坐标标签的乱码问题,而不是横坐标数据乱码问题 解决办法 更改横纵坐标上标签的中文不乱码 import matplotlib ...
- 【终极解决办法】pyinstaller打包exe没有错误,运行exe提示Failed to execute script 'mainlmageWindows' due tounhandled exception: No module named 'docx'
一.通过pyinstaller打包exe可执行文件,由于我的py是多个,所以要先生成spec文件,代码如下: pyi-makespec mainImageWindows.py 此时生产了一个mainI ...
- MySQL进阶实战6,缓存表、视图、计数器表
一.缓存表和汇总表 有时提升性能最好的方法是在同一张表中保存衍生的冗余数据,有时候还需要创建一张完全独立的汇总表或缓存表. 缓存表用来存储那些获取很简单,但速度较慢的数据: 汇总表用来保存使用grou ...
- Day29 Linux相关命令的使用
今日内容 基本概念 安装 基本命令 在linux上安装软件 jdk mysql jdk Nginx的安装 一.概述 1.Unix linux基于Unix,Unix由贝尔实验室在1969年开发 一开始由 ...
- 【SQL基础】基础查询:所有列、指定列、去重、限制行数、改名
〇.建表数据 drop table if exists user_profile; CREATE TABLE `user_profile` ( `id` int NOT NULL, `device_i ...
- Kafka Connect学习
一.基础介绍 1.概念 2.Debezium 为捕获数据更改(change data capture,CDC)提供了一个低延迟的流式处理平台.可以消费数据库每一个行级别(row-level)的更改. ...
- 5V升压8.4V,5V转8.4芯片电路图
PW5300是电流模式升压DC-DC转换器.其内置0.2Ω功率MOSFET的PWM电路使该稳压器具有效高的功率效率.内部补偿网络还可以程度地减少了6个外部元件的数量.误差放大器的同相输入接到0.6V精 ...
- 你真的了解 RSA 加密算法吗?
作者:小傅哥 博客:https://bugstack.cn 源码:https://github.com/fuzhengwei/java-algorithms 沉淀.分享.成长,让自己和他人都能有所收获 ...