引言
典型交换方式及其优缺点
-
线路(电路)交换技术 建立线路:一个节点一个节点请求,请求一条线路,占用它,反馈可用 占用线路并进行数据传输:比特流直达 释放线路:传输完毕,一个节点一个节点发送释放请求,释放资源 -
存储转发技术
? 电路交换需要建立连接并预留资源,难以实现灵活复用
? 报文交换和分组交换较灵活,抗毁性高,在传送突发数据时可提高网络利用率
? 由于分组长度小于报文长度,分组交换比报文交换的时延小,也具有更好的灵活性
分层结构和网络协议
网络协议:为进行网络中的数据交换而建立的规则、标准或约定
- 设计目的:可靠性 资源分配 拥塞问题 自适应性 安全问题
- 协议三要素:
- 语法:规定传输数据的格式(如何讲)
- 语义:规定所要完成的功能(讲什么)
- 时序:规定各种操作的顺序(双方讲话的顺序)
网络体系结构是计算机网络的分层、每层的功能以及每层使用到的协议的集合。
协议层次结构 | 内容 |
---|
层次栈 | 为了降低网络设计的复杂性,大部分网络都组成一个层次栈,每一层都建立在其下一层的基础上 | 对等实体 | 不同机器上构成相应层次的实体成为对等实体 | 接口 | 在每一对相邻层次之间的是接口;接口定义了下层向上层提供哪些操作与服务 | 网路体系结构 | ?层和协议的集合为网络体系结构,一个特定的系统所使用的一组协议,即每层的协议集合,称为协议栈 |
掌握网络参考模型
OSI参考模型
OSI | 内容 |
---|
应用层 | ~ | 表示层 | ~ | 会话层 | ~ | 传输层 | 将数据从源端口发送到目的端口(进程到进程) | 网络层 | 将数据包跨越网络从源设备发送到目的设备 | 数据链路层 | 实现相邻网络实体间的数据传输 成帧:从物理层的比特流中提取出完整的帧 | 物理层 | 定义如何在信道上传输0、1 |
TCP/IP参考模型
TCP/IP | 内容 |
---|
应用层 | 描述了为满足无连接的互联网络层需求,链路必须具备的功能 | 传输层 | 允许主机将数据包注入网络,让这些数据包独立的传输至目的地,并定义了数据包格式和协议(IPv4协议和IPv6协议) | 互联网层 | 允许源主机与目标主机上的对等实体,进行端到端的数据传输:TCP,UDP | 链路层 | 传输层之上的所有高层协议:DNS、HTTP、FTP、SMTP… |
教学模型
教学模型 | 内容 |
---|
应用层 | 应用层的任务是通过应用进程之间的交互来完成特定网络应用 | 传输层 | 传输层的任务就是负责两台主机进程之间的通信提供通用的数据传输服务 | 网络层 | 网络层负责为分组交换网上的不同主机提供通信服务 | 数据链路层 | 提供一段链路相邻结点的传输服务 | 物理层 | 提供网络通信的物理规范 比如网线、光纤、电线等等。 |
计算机网络主要度量的含义
时延:
-
传输时延:数据从结点进入到传输媒体所需要的时间,传输时延又称为发送时延 -
传播时延:电磁波在信道中需要传播一定距离而花费的时间 -
处理时延:主机或路由器在收到分组时,为处理分组(例如分析首部、提取数据、差错检验或查找路由)所花费的时间 -
排队时延:分组在路由器输入输出队列中排队等待处理所经历的时延 d total = dproc + dqueue + dtrans + dprop 往返时延RTT:发送方发送数据 到 发送方收到接收方的确认 的总时间。 时延带宽积=传播时间*带宽,即按比特计数的链路长度 带宽10Mb/s,传播时延20ms,时延带宽积:20x10x106 ÷1000=2x105bit
带宽: 数字信道可通过的最高数据率,即每秒比特数,单位bit / s.
**吞吐量:**单位时间内通过某个网络的数据量,单位是b/s
利用率:指出某信道由百分之几的时间是被利用的
丢包率:所丢失的包的数量占所发送数据包的比例
网络安全与威胁
病毒:在计算机程序中插入的破坏计算机功能或者数据的代码 能影响计算机使用,能自我复制的一组计算机指令或者程序代码
蠕虫:一种无须计算机使用者干预即可运行的独立程序 它通过不停的获得网络中存在漏洞的计算机上的部分或全部控制权来进行传播
拒绝服务攻击:攻击者通过制造大量虚假流量占用资源 使合法流量无法使用资源(服务、带宽)
应用层
应用进程通信方式:
-
客户/服务器(C/S, Client/Server)方式 面向连接时,C/S通信关系一旦建立,通信就是双向的,双方地位平等,都可发送和接收数据 -
对等(P2P,Peer to Peer)方式 对等方式是指两个进程在通信时并不区分服务的请求方和服务的提供方,只要两个主机都运行P2P软件,它们就可以进行平等、对等的通信 P2P方式从本质上看仍然是使用了C/S方式,但强调的是通信过程中的对等,这时每一个P2P进程既是客户同时也是服务器
服务器进程工作方式:
-
循环方式 一次只运行一个服务进程 当有多个客户进程请求服务时,服务进程就按请求的先后顺序依次做出响应 (阻塞方式) -
并发方式 可以同时运行多个服务进程 -
无连接循环方式服务 使用无连接的UDP服务进程通常都工作在循环方式,即一个服务进程在同一时间只能向一个客户进程提供服务。(顺序服务) -
面向连接的并发方式服务 面向连接的TCP服务进程通常都工作在并发服务方式,服务进程在同一时间可同时向多个客户进程提供服务。(并发服务)
域名系统
域名系统(DNS,Domain Name System)是互联网重要的基础设施之一,向所有需要域名解析的应用提供服务,主要负责将可读性好的域名映射成IP地址 Internet采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS。
- Internet的域名结构采用了层次树状结构的命名方法
- 合法域名中,点“.”的个数至少为一个
- … .三级域名.二级域名.顶级域名
域名的解析: 负责进行名字解析的服务器统称为名字服务器或域名服务器 域名解析过程对用户透明
域名解析过程概述:当某一应用进程需要进行域名解析时,该应用进程将域名放在DNS请求报文(UDP数据报, 端口号为53)发给本地域名服务器(使用UDP是为了减少开销)。本地域名服务器查找域名后, 将对应IP地址放在应答报文中返回给应用进程
域名查询有递归查询(recursive query)和迭代查询(或循环查询,iterative query)两种方式
主机向递归解析器/本地域名字服务器的查询一般采用递归查询
递归解析器/本地域名字服务器向根服务器可以采用递归查询,但一般优先采用迭代查询
递归查询:
- 当收到查询请求报文的域名服务器不知被查询域名的IP地址时,该域名服务器就以DNS客户的身份向下一步应查询的域名服务器发出查询请求,即替本地域名字服务器继续查询
- 较少使用
迭代查询
- 当收到查询请求报文的域名服务器不知道被查询域名的IP地址时,就把自己知道的下一步应查询的域名服务器IP地址告诉本地域名字服务器,由本地域名字服务器继续向该域名服务器查询,直到得到所要解析的域名的IP地址,或者查询不到所要解析的域名的IP地址
- 通常使用
域名系统高速缓存
DNS高速缓存作用
- 为提高DNS查询效率,并减轻根域名服务器的负荷和减少Internet上的DNS查询报文数量,域名服务器广泛使用高速缓存,用来存放最近查询过的域名以及从何处获得域名映射信息的记录
使用高速缓存的好处
电子邮件
用户代理(user agent)——邮件客户端
- 编辑和发送邮件
- 接收、读取和管理邮件
- 管理地址簿
- 无统一标准
传输代理(message transfer agent)——邮件服务器
- 邮箱:保存用户收到的邮件
- 邮件输出队列:存储等待发送的邮件
- 运行电子邮件协议
简单邮件传输协议SMTP(Simple Mail Transfer Protocol)——邮件服务器之间传递邮件使用的协议
- smtp客户: 发送邮件端
- smtp服务器: 接收邮件端
电子邮件系统采用客户/服务器工作模式
最后传递:最终交付(邮件访问)协议(3种):从邮件服务器的邮箱中获取邮件
POP3:当用户代理打开一个到端口110上的TCP连接后,客户/服务器开始工作
- 认证:处理用户登录的过程
- 事物处理:用户收取电子邮件,并将邮件标记为删除
- 更新:将标为删除的电子邮件删除
POP3使用客户/服务器工作方式,在接收邮件的用户PC机中必须运行POP客户程序,而在用户所连接的ISP的邮件服务器中则运行POP服务器程序
IMAP和Webmail
WWW
www体系结构与协议:使用 http协议
服务器:
- web页面(html文档):包含多种对象或链接
- web对象(包括:静态对象和动态对象)
- 对象用URL(统一资源定位符) 编址:协议类型://主机名:端口 //路径和文件名
客户端:
-
发出请求,接受响应,解释HTML文档并显示 -
有些对象需要游览器安装插件
www性能提升方法
- 缓存
- 多线程
- 前端
(非持久连接和持久连接)HTTP
-
非持久连接
-
HTTP/1.0缺省为非持久连接
-
获取每个对象需要两个阶段
-
每次连接需要经历TCP慢启动阶段 -
持久连接
- HTTP/1.1缺省为持久连接
- 在相同的TCP连接上,服务器接收请求、响应;再接收请求、响应;响应后保持连接
- HTTP/1.1支持流水线机制
- 经历较少的慢启动过程,减少往返时间
web缓存技术与web代理
Web代理服务器缓存:代理服务器缓存已访问过的Web页副本,满足用户浏览器从代理服务器提取Web页,尽量减少原始服务器参与
设置用户浏览器,通过代理服务器进行Web访问
浏览器将所有的HTTP请求发送到代理服务器
cookie
- Cookies一般包含5个字段 每个域为每个客户分配Cookie有数量限制
- 路径标明服务器的文件树中哪些部分可以使用该Cookie
- 内容采用“名字=值”的形式,是Cookie存放内容的地方,可以达到4K容量,内容只是字符串,不是可执行程序
- Cookie技术是把双刃剑,能分析用户喜好,向用户进行个性化推荐
- Cookie技术是把双刃剑,也能跟踪用户网络浏览痕迹,泄露用户隐私
流式存储媒体
视频:一连串的图像以固定速率进行展示 模拟视频通过采样得到的
数字图像:像素阵列 每个像素都用若干二进制bit来表示
空间冗余 (帧内)
时间冗余 (两个相邻帧之间)
流媒体怎么从服务器端到客户端
- 浏览器用户使用 HTTP 的 GET 报文接入到万维网服务器;这个超链指向一个元文件(有音/视频文件的统一资源定位符 URL)
- 万维网服务器把该元文件装入 HTTP 响应报文的主体,发回给浏览器
- 浏览器调用媒体播放器,把提取出的元文件传输给媒体播放器
- 媒体播放器使用元文件中的 URL,向媒体服务器发送 HTTP 请求报文,要求下载音/视频文件
- 媒体服务器发送 HTTP 响应报文,把音/视频文件发送给媒体播放器;媒体播放器边下载边解压缩边播放(通过时间戳同步音频流和视频流)
内容分发
内容分发网络CDN
- 一种web缓存系统,靠近网络边缘(用户)提供内容服务
- 目前提供更丰富的服务,包括静态内容,流媒体,上传视频
CDN服务器如何布局
- 在多个地理分布的位置存储/服务 多个视频拷贝
- 深入:将CDN服务器深入部署到很多访问网络的内部
- 邀请做客:在少量(例如10个)靠近接入网的关键位置(例如IXP),建造大集群,邀请到ISP做客
机理与解决方式
-
DNS重定向实现CDN
- 将请求调度到较近或负载较轻的CDN服务器
- HTTP重定向请求内容,服务提供者返回清单CDN
-
DNS辅助实现CDN
- 负载均衡DNS负责决策CDN服务器选择
- 负载均衡DNS需要收集CDN服务器的位置和负载情况
- 如果找不到被请求的对象,需要从原始服务器获取
P2P网络
- P2P文件分发协议:BitTorrent
- 文件被划分为256b大小的块
- 具有种子的节点发送或接收文件
传输层
传输层概述
-
传输层位于应用层和网络层之间
- 基于网络层提供的服务,向分布式应用程序提供通信服务
-
按照因特网的“端到端”设计原则:
- 应用程序只运行在终端上,即不需要为网络设备编写程序
-
站在应用程序的角度:
- 传输层应提供进程之间本地通信的抽象:即运行在不同终端上的应用进程仿佛是直接连在一起的
-
不同终端上的进程如何通信:
- 在TCP/IP网络中,这扇“门”称为套接字(socket),是应用层和传输层的接口,也是应用程序和网络之间的API
-
传输层和网络层的关系
-
传输层提供什么服务
- 因特网的网络层提供“尽力而为”的服务:
- 网络层尽最大努力在终端间交付分组,但不提供任何承诺
- 具体来说,不保证交付,不保证按序交付,不保证数据完整,不保证延迟,不保证带宽等
- 传输层的有所为、有所不为
- 传输层可以通过差错恢复、重排序等手段提供可靠、按序的交付服务
- 但传输层无法提供延迟保证、带宽保证等服务
-
因特网传输层提供的服务
- 最低限度的传输服务
- 将终端-终端的数据交付扩展到进程-进程的数据交付
- 报文检错
- 增强服务
- 因特网传输层通过UDP协议和TCP协议,向应用层提供两种不同的传输服务
- UDP协议(6.3节):仅提供最低限度的传输服务
- TCP协议(6.4节):提供基础服务和增强服务
传输层复用和分用
-
传输层基本服务:将主机间交付扩展到进程间交付,通过复用和分用实现 (发送端)复用:传输层从多个套接字收集数据,交给网络层发送 (接收端)分用:传输层从网络层收到的数据,交付给正确的套接字 -
UDP分用的方法
- UDP套接字使用<IP地址, 端口号>二元组进行标识
- 服务器使用一个套接字服务所有客户
- 接收方传输层收到一个UDP报文段后:
- 检查报文段中的目的端口号,将UDP报文段交付到具有该端口号的套接字
- <目的IP地址,目的端口号> 相同的UDP报文段被交付给同一个套接字,与 <源IP地址,源端口号> 无关
- 报文段中的 <源IP地址,源端口号> 被接收进程用来发送响应报文
-
TCP服务器使用的套接字
- 使用<源IP地址,目的IP地址,源端口号,目的端口号> 四元组标识连接套接字
- 服务器使用一个监听套接字和多个连接套接字服务多个客户,每个连接套接字服务一个客户
UDP
-
UDP提供的服务
- 进程到进程之间的报文交付
- 报文完整性检查(可选):检测并丢弃出错的报文
-
UDP需要实现的功能
-
UDP检验和 校验和字段的作用:对传输的报文段进行检错 发送方:
- 将报文段看成是由16比特整数组成的序列
- 对这些整数序列计算校验和
- 将校验和放到UDP报文段的checksum字段
接收方:
- 对收到的报文段进行相同的计算
- 与报文段中的checksum字段进行比较
-
UDP校验和计算
- 计算UDP校验和时,要包括伪头、UDP头和数据三个部分
- UDP伪头信息取自IP报头,包括:
- 源IP地址,目的IP地址
- UDP的协议号
- UDP报文段总长度
- 计算校验和时包含伪头信息,是为了避免由于IP地址错误等造成的误投递
- UDP校验和的使用是可选的,若不计算校验和,该字段填入0
-
为什么需要UDP
-
应用可以尽可能快的发送报文
- 无建立连接的延迟
- 不限制发送速率(不进行拥塞控制和流量控制)
-
报头开销小 -
协议处理简单 -
UDP适合哪些应用
- 容忍丢包但对延迟敏感的应用:如流媒体
- 以单次请求/响应为主的应用:如DNS
- 若应用要求基于UDP进行可靠传输:由应用层实现可靠性
TCP(重点)
|