type
slug
status
summary
icon
category
date
tags
password
0 课程主要内容
学习目标:基本概念、工作原理、常用的技术和协议

绿色:计算机网络绪论(计网关键术语概念、框架性原理)
蓝色:
top-down(自上而下方法)介绍计算机网络工作原理
应用层、传输层、网络层、数据链路层和局域网
红色:选择性讲解
0.1 应用层
应用层:介绍原理:功能是什么,怎么实现功能
- 这一层次的主要功能(具体能力)和提供的服务(功能的体现)
每一层的功能都通过向上层提供的这个接口,向上层提供服务。
本层功能的实现需要通过层间的接口调用下层的服务。
- 这个功能借助下层所提供的服务,怎么样在功能实体的内部采用各种各样的软硬件的这种安排来实现这种功能,从而通过接口可以向上层提供更好的服务
应用层协议:
- 支持web应用的http协议
- 支持ftp应用的ftp协议、文件传输协议
- 传输和接受电子邮件所使用的smtp、pop3协议
0.2 传输层和网络层
传输层:为多个远程的应用进程提供服务。
- 传输层向上层提供什么服务,传输层怎么借助于网络层所提供的服务才能实现,互联网传输层所具备的常用协议(tcp:传输控制协议、udp协议:用户数据报协议)

- 逻辑上:客户端(Client)《=====》服务器(Server)
- 物理上:浏览器数据传递给下层,再传给对方实体,再传给服务器,再翻转回来。
一些应用要求:可靠性高:不出错、不失序、不重复、不丢失,通常跑在tcp协议上,向上层应用(传输层tcp协议实体)提供可靠的数据传输。(tcp协议:消耗发送方和接收方的空间、时间)
一些应用(多媒体直播):udp协议上,因为对可靠性要求不高(有时部分数据丢失无影响/影响不大),但是对实时性要求很高。
tcp协议(左):面向连接的连接:连接建立、连接确认、发请求、对象回来。两个往返时间round trip time。
事务性应用:udp协议(右),过去回来。即使错误,重新传一次即可,不需要消耗两个往返时间。

应用层协议:远程的应用进程之间在相互通信的过程中应该遵守的规则和协议。
- 即在传输层所提供的两种类型的服务的基础上,远程的应用进程:两个应用进程(不是跑在同一个主机里面的),可以通过主机联网进行报文交互的通信来实现各种网络应用。
互操作:遵守这个协议,不同厂商生成的应用程序/网络设备/网卡就可以交互。
传输层在网络层提供的端到端(主机到主机)的服务基础上来,细分和加强服务,将其区分为进程到进程。
- 主机到主机之间可能会经过很多路由器、交换机
网络层:原主机到目标主机之间在互联网中以ip数据报为单位的数据交互。
- ip数据报给你,ip数据报给我。网络层提供端到端、主机到主机的这样的一些服务。
- 尽力完成。无法保证是否传到另一个主机,可能丢包、失序、错误。
- 网络层提供的服务是端到端(E2E:end to end)的数据传输,包含:点到点(P2P:point to point)(相邻的网络交换设备),E2E是由多个P2P组成的,所以网络层提供的端到端的服务必须要在数据链路层点到点提供的服务的基础上实现。链路层提供的点到点的服务必须要依赖物理层实现,把数字的信号变成物理的信号(电磁波信号/光信号),对方将物理信号做一个相反的变化,将物理信号变成0101数字信号,最后交给对方的网卡。
- 物理层借助媒介(media)(网线、同轴电缆、光纤)(第0层)实现信号的转换。
0.3 网络层工作方式
数据平面和控制平面
网络层的两种工作方式,传统方式和SDN方式。
传统方式:IP协议和路由协议。

- 路由协议的路由功能:运行在路由器之上的路由器软件叫做路由实体,路由实体间根据路由协议交换路由信息,路由器按照某种路由选择算法来算出路由表(包含很多路由信息和细节),路由表交给IP协议使用。
- IP协议的转发功能:来了一个IP分组(含目标IP地址da:destination ip address),IP协议根据算出的路由表,查询找到对应的表项,决定IP分组进行的方向(eg:从哪个端口出去)。
SDN方式:软件定义网络(Software Defined Network)
- 控制平面:网络操作系统。在其上运行各类的网络应用,网络应用算出流表(flow table)(含原IP、目标IP、原MAC、目标MAC)。流表通过标准协议、南向接口发给数据平面的交换机。
- 数据平面:交换机。交换机将流表分组上载,来了分组后,将分组不仅仅是目标IP,还有原IP、原MAC等多个字段与流表进行匹配。根据流表,多个字段匹配表项,根据表项进行动作(转发、泛洪、block、改字段)。
- 与传统区别:①根据字段种类不同,不仅仅是目标IP;②网络应用可以生成各种各样的流表下发给交换机;③交换机根据匹配流表可以做多种动作,转发、改字段、泛洪、block等;④需要增加什么网络功能,就跑相应的应用即可,在框架下,部署简单,网络可进行编程,
数据链路层:在物理层基础上,传输相邻两点以帧为单位的数据。
1.0 计算机网络概述

