网络基础知识
对应 北京大学计算机网络课程第一讲 参考教材计算机网络-自顶向下方法
计算机网络
网络基础知识
学习内容:
网络实体如何通过协议,实现各类网络功能/服务
主要内容:
计算机网络中的主要问题:
对等实体
实体的识别和命名
实体的组织形式
服务
传输接口
服务性能
是否具有可靠性,安全性等保障
协议
传输内容的格式,语义,顺序
实现与管理
功能、协议->实体的映射
资源分配与调度
实体:计算机网络的组成
分类:
个域网PAN
能在便携式消费电器与通信设备之间进行短距离通信的网络
覆盖范围一般在10米半径以内,如蓝牙耳机等
局域网LAN
局部地区形成的区域网络,如企业网络
分布地区范围有限,可大可小
电脑WLAN接入,打印机共享等
城域网MAN
覆盖一整个城市的网络
广域网WAN
覆盖很大地理区域,乃至覆盖国家和地区
今天的互联网:网络的网络
由多个子网络构成
每个子网络又可进一步划分
直到每个公司、家庭甚至房间内的小网络
ISP(Internet service provider)
提供网络接入与互联服务
网络边缘:
端系统:位于互联网边缘与互联网相连的计算机和其他设备
端系统由各类主机(host)构成:桌面计算机,移动计算机,服务器,其他智能终端设备
主机Host
客户端:各类智能终端
服务器
功能:容纳(运行)应用程序,将用户程序产生的数据向接入网发送,从网络接收数据并提供给应用程序。
内部结构:
网络设备硬件(网卡):对外通信
内核软件:内核驱动:网卡管理与访问(为特定网卡开发);网络协议栈:网络数据处理(与网卡无关)
用户软件:调用内存提供接口(socket)进行数据发送/接收
命名:
唯一设备ID(48位mac地址):全球唯一,不可修改(IEEE将命名空间分给各个厂商,厂商自行保证出厂设备不重名)
IP地址:一组数字构成(IPv4 32位,IPv6 128位)
主机名:字符串(方便记忆)
接入网
连接边缘端系统与网络核心
通信链路(光纤、铜缆、无线电、激光链路)
接入网目标
将主机连接到边缘路由器上
边缘路由器是将端系统Host去往任何远程端系统的路程上的第一台路由器
各种异构网络是通过边缘路由器接入
如何将终端系统连接到边缘路由器
通过各种物理介质(引导性介质:双绞线,同轴电缆(两根同心铜导线),光纤;非引导性介质:无线电,无线链路)
有线网络接入技术:拨号上网(数字用户线DSL),同轴电路,光纤到户,以太网
无线网络接入技术:WiFi,4G、5G,卫星广域覆盖
传输单位:位(bit)1B=8b K/M/G层级为10^3进制
网络核心
由互联网端系统的分组交换设备和通信链路构成的网状网
目标:将海量的端系统互联起来
关键技术:分组交换
主机将数据分成分组(Packet),发送到网络
网络将数据分组从一个路由器转发到下一个路由器,通过从源到目标的路径上的链路,逐跳传输抵达目的地
两大功能
功能1:路由
全局操作:确定数据分组从源到目标所使用的路径
需要路由协议与路由算法,产生路由表
功能2:转发
本地操作:路由器或交换机将收到的数据分组转发出去(即移动到该设备的某个输出接口)
确定转发出去的接口/链路,根据从“入接口”收到分组头中的目的地址,查找本地路由表,确定”出接口”
分组交换
将大消息(message)拆分成多个小分组(packet)
以分组作为数据传输单元
每个分组的首部都含有地址(目的地址和源地址)等控制信息
支持灵活的统计多路复用
使用存储-转发机制,实现数据交互的通信方式
路由器需要接收到完整的整个数据包后,才能开始向下一跳发送
存储转发带来额外的报文的传输延迟
正常的链路传播延迟:将L位数据包,以R bps的速率发送到链路中,需要L/R秒
每个分组在互联网中独立地选择传输路径
不同分组可以共享使用同一节点或链路
如果某段链路上,分组到达速率超过链路传输速率
分组在一个缓冲区中排队,等到链路可用
若队列被填满,后续分组就被抛弃(丢包)
另一种选择:电路交换
先呼叫建立连接,实现端到端的资源预留(链路带宽资源,交换机的交换能力)
电路交换连接建立后,物理通路被通信双方独占,资源专用,既不空闲也不与其他连接共享
由于建立连接并预留资源,因此传输性好,但如果有设备故障则传输中断
交换方式的比较
分组交换随时发送无需连接;电路交换需要建立连接
分组交换没有预留资源,但较灵活;电路交换为每个连接预留资源
分组交换适合有大量突发资源,简单,不需要建立连接
缺点1:分组交换容易拥塞,引起排队延迟甚至丢包
需要设计可靠性机制与拥塞控制机制
缺点2:分组交换无法提供类似电路交换的服务
折中方法:虚电路(目前仍然没有公认解决方案)
Internet架构
端系统通过本地网络提供商(access ISP)接入Internet
本地网络提供商之间也需要相互连接,产生了以恶搞结构极度复杂的当今Internet
Access ISP如何建立连接?
选择1:两两建立链路:可拓展性问题(O(N^2)链路)
选择2:每个Access ISP接入一个全局ISP (ISP之间签署服务协议)
单个ISP可能无法满足传输要求,其他全局ISP出现
全局ISP之间也需要互连
互联网公司也组建自己网络,使得数据中心与用户距离更近,这种网络通常称为CDN
服务:网络的功能,接口,质量
从应用程序角度:与网络上的其他应用程序交互(发送/接收消息)
按调用方式:分为“面向连接”和”无连接“两大类
按服务质量:可靠性,性能,安全
服务由一组可用于用户进程以访问服务的原语(操作)形式指定
原语告诉服务执行某些操作或报告对等实体所采取的操作
六个核心服务原语:
面向连接的网络服务
传输数据之前,先建立对话链接
无连接的网络服务
数据传输前不需要事先建立连接
传输过程不需要应答
网络服务的性能指标
带宽
网络中某通道传输数据的能力,即单位时间内网络的某信道所能通过的最高数据率
单位是bit/s,也可以写为bps
包转发率
全称是Packet Per Second,表示交换机或路由器等网络设备以包为单位的转发速率
线速转发:交换机在满负荷的情况下,对帧进行转发时能够达到该端口线路的最高速度(在交换机上,大包更容易实现线速)
比特率(bit rate)
单位时间内,主机往数据信道上传输数据的数据量,也称为数据率或传输速率,单位是bps
吞吐量
单位时间内,通过某个网络位置(或信道,接口)的数据量,单位是bps
有效吞吐量:正确地接收到的有用信息的数目,单位bps
利用率
信道利用率指出某信道百分之几的时间是被利用的
网络利用率是全网络的信道利用率的加权平均
丢包率
所丢失的数据包的数量占所发送数据包的比率
时延
时延是指数据(一个报文或分组)从网络(或链路)的一端传送到另一端所需的时间,也称为延迟
传输时延
数据从结点进入到传输媒体所需要的时间,又称为发送时延(与设备有关)
传播时延
电磁波在信道中需要传输一定距离而花费的时间(与介质有关)
处理时延
主机或路由器在收到分组时,为处理分组(如分析首部,提取数据,差错校验或查找路由)所花费的时间(与设备有关)
排队时延
分组在路由器输入输出队列中排队等待处理所经历的时延
最不确定因素:L=AxW (L:平均队列长度,A平均到达速率,W平均等待时间,A和W相对困难得到)
总时延
通用方法:将一个大问题分解成多个小问题
总时延=传输时延+传播时延+处理时延+排队时延
优化:设计专用芯片,开发系统系统模块(处理+传输),光纤等(排队+传播)
往返时延 RTT
从发送方发送数据开始,到发送方收到来自接收方的确认经历的总时间
可用于判断网络的通断性,测试网络时延,计算数据丢包率(PING)
时延带宽积
时延带宽积=传播时延x带宽
若发送端连续发送数据,则在发送的第一个bit即将达到终点时,发送端就已经发送了时延带宽积个bit,而这些bit都在链路上向前移动
时延抖动
变化的时延称为抖动
起源于网络中的个队列或缓冲,难以精确预测
在语音,视频多媒体业务中,抖动往往会严重影响用户的体验
延迟丢包
在多媒体应用中,由于数据包延迟到达,在接收端需要丢弃失去使用价值的包
其他指标
可靠性:发送的每个消息,接收方收到一次且仅收到一次
完整性:发送的数据无法篡改
隐私性:数据不被第三方截获(有时包含发送方身份不暴露)
可审计性:可追溯用户的传输行为
协议:通信的内容
网络协议:为进行网络中的数据交换而建立的规则、标准或规定
通信双方需要共同遵守,相互理解
发送方:发送某个消息时,应满足特定条件
接收方:收到某个消息后,要完成特定的工作
三要素:
语法:规定传输数据的格式
语义:规定所要完成的功能
时序:规定各种操作的顺序
设计目的:表明身份,可靠性,资源分配,拥塞问题,自适应性,安全问题
通信双方要说的事情多种多样,导致网络协议异常复杂
协议封装
网络协议以头部封装的形式定义
每个协议定义自己头部信息,数据被封装为协议载荷
头部定义了如何处理分组
网络实现与管理
将网络分为多个层次,每层提供功能与服务保障,层与层之间有接口调用,同层实体通过该层协议进行对话,屏蔽各层实现细节
统一标准,模块独立
分层的好处:降低复杂度,增加灵活性
坏处:引入额外开销,跨层信息有时候也很重要
计算机网络中的经典分层
OSI参考模型
物理层(Physical Layer)
定义如何在信道上传输0,1
机械接口:网线接口大小,形状,线缆排列等
电子信号:电压、电流等
时序接口:采样频率,波特率,比特率等
介质:各种线缆,无线频谱等
数据链路层 (Data Link Layer)
•实现相邻(Neighboring)网络实体间的数据传输
•成帧(Framing):从物理层的比特流中提取出完整的帧
•错误检测与纠正:为提供可靠数据通信提供可能
•物理地址(MAC address):48位,理论上唯一网络标识,烧录在网卡,不便更改
•共享信道上的访问控制(MAC):同一个信道,同时传输信号。
•流量控制,避免“淹没”(overwhelming):当快速的发送端遇上慢速的接收端,接收端缓存溢出
网络层 (Network Layer)
•将数据包跨越网络从源设备发送到目的设备(host to host)
•路由(Routing):在网络中选取从源端到目的端转发路径,常常会根据网络可达性动态选取最佳路径,也可以使用静态路由
•路由协议:路由器之间交互路由信息所遵循的协议规范,使得单个路由器能够获取网络的可达性等信息
•服务质量(QoS)控制:处理网络拥塞、负载均衡、准入控制、保障延迟
•异构网络互联:在异构编址和异构网络中路由寻址和转发
传输层 (Transport Layer)
•将数据从源端口发送到目的端口(进程到进程)
•网络层定位到一台主机(host),传输层的作用域具体到主机上的某一个进程
•网络层的控制主要面向运营商,传输层为终端用户提供端到端的数据传输控制
•两类模式:可靠的传输模式,或不可靠传输模式
•可靠传输:可靠的端到端数据传输,适合于对通信质量有要求的应用场景,如文件传输等
•不可靠传输:更快捷、更轻量的端到端数据传输,适合于对通信质量要求不高,对通信响应速度要求高的应用场景,如语音对话、视频会议等
会话层 (Session Layer)
•利用传输层提供的服务,在应用程序之间建立和维持会话,并能使会话获得同步
表示层(Presentation Layer)
•关注所传递信息的语法和语义,管理数据的表示方法,传输的数据结构
应用层(Application Layer)
•通过应用层协议,提供应用程序便捷的网络服务调用
TCP/IP参考模型
ARPNET 最终采用TCP和IP为主要协议
先有TCP/IP协议栈,然后有TCP/IP参考模型,参考模型只是用来描述协议栈的
网络接口层(Host-to-network Layer)
描述了为满足无连接的互联网络层需求,单跳链路必须具备的功能
互联网层(Internet Layer)
通过多跳连接,将数据包独立的传输至目的地,并定义了数据包格式和协议(IPv4协议和IPv6协议)
传输层(Transport Layer)
允许源主机与目标主机上的对等实体,进行端到端的数据传输:TCP,UDP
应用层(Application Layer)
传输层之上的所有高层协议:DNS、HTTP、FTP、SMTP…
比较
网络分层没有对与错,只有是否符合需要
接口与协议的关系
协议是“水平”的,接口是“垂直”的
实体使用协议来实现其定义的接口
上层实体通过接口调用下层实体
发送端层层封装头部数据,接收端:层层解封装头部数据
网络分层的实现
端系统:实现所有分层(用户程序运行在端系统,比特流进入系统,要一直传输给用户程序)
边缘网与网络核心:实现第一层到第三层功能
交换机:物理层与数据链路层功能
路由器:实现前三层功能
传统路由器支持多跳传输,传统交互机不支持多跳传输,现代路由器和交换机已经不做区分
特征1:复杂系统由端系统实现
兵器电话系统中“笨终端,聪明网络”的设计思路
端对端原则:采用”聪明终端,简单网络“,用端系统负责丢失恢复等复杂共功能
实现了建立在简单的,不可靠部件上的可靠系统
好处:简单的网络大大提升了可拓展性
特征2:以IP协议为核心
可在各种底层物理网络上运行
支持各类上层应用
好处:IP分组独立处理,网络核心功能简单,适应爆炸性增长;容易实现多个网络互连(只要都支持IP);屏蔽上层应用与底层通信