计算机网络笔记-1

链接:【中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程】 https://www.bilibili.com/video/BV1JV411t7ow/?share_source=copy_web&vd_source=73fbe0896e57b2cec684ed480ce509da

image-20230204193225281

UDP协议:实时性要求高,可靠性(不出错,不重复,不缺漏,有序)要求不高

TCP协议:可靠性要求高,但会消耗时间和空间

第一章 概论

1.1什么是互联网

物理层:传播的媒介,比如电磁波等等

链路层:点到点(point to point),实现相邻主机之间数据的传输

网络层:端到端(end to end),实现源主机到目标主机之间数据的传输,尽力而为,可能会失序,出错等等

传输层:将网络层从主机到主机,变成进程到进程,从不可靠,变成可靠.按照应用层协议交换应用报文,实现各种各样的应用

节点

主机节点:数据的源,数据的目标(比如联网的冰箱,手机,电脑等等),一般用矩形表示.

数据交换节点:数据的中转节点,既不是数据的源,也不是数据的目标(比如网路层的路由器,链路层的交换机,物理层的中继器),一般用圈表示

边—通信链路

接入网链路:主机连接到互联网的链路(方到圆)

主干链路:路由器间的链路(圆到圆)

有光纤,同轴电缆,无线电,卫星等等.其传输速率用带宽(bps)表示,即每秒传送多少位

协议—对等层的实体,在通信的过程中,应该遵守的规则集合

协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及在报文传输和/或接受或其他事件方面所采取的动作

按层次不同可分成物理层协议,传输层协议等等.其中传输层协议有TCP,UDP.遵守同样协议的实体才能互相通信

从服务的角度看,TCP/IP协议提供的是面向连接的服务,UDP提供的是无连接的服务


端系统(End system/host):PC,server等.由硬件系统,软件系统组成.

Internet标准的所有协议内容(包括TCP,UDP)都由IETF(Internet Engineering Task Force)以RFC(Request for comments)的形式在网站上公布(你向IETF提出新的想法,IETF进行公布,全球互联网专家针对该想法进行讨论,讨论也会在网站上公布)

1.2网络边缘

网络结构:

  1. 网络边缘/edge:主机,应用程序(客户端和服务器),即上一节中的方形
  2. 网络核心/core:互连着的路由器,网络的网络(即上一节中的圆形)
  3. 接入网系统/access:有线或者无线通信链路(即方形到圆形所连的边)

网络边缘

CS模式(客户端服务器模式)(客户端是从,服务器是主)

​ 客户端向服务器请求,接收服务,如web浏览器/服务器,email客户端/服务器

​ 问题:不可靠,不易拓展,(当请求数过多时效率会断崖式下降)

p2p模式(peer to peer/对等模式)

​ 很少(甚至没有)专门的服务器,如Gnutella,KazaA,Emule

​ 以磁链下载为例,下载一个文件,其他客户端可以向我请求该文件的一些片段,此时 我是充当服务器的角色,我也可以向其他用户请求文件的片段,此时我充当客户端 的角色.因此用户越多,客户端越多,服务器也越多.

网络边缘:采用网络设施的面向连接服务

目标:在端系统之间传输数据

握手:在数据传输之前做好准备,即两个通信主机之间为连接建立状态

TCP-传输控制协议(Transmission Control Protocol): Internet上面向连接的服务

TCP服务[RFC 793]:

  1. 可靠地,按顺序地传送数据:确认和重传
  2. 流量控制:发送方不会淹没接收方
  3. 拥塞控制:当网络拥塞(交换节点处理不过来)时,发送方降低发送速率

tips:面向连接与有连接不同,面向连接中连接的状态只在端系统维护,而有连接中,网络中的节点都维护连接的状态

网络边缘:采用基础设施的无连接服务

目标:在端系统之间传输数据

UDP-用户数据报协议(User Datagram Protocol)[RFC 768]:

  1. 无连接
  2. 不可靠数据传输
  3. 无流量控制
  4. 无拥塞控制

使用TCP的应用:HTTP(Web),FTP(文件传送),Telnet(远程登录),SMTP(email)

使用UDP的应用:流媒体,远程会议,DNS,Internet电话

1.3 网络核心