1.1 什么是Internet?(从具体构成角度)

- 网络:节点和边的关系。
- 计算机网络:联网的计算机(由节点和边)所构成的系统。
- 节点:主机节点、数据交换节点。
- 主机节点(方形):数据的源、数据的目标。
- 数据交换节点(圆形):路由器(来一个IP分组根据路由表转发出去)、交换机(来一个mac地址,根据流表转发),既不是源也不是目标,是数据的中转节点,通过中转节点的相互配合,完成从源节点到目标节点传输数据的任务。
- 通信链路(边):将节点连在一起,构成网,进行通信。
- 接入网链路:主机连接到互联网的链路。【方形和圆形之间的链路】
- 主干链路:路由器和路由器间,交换机和路由器之间。【圆形和圆形之间的链路】
- 协议:支撑互联网工作的一些标准各大厂商按照协议来制作生产网络设备,达到互操作(interoperation)。
- 互操作:遵守这个协议,不同厂商生成的应用程序/网络设备/网卡就可以交互。
- 互联网:以tcp协议和ip协议为主的一小撮协议支撑起来工作的网络。一堆网络通过网络互联设备连在一起组成的巨型网络。(网络的网络)

- 端系统(end system/host主机):设备本身(硬件),支持设备能够通讯(协议栈)的网络操作系统,在操作系统上主流的网络应用程序。
- 通信链路:不仅仅是网线、光纤链路本身,以及其上支持他们运转的链路层协议。
- 带宽(bps:bits per second)=传输速率
- 分组交换设备:转发分组(packets)
- 交换机(工作在链路层的网络交换设备)
- 路由器(工作在网络层的网络交换设备)
- 负载均衡设备(工作在更高层的网络交换设备)

- 协议:对等层实体在通信过程当中应该遵守的规则的集合。
- 对等层实体(Peer layer entity):运行中的软件模块(也叫做xx协议的实体)、ip和ip、网卡和网卡
- 遵守这样的规则标准,不同厂商生产的网络的软件产品能够达到互操作性。
- 互联网:一堆网络通过网络互联设备连在一起组成的巨型网络。(网络组成的巨型网络,媒介是网络互联设备)
- IETF:互联网工程任务组。互联网所有的协议都是以RFC文档的形式在IETF网站上发布。
互联网中所有的通信行为都受到协议的制约。
协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及在报文传输/接收/其他事件方面所采取的动作。
- 报文格式:PDU:协议数据单元。在每个层次上有不同的特质:在应用层上叫message、在传输层上叫segment……语法语义匹配时,两者可以进行互操作。
- 次序:(时序)某个动作之后才能发送。eg:web服务器,收到一个http请求后,才发送http的报文。
- 动作
例子:

web浏览器和web服务器建立tcp连接,web浏览器按照http协议规范向对方发送请求(将报文封装在http协议的报文格式当中),对方通过tcp连接后收到报文,按照协议规范解析报文,再根据解析从本地文件系统中读出这个文件,再封装成http相应报文的格式发送给对方。
- 协议规范的内容:
- “发和读“是动作,建立连接之后发请求是时序,请求的格式服从http规范是语法,对方收到报文按照规范解析查找对象是语义。
1.2 什么是Internet?(从服务角度)

从服务的角度来看,互联网是分布式应用进程以及为分布式应用进程提供通信服务的基础设施。
- 分布式应用进程:为人类提供服务,网络存在的理由。
- 基础设施:向应用进程提供通信服务。
- 主机应用层以下所有的协议实体、目标主机应用层以下的协议实体、所有的网络的部分都叫做基础设施。
- 方式:API(应用程序接口)。操作系统向应用进程提供通信服务的API叫做网络的API/Socket API。
- 通信服务的类型:
- 面向连接的服务:以tcp、ip协议向应用进程提供的服务
- 无连接的服务:以udp协议向应用进程提供的服务
总结:
Q:互联网是什么?
A1;从构成角度来看:节点、边。节点:主机节点、数据交换节点。边:接入网链路、主干链路、协议。关联紧密的节点和边连接形成一个个网络,将一个个网络连接形成更大的网络为互联网。
A2:从服务的角度来看,互联网是分布式应用进程以及为分布式应用进程提供通信服务的基础设施。
1.3 网络边缘

