什么是计算机网络?
计算机网络是通信技术+计算机技术;是互连(互连互通)的,自治(无主从关系)的计算机集合
什么是网络协议?
简称为协议,是为进行网络中数据交换而建立的规则、标准或约定;协议规定了通信实体之间所交换的消息的格式、意义、顺序以及针对收到信息或发生的事件所采用的“动作”。
协议三要素:语法(数据与控制信息的结构或格式、信号电平)、语义(需要发出何种控制信息、完成何种动作以及做出何种响应、差错控制)、时序(事件顺序、速度匹配)
网络核心的关键功能:路由+转发
路由:确定分组从源到目的传输路径; 转发:将分组从路由器的输入端口交换至正确的输出端口
ISP是Internet Service Provider的缩写,意为“Internet服务提供商”,这里的服务主要是指Internet接入服务,即通过电话线把你的计算机或其他终端设备连入Internet。
数据交换的类型:电路交换、报文交换、分组交换
电路交换
最典型电路交换网络:电话网络
电路交换的三个阶段:建立连接(呼叫/电路建立)、通信、释放连接。特点:独占资源
电路交换网络如何共享中继线?
多路复用技术:简称复用。
频分多路复用FDWM(按频率大小划分,占用不同的带宽资源(有线电视))
时分多路复用TDM(将时间划分为一段段等长的时分复用帧,每个用户在每个TDM帧中占用固定序号的时隙(周期性出现))
波分多用复用WDM:光的频分复用
码分多路复用CDM:广泛应用于无线链路共享(如蜂窝网、卫星通信等);
每个用户分配一个唯一的m bit码片序列,其中“0”用“-1”、“1”用“+1”表示;
各用户使用相同频率载波,利用各自码片序列编码数据。
编码信号 = 原始数据 * 码片序列
各用户码片序列相互正交
报文交换
报文:源(应用)发送信息整体,比如:一个文件
分组交换
分组:报文分拆出来的一系列相对较小的数据包。
在数据上加上一个头部信息。
分组交换需要报文的拆分与重组,会产生额外开销
统计多路复用:并不事先分配好的,随机分配;A&B分组序列不确定,按需共享链路
报文交换与分组交换均采用存储-转发交换方式
区别:
报文交换以完整报文进行“存储-转发”
分组交换以较小的分组进行“存储-转发”
哪种交换更好?
分组交换:传输延迟
报文交换 VS 分组交换
报文交换:
报文长度为M bits
链路带宽为R bps
每次传输报文需要M/R秒
分组交换:
报文被拆分为多个分组
分组长度为L bits
每个分组传输时延为L/R秒
比较而言:分组交换传输速度快,需要缓存小;
T:分组交换的报文交付时间
分组交换 VS 电路交换
分组交换允许更多用户同时使用网络-----网络资源被充分应用
分组交换绝对由于电路交换?不完全准确
适用于突发数据传输网络
*
资源充分共享
*
简单、无需呼叫建立
可能会产生拥塞:分组延迟和丢失
需要协议处理可靠数据传输和拥塞控制
计算机性能
速率:即数据率或称数据传输速率或比特率; 单位 : b/s kb/s Mb/s
速率往往是指额定速率或标称速率
带宽:原本指信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹(Hz)
网络中的带宽通常是指数字信道所能传送的最高数据率,单位:b/s
延迟/时延
分组交换为什么会发生丢包和时延?
A: 分组在路由器缓存中排队
分组到达速率超出输出链路容量时
四种分组延迟
1.结点处理延迟
差错检测
确定输出链路
通常<ms级
2.排队延迟(不确定)
等待输出链路可用
取决于路由器拥塞程度
3.传输延迟
L: 分组长度
R:链路带宽
d=L/R
4.传播延迟
d:物理链路长度
s:信号传播速度(2*10^8 m/sec)
d1=d/s;
时延带宽积=传播时延 * 带宽 = d * R(又称为以比特为单位的链路长度)
分组丢失(丢包)
队列缓存容量有限;分组到达已满队列将被丢弃;丢弃分组可能由前序结点或源重发;丢包率 = 丢包数/已发分组总数
吞吐量/率:表示在发送端与接收端之间传送数据速率(b/s)
即时吞吐量:给定时刻的速率; 平均吞吐量:一段时间的平均速率
计算机网络体系结构(分层结构)
网络体系结构是从功能上描述计算机网络结构;每一层遵循某个/些网络协议完成本层功能;
实体表示任何可发送或接受信息的硬件或软件进程。
协议是控制两个对等实体进行通信规则的集合,协议是“水平的”;
任一层实体需要使用下层服务,遵循本层协议,实现本层功能,向上层提供服务,服务是垂直的;
下层协议的实现对上层的服务用户是透明的;
同系统的相邻层实体间通过接口进行交互,通过服务访问点SAP,交换原语,指定请求的特定服务。
OSI(开放系统互联)参考模型;目的是支持异构网络系统(国际标准)的互联互通;
7层结构:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层(端-端层)
为什么需要数据封装?
增加控制信息
构造协议数据单元(PDU)
控制信息主要包括:
地址:标识发送端/接收端
差错检测编码:用于差错检测或纠正
协议控制:实现协议功能的附加信息,如:优先级、服务质量、安全控制
物理层功能
接口特性:机械特性(接口几何形状)、电气特性(电平大小)、功能特性(引脚功能)、规程特性(工作遵循的过程)
比特编码
数据率
比特同步:时钟同步
传输模式:单工,半双工、
数据链路层功能
负责结点-结点数据传输,以帧为数据单位传输
组帧:组成一个数据帧,加头加尾
物理寻址:在帧头增加发送端或接收端的物理地址标识数据帧的发送端或接收端
流量控制:避免淹没接收端
差错控制:检测并重传损失或丢失帧,并避免重复帧
访问(接入)控制:在任一给定时刻决定那个设备拥有链路(物理介质)控制使用权
网络层功能
负责源主机到目的主机数据分组交付
可能穿越多个网络
逻辑寻址
全局唯一逻辑地址,确保数据分组被送达目的主机
路由
路由器(或网关)互联网络,并路由分组指最终目的主机
路径选择
分组转发
传输层功能
负责源-目的(端-端) (进程间)完整报文传输
分段与重组
SAP寻址
确保将完整报文提交给正确进行,如端口号
连接控制(逻辑连接)
流量控制
差错控制
会话层功能
对话控制:建立、维护
同步:在数据流中插入“同步点”
最“薄”的一层
表示层功能
处理两个系统间交换信息的语法与语义问题
数据表示转化
转化成主机独立的编码
加密/解密
压缩/解压缩
应用层功能
支持用户通过用户代理(如浏览器)或网络接口使用网络(服务)
典型应用服务:文件传输(FTP)、电子邮件(SMTP)、Web(HTTP)…
TCP/IP参考模型
IP可为各式各样的应用程序提供服务
5层参考模型(综合OSI和TCP/IP的优点)
物理层、数据链路层、网络层、传输层、应用层
源主机:(应用层(报文)—>传输层(段(加段头,可能拆分报文))—>网络层(数据报)—>链路层(数据帧(加头加尾))—>物理层)
—>
交换机(物理层—>链路层)
—>
路由器(物理层—>链路层(去头去尾还原为数据报)—>网络层(数据报)—>链路层(数据帧)—>物理层))
—>
目的主机(物理层—>链路层—>网络层—>传输层—>应用层)
网络应用的体系结构?
客户机/服务器结构(C/S)
服务器
7*24小时提供服务
永久性访问地址/域名
利用大量服务器实现可扩展性
客户机
与服务器通信,使用服务器提供的服务
间歇性接入网络
可能使用动态IP
不会与其他客户机直接通信
点对点结构(P2P);
没有永远在线的服务器
任意端系统/节点之间可以直接通讯
节点间歇性接入网络
节点可能改变IP地址
优点:高度可伸缩 缺点:难以管理
混合结构
Napster
文件传输使用P2P
文件的搜索采用C/S结构—集中式
每个节点向中央服务器登记自己的内容
每个节点向中央服务器提交查询请求,查找感兴趣的内容
网络应用的基础:进程间通信
进程:
主机上运行的程序
同一主机上运行的进程之间如何通信?
进程间通信机制(Socket)
操作系统提供
不同主机上运行的进程间如何通信?
消息交换
套接字:Socket
进程间通信利用socket发送/接收消息实现
类似于寄信
传输基础设施向进程提供API
传输协议的选择
参数的设置
如何寻址进程?
不同主机上的进程间通信,那么每个进程必须拥有标识符
如何寻址主机?----IP地址
主机有了IP地址后,是否足以定位进程?
否。同一主机上可能同时有多个进程进行通信
端口号
为主机上每个需要通信的进程分配一个端口号
HTTP Server:80
Mail Server:25
进程的标识符
IP地址 + 端口号
应用层协议
网络应用需遵循应用层协议
公开协议
由RFC定义
允许互操作
HTTP、SMTP…
私有协议
多数P2P文件共享应用
应用层协议的内容
网络应用对传输服务的需求
数据丢失/可靠性
时间/延迟
带宽
使用TCP传输服务
服务器在80端口等待客户的请求
无状态
服务器不维护任何有关客户端过去所发请求的信息
有状态的协议更复杂
需维护状态
HTTP连接的两种类型
非持久性连接
每个TCP连接最多允许运行一个对象
HTTP 1.0版本使用非持久性连接
响应时间分析与建模
RTT(Round Trip Time)
从客户端发送一个很小的数据包到服务器并返回所经历的时间
存在问题
每个对象需要2个RTT
操作系统需要为每个TCP连接开销资源
浏览器会怎么做?
打开多个并行的TCP连接以获取网页所需对象
给服务器端造成什么影响?
TCP资源是宝贵的
持久性连接
每个TCP连接允许传输多个对象
HTTP 1.1版本默认使用持久性连接
发送响应后,服务器保持TCP连接的打开
后续的HTTP消息可以通过这个连接发送
方法的类型
Web缓存/代理服务器技术
功能
在不访问服务器的前提下满足客户端的HTTP请求
为什么要发明这种技术?
缩短客户请求的响应时间
减少机构/组织的流量
在大范围内实现有效的内容分发
Email应用
构成:
邮件服务器、邮件客户端、SMTP协议
SMTP协议:RFC 2821
使用TCP进行email消息的可靠传输
端口25
传输过程的三个阶段:握手、消息的传输、关闭
命令(ASCII)/响应(状态代码和语句)交互模式
Email消息只能包含7位的ASCII码
邮件访问协议:从服务器获取邮件;
POP:认证/授权(客户端<----->服务端)和下载
IMAP:更多功能、复杂;能够操纵服务器上存储的消息
HTTP:163,qq
DNS(域名解析系统)概述
多层命名服务器构成的分布式数据库
应用层协议:完成名字的解析
Internet核心功能,用应用层协议实现
网络边界复杂
DNS服务
域名向IP地址的翻译
主机别名
邮件服务器别名
负载均衡:Web服务器
纯P2P架构
没有服务器
任意端系统之间直接通信
节点阶段性接入Internet
节点可能更换IP地址
Socket编程-网络程序设计接口
应用编程接口API
就是应用程序的控制权和操作系统的控制权进行转换的一个系统调用接口
Socket抽象
类似于文件的抽象
当应用进程创建套接字时,操作系统分配一个数据结构存储该套接字相关信息
返回套接字描述符
地址结构
Socket API函数
Socket面向TCP/IP的服务类型
TCP/IP定义了标准的用于协议头中的二进制整数表示:网络字节顺序
某些Socket API函数的参数需要存储为网络直接顺序(如IP地址、端口号等)
可以实现本地字节顺序与网络字节顺序间转换的函数
网络应用的Socket API(TCP)调用基本流程
客户端软件设计
解析服务器IP地址
客户端可能使用域名或IP地址标识服务器
IP协议需要使用32位二进制IP地址
需要将域名或IP地址转换为32位IP地址
函数inte_addr()实现点分十进制IP地址到32位IP地址转换
函数个体hostbyname()实现域名到32位IP地址转换
返回一个指向hostent的指针
TCP客户端软件流程
UDP客户端软件流程
理解传输层服务的基本理论和基本机制
多路复用/分用
可靠数据传输机制
流量控制机制
拥塞控制机制
掌握Internet的传输层协议
UDP:无连接传输服务
TCP: 面向连接的传输服务
TCP拥塞控制
传输层服务和协议
传输层协议为运行在不同Host上的进程提供了一种逻辑通信机制
端系统运行传输层协议
发送方:将应用递交的消息分为一个或多个的Segment,并向下传给网络层
接收方:将接收到的segment组装成消息,并向上交给应用层
传输层可以为应用提供多种协议
Internet上的TCP
Internet上的UDP
传输层 VS 网络层
TCP概述
点对点
一个发送方,一个接收方
可靠的、按序的字节流
流水线机制
TCP拥塞控制和流量控制机制设置串口尺寸
发送方/接收方缓存
全双工
同一连接能够传输双向数据流
面向连接
通信双方在发送数据之前必须建立连接
连接状态只在连接的两端中维护,在沿途节点中并不维护状态
TCP连接包括:两台主机上的缓存、连接状态变量、socket等
网络层
核心功能1:转发与路由
转发:将分组从路由器的输入端口转移到合适的输出端口
路由:确定分组从源到目的经过的路径
核心功能1:连接建立
IP协议
IP数据报
版本号字段占4位:IP协议的版本号 4–IPv4 6–IPv6
首部长度字段占4位:IP分组首部长度 以4字节为单位;eg:5—IP首部长度为20(5*4)字节
服务类型(TOS)字段占8位:指示期望获得哪种类型的服务
总长度字段占16位:IP分组的总长节数(首部+数据)
最大的IP分组的总长度:65535B
最小的IP分组首部:20B
IP分组可以封装的最大数据:65535-20=65515
生存时间(TTL)字段占8位:IP分组在网络中可以通过的路由器数(或跳步数)
路由器转发一次分组,TTL减1
如果TTL=0,路由器则丢弃该IP分组
协议字段占8位,指示IP分组封装的是哪个协议的数据报
首部校验和字段占16位:实现对IP分组首部的差错检验
计算校验和时,该字段置零
采用反码算数运算求和,和的反码作为首部校验和字段
IP编码
IP分组:
源地址(SA)-从哪来
目的地址(DA)到哪去
接口:主机/路由器与物理链路的连接
实现网络层功能
路由器通常有多个接口
主机通常有一个或两个接口
IP地址:32比特(IPv4),编号标识主机、路由器的接口
IP地址与每个接口关联