网络核心:路由器的网状网络

基本问题:数据怎样通过网络进行传输

  1. 电路交换:为每个呼叫预留一条专有电路,如电话网
  2. 分组交换:(1).将要传送的数据分成一个个单位—分组 (2).将分组从一个路由器传到相邻路由器(hop),一段段最终从源端传到目标端 (3).每段: 采用链路的最大传输能力(带宽)

网络核心:电路交换

image-20230205214143652

靠信令系统建立独享的线路,性能有保障,要求建立呼叫连接

网络资源(如带宽)被分成片(piece):1.为呼叫分配片;2.如果某个呼叫没有数据,则其资源片处于空闲状态(不共享); 3.将带宽分成片: 频分(Frequency-division multiplexing/FDM);时分(Time-division multiplexing/TDM);波分(Wave-division multiplexing/WDM)

电路交换:FDM,TDM与WDM—将节点与节点之间的通信能力分割成小片(piece)的形式

FDM:在一定的频率内,数据能够有效的传送,将这一段频率分成多个小段,每个小段即为piece

TDM:将通信能力分割成一个个大片的周期,在该周期中划分出一个个小片,即为piece

WDM:采用光纤通信,可用的波段分割成若干个小波段,小波段即为piece

eg:采用TDM的通信方式,带宽为1.536Mbps,一共有24个slot(时隙,即最小单位),则每个slot分到1.536Mbps/24=64kbps带宽

电路交换不适合计算机之间通信:

  1. 连接建立时间长
  2. 计算机通信具有突发性,使用线路交换,浪费的piece较多
  3. 可靠性不高

网络核心:分组交换

以分组(packet)为单位存储-转发

​ 网络带宽资源不再分为一个个片,传输时使用全部带宽

​ 主机之间传输的数据被分成一个个分组,以packet为单位在交换节点中存储,转发

资源共享,按需使用:

存储 转发:分组每次移动—跳(hop)

  1. 在转发之前,节点必须收到整个分组
  2. 延迟比线路交换要大(因为交换节点要存储整个分组)
  3. 排队时间(多个分组都使用同一条边)
  4. 共享性,即按需使用

eg1:一个长度为L bits的分组,一个速率为R bps的链路,其存储转发延时为L/R s(注意,分组的发送和接受是同一过程,故延时只用算一次)

eg2:如果到达速率>链路的输出速率:1.分组将会排队,等待传输;2.如果路由器缓存用完了,分组将会被抛弃


网络核心的关键功能

路由: 决定分组采用的源到目标的路径—路由算法

转发: 将分组从路由器的输入链路转移到输出链路

分组交换:统计多路复用—分组交换同样会采用时分,但其划分不是固定的,而是采用统计多路复用

总结:分组交换允许更多的用户使用网络

image-20230207000556809


分组交换网络:存储-转发

分组的存储转发一段段从源端传到目标端,按照有无网络层的连接,分成

数据报网络:

  1. 分组的目标地址决定下一跳
  2. 在不同的阶段,路由可以改变
  3. 类似:问路,寄信(不用建立连接)
  4. Internet

虚电路网络:

  1. 每个分组都带标签—虚电路标识 VC ID
  2. 在呼叫建立时,决定路径,在这整个呼叫中路径不变
  3. 路由器保持每个呼叫的状态信息
  4. X.25和ATM

数据报(datagram)的工作原理:

  1. 在通信之前,无须建立起一个连接,有数据就传输
  2. 每个分组都独立路由(路径不一样,可能会失序)
  3. 路由器根据分组的目标地址进行路由

虚电路(virtual circuit)的工作原理:

image-20230207004708590

通过建立虚电路表存储转发(注意虚电路号会发生变化)

回顾:TCP协议提供面向连接的服务,为何说是面向连接而不是有连接?这里的连接仅是针对端系统两个实体而言,中间的路由器不维护他们的状态

1.4 接入网和物理媒体

怎样将端系统和边缘路由器连接?

  1. 住宅接入网络
  2. 单位接入网络(学校,公司)
  3. 无线接入网络

注意:接入网络的带宽(bits per second)

共享/专用?

住宅接入: modem

早期时为运营公司为节省资源,复用电话线(只有4Khz),现在该方法已被淘汰