按照组成类型来把互联网分成一个个子系统
- 网络边缘(边缘系统)
- 组成:所以方的构成的系统—>网络的边缘(edge):主机,应用程序(客户端和服务器)
- 作用:应用是网络存在的理由
- 网络核心(core)
- 组成:互连着的路由器,网络的网络
- 作用:数据交换。
- 网络的接入(access):
- 有限和或者无线的通信链路(接入网、物理媒体)
- 作用:将边缘接入到网络核心。
基础设施:从网络应用往下看,基础设施为分布式的网络应用提供通信服务。
- 应用进程间通信的模式:
- CS模式:客户端服务器模式。客户端主动请求服务器的资源。服务器的扩容总是满足不了用户的请求。
- P2P模式:Peer(对等体)。一个对等体可以又是客户端又是服务器。请求资源的结点越来越多,但与此同时提供服务的结点也越来越多。
1.3.1 采用网络设施的面向连接服务
- 目标:在端系统(主机和应用)之间传输数据
- 握手:在数据传输之前做好的准备
- 人类协议中:你好,你好
- 两个通信主机之间为连接建立状态
- TCP:传输控制协议(Transmission Control Protocol)
- Internet上面向连接的服务
- TCP服务
- 可靠地、按顺序地传送数据(确认和重传)
- 流量控制:发送方不会淹没接收方
- 拥塞控制:当网络拥塞时,发送方降低发送速率
- 使用TCP的应用
- HTTP(Web)、FTP(文件传送)、Telnet(远程登陆)、SMTP(email)
- UDP:用户数据报协议(User Datagram Protocol)
- UDP服务
- 无连接
- 不可靠数据传输
- 无流量控制
- 无拥塞控制
- 使用UDP的应用
- 流媒体、远程会议、DNS、Internet电话
- UDP:将主机和主机之间的通信细分为进程到进程。
- 实时性:实时多媒体应用。
- 无连接、无流量控制、无拥塞控制:事务性的应用—>快
1.4 网络核心
- 网络核心(core)
- 组成:互连着的路由器,网络的网络(路由器的网状网络)
- 作用:数据交换。
- 实现数据交换的两种方式(数据怎样通过网络进行传输?)
- 电路交换
- 分组交换
1.4.1 电路交换
- 电路交换(线路交换)(circuit swtich):为每个呼叫预留一条专有电路:如电话网分组交换。
- 端到端的资源被分配给从源端到目标端的呼叫“call”
- 独享资源:不共享
- 每个呼叫一旦建立起来就能够保证性能
- 如果呼叫没有数据发送,被分配的资源就会被浪费(no sharing)
- 通常被传统电话网络采用
- 为呼叫预留端-端资源:链路带宽,交换能力;专用资源:不共享;保证性能;要求建立呼叫连接(不太适合计算机通信是因为连接时间过长(相对于计算机处理微妙毫秒级处理))
- 网络资源(如带宽(节点间的通信能力))被分成片(pieces)
- 为呼叫分片
- 如果某个呼叫没有数据,则其资源片处于空闲状态(不共享)
- 将带宽分成片
- 频分(Frequency-division multiplexing)(FDM)
- 两个主机在通信之前找到频分的空闲的一片,采用频分多路复用。
- 时分(Time-division multiplexing)(TDM)
- 通信能力按照t分解为小片,划分时间片
- 波分(Wave-division multiplexing)
- 采用光链路(光纤通信),每个用户使用其中的小波段
- 计算举例
- 电路交换不适合计算机之间的通信
- 连接建立时间长(秒级线路建立时间对于计算机通信属于一个世纪)
- 计算机之间的通信有突发性(有时候有请求有时候没有),如果使用线路交换,则浪费的片较多
- 即使这个呼叫没有数据传递,其所占据的片也不能够被别的呼叫使用(独享,未使用的时候线路被浪费)
- 可靠性不高
- 核心节点维护多个pices的关系维护,如果被破坏伤害很大


