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: ...
随机推荐
- AcWing第78场周赛
今天想起来了,就补一下吧~ 第一题 商品分类 货架中摆放着 n 件商品,每件商品都有两个属性:名称和产地. 当且仅当两件商品的名称和产地都相同时,两件商品才视为同一种商品. 请你统计,货架中一共有多少 ...
- CSP 记
csp 开考建好文件夹编译器不能用搞了半天换了台电脑 四道题看完一个小时过去了 第一题不会正解写了部分分还有点悬 第二题写暴力因为一个小错误调了半天 看时间不多了已经有点慌了 也没想正解直接开了下一题 ...
- Dojo dijit/Tree的使用以及样式设置
如果什么都不设置,默认使用dojo自带的Tree,样式模板使用claro的,效果是这样的. 1.无论是不是叶子节点,前面总要带个+号,必须要点击下才消失. 2.点击树或者某个节点是,回出现蓝色边框. ...
- Excel2010工作簿被锁定,无法复制或者新增加sheet表格。
Sub 工作簿密码破解() ActiveWorkbook.Sheets.Copy For Each sh In ActiveWorkbook.Sheets sh.Visible = True Next ...
- 【大数据-课程】高途-天翼云侯圣文-Day3-实时计算原理解析
〇.老师及课程介绍 一.今日内容 二.实时计算理论解析 1.什么是实时计算 微批处理.流式处理.实时计算 水流和车流的例子 spark streaming就是一种微批处理,水满了才处理,进入下一个地方 ...
- bug处理记录:Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=512M; support was removed in 8.0
1. 报错: Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=512M; support was removed ...
- 用openpyxl创建工作簿和工作表
import osimport openpyxl #设置默认路径os.chdir(r'D:/openpyxl/') #创建工作簿变量 wb = openpyxl.Workbook() #创建工作表变量 ...
- SpringBoot源码2——SpringBoot x Mybatis 原理解析(如何整合,事务如何交由spring管理,mybatis如何进行数据库操作)
阅读本文需要spring源码知识,和springboot相关源码知识 对于springboot 整合mybatis,以及mybatis源码关系不密切的知识,本文将简单带过 系列文章目录和关于我 涉及到 ...
- 【JVM】经典垃圾回收器
本文已收录至Github,推荐阅读 Java随想录 微信公众号:Java随想录 CSDN: 码农BookSea 转载请在文首注明出处,如发现恶意抄袭/搬运,会动用法律武器维护自己的权益.让我们一起维护 ...
- 一文掌握MyBatis的动态SQL使用与原理
摘要:使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了这一特性的易用性. 本文分享自华为云社区<MyBatis详解 - ...