将上网数据调制加载音频信号上,在电话线上传输,在局端将其中的数据解调出来;反之亦然

  1. 调频
  2. 调幅
  3. 调相位
  4. 综合调制

拨号调制解调器

  1. 56Kbps的速率直接接入路由器(通常更低)
  2. 不能同时上网和打电话: 不能总是在线

接入网: digital subscriber line(DSL)

依然是采用电话线和调制解调的方式工作,但是使用的是4Khz以上的频率(4Khz以上的频率又分为两个部分,分别是上行和下行),语音,数据在共享线路的不同频段传输

采用现存的到交换局DSLAM的电话线:DSL线路上的数据被传送到互联网

接入网: 线缆网络

由有线电视公司的运营商提供的上网方式

将有线电视的线缆进行双向改造(原本是单向的),在进行电视广播的同时,将部分带宽用来传输互联网上行和下行的数据,还有些带宽用来控制.

住宅接入:电缆模式

企业接入网络(Ethernet)

通过交换机的级联

端系统经常直接接到以太网络交换机上


无线接入网络:各无线端系统共享无线接入网络(端系统到无线路由器),通过基站或者叫接入点

  1. WLans(无线局域网)
  2. 广域无线接入:由电信运营商提供(cellular),范围达到10km

物理媒体

Bit:在传输-接受对间传播

物理链路:在每个传输-接受对,跨越一种物理媒体

  1. 导引型媒体:信号沿着固体媒介被导引,如同轴电缆,光纤,双绞线,传得较远
  2. 非导引型媒体:信号自由传播,如无线电,衰减得快

双绞线(TP):两根绝缘铜线

  1. 5类
  2. 6类:10Gbps

同轴电缆:两根同心的铜导线

  1. 双向
  2. 基带电缆:电缆上一个单个信道,Ethernet
  3. 宽带电缆:电缆上有多个信道,HFC

光纤/光缆:

  1. 光脉冲,每个脉冲表示一个bit,在玻璃纤维中传输
  2. 高速:点到点的高速传输(如10 Gbps-100 Gbps传输速率)
  3. 低误码率:在两个中继器之间可以有很长的距离,不受电磁噪声的干扰
  4. 安全

无线链路:

  1. 开放空间传输电磁波,携带要传输的数据
  2. 无需物理”线缆”
  3. 双向
  4. 传播环境效应:反射,吸收,干扰
  5. 类型:地面微波;LAN(eg:WIFI);wide-area(eg:蜂窝,3G cellular);卫星

1.5 Internet和ISP

互联网网络结构:网络的网络

端系统通过接入ISPs(Internet Service Providers)连入到互联网—住宅,公司和大学的ISPs

接入ISPs相应的必须是互联的,因此任何两个端系统可相互发送分组到对方

导致”网络的网络”非常复杂—发展和演化是通过经济的和国家的政策来驱动的

问题:给定数百万接入ISPs,如何互联?—每两个ISPs直接相连,不可拓展,需要O(N^2)连接

选项:将每个接入ISP都连接到global ISP/全局ISP(全局范围内覆盖)—客户ISPs和提供者ISPs有经济合约

因为全局ISP是可行的业务,有利可图,所以会有竞争者,每个竞争者都提供ISP

同时ISP之间可以合作完成业务的拓展(可以连接到对方的access net),所以会存在peering link(即互联),对等互联的结算关系;或者多个ISP连接到Internet exchange point/IXP,完成流量的交换

ICP(Internet Content Provides):如谷歌,百度等,由于其也需要接入到ISPs提供服务,可能会部署自己的数据中心(Date Center/DC),构建自己的网络,将服务,内容更加地靠近端用户,向用户提供更好服务的同时,减少运营的支出

image-20230208014131159

Internet结构: network of networks

松散的层次模型

中心: 第一层ISP(如UUNet,BBN/Genuity,Sprint,AT&T)国家/国际覆盖,速率极高(带宽很大),数量较少—直接与其他第一层ISP相连,与大量的第二层ISP和其他客户网络相连(通过peering link或IXP)

第二层ISP:更小些的(通常是区域性的)ISP—与一个或多个第一层ISPs,也可能与其他第二层ISP连接