分析如下:链路速率就是1.536Mbps即带宽为1.536Mbps。采用时分多路(TDM),这个带宽分为24个小的时隙。每个用户使用其中的第n个时隙。对方不是10.5s收到(0.5s建议链路,10s开传),+电磁波越过空间消耗时间(电磁波在链路上的传输时间,传播延时在局域网可以忽略,广域网不可忽略 )=对方收到的时间。每秒钟传64000个bite,传输每个bit的时间不是瞬间也需要花费时间1/带宽。
1.4.2 分组交换(packet swtich)
- 将分组从一个路由器传到相邻路由器(hop),一段段最终从源端传到目标端。每段:采用链路的最大传输能力(带宽)
- 以分组为单位,存储-转发的方式来实现网络核心的数据交换作用
- 网络带宽资源不再分为一个个片,传输时使用全部带宽
- 主机之间传输的数据被分为一个个分组(包packet)
1.4.2.1 分组交换的特点
- 资源共享,按需使用
- 存储-转发:分组每次移动一跳(hop)
- 如果不使用存储(整个包完整后)-转发的方法,使用一个一个位传输的方式。那么这条链路上的hop在这一时间段内就会被一直占据,也就是独享资源。其他主机不可用,所以这跟前面的电路交换没有大的区别,只是在于传输时使用全部的带宽。
- 而分组每次移动一条,可以这一个主机对使用链路A,另一个主机对同时使用其他链路。这样网络才能共享。按需使用。有数据发的时候占用网络资源,没有的时候不占用网络资源。
- 在转发之前,节点必须收到整个分组
- 延迟线路交换更大
- 在线路交换里面每个交换节点里面耽误一个bit的时间,在分组转发中,在每个交换节点间耽误一个分组的存储时间。
- 排队时间:如果目标节点里面含有其他分组存储,需要排队等待后发送。
- 被传输到下一个链路之前,整个分组必须到达路由器:存储-转发
- 在一个速率为R bps的链路,一个长度为L bits 的分组的存储转发延时:L/R s
- L = 7.5 Mbits
- R = 1.5 Mbps(带宽)
- 3次存储转发的延时 = 15 s

注意:发送和接收是一体两面的事情,传输时间只能按一个角度算一次。发10s(也就是接10s。发送是发送端和接收端之间的事情,从发送的角度来看是发送,从接收的角度是接收)
- 排队和延迟(不确定):
- 如果到达速率>链路的输出速率:
- 分组将会排队,等待传输
- 如果路由器的缓存用完了,分组将会被抛弃

1.4.2.2 数据报网络和虚电路网络
- 分组交换:分组的存储转发一段一段从源端传到目标端,按照有无网络层的连接,分成:
- 数据报网络:
- 源主机发送给目标主机的分组携带了目标主机的完整地址,两个主机在通信之前不需要握手,每个数据报的传输是独立的。
- 分组的目标地址决定下一跳
- 在不同的阶段,路由表可以改变,从而导致不同路径
- 数据报(datagram)的工作原理
- 在通信之前,无须建立起一个连接(不需要维护两个主机之间的状态),有数据就传输
- 每一个分组都独立路由(路径不一样,可能会失序)
- 路由器根据分组的目标地址进行路由

- 虚电路网络:
- 每个分组都带标签(虚电路标识 VC ID),标签决定下一跳
- 在呼叫建立时决定路径,在整个呼叫中路径保持不变
- 路由器维持每个呼叫的状态信息
- X.25 和 ATM
- 虚电路(virtual circuit)的工作原理
主机和目标主机通信前需要握手(在交换节点之间保持通信状态),建立起一条虚拟的线路。每个每个分组都带标签(虚电路标识 VC ID),标签决定下一跳。

1.4.3 分组交换VS电路交换

35个用户,10个用户活跃。分组交换只有0.4%的可能性无法支持。
分组交换 vs. 电路交换
- 分组交换是“突发数据的胜利者”
- 适合于对突发式数据传输
- 资源共享
- 简单,不必建立呼叫
- 过度使用会造成网络拥塞:分组延时和丢失
- 对可靠地数据传输需要协议约束:拥塞控制
- Q: 怎样提供类似电路交换的服务?
- 保证音频/视频应用需要的带宽
- 一个仍未解决的问题(chapter 7)
- Q: 预约服务(线路交换)对比按需服务(分组交换)的例子?
1.4.4 网络核心的关键功能
- 路由:决定分组采用的源到目标的路径(全局)
- 这个端口从这条链路出现一个分组,查找路由表后决定从那个方向放走。于是存储,转发。然后又来一个分组,查路由表,然后决定从另一个方向放走,于是存储转发。
- 路由表:由路由实体通过路由算法得出
- 转发:将分组从路由器的输入链路转移到输出链路(局部)

分组交换:统计多路复用

- A & B 时分复用 链路资源
- A & B 分组没有固定的模式 => 统计多路复用
1.4.5 网络分类
- 通信网络
- 电路交换网络
- FDM
- TDM
- 分组交换网络
- 虚电路网络:有连接,体现上中间所经过的所有交换节点上
- TCP向应用进程提供服务:面向连接。连接仅仅体现在端系统(目标主机源主机)的TCP实体上,中间路由器不维护他们的状态。
- 数据报网络