第三层ISP(local ISP or access net):接入网(与端系统最近)

1.6 分组延时,丢失和吞吐量

分组丢失和延时的原因

在路由器缓冲区的分组队列:

  1. 分组到达链路的速率超过了链路输出的能力
  2. 分组等待排到队头,被传输(延时)
  3. 分组到达时,如果没有可用的缓冲区,则该分组被丢失(丢失)

四种分组延时

节点处理延时(nodal processing)

  1. 检查bit级差错
  2. 检查分组首部和决定将分组导向何处

排队延时(queueing)

  1. 在输出链路上等待传输的时间
  2. 依赖于路由器的拥塞程度

传输延时(transmission)

  1. R=链路带宽(bps)
  2. L=分组长度(bits)
  3. 将分组发送到链路上的时间=L/R
  4. 存储转发延时

传播延时(propagation)

  1. d=物理链路的长度
  2. s=在媒体上的传播速度(~2x10^8 m/sec)
  3. 传播延时=d/s

image-20230208124142248

排队延时

R=链路带宽(bps)

L=分组长度(bits)

a=分组到达队列的平均速率(单位时间内到达队列的分组个数)

流量强度=L*a/R(上下量纲一致),流量强度在0~1之间(不可能超过1)

  1. 流量强度~0:平均排队延时很小
  2. 流量强度趋近于1:延时变得很大
  3. 流量强度>1:bit到达队列的速率超过了从该队列输出的速率,平均排队延时将趋向无穷大(可以理解为分组会不断地累积)

image-20230208125955902

Internet的延时和路由

image-20230208130256951

利用了ICMP(互联网控制报文协议),这个协议有很多数据包,其中有种数据包,其head包含IP头和控制字段,其body(即载荷)包含IP数据,控制字段中包含TTL(即time to live,生存时间),初始时TTL为一个有限值,每到达一个路由器,TTL减1,当TTL降为0时,数据包被丢弃,同时向数据源发送一个控制报文.TraceRoute程序就是利用TTL,得知路径上的交换节点与往返延迟(RTT/Round Trip Time),如查看第一个路由—TTL设为1.

分组丢失

链路的队列缓冲区容量有限,当分组到达一个满的队列时,该分组将会丢失,丢失的分组可能会被前一个节点或源端系统重传,或根本不重传

吞吐量

在源端和目标端之间传输的速率(数据量/单位时间)

  1. 瞬间吞吐量:在一个时间点的速率
  2. 平均吞吐量:在一个长时间内平均值

遵循木桶效应(取带宽最小值)

瓶颈链路:端到端路径上,限制端到端吞吐的链路

注意计算吞吐量要考虑链路被多个服务复用,要/n

1.7 协议层次和服务模型

协议层次

网络功能繁杂:数字信号的物理信号承载,点到点,路由,rdt,进程区分,应用等

现实来看,网络的许多构成元素和设备:

  1. 主机
  2. 路由器
  3. 各种媒体的链路
  4. 应用
  5. 协议
  6. 硬件,软件

问题是:如何组织和实现这个复杂的网络功能—采用分层的方式(调用仅发生在相邻层之间)

层次化方式实现复杂网络功能:

  1. 将网络复杂的功能分成功能明确的层次,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能:服务(服务是功能的子集)
  2. 本层协议实体相互交互执行本层的协议动作,目的是实现本层功能,通过接口为上层提供更好的服务
  3. 在实现本层协议的时候,直接利用了下层所提供的服务
  4. 本层的服务:借助下层服务实现的本层协议实体之间交互带来的新功能(上层可以利用的)+更下层所提供的服务

协议通过下层的服务实现,而协议的实现是为了给上层更好地提供服务

服务与服务访问点

服务(service):低层实体向上层实体提供它们之间通信的能力

  • 服务用户(service user)
  • 服务提供者(service provider)

原语(primitive):上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过服务访问原语来进行交互的—-形式

  • 比如socket API中的一系列函数

服务访问点SAP(Services Access Point):上层使用下层提供的服务通过层间的接口—-地点

  • 例子:邮箱
  • 地址(address):下层的一个实体支撑着上层的多个实体,SAP有标志不同上层实体的作用
  • 可以有不同的实现,队列
  • 例子:传输层的SAP: 端口(port)