1.5 接入网和物理媒体
Q: 怎样将端系统和边缘路由器连接?→通过接入网
边缘的端系统通过接入网接入到网络核心。网络核心起到一个数据交换的功能,能够做到相应的通信。
1.5.1 接入网
- 接入方式:
- 住宅接入网络
- 单位接入网络(学校、公司)
- 无线接入网络
- 注意:接入方式的重要指标
- 接入网络的带宽(bits per second)?
- 共享/专用?
住宅接入:modem
- 将上网数据调制加载音频信号上,在电话线上传输,在局端将其中的数据解调出来;反之亦然
- 调频、调幅、调相位、综合调制
- 拨号调制解调器
- 56Kbps 的速率直接接入路由器(通常更低)
- 不能同时上网和打电话:不能总是在线
接入网:digital subscriber line (DSL)
- 采用现存的到交换局DSLAM的电话线
- DSL线路上的数据被传到互联网
- DSL线路上的语音被传到电话网
- < 2.5 Mbps 上行传输速率 (typically < 1 Mbps)
- < 24 Mbps 下行传输速率 (typically < 10 Mbps)
接入网:线缆网络
- 有线电视信号线缆双向改造
- FDM:在不同频段传输不同信道的数据,数字电视和上网数据(上下行)
- HFC: hybrid fiber coax
- 非对称:最高30Mbps的下行传输速率,2 Mbps 上行传输速率
- 线缆和光纤网络将个家庭用户接入到 ISP 路由器
- 各用户共享到线缆头端的接入网络
- 与DSL不同,DSL每个用户一个专用线路到CO(central office)
住宅接入:电缆模式
接入网:家庭网络
企业接入网络 (Ethernet)
无线接入网络
- 各无线端系统共享无线接入网络(端系统到无线路由器)
- 通过基站或者叫接入点
1.5.2 物理媒体(第0层)
- Bit: 在发送-接收对间传播
- 物理链路:连接每个发送-接收对之间的物理媒体
- 导引型媒体:(有形的媒体)
- 信号沿着固体媒介被导引:同轴电缆、光纤、双绞线
- 非导引型媒体:(无形的媒体)
- 开放的空间传输电磁波或者光信号,在电磁波或者光信号中承载数字数据
- 双绞线 (TP)
- 两根绝缘铜导线拧合
- 5类:100Mbps 以太网
- 6类:1Gbps 千兆位以太网
- 6类:10Gbps万兆以太网
- 同轴电缆:
- 两根同轴的铜导线
- 双向
- 基带电缆:
- 电缆上一个单个信道
- Ethernet
- 宽带电缆:
- 电缆上有多个信道
- HFC
- 光纤和光缆:
- 光脉冲,每个脉冲表示一个bit,在玻璃纤维中传输
- 高速:
- 点到点的高速传输(如10 Gps-100Gbps传输速率)
- 低误码率:在两个中继器之间可以有很大的距离,不受电磁噪声的干扰
- 安全
- 无线链路
- 开放空间传输电磁波,携带要传输的数据
- 无需物理“线缆”
- 双向
- 传播环境效应:
- 反射
- 吸收
- 干扰
- 地面微波、LAN\wide-area(蜂窝),卫星
1.6 Internet结构和ISP
互联网网络结构:网络的网络
- 端系统通过接入ISPs(Internet Service Providers)连接到互联网
- 住宅,公司和大学的ISPs
- 接入ISPs相应的必须是互联的
- 因此任何2个端系统可相互发送分组到对方
- 导致的“网络的网络”非常复杂
- 发展和演化是通过经济的和国家的政策来驱动的
- 让我们采用渐进方法来描述当前互联网的结构
- 问题:给定数百万接入ISPs,如何将它们互联到一起
- 将每两个ISPs直接相连
- 不可扩展(可扩展性差,扩展到一定数量的时候,性能下降得很快,代价很大)
- 需要O(N^2)连接
- 选项:将每个接入ISP都连接到全局ISP(全局范围内覆盖)?
- 客户ISPs和提供者ISPs(Global ISP)有经济合约
- 但是,如果全局ISP是可行的业务,那么会有竞争者有利可图,一定会有竞争
- 竞争:但如果全局ISP是有利可为的业务,那么会有竞争者
- 合作:通过ISP之间的合作可以完成业务的扩展,肯定会有互联(ISP:Internet exchange point),对等互联的结算关系
- ...然后业务会细分(全球接入和区域接入),区域网络将出现,用户将接入ISPs连接到全局ISPs
- 然后内容提供商网络(Internet Content Providers, e.g., Google, Microsoft, Akamai)可能会构建它们自己的网络,将他们的服务、内容更靠近用户,向用户提供更好的服务,减少自己的运营支出


- 在网络的层中心,一些为数不多的充分连接的大范围网络(分布广、节点有限,但总是之间有着多重连接)
- “Tier-1” commercial ISPs (e.g., Level 3, Sprint, AT&T, NTT), 国家或者国际范围的覆盖
- content provider network (e.g., Google):将它们的数据中心接入ISP,方便周边用户的访问,通常走向网络之间用专用线路连接
1.6.2 Internet结构
1.6.2.1 ISP层次模型
- 松散的层次模型
- 中心:第一层ISP(如iUNet, BBN/Genuity, Sprint, AT&T)国家/国际覆盖,速率极高
- 直接与其他第一层ISP相连
- 与大量的第二层ISP和其他客户网络相连
- 第二层ISP:更小些的(通常是区域性的)ISP
- 与一个或多个第一层ISPs,也可能与其他第二层ISP
- 第三层ISP与其他本地ISP
- 接入网(与端系统最近)
e.g. BBN/GTE US backbone network
- 一个分组要经过许多网络!
- 很多内容提供商(如:Google, Akamai)可能会部署自己的网络,连接自己的在各地的DC(数据中心),走自己的数据
- 连接若干local ISP和各级(包括一层)ISP,更靠近用户
1.6.2.2 ISP之间的连接

- POP: 高层ISP面向客户网络的接入点,涉及费用结算
- 如一个低层ISP接入多个高层ISP,多宿(multi home)
- 对等接入:2个ISP对等互接,不涉及费用结算
- IXP:多个对等ISP互联互通之处,通常不涉及费用结算
- 对等接入
- ICP自己部署专用网络,同时和各级ISP连接
1.7 分组延时、丢失和吞吐量
分组丢失和延时是怎样发生的?

- 在路由器缓冲区的分组队列
- 分组到达链路的速率超过了链路输出的能力(输入速率>输出速率)
- 分组等待排到队头,被传输
- 队列有限,分组溢出后丢弃(分组不能过长,传输需要时限)
1.7.1 四种分组延时
- 节点处理延时:
- 检查bit级差错
- 检查分组首部和决定将分组导向何处
- 排队延时
- 在输出链路上等待传输的时间
- 依赖于路由器的拥塞程度
3. 传输延时(transmission):
- R=链路带宽(bps)
- L=分组长度(bits)
- 打出一个bit的时间1/R
- 将分组发送到链路上的时间=L/R
- 传播延时:
- d = 物理链路的长度
- s = 在媒体上的传播速度(~2x10^8 m/s)
- 传播延时 = d/s
- 两个节点非常近,传播延时几乎可以忽略
Note: s and R are very different quantities!
车队类比


传输延时:12*10=120s(最后一个车离开第一个收费站的车位是120s这个时刻,刚刚打出最后一个bit)
传播时间:100Km/100KM/H=1H
总共时间=62min
上面是WAN情况

- 传播时间:6min
- 我在打第七个bit的时候(6min已过。第一辆车到达第二个收费站,但是第一个收费站还有3个比特)
- 传输时间:10*1=10min
- LAN(局域网情况)
- 排队延时

- 节点延时

- 取决于流量强度intensity=La/R
- a:单位时间内希望这条链路转发的分组数量
- 在0~1之间,排队延时很大的时候可能会导致包丢失
1.7.2 分组丢失
- 链路的队列缓冲区容量有限
- 当分组到达一个满的队列时,该分组将会丢失
- 丢失的分组可能会被前一个节点或源端系统重传,或根本不重传
1.7.3 吞吐量
- 吞吐量:在源端和目标端之间传输的速率(数量/单位时间)
- 瞬时吞吐量:在一个时间点的速率
- 平均吞吐量:在一个长时间内平均值

平均吞吐量取决于小的那个(木桶效应)
瓶颈链路:端到端的路径上,限制端到端吞吐的链路