服务的类型

面向连接的服务和无连接的服务

面向连接的服务(Connection-oriented Service)

  • 连接(Connection):两个通信实体为进行通信而建立的一种连接
  • 面向连接的服务通信的过程:建立连接,通信,拆除连接
  • 面向连接的服务的例子:网络层的连接被称为虚电路
  • 适用范围:对于大的数据块要传输,不适合小的零星报文
  • 特点:保序
  • 服务类型:
    1. 可靠的信息流 传送页面(可靠的获得,通过接收方的确认)
    2. 可靠的字节流 远程登录
    3. 不可靠的连接 数字化声音

无连接的服务(Connectionless Service)

  • 无连接服务:两个对等实体在通信前不需要建立一个连接,不预留资源;不需要通信双方都活跃;(例:寄信)
  • 特点:不可靠,可能重复,可能失序
  • IP分组,数据包
  • 适用范围:适合传送零星数据
  • 服务类型:
    1. 不可靠的数据报 电子方式的函件
    2. 有确认的数据报 挂号信
    3. 请求回答 信息查询

服务与协议

服务与协议的区别

  • 服务(service):低层实体向上层实体提供它们之间的通信的能力,是通过原语(primitive)来操作的,垂直
  • 协议(protocol):对等层实体(peer entity)之间在相互通信的过程中,需要遵循的规则的集合,水平

服务与协议的联系

  • 本层协议的实现要靠下层提供的服务来实现
  • 本层实体要通过协议为上层提供更高级的服务

image-20230209160502098

数据单元(DU)

image-20230209153302352

SDU即上层需要传递的数据,ICI即控制信息,两者合并成为PDU(SDU过大时,可能会拆解成多个部分,再和ICI合并成为多个PDU)(同理,SDU非常小时,多个SDU也可能发生合并)

PDU即协议数据单元,每一层的PDU可能有其特殊的称呼,如应用层的PDU被称为应用报文(message),传输层的PDU被称为报文段/段(segment),网络层的PDU被称为分组(如果网络层以无连接的方式工作,又称为数据报/IP数据报),链路层的PDU称为帧(frame),物理层的比较含糊,位之类的都可以

分层处理和实现复杂系统的好处

对付复杂的系统

  • 概念化:结构清晰,便于标示网络组件,以及描述其相互关系—分层参考模型
  • 结构化:模块化更易于维护和系统升级
    1. 改变某一层服务的实现不影响系统中的其他层次—对于其他层次而言是透明的
    2. 如改变登机程序并不影响系统的其他部分—改变2个秘书使用的通信方式不影响2个翻译的工作

Internet协议栈

  1. 应用层:网络应用
    • 为人类用户或其他应用进程提供网络应用服务
    • FTP,SMTP,HTTP,DNS
  2. 传输层:主机之间的数据传输
    • 在网络层提供的端到端通信基础上,细分为进程到进程,将不可靠的通信变成可靠的通信
    • TCP,UDP
  3. 网络层:为数据报从源到目的选择路由
    • 主机之间的通信,端到端通信,不可靠
    • IP,路由协议
  4. 链路层:相邻网络节点间的数据传输
    • 2个相邻节点的通信,点到点通信,可靠或不可靠
    • 点对点协议PPP,802.11(wifi),Ethernet
  5. 物理层:在线路上传送bit

image-20230209164322234

(这两层的功能在协议栈中交给应用层去做)

image-20230209164618968

image-20230209165156200

1.8 历史

早期(1960以前)计算机网络

  • 线路交换网络
  • 线路交换的特性使得其不适合计算机之间的通信
    1. 线路建立时间过长
    2. 独享方式占用通信资源,不适合突发性很强的计算机之间的通信
    3. 可靠性不高:非常不适合军事通信
  • 三个小组独立地开展分组交换的研究
    1. 1961: Kleinrock(MIT),排队论,展现了分组交换的有效性
    2. 1964:Baran(美国兰德公司)-军用网络上的分组交换
    3. 1964:Donald(英国)等,NPL