同时使用的那一部分每一个主机对能够实际可用的带宽为1/n(tcp的公平性)
1.8 协议层次和服务模型
1.8.1 协议层次
- 网络是一个复杂的系统!
- 网络功能繁杂:数字信号的物理信号承载、点到点、路由、rdt、进程区分、应用等
- 现实来看,网络的许多构成元素和设备:
- 主机
- 路由器
- 各种媒体的链路
- 应用
- 协议
- 硬件,软件
- 层次化方式实现复杂网络功能
- 将网络复杂的功能分层功能明确的层次,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能:服务(通过层次间的接口向上层提供服务)
- 本层协议实体(对等层的实体)相互交互执行本层的协议动作(通过协议交换信息),目的是实现本层功能,通过接口为上层提供更好的服务
- 本层协议实体交互的过程中应该遵守的动作、规则的集合→协议→目的:为了向上层提供更好的服务→协议的实现:通过层间接口访问下层所提供的服务实现
- 在实现本层协议的时候,直接利用了下层所提供的服务(也就是如何向上层提供服务:借助下层所提供的服务来和本层对方交换pdu,包括内部一些信息的处理,即加上下层的服务以及和对方的交流从而实现更加复杂的功能,通过层间的接口向上次提供更好的服务)
- 本层的服务(协议):借助下层服务实现的本层协议实体之间交互带来的新功能(上层可以利用的)+更下层所提供的服务
- 最底层的物理层服务,不需要借助其他任何一层所提供的服务,直接向对方发送每个比特的电磁波信号/光信号。
1.8.2 服务和服务访问点
- 服务(Service):低层实体向上层实体提供它们之间的通信的能力(服务是垂直能力,协议是水平能力)
- 服务用户(service user):egTCP实体上跑的三个应用web……
- 服务提供者(service provider):egTCP实体
- 服务是双方的:服务用户使用服务提供者提供的服务/服务提供者向服务用户提供服务
- 在哪里提供服务:层间的服务访问点 形式:原语
- 服务访问点(service access point):层间接口处的点来区分相应报文对应的用户
- socket:套接字。主要作用:传下来的报文加以标注,到对方往上传的时候可以加以区分
- 原语(primitive):上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过服务访问原语来进行交互的---提供服务/使用服务的形式
- 服务访问点SAP (Services Access Point):上层使用下层提供的服务通过访问的接口---地点
- 例子:邮箱
- URL (address):下层的一个实体支撑着上层的多个实体,上层实体标志不同上层实体的作用
- SAP有不同层的实现,队列
- 网上:传输层的SAP: 端口(port)
1.8.3 服务的类型
- 面向连接的服务和无连接的服务-方式
- 面向连接的服务(Connection-oriented Service)
- 连接(Connection):两个通信实体为进行通信而建立的一种结合(需要握手,通信前建立连接,为后面的通信做好准备)
- 面向连接的服务通信的过程:建立连接,通信,拆除连接
- 面向连接的服务的例子:网络层的连接被成为虚电路
- 适用范围:对于大的数据块要传输,不适合小的零星报文
- 特点:有序
- 服务类型:
- 可靠的信息流 传送员面向可靠的获得,通过接收方的确认
- 不可靠的字节流 远程登录
- 不可靠的连接 数字化声音
- 无连接的服务(Connectionless Service)
- 无连接服务:两个对等层实体在通信前不需要建立一个连接,不预留资源;不需要通信双方都是活跃;(例:寄信)(不需要握手)
- 特点:不可靠、可能重复、可能失序
- IP分组,数据包;
- 适用范围:适合传送零星数据;
- 服务类型:
- 不可靠的数据报 电子方式的信件
- 有确认的数据报 挂号信
1.8.4 服务VS协议
- 服务与协议的区别
- 服务(Service):低层实体向上层实体提供它们之间的通信的能力,是通过原语(primitive)来操作的
- 在层间接口的SAP上通过原语向上层提供服务/上层使用下层的服务
- 垂直
- 协议(protocol):对等层实体(peer entity)之间在相互通信的过程中,需要遵循的规则和动作的集合
- 水平
- 服务与协议的联系
- 本层协议的实现要靠下层提供的服务来实现
- 本层实体通过协议为上层提供更高级的服务
1.8.5 数据单元

- SDU:上层传给下层的数据叫做服务数据单元
- 通过SAP后,SDU头部需要加上一些本层的附加控制信息→本层的PDU(协议数据单元)
- 对等层的实体交换都是由第n层(本层)的PDU来进行交换的(一对一,最理想情况)
- 或者是大的SDU分解成小SDU,每个小SDU加上第n层的头部,成为大小合适的PDU(因为本层SDU封装的时候是存在大小上限的)(一对多)
- 或者把若干个SDU合在一起后,再加上头部信息形成第n层的PDU(多对一)
- 不同层之间到底协议数据单元称呼不同
- 应用层:应用报文(message)
- 传输层:报文段(段segment)
- 网络层:分组(无连接:数据报)
- 链路层:帧
- ICI:接口控制信息
- IDU:接口控制信息+要传输的数据(SDU+ICI)

上图显示了协议和服务之间的关系
1.8.6 分层处理和实现复杂系统的好处
- 对付复杂的系统
- 概念化:结构清晰,便于标示网络组件,以及描述其相互关系
- 分层参考模型
- 结构化:模块化更易于维护和系统升级采用新技术
- 改变某层服务的实现不影响系统中的其他层次
- 对于其他层次而言是透明的
- 底层采用的新的计时上层也可以使用,上层不仅可以使用本层、相邻下层,对其他下层的功能也是可以使用的,所有说是透明可见的。
- 改变2个翻译使用的语言不影响2个翻译的工作/改变2个秘书使用的通信方式也不影响上下2个层次的工作/改变
- 分层思想被认为有害的地方?
- 子系统相互交换信息(一层层实现)效率降低
1.9 Internet协议栈(*****)