1961-1972:早期的分组交换概念

  • 1967:美国高级研究计划研究局考虑ARPAnet(Kleinrock在MIT的同事)
  • 1969:第一个ARPAnet节点开始工作,UCLA(IMP:接口报文处理机)
  • 1969年底:4个节点
  • 1972:
    1. ARPAnet公众演示
    2. 网络控制协议是第一个端系统直接的主机-主机协议
      1. NCP协议:相当于传输层和网络层在一起,支持应用开发(TCP+IP协议)
    3. 第一个e-mail程序(BBN)
    4. ARPAnet有15个节点

1972-1980:专用网络和网络互联

  • 出现了很多对以后来说重要的网络形式
    1. 1970:ALOHAnet,夏威夷上的微波网络
    2. 1973:Metcalfe在博士论文中提出了Ethernet
    3. ATM网络
    4. ALOHAnet,Telenet,Cyclades法国等
  • 1970后期,网络体系结构的必要性
    1. 专用的体系结构:DECnet,SNA,XNA
    2. 标准化的体系结构
  • 1974:网际互联的Cerf and Kahn 体系结构
  • 1979:ARPAnet的规模在持续增加,体系结构也在酝酿着变化,以支持网络互联和其他目的(性能)需求
    1. 节点数目增加,有200个节点

Cerf and Kahn网络互联原则(定义了今天的Internet体系结构):

  1. 极简,自治
  2. 尽力而为(best effort)服务模型(在TCP协议再实现可靠性)
  3. 无状态的路由器
  4. 分布控制

采用哪种网络解决方案?

  1. ISO/OSI网络互连方案
    1. 需要销毁旧设备,成本大
    2. 实现起来效率低
  2. Cerg and Kahn网络互联原则
    1. 覆盖性,原有设备仍可使用
    2. 极具包容性

1983年,ARPAnet所有设备停机,做软件升级,从NCP协议变成TCP/IP协议栈

1980-1990:体系结构变化,网络数量激增,应用丰富

  • 1983:TCP/IP部署,标记日
    1. NCP分化成2个层次,TCP/IP,从而出现UDP
    2. 覆盖式IP解决网络互联问题
    3. 主机设备和网络交换设备分开
  • 1982:smtp e-mail协议定义
  • 1983:DNS定义,完成域名到IP地址的转换
  • 1985: ftp协议定义
  • 1988:TCP拥塞控制
  • 其他网络形式的发展
    1. 新的国家级网络:Csnet,BITnet,NSFnet,Minitel
    2. 1985年:ISO/OSI提出,时机不对且太繁琐
  • 100000主机连接到网络联邦

1990,2000’s :商业化,Web,新的应用

  • 1990年代初:NSF对ARPAnet的访问网,双主干,ARPAnet退役
  • 1991:NSF放宽了对NSFnet用于商业目的的限制(1995退役),ASFNET非盈利性机构维护,后面叫Internet
  • UNIX中TCP/IP的免费捆绑
  • 1990年代初:Web
    • hypertext[Bush 1945,Nelson 1960’s]
    • HTML,HTTP:Berners-Lee
    • 1994:Mosaic(Netscape,andreesen)
    • 1990年代后期:Web的商业化
  • 1990后期-21世纪
    • TCP/IP体系结构的包容性,在其上部署应用便捷,出现非常多的应用
    • 新一代杀手级应用(即时讯息,P2P文件共享,社交网络等)更进一部促进互联网的发展
    • 安全问题不断出现和修订(互联网的补丁对策)
    • 2001网络泡沫,使得一些好公司沉淀下来(谷歌,微软,苹果,Yahoo,思科)
    • 主干网的速率达到Gbps

2005-现在

  • ~50亿主机:包括智能手机和平板
  • 宽带接入的快速部署
  • 高速无线接入无处不在:移动互联时代
    • 4G部署,5G蓄势待发
    • 带宽大,终端性能高,价格便宜,应用不断增多
  • 在线社交网络等新型应用的出现
    • Facebook:十亿用户
    • 微信,QQ:数十亿用户
  • 服务提供商(Google, Microsoft)创建他们自己的网络
    • 通过提供自己的专用网络提供对搜索,视频内容和电子邮件的即刻访问
  • 电子商务,大学,企业在云中运行他们的服务(eg,Amazon EC2)
  • 体系结构酝酿着大的变化,未来网络蠢蠢欲动