- 应用层:网络应用
- 为人类用户或者其他应用进程提供网络应用服务
- FTP, SMTP, HTTP, DNS
- 传输层:主机之间的数据传输
- 在网络层提供的端到端(主机到主机)通信基础上,细分为进程到进程,将不可靠的通信服务变成可靠地通信服务。
- TCP, UDP
- 向应用层提供的服务:报文原原本本,不重复,不丢失→可靠安全
- 主机上跑了很多应用进程,在这个主机上怎么综合进程,在另一个主机上怎么区分进程
- 网络层:为数据报从源到目的选择路由
- 主机主机之间的通信,端到端通信,不可靠
- IP(转发,局部), 路由协议(全局找路)
- 在链路层提供的在相邻两点传输的基础上,以分组为单位实现端到端的传输(源主机到目标主机)
- 链路层:相邻网络节点间的数据传输
- 2个相邻点的通信,点到点通信(P2P),可靠或不可靠
- 点对对协议PPP, 802.11(wifi), Ethernet
- 在物理层提供的服务的基础上,在相邻两点传输以帧为单位的数据。
- 物理层:在线路上传送bit
- 上层交下来的帧,将其中的每个bit/一些bit(数字信号)变成物理信号(电磁波信号/光信号)通过媒介传递给接收端。接收端将物理信号解码为数字信号。
1.9.1 ISO/OSI参考模型(国际标准化组织)
- 参考模型:网络分几层,每层干什么(抽象)
- 体系架构:每层中有哪些协议(具体)
- 表示层:
- 允许应用解释传输的数据,e.g., 加密,压缩,机器相关的表示转换
- 会话层:
- 数据交换的同步,检查点,恢复
(Internet协议栈在应用层应用程序自己实现表示层和会话层)

1.9.2 封装和解封装

- 表面上是两个应用之间message通信,发出接收反转发送。实际上应用进程的message需要借助层间接口使用下层提供的服务实现。报文依次交给下层,每一层在报文头部(有些层也有可能加到尾部链路层帧头帧尾)加上该层的附加控制信息形成本身的PDU(协议数据单元)。到物理层的时候按照bit打出去。
- 到链路层交换机(网卡,集合了链路层和物理层功能)的物理层,还原成链路层的帧,分析帧头帧尾间的数据(分组:携带的是网络层的数据,含目标地址),查看交换表,通过哪个端口发出去。(两层的封装和解封装)
- 路由器插了几块网卡,每个网卡集合了链路层和物理层功能。每个网卡也分别与网络相连。根据帧中含有的目标IP,查网络层的转发表,觉得从哪个网口发出去。如果选择了这个网口打出去,那么就要选择这个网卡,封装成帧传到物理层打出去。(三层的封装和解封装)
- 达到目标主机。把物理层的每个bit取出,判断枕头帧尾,再将数据拿出形成分组,再把分组交给网络层,网络层再把分组部分的报文段拿出来交给传输层。传输层将报文段里面的message或者message中的一部分交给应用层。则实现了应用报文的传递。
各层次的协议数据单元(PDU)
- 应用层:报文(message)
- 传输层:报文段(segment):TCP段,UDP数据报
- 网络层:分组packet(如果无连接方式:数据报datagram)
- 数据链路层:帧(frame)
- 物理层:位(bit)
1.10 小结
- 覆盖大量的材料!
- Internet
- 什么是协议
- 网络边缘,核心,接入网络
- 分组交换 vs. 电路交换
- Internet/ISP 结构
- 性能:丢失,延时,吞吐量
- 层次模型和服务模型
- 历史
小结1
- 组成角度看 什么是互联网
- 边缘:端系统(包括应用)+接入网
- 核心:网络交换设备+通信链路
- 协议:对等层实体通信过程中遵守的规则的集合
- 语法,语义,时序
- 为了实现复杂的网络功能,采用分层方式设计、实现和调试
- 应用层,传输层,网络层,数据链路层,物理层
- 协议数据单元:
- 报文,报文段,分组,帧,位
- 从服务角度看互联网
- 通信服务基础设施
- 提供的通信服务:面向连接 无连接
- 应用
- 应用之间的交互
- C/S模式
- P2P模式
小结2
- 数据交换
- 分组数据交换
- 线路交换
- 比较 线路交换和分组交换
- 电路交换的2种方式
- 虚电路
- 数据报
- 接入网和物理媒介
- 接入网技术:
- 住宅:ADSL, 拨号,cable modem
- 单位,以太网
- 物理媒介
- 光纤,同轴电缆,以太网,双绞线
- ISP层次结构
小结3
- 分组交换网络中延迟和丢失是如何发生的
- 延迟的组成:处理,传输,传播,排队
- 网络的分层体系结构
- 分层体系结构
- 服务
- 协议数据单元
- 封装与解封装
- 历史
- 作者:🐟🐟
- 链接:https://www.imyuyu.top//article/CN/Chapter1
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。