admin 管理员组文章数量: 887021
协议的定义
一个协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及报文发送和(或)接收一条报文或其他事件所采取的动作。
应用层
一、应用层协议原理
1.应用层网络程序体系结构
客户-服务器 (数据中心,搜索引擎)
对等(P2P)结构 文件共享,因特网电话,skype
2.进程通信
在一对进程之间的通信会话中,发起通信的进程被标识为客户,在会话开始时 等待被联系的进程是服务器。
2.1进程与计算机网络之间的接口(套接字)
进程通过一个称为套接字的软件接口,向网络发送报文和从网络接收报文。
套接字又称为应用程序编程接口(API)
2.2进程寻址
Ip地址+端口号,常用端口号有web服务器的80 smtp的25
3.运输服务
在发送端,应用程序将报文推进套接字,套接字的另一侧,运输层协议负责 把报文推进接收进程的套接字。
服务类型:可靠数据传输,吞吐量,定时,安全性
3.1可靠数据传输
确保数据交付,就是可靠数据传输。不确保交付,不可靠传输,当然有些容 忍丢失的应用采纳,视频服务之类的
3.2 吞吐量
吞吐量:发送进程能够向接收进程交付的比特的速率
带宽敏感应用:对吞吐量有要求的应用程序 (多媒体,因特网电话)
弹性应用:根据情况或多或少地利用可供使用的吞吐量要求。(电子邮件, 文件传输)
3.3定时
有些服务要求数据交付有严格的时间限制,如因特网电话,游戏
3.4 安全性
运输协议要提供一种或多种的安全性服务。例如,对数据进行加密传输,保 证数据完整性和端点鉴别
4、因特网的运输服务
4.1 TCP服务
TCP是面向连接的和可靠数据传输的服务,提供拥塞控制机制。
面向连接:经过三次握手后,建立了一个TCP连接,它是双工的,连接双方 的进程可以同时发送报文。
可靠数据传输:TCP保证,无差错,按适当顺序交付所有发送的数据。
常见应用:电子邮件,远程终端访问,Web,文件传输
4.2 UDP服务
UDP是无连接,不可靠的数据传输服务,它不提供拥塞控制机制
常见应用:因特网电话
二、应用层协议
1、应用层协议定义
应用层协议主要是定义了运行在不同端系统上的应用程序进程如何相互传 递报文。
- 交换的报文类型 如:请求报文,响应报文
- 报文类型的语法 即报文中的字段是怎么描述的
- 字段的语义 即字段包含的信息的意义
- 何时发送报文,以及报文相应的规则
2、HTTP协议
2.1 HTTP 是超文本传输协议,HyperText Transfer Protocol,由一个客户 程序和服务程序组成。http是一个无状态协议,不保存任何用户信息
WEB 页面,通常是由一个个对象组成,如一个html文件,图片等。
每个对象由一个URL组成,有两部分,服务器主机名和对象路径名。例如: http://www.solicucu/littlejun/confu.jpg
主机名是http://www.solicucu 路径名:/littlejun/confu.jpg
2.2 持续连接与非持续连接
非持续连接:每一个请求/相应对都是用一个单独的TCP连接发送。
持续连接:所有请求和相应都是经过相同的TCP连接发送。
2.3 http的请求过程
客户端与服务器建立TCP连接- ->发送一个请求报文 --> 服务器发送响应 报文 --> 通知断开连接 --> 客户端接收完,断开连接 (非持续)
当然浏览器可以设置并行TCP连接
往返时间:RTT一个短分组从客户到服务器再回到客户的时间。
粗略的讲,一个文件的请求,总的响应时间是2* RTT
非持续的缺点:
(1)对于每一个对象请求都要分配一个TCP缓冲区和保持TCP变量,这需 要比较多的资源
(2)时延大,因为每个对象请求都要经历2个RTT的交付时延
持续连接:
(1)减少不必要的创建多次TCP连接带来的时延
(2)维护的缓存区和变量数量大大减少
2.4 HTTP报文格式
请求报文:
1、请求行 包括三个字段:
方法字段:表示请求的方式,一般有get、post、head、put、delete
当为get的时候,实体主体为空,post采用实体主体 put常常用来上传对 象到指定的目录。
URL字段:指明请求的对象和路径
HTTP版本字段:指明采用的http版本
2、首部行
常见的首部字段有:
Host: 指明主机
Connection:指明持续连接还是非持续连接(close)
User-agent: 指明用户代理
Accept-language:指明接收语言的类型
3、实体主体
响应报文
1、响应行
协议版本:指明协议的版本类型
状态码:指示请求结果的的类型
状态信息:用短语描述请求结果
常见状态码:
200: ok 表示请求成功
301: moved Permannently 对应被转移了,新位置在Location字段中
304:not modify 对象没有被修改
400:bad request 请求服务器不能理解
404: not found 请求文档不在服务器
505: http version not support 服务器不支持报文使用的协议版本
2、首部行
常见首部字段名:
Connection:指明连接方式
Date:发送日期,只从服务器发送出来的时间
Sever:指明服务器
Last-Modified: 指明上一次修改的时间
Conntent-Length: 内容长度
Conntent-Type:内容类型
3、实体主体
2.5 cookie的使用
需要的组件:
(1)http请求报文的一个cookie首部行
(2)http响应报文的一个cookie首部行
(3)用户端系统保留一个cookie文件
(4)服务器的一个后端数据库
如果是初次访问服务器:
客户请求-> 服务器相应(set-cookie) -> 客户获得cookie (保存在本地cookie文件)->再访问,就添加上标识cookie
好处:
(1)服务器可以记录每个用户的访问记录,浏览内容等信息,可以针对喜 好推荐产品
(2)如果有注册账号,那么可以保存他的登录名,密码等信息,可以快捷 登陆
不好:这里由于站点可以知道许多用户的信息,并可能将这种信息卖给第三方, 对用户的隐私是一种侵害。
2.6 web缓存
Web缓存器,也叫代理服务器,它能够代表初始服务器来满足http请求的网络实体。
请求过程:
http请求-> web缓存器查询是否有该对象 -有->响应客户
–没有–>建立一个与该对象的初始服务器的连接,请求对象,收到后,转发给客户,并自己缓存一份
好处:
(1)大大减少客户请求的相应时间
(2)大大减少一个机构的接入链路到因特网的通信量。
有个问题,万一副本的原对象已经改了呢,所以代理服务器会对对象进行检 查,向原始服务器发送一个http请求报文,用字段if-Modified-since检 查,如果没有修改,服务器就只发一个空的响应报文。
3、FTP (文件传输协议)
3.1主要特点
FTP采用两个TCP连接来传输文件
控制连接:传输两个主机之间的控制信息,如用户标识,口令,更改远程目 录指令如put get
数据连接:用于实际发送文件
因此我们称FTP的控制信息是带外传输的,而是HTTP带内发送控制信息的。
3.2建立连接
FTP的客户端首先是在服务器的21端口号发起一个用于控制的TCP连接
一但TFP服务段收到一个传输文件的指令,马上建立一个TCP数据连接
控制连接贯穿整个用户会话期间,每需要传输新的文件,就建立一个新的数据连接(即数据连接是非持续的),所以FTP需要保留用户状态的信息
HTTP vs FTP
共同点:都依靠TCP进行传输
不同点:
1、前者控制信息不需要新开一个连接,后者有控制连接
2、前者tcp连接可持续或非持续 后者数据链接是非持续的
3、前者是无状态协议,后者需要保留用户状态信息
3.3 FTP的常见命令:
USER username 传输用户标识
PASS pass 传输用户口令
LIST 列出当前目录所有文件,数据连接传输的数据
RETR filename 获取文件
STORE filename 推送文件
回答:
331 username ok
125 data connection is alread open
425 can’t open data connection
452 error writing file
4.电子邮件系统
4.1主要构成
用户代理(就是我们发邮件的网页),邮件服务器、简单邮件传输协议(SMTP) 组成。
4.2发送流程
A用户代理 -> A所属邮件服务器 -> 通过SMTP协议发送到 -> B所属邮 件服务器 -> B的邮箱 -> B用户代理get邮件
通过上图可以看到,SMTP的客户端和服务端是运行在邮件服务器上面。而 且既有客户端(发现要发送的报文)和服务端(发现要接收的报文)。
小问题:如果对方的服务器没有开,那么就建立不了连接,那么A的报文就只能保持在原服务器,过后再尝试重发,过几天不成功,就删除并告诉A。
4.3 SMTP
SMTP只能用简单的7比特ascii码表示。
SMTP握手阶段:
一般有几种命令: HELO MAIL FORM RCPT TO DATA QUIT
用来和服务段打交道,输入data后开始输入文本 以 . 结束。
服务端口是25
4.4邮件报文格式
包括首部行和报文体,中间用回车换行隔开
首部行必须有From: To: 可选Subject:
4.5与HTTP的对比
共同点:都用于从一台主机到另一台主机传输文件
持续的HTTP和SMTP都使用持续连接
不同点:
(1)前者是一个拉协议,在方便的时候,从服务器拉取这些信息,后者是推协议, 把邮件推向接收邮件服务器。
(2)SMTP 要求每个报文都使用7位比特的ASCII码格式,而HTTP数据则不受 这种限制
(3)如果有图像和文本一起的报文,SMTP是把所有对象封装在同一个报文,而HTTP把每个对象分别装到自己的报文中。
4.6 邮件访问协议
实际上,在发送用户和邮件服务器之间采用的是SMTP协议,虽然它本身可以直接推到B的邮件服务器,但事实上不是,是因为面对B邮件服务器不运行的时候,它是没有办法很好地处理的(人工手动重发,很烦人的)。因此采用
A-SMTP->AS-SMTP->BS-?->B
那么这里有个问题,B那边自然不能用SMTP协议,因为它是推协议。
所以人们提出了下面三种常用的协议:
4.6.1 POP3
服务端口为110
随着TCP连接建立后,POP3按照3个工作阶段进行工作:
1、特许:用户输入用户名,密码登陆
2、事务处理:用户可以用list retr dele quit 指令操作
3、更新:用户quit之后,会把用户标记的文件删除
服务器的相应:
+OK - ERR
4.6.2 IMAP
这个协议主要解决了POP3不能为用户提供创建远程文件夹并为报文指派 文件夹的功能。与POP3不同,他还维护了会话的用户状态信息。
4.6.3 基于web的电子邮件
现在的用户代理基本是普通的浏览器,所以用户与邮件代理服务器的通信都 是通过HTTP的(无论是发还是收)
5.DNS服务:因特网的目录服务
DNS 域名系统,提供一个将主机名转化为ip地址的服务。
主要组成:
(1)一个由分层的DNS服务器实现的分布式数据库
(2)能过够使得主机查询分布式数据库的应用层协议
DNS协议运行在端口53
5.1 DNS的服务
-
提供主机名到ip地址的转换
-
提供主机别名的服务,主机有规范别名和主机别名
-
提供邮件服务器别名
-
负载分配
负载分配:DNS用于在冗余的服务器上进行负载分配。
因为繁忙的站点都被冗余地分配在多台服务器上。那么一个规范的主机名就 对应这一个ip地址的集合。 所以每次DNS服务器就会用整个ip地址集合 进行响应,但每次回答都循环这些地址的次序,每次返回第一个ip。这样就 完成了在冗余的服务器上循环分配了负载。
5.2DNS 结构
单一DNS服务器:
问题:单点故障、通信容量大、远距离集中式数据库(时延不均衡)、维护困 难(数据库庞大)
分布式、层次设计
13个根服务器、顶级域服务器、权威服务器
最后有本地服务器(但不属于DNS服务器层次结构)
5.2.1服务模式
递归查询和迭代查询结合
Pc -> local dns
local dns <-> root dns
local dns <->TLD dns
local dns <-> 权威dns
Local ->Pc
递归查询
Pc ->local dns -> root dns ->TLD dns ->权威dns
Pc< -local dns <- root dns <-TLD dns <-权威dns
5.3DNS记录和报文
4种类型的记录
(name,value,type,ttl)
Type = A value 就是对应name的ip地址
Type = NS name就是一个域,value就是获得主机ip地址的权威服务器名称
Type = CNAME value 就是别名name 的一个规范名
Type = MX value 就是别名name 的一个邮件服务器规范名
DNS报文:
查询和回答有相同的报文格式
标记字段:其中的一个比特 0 查询 1回答
问题区域:1 名字字段 2 类型字段
回答区域:有type字段 vlaue字段 , TTL字段
运输层
一、运输层基本服务
1、主要功能
运输层协议为运行在不同主机上的应用进程之间提供了逻辑通信。
2、运输层与网络层
网络层提供了主机之间的逻辑通信,而运输层为运行在不同主机上的进 程之间提供了逻辑通信。
运输层提供的服务常常受限于底层的网络层协议的服务模型。
但是,网络层不能提供的服务,在运输层也可以提供。
例如,网络协议是不可靠的,即网络层会使分组丢失,篡改冗余,运 输协议也能够为应用程序提供可靠的数据传输,也能提供机密性的措施。
3、因特网运输层概述
3.1两种协议:
UDP(用户数据报协议),它提供的是一种不可靠,无连接的服务。
TCP(传输控制协议),它提供的是一种可靠的,面向连接的服务。
3.2 IP
IP(网际协议),它的服务模型是一个尽力而为的交付服务。
特点:它不确保报文段的交付,不保证报文段的按序交付,不保证报文 段的数据完整性
3.3 UDP 和TCP 最基本的责任
将两个端系统间IP的交付服务扩展为运行在端系统上的两个进程之间 的交付服务。
又称为:运输层的多路复用与多路分解。
3.4 两种最低限度的运输层服务
进程到进程之间的数据交付
差错检查
(也是UDP仅有的服务)
3.5 TCP额外的服务
可靠数据传输
通过流量控制,序号,确认和定时器,TCP保证真确地、按序地交 付数据。
拥塞控制
TCP 力求每个拥塞链路的连接平等地共享网络链路带宽
4、多路复用与分解
4.1定义
多路分解:将运输层报文段中的数据交付到正确的套接字的工作
多路复用:在源主机从不同的套接字收集数据块,并为每个数据块封装 上首部信息,从而生成报文段,然后将报文段传递到网络层的工作。
4.2前提
(1)套接字要有唯一的标识符
(2)报文段要有特殊字段指示要交付到哪个套接字
这些特殊字段就是源端口号和目的端口号字段
4.3两种多路复用与分解
无连接的:
一个UDP的套接字由一个二元组(ip,目的端口号)来标识,也就是对于 不同源的报文段,如果有相同的目的IP地址和目的端口号,都通过相同的 套接字定向到相同的目的进程。
面向连接的:
TCP套接字由一个四元组(源ip,源端口号,目的ip,目的端口号)来标 识。也就是不同的源ip或者源端口号,会被定向到不同的套接字。
二、UDP(用户数据报协议)
1、UDP的优势
实时需求:TCP的确保交付可能会导致交付时间过长,而UDP不确保 交付,因此适用于能容忍一些数据丢失的应用。
无需建立连接:UDP不需要任何准备即可进行数据传输,因此不会引入 建立连接的时延。
无连接状态:TCP需要维护连接状态,包括接收发送缓存,拥塞控制参 数以及序号确认号参数。UDP不维护连接状态,也不跟踪这些参数。
分组首部开销小:TCP 要20个字节的首部开销,UDP仅有8个字节
2、UDP的问题
由于无控制的UDP发送方引入的高丢包率,将引起TCP发送方大大减 少他们的速率,由于UDP缺乏拥塞控制,它可能会挤垮TCP会话。
3、UDP的报文结构
UDP报文首部只有四个字段,每个字段2个字节
源端口号:表示发送方的端口号
目的端口号:表示接收方的端口号
长度:指示UDP报文段的总字节数(首部加数据)
校验和:接收方用于检查报文段是否出错
4、校验和的计算
对数据,每16位进行累加求和,对溢出的数字进行回卷,即再累加。
最后对和求反码,存到校验和。
如何接收方计算校验和,与报文段的校验和相加全为1就是没有出错, 否则出错。
5、UDP提供校验和的原因
(1)不能保证源和目的地之间所有链路都提供差错检查
(2)无法确保逐条链路的可靠性
(3)无法确保内存中的差错检测
UDP就提供了一个在端到端基础上在运输层提供的差错检测
三、可靠数据传输原理
1、rdt1.0
前提:有一个完全可靠的信道
2、rdt2.0
前提:信道可能会有比特差错问题
解决:采用自动重传请求(ARQ)协议
要求:
(1)接收方要提供差错检测
(2)接收方的反馈,肯定确认(ACK),否定确认(NAK)
(3)重传,发送方知道分组有差错后,重传改分组。
问题分析:
1、显然,当发送方处于等待ACK或者NAK的时候,他不能从上层获取 更多的数据。我们称这样的协议为停等协议。
2、如果ACK或者NAK损坏了,那么发送方将无法正确知道接收方是否 正确接收。
(1)对于有问题的答复,要求接收方从新回复
(2)增加足够的校验和比特
(3)收到含糊不清的ACK和NAK,只需重传
3、第三种方法很不错,但是,这样会在信道引入了冗余分组,那么接收方 根本分不清这个接收到的分组是新的还是一次重传。
4、引入分组的序号,这样接收方检查序号就可以确定分组是否一次重传。
ACK或NAK不需要确认分组的序号,发送方接收到的ACK和NAK 都是默认相应最近发送的一次。
3、rdt2.1
问题与改进:
可以去除NAK,通过冗余ACK来告诉发送方,没有正确接收到跟在被 确认两次的分组后面的分组。,ACK带上参数(0,1)
5、rdt3.0
前提:具有比特差错的丢包信道的可靠传输
问题:在等待ACK的时候,发送方不知道一个分组丢失,还是ack丢失,或者是分组或ack过度延时。
解决:引入一个倒计数定时器,在给定一个给定时间量过期后,可以终端发送方。
(1)每次发送一个分组(包括第一次发送或者重传),便启动一个定时器。
(2)响应定时器的中断。
(3)终止定时器。
分析:
由于分组的序号在0和1 之间交替,rdt3.0有层为比特交替协议
问题:这个协议的信道利用率过低
信道利用率:发送方实际忙于将发送比特推进信道的那部分时间与发送时间 之比。
流水线:允许发送方发送多个分组而无需等待确认,这样,发送方向接收方输 送的分组可以看成是填充到一条流水线中。
实现流水线的要求:
必须增加序号范围,因为每个传输分组必须要有一个唯一标识的序号
协议的发送方和接收方两端必须缓存有多个分组。发送方最低限度应该能够缓存已经发送但没确认的分组,接收方应该要缓存那些已经正确接收的分组。
序号分范围和缓存要求,取决于如何处理丢失,损坏,延时过大的分组
两种策略:回退N步(GBN) 选择重传(SR)
6、回退N步
6.1基本定义
Base:基序号,最早未确认分组的序号
Nextseqnum:下一个序号:下一个待发分组的序号
[0,base-1]:已经发送且确认的序号
[base,nextseqnum-1]:已经发送,但是还没确认的序号
[nextseqnum,base+N-1]:能被立刻发送的分组
[base+N, - ]:不能使用的序号
GBN又称为滑动窗口协议,其中N被称为窗口长度
TCP的序号是按字节流中的字节计算的,而不是按分组计算的。
接收方
发送方要做的事:
上层的调用:只要发送窗口不满,就继续发送
累积确认:GBN协议中,对分组采用累积确认,也就是接收方方如果确认接收到序号为n,那么n以前的所有分组都被接收了。
超时重发:如果超时时间发生了,那么发送方重传所有未被确认的分组。然后重启定时器。如果没有未被确认的分组,那就停止定时器。
接收方要做的事:
丢弃失序分组:如果接收到一个失序的分组,直接丢弃即可,因为如果它前面的分钟丢失了,那么超时会全部重传,没有必要缓存。
维护下一个按序接收分组序号:接收方缓存简单,只需要维护expectedseqnum就好了。
7、选择重传
回退N步,有时,进行太多不必要的重传,降低了信道的利用率。
选择重传,顾名思义,通过让发送方仅重传它怀疑在接收方出错(丢失或受损)的分组,避免不必要的重传。
发送方要做的事:
从上层收到数据:检查下一个用于该分组的序号是否位于发送窗口内,是则 发送,否则要么缓存,要么返回给上一层。
超时重传:这个和GBN不一样,每个分组有一个自己的逻辑定时器,因为 超时只能发送一个分组。
收到ACK:标记已经被确认的分组,如果该分组的序号等于send_base, 那么窗口基序号向前移动到具有最小序号的未确认分组处。
接收方:
缓存分组:不管按序与否,都缓存起来
接收分组:序号在[rcv_base,rcv_base+N-1]内的分组如果接收到了,如果 没有接收过就缓存,返回一个ACK,如果分组好等于接收窗口的基序号,该 分组及其连续的已经被缓存的分组一起交付上层,接收窗口向前移动。
重确认:如果分组序号在[rcv_base-N,rcv_base-1],还需要产生一个ACK, 即使以前确认过(避免因为上次ACK丢失了)
问题:如果接收方和发送方窗口缺乏同步,会导致接收方无法判定一个分组 是新分组还是重传分组。
8、可靠传输机制总结
检验和:用于检传输的分组是否有比特错误
确认:用于接收方告诉发送方是否已经正确接收到一个分组,确认可以是累积的或者是逐个的。
序号:接收方可以根据序号的空间来按序接收,同时检查出丢失的分组和冗余的分组
定时器:用于超时重传分组,可能因为分组在信道中丢失了,或者由于一个分组延时过大,或者ACK丢失了。
窗口,流水线:用于限制发送方发送落在指定范围的分组。允许依次可以发送多个分组但未被确认。提高了信道的利用率。
四、TCP(传输控制协议)
1、相关概念
MSS:最大报文段长度,他通常根据本地发送主机发送的最大链路层帧长度 (所谓的最大传输单元,MTU)来设置。
MSS要保证一个TCP报文段封装在IP数据报中(加上40字节的TCP/IP 首部长度),要适合单个链路层帧。
以太网和PPP链路层协议都具有1500字节的MTU。因此典型的MSS值为 1460
MSS:是指在报文段里应用层数据的最大长度,而不是指包括TCP的首部的 TCP报文最大长度。
TCP连接结构
两台连接主机的缓存、变量和与进程连接的套接字
2、TCP报文结构
源端口号和目的端口号:各16位,用于多路复用和分解或送到上层应用的数据。
序号字段和确认字段,用于TCP发送方和接收方的可靠数据传输。
首部长度字段:4位,以32比特的字为单位的TCP首部长度,典型的长度是 20字节,即5
接收窗口字段:16位,用于流量控制,指示接收方愿意接收的字节数量。
保留字段:6位,还没有利用
标志位字段:6位,
URG:指示报文段的数据是紧急数据
ACK: 对一个已经被成功接收的报文段的确认
PSH: 被设置时,表示接收方应立即将数据传给上层
RST:被设置时,表明没有对应的端口服务
SYN:用于建立TCP连接
FIN:用于拆除TCP连接
校验和:16位,用于检验数据是否出错
紧急数据指针:指出紧急数据的最后一个字节的位置
选项:可选与变长,用于发送方和接收方协商最大的报文长度(MSS),高速网络环境用作窗口调节因子,首部字段还定义了时间戳选项。
数据:实际发送的数据。
2.1序号和确认号的理解
序号:TCP的的序号是建立在传送的字节流之上
确认号:主机A填充进报文段的确认号,是主机A期望从主机B收到的下 一个字节的序号。
3、往返时间的估计与超时
3.1 估计往返时间
报文段的样本RTT(sampleRTT)就是从某报文段发出,到对该报文段 的确认被收到之间的时间量。
SampleRTT的均值:
EstimatedRTT = (1-a)EstimatedRTT + asampleRTT
通常a的取值为0.125
越近的样本,也能够很好的反映网络的当前拥塞情况
这种平均数,又称为,指数加权移动平均(EWMA)
DevRTT:RTT偏差
DevRTT=(1-b)DevRTT + b|smapleRTT - EstimatedRTT|
b一般取0.25
3.2设置超时间隔
TimeoutInterval = EstimatedRTT + 4*DevRTT
一旦出现超时后,tiemoutInterval将加倍
3.3可靠传输的一些事
累积确认避免了前面的丢失的ACK的报文段重传
超时间间隔加倍
3个冗余ACK,快速重传
回退N步和选择重传的结合
5.流量控制
接收窗口:发送方维护,指示接收方还有多少可用缓存空间。
LastByteRead:接收方从缓存中读取的最后一个字节的编号
LastByteRcvd:接收方从网络中接收到的最后一个字节
接收窗口:rwnd = RcvBuffer - [ LastByteRcvd - LastByteRead ]
发送放维护两个变量:
LastByteSent:最后一个发送字节序号
LastByteAcked: 最后一个确认的字节序号
那么整个TCP连接要满足:LastByteSent - LastByteAcked = rwnd
有一个特殊的小问题
如果rwnd=0,当主机B没有任何数据发给A,当B清空了缓存之后,它也 不会告诉A他有空间了,那么A就被阻塞而不能再发送数据了。
为了解决这个问题,要求,当rwnd=0,A发送一个只有一个字节的数据, 这个报文段等缓存清空后,会被确认。
6、TCP连接管理
6.1 三次握手
第一次:(client)
(1)把SYN比特置1
(2)随机选者一个初始化序号cn
第二次:(sever)
(1)为该TCP连接分配TCP缓存和变量
(2)把SYN比特置1
(3)确认号字段为cn+1
(4)随机选择一个初始序号sn
第三次:(client)
(1)为连接分配缓存和变量
(2)把SYN比特置0
(3)确认字段设置为sn+1
(4)负载数据
SYN:比特设置置为0
6.2四次挥手
C:设置FIN=1,发送
S:发送ACK
S: 设置FIN=1
C:发送ACK
特殊情况:
没有匹配的套接字:
返回一个特殊的重置报文段,把RST标志位设置为1,表示没有那个报文段 的套接字。如果是UDP,那么会发送一个特殊的ICMP数据报。
所以发送一个SYN报文段,回复有3种可能:
(1)收到一个SYNACK报文段
(2)收到一个TCP RST报文段
(3)什么也没收到,表明SYN报文段被中间的防火墙阻挡了,无法到达主 机。
7、拥塞控制原理
7.1拥塞代价与原因
(1)假如有无穷大缓存路由器,当分组的到达速率接近链路容量时,分组 经历巨大的排队时延。
(2)假如路由器缓存有限,发送方必须执行重传以补偿因为缓存溢出而丢 弃的分组。
(3)发送方遇到大时延时所进行的不必要重传会引起路由器利用其链路带 宽转发不必要的分组副本。
(4)当一个分组沿着一条路径被丢弃时,每个上游路由器用于转发该分组 到丢弃该分组而使用的传输容量被浪费了。
7.2拥塞控制方法
端到端的拥塞控制
通过超时或者3次冗余确认而得知网络拥塞,减少相应的窗口长度
网络辅助的拥塞控制
由网络层构建(路由器)向发送方提供拥塞状态的显式反馈信息。
有两种形式:
阻塞分组:由网络路由器直接反馈信息给发送方
间接反馈:路由器标记或更新发送给接收方的分组的某个字段来指示网 络拥塞。
7.3 网络辅助的拥塞控制案例
ATM(异步传递方式)是面向虚拟电路(VC)的分组交换。
ARB,是一种弹性数据传输服务,当网络拥塞时,ABR服务会将其传输速率 一直为某些预先确定的最小速率。
一些术语:
交换机代替路由器
信元代替分组
资源管理信元:(RM信元),夹杂在数据信元之间,传递与拥塞控制相关的 信息。RM可以是源产生的,也可以是交换机产生的。
三种机制传输拥塞控制信息
EFCI比特
每个数据信元都包含了1比特的显示转发拥塞指示(EFCI),如果拥塞了, 交换机会把数据信元的该为置为1,目的地会检查每个数据信元的EFCI比 特,如果很多置为1,那么就把RM信元的CI比特置1,发回给发送方。默 认32个数据元有一个RM信元
CI和NI比特
RM信元的夹杂比特率是可以调的
RM信元有一个拥塞指示(CI)比特,和一个无增长(NI)比特。当轻微拥 塞时,可以设置NI比特为1,当严重拥塞时,CI比特置为1。
ER的设置
每个RM信元还包含一个两个字节的显示速率,一个拥塞的交换机会降低 RM信元的ER字段值,设置为所有交换机中最小支持的速率。
8、拥塞控制
8.1拥塞窗口(cwnd)
发送方的未确认数:
LastByteSent - LastByteAcked <= min {cwnd,rwnd}
由于约束了发送方中未确认的数量,间接约束了发送方的发送速率。
发送方的发送速率大概是cwnd/RTT 字节每秒。调节cwnd就可以调节发送数据的速率。
8.2 指导原则
(1)一个丢失的报文段,意味着拥塞,因此当报文段丢失时,要降低TCP的发 送方的速率。
(2)一个确认报文段的确认到达,指示网络还比较畅通,应增加发送方的发送 速率。
(3)带宽探测
8.3 拥塞避免三大头
慢启动
当TCP连接开始的时候,cwnd设置为一个MSS的较小值
慢启动状态设cwnd为1个MSS,每次传输一个报文段,就增加一个MSS,所以将是呈2的指数增长。
(1)如果发生了丢包事件,那么把cwnd设置为1,重新进入慢启动,并且设 置阈值ssthresh 为cwnd的一半。
(2)如果cwnd增长时,大于等于ssthresh,那么TCP转移到拥塞避免模式
(3)如果检测到3个冗余ACK,TCP执行快速重传,ssthresh=cwnd/2,cwnd =ssthresh+3MSS 进入快速恢复状态
拥塞避免
每一个RTT只增加一个MSS,即没接收到一个ACK,cwnd就只增加MSS(MSS/cwnd)字节。
(1)当出现超时,cwnd的值设置为1,重新进入慢启动,并且设 置阈值 ssthresh 为cwnd的一半。
(2)如果检测到3个冗余ACK,TCP执行快速重传,ssthresh=cwnd/2,cwnd =ssthresh+3MSS 进入快速恢复状态
快速恢复
每收到要给冗余ACK,cwnd增加一个MSS,
(1)当出现超时,cwnd的值设置为1,并且设置阈值 ssthresh 为cwnd的 一半,重新进入慢启动。
(2)当对丢失报文段的一个ACK到达,把cwnd=ssthresh转到拥塞避免状态。
关于TCP Tahoe 和TCP Reno 的区别
无论是冗余还是超时,Tahoe 都把cwnd设置为1,进入慢启动阶段
而Reno 对于3个冗余ACK,把cwnd设置为ssthresh+3*MSS,进入快速重传
网络层
一、概述
1、转发与路由选择
1.1转发
一个分组到达一个路由器时,路由器必须将该分组移动到适合的输出链路
转发是指分组从一个输入链路接口转移到适当的输出链路接口的路由器 本地动作。
1.2路由选择
当分组从发送方到接收方时,网络层必须决定这些分组所采用的路由或者 路径。
路由选择是指网络范围的过程,以决定分组从源到目的地所采取的端到端 路径。
1.3路由选择算法
更新转发表的值
集中式的:算法在某个中心点执行,并向每台路由下载信息
分布式的:每个路由器运行分布式路由选择算法的一部分
1.4交换机
分组交换机:根据分组的首部字段的值,从输入链路接口到输出链路接口 转移分组的交换设备。
链路层交换机:基于链路层字段的值做转发决定
路由器:基于网络层字段的值做转发决定
1.5建立连接
网络层要求从源到目的地沿着所选择的路径彼此握手,以便在给定源和目的 地连接中的网络层数据分组可以流动前建立好状态。
1.6服务模型
确保交付
具有时延上界的确保交付
有序分组交付
确保最小带宽
确保最大时延抖动
安全性服务
三种服务模型
CBR 恒定比特率ATM服务
网络看起来就像发送主机和接收主机之间存在一条专用的固定的带宽的传输链路,以使用性质相同的虚拟管道来提供分组流。
ABR 可用比特率
利用拥塞通知比特或者明确的速率发送,控制发送方在MCR和一个允许的峰值信元速率之间调整其速率。
二、虚拟电路与数据包网络
虚拟电路网络
仅在网络层提供连接服务的计算机网络
数据报网络
仅在网络层提供无连接服务的计算机网络
运输层的面向连接服务是位于网络边缘的端系统中实现
网络层的连接服务除了在端系统中,也位于网络核心的路由器中实现
1、虚拟电路网络
ATM 帧中继 体系结构都是采用虚拟电路网络,在网络层使用连接,这些连接叫虚电路。
1.1虚拟电路的组成
(1)源和目的主机之间的路径(包括链路和路由器)
(2)VC号,每个链路的一个号码
(3)沿着该路径的路由器转发表项
每个分组都有个VC号,每经过一个路由器,根据VC号选择出口,并替换根据转发表替换VC号
无论何时跨越一个路由器创建虚拟电路,转发表就要添加一个新的表项。如何何时删除,就要沿着该路径删除每个表相应的项。
1.2原因
一、逐条链路代替,可以减少号码在分组首部的VC字段长度。
二、允许沿着该虚拟电路路径每条链路有一个不同的VC号,简化了虚拟电路 的建立。
1.3虚电路的三个阶段
虚拟电路的建立
数据传送
虚拟电路的拆除
1.4虚电路的特点
对于一个虚电路的网络层,沿着两个端系统的路径的路由器,都要参与虚拟 电路的建立,且每台路由器都完全知道经过它的所有虚电路。
信令报文:用于端系统想网络发送指示虚拟电路启动与终止的报文,以及用于 路由器之间建立虚电路。
信令协议:用于交换信令报文的协议
2、数据报网络
2.1 主要特点
每个分组加上目的端系统的地址
每台路由器有一个将目的地址映射到链路接口的转发表
路由器用分组的目的地址,采用最长前缀匹配的规则
转发表通过路由选择算法进行定期(1-5min)更新一次
2.2 来源
由于端系统设备越来越复杂,可以实现的功能更多(按序传送,可靠传输, 拥塞控制,DNS服务),因此因特网架构师希望网络层服务模型尽可能地简 单些。
三、路由器
1、路由器工作原理
输入端口
(1)执行将输入的物理链路与路由器相连接的物理功能(最左那个框)
(2)执行需要与位于入链路远端的数据链路层交互的数据链路层功能
(3)完成查找功能(路由表)(第三个框)
交换结构
(1)将路由器的输入端口与输出端口相连接。
(2)它就是网络路由器中的网络
输出端口
(1)输出端口纯粹从交换结构接收到的分组,并通过执行必要的链路层和 物理层功能在输入链路上传输这些分组。
路由选择处理器
(1)维护路由选择表以及连接的链路状态信息,为路由器计算转发表。
2.详细工作
2.1输入端口
查找是个很重要的工作,但是,还要进行一些其他工作
(1)必须进行物理层和链路层处理
(2)检擦分组的版本号,检验和,寿命字段
(3)更新网络管理的计数器
2.2 交换结构
经内存交换
分组到达输入端口 -> 中断 -> 路由选择处理器复制分组到处理器内存 ->
从首部提取目的地址,在转发表寻找适当的输出端口 -> 复制分组到相应的输出端口
缺点:一次只能读或写一个分组,以为他们共享一个系统总线
经过总线交换
输入端经过一个共享总线将分组直接传送到输出端口,不需要路由选择处理器干预。
输入端口为分组标上一个交换机内部标签,那么虽然所有输出端口都可以接收,但只有与标签匹配的端口才保存分组。
缺点,一次只能有一个分组跨越总线,所以,如果输出端口不同,那么如果有分组在转发,其他分组必须等待。
经互联网络交换
N个输入端口和N个输出端口交叉共有NN个交叉点,通过交换结构控制器,能随时开启和关闭。
两个并行的输入端口的分组,如果目的端口不一样,就可以同时转发,如果相同,那么必须有一个在等待。
2.3输出端口
输出端口取出放在输出端口内存中的分组,并将其转发到链路上,执行所需的链路层和物理层传输功能。
2.4 排队问题
排队的位置和程度主要取决于流量负载,交换结构的相对速率和线路速率
1、定义输入输出线路速率相同为Rline 个分组每秒,N个输入端口,N个输出端口,交换结构的传输速率为Rswitch
加入Rswitch > 10Rline,就算N个输入端口同时来,交换结构都可以在下一波来之前处理完,但是有个问题
如果都是转发到同一个输出端口呢,那么,每一批都有N-1个分组需要排队等待。这样很快会被丢弃,当存储空间用完时。
2、调度策略
在输出端口,
采用FCFS调度,加权公平调度(WFQ,在不同的端到端连接之间公平地共享输出链路)
丢弃策略
缓存不够时,弃尾策略,要么删除一个或多个排队已久的分组。
主动队列管理:在缓存填满前,便丢弃分组,提供一个拥塞信号
随机早期检测:(RED),如果平均队列长度小于阈值min,接纳分组,如果大于最大阈值max,分组到达就丢弃,如果在min - max 之间,以某个概率选者丢弃或标记。
3、输入端口的排队问题
线路前部阻塞(HOL),当两个端口1,2的分组都要转发到同一个输出端口,那么,端口2要等待,假如在端口2后面排队的分组要去别的端口,但由于端口2挡住了,所以,就被阻塞了。
四、网际协议(IP)
因特网的三大组件:
IP协议、路由选择部分、报告数据包中差错或响应网络层请求的设施(如IPCMP)
1、IP数据报
版本:4比特,规定了IP协议版本(IPv4,IPv6)
首部长度:4比特,指明首部长度,IP数据报一般20字节首部
服务类型:TOS(区分要求低时延,高吞吐量,或搞可靠性的数据报),将实时 数据报(IP电话)和非实时流量(FTP)分开还是有好处的。
数据报长度:首部+数据,按字节计算,但是一般数据报的长度很少超过1500字节的。
标识、标志、片偏移:和IP分片有关,IPv6就没有了.
生存时间:TTL,确保数据不会永远在网络传递,没经过一台路由器,该字段减1,直到为0。
协议:只能要传递给哪种特定的传输层协议,例如6表示交给TCP,17标明交 给UDP。
首部校验和:如同UDP那样计算,主意与它们不一样的是,这里只计算首部。
注意到TTL会变,所以,每台路由器必须重新校验和,并再次放到原处。
源和目的IP地址:当源生成一个数据报的时候,它就插入这两个IP。
选项:允许IP首部被扩展
数据:这里面包含传输层的报文段(TCP 或 UDP)
如此看来,数据包共承载这40字节的首部,20字节IP首部+20字节TCP首部
1.1 IP数据报分片
最大传输单元(MTU):一个链路层帧能够承受最大的数据量
不同的链路层可能采用不同链路层协议,每种协议可能有不同的MTU。
当IP数据报比要转发的链路的MTU要长,那么就必须分成两个或多个较小的IP数据报,这些都称片。
重组:为了保持网络内核简单的原则,数据包组装的工作放在端系统
配合分片的字段:
标识:用于区分源主机发送的每个数据报,同一个数据报分出的片有相同的标识
标志:最后一个偏设置为0,其他片都设置为1
片偏移字段:规定8字节块为单位
2、IPv4 编址
2.1基本概念
接口:主机与物理链路之间的边界叫做接口,路由器与任意一条链路之间的边界也叫做接口。
IP:要求每台主机和路由器接口都拥有自己的ip,它是与接口关联的,而不是与包括接口的主机或者路由器关联。一个接口的ip,不是随便选择的,而是由其连接的子网决定的。
IP地址的表示:点分十进制,二进制
子网:互联一定数量的接口的网络形成一个子网。
每个子网有一个地址:233.1.1.0/24 其中/24记法 ,称为子网掩码
前面24位称为网络部分,后面8为称为主机地址,但是一般主机部分全为0,全为1,作为广播地址。
2.2 两类编址
无类别域间路由选择(CIDR),把32位比特IP划分成两个部分,a.b.c.d/x
x指示了第一部分的比特数,构成网络部分,也经常称为该地址的前缀。所谓的分配一块地址,就是具有相同前缀的一段地址。
分类编制:吧网络部分限制在8 16 24 比特,分别称为A、B、C 类网络。
这个地址空间就比较少。
广播地址:255.255.255.255 ,当目的地址为它是,就会发给所有同一个子网的主机。
2.3 分配地址策略
给定一个地址块,要分配给n个组织,那么就通过向主机部分借k位,满足2^k >=n,同时考虑剩下的主机位是否满足需要的主机位。
3、DHCP协议
DHCP(动态主机配置协议),允许主机自动获取一个IP地址,。
网络管理员可以配置DHCP:
(1)设定某个主机每次获取都是同一个ip地址,或者,分配一个临时的IP地 址
(2)允许主机得知其他信息,例如他的子网掩码,网关地址,本地DNS服务 地址。
由于其能够使一个主机接进一个网络的网络相关方面的自动能力,我们又称它为即插即用协议。
DHCP 是一个客户-服务器协议。
主要有四个步骤:
DHCP服务器发现
新到的主机,通过使用一个DHCP发现报文,使用UDP发送到端口67,生成的IP数据报,目的地址为广播地址255.255.255.255 ,本机地址为0.0.0.0,广播给所有与该子网连接的子网。
DHCP服务器提供
DHCP服务器用一个DHCP提供报文向客户做出反应,还是用广播地址255.255.255.255,因为它不知道主机在哪。内容有:发现报文的事务ID,供给客户的ip地址,网络掩码,IP地址的租用期等。
DHCP请求
客户端从一个或多个服务器中选一个,并向选中的一个DHCP请求报文进行响应,回显配置参数。
DHCP ACK
服务器用DHCP ACK报文进行回应,证实要求的参数。
4、网络地址转换
NAT使能路由器对外界看似一个而具有单一IP地址的单一设备。
专用地址的地域是指其地址进队网络中的设备有意义。
NAT转换地址表(WAN端,LAN端)
原理:当NAT路由器收到一个LAN的数据报后,为更改其源地址为广域网一侧的ip地址,并生成一个新端口,替换源端口,转发出去,转发回来按同样的道理转换。
5、因特网控制报文协议(ICMP)
ICMP 用于主机和路由器彼此沟通网络层的信息。
最典型的用途是:差错报告
当一台主机接收到一个指明上层协议为ICMP的IP报文时,就分解出报文内容给ICMP。
常见类型:
0 回显回答,对ping的回答
3 编码:0目的网络不可达 对于Telnet,FTP,HTTP会话经常出现这种情况
3 编码:1 目的主机不可达
3 编码:2 目的协议不可达
3 编码:3 目的端口不可达
对于ping,就是发送一个类型8 编码0 的报文到指定主机,目的主机会发一个类型0 编码0 的ICMP回显回答。
类型4, 编码0 的源抑制报文,当路由器拥塞时,它向源主机发哦是那个一个ICMP源抑制报文,以强制其减少发送速率。
Traceroute 就是用ICMP报文来实现的
数据包携带一个不可抵达的UDP端口的UDP报文段,数据报的TTL一开始为1,逐次增加,当路由器丢弃是,会发一个ICMP警报文给源主机(11,0 TTL 过期),这样就可以通过定时器得到往返时间,并从ICMP报文中得到第n台路由器的IP地址和名字。
6、IPv6
特点:
扩大了地址容量
简化高效的40字节首部
舍弃了IPv4的选项字段
流标签与优先级
给特殊流加上分组标签,进行特殊处理
版本:表示ip版本号,显然这里置6
流量类型:跟ipv4的TOS 一样
流标签:标识一条数据报流
有效载荷长度:40字节后的数据长度
下一个首部:表示数据报要交给哪个协议的,如同IPv4的协议字段
跳限制:转发数据报的每台路由器会对该字段减1,达到0就丢弃
源地址和目的地址:128位
数据:有效荷载
后面的都没有------------------------------------------------------------------
分组和重装:IPv6不允许中间路由器进行分片和重新组装。
首部校验和:运输层和传输层都进行了校验操作,所以ip层它觉得不用了,他关注的是如何快速处理ip分组。
选项:他认为,选项也可以当作下一个首部来处理,就统一ip首部定长为40字节了。
6.1 IPv4 到IPv6 的迁移
引入IPv6使能结点使用双栈的模式
就是IPv6结点,还有完整的IPv4的实现。这个要求,他们要知道其他结点的是否是IPv6使能或者仅Ipv4使能。
建隧道
加入B C 是ipv6使能的,中间是ipv4 ,那么,把ipv6整个包封装在ipv4报文段里面,并把地址指向C就行了。
五、路由选择算法
源路由器:源主机的默认路由器
目的路由器:目的主机的默认路由器
一个分组从源主机到目的主机的路由选择问题就是从从源路由到目的路由器的路由选择问题。
1.1路由选择算法分类
全局式路由选择算法:用完整的全局性的网络知识计算从源到目的地之间的最低费用路径。
例:链路状态算法,因为该算法必须知道网络中每条链路的费用
分散式路由选择算法:
以迭代、分布式的方式进行计算出最低费用的路径。每个结点仅有与其直接相连的链路费用知识即可工作。通过迭代计算并与相邻结点交换信息。
例:距离向量算法,每个结点维护到网络中所有结点的费用。
根据静态动态分类:
静态路由选择算法:人工编辑
动态路由选择算法:根据流量负载周期性地改变
根据负载敏感和迟钝分类:
负载敏感算法:链路动态的费用会反映出底层链路的拥塞水平
负载迟钝算法:(RIP,OSPF,BGP) 都是,当前链路的费用不明显地反应当前的拥塞水平。
1.3链路状态算法
定义
D(v):源结点到v结点的最低费用
P(v) :v结点的上一跳结点
N’:被处理的结点集合
(1)先加入源结点u,遍历所有邻居结点,更改对应的D,P不可达用00表示
(2)选择最小的D的结点x,加入N’,遍历x的所有非N’邻居,更新对应的D 和P,更新策略对于邻居n:若D(n)= min {D(n), D(x)+c(x,n)}
重复第2步,直到所有结点处理完。
然后就可以构造一个路由转发表了。
1.4距离向量路由选择算法
DV算法是一个迭代的,异步的,分布式的算法。
每个结点维护一个距离矢量Dx(y) = [Dx(y): y∈N]
还维护每个邻居结点的距离矢量 Dv(y) = [Dv(y):y∈N ,v是邻居]
更新策略:遍历每个邻居,如果选择它到邻居,和邻居到目的地y的最小的一个
Dx(y)= minv{ c(x,v)+Dv(y)}
存在的问题:
路由环路:原因,链路费用突然改变,突然变大,导致回头,但是下游路由又以为原路更近
解决办法:毒性逆转,如果z通过y路由选择到达目的地x,z将通告y,z到x的费用无穷大。
1.4两种算法的比较
DV算法仅需要知道每个结点直接相连的邻居信息,LS算法需要知道所有结点的链路费用。
报文复杂性:LS算法要求每个结点都知道网络中每条链路的费用,就要求要发N*E个报文
而DV算法要求邻居之间交换报文就行。
收敛速度:LS O(N2)
DV 收敛比较慢,还可能遇到路由选择环路问题。
健壮性:
路由计算在某种程度上是分离的,提供了一定的健壮性
DV算的一个不正确的结点计算可能会扩散到整个网络。
2.1自治系统
AS,相同的AS用同样的路由选选择算法,且拥有彼此的信息。
在一个自治系统内运行的路由选择算法叫自治系统内部路由选择协议。在一个AS里面,有一台或这多台路由器有另外的工作,负责向本AS之外的目的地转发分组,叫做网关路由器。
转发表:AS内部路由选择算法,AS间路由选择算法
自治系统间路由选择协议:负责获取相邻的了AS可达性信息和向该AS中的所有路由传播可达性信息。
因特网中所有的AS运行这相同的AS间路由选择信息,叫BGP4.
3、因特网中的路由选择
3.1AS中的路由选择:RIP
AS内部的路由选择协议有称为内部网关协议
常见的两种:
路由选择信息协议(RIP)
开放最短路径优先(OSPF)
RIP 使用的是距离矢量算法
通过跳数来衡量费用,跳:到达目的子网(包括目的子网)的子网数量
每台路由器维护一张路由选择表的RIP表,包括路由器的距离向量表
和路由器的转发表。
更新:
每隔30s,他们通过RIP相应报文互相交换信息。如果180s都没有从邻居那收到报文,就认为该邻居死了或者链路中断了。RIP修改路由选择表,并传播这个消息给其他邻居。
3.2 OSPF
OSPF ,采用链路状态算法,以自身为根节点,拓扑出最短路径树。
每个路由器,大概30分钟广播一次链路状态
OSPF通告包含在OSPF报文中,OSPF报文直接由IP承载,OSPF协议必须自己实现可靠报文传输,链路状态广播功能。
OSPF的优点:
安全:能够鉴别OSPF路由器之间的交换
多条相同费用的路径
对单播和多播路由选择的综合支持
支持单个路由选择域内的层次结构
OSPF自治系统可以配置多个区域,其中一个叫主干区域,包括各个区域的边界路由器和部分非边界路由器。
那么内部的传递:源- > 源区域边界路由器 -> 主干区域 -> 目的区域边界路由器 ->目的地。
3.3 自治系统间的路由选择:BGP
BGP(边界网关协议)
3.3.1 BGP的服务:
从相邻的AS处获取子网的可达性
向本AS内部的所有路由器广播这些可达信息
基于可达信息和AS策略,决定到达子网好的路由选择
3.3.2 BGP会话
在网络的路由器之间都会建立有TCP连接,用于交换BGP报文的,这样的连接叫BGP会话。
连接两端的路由器成为BGP对等方。
eBGP会话:跨越两个AS的BGP会话
iBGP会话:同一个AS的BGP会话
BGP的目的地不是主机,而是CDIR化的前缀,每个前缀表示一个子网或者子网集合。
3.3.3BGP路由
每个AS有一个全局唯一的自治系统号(ASN)唯一标识。
BGP通告一个前缀的时候,包括一些BGP属性,带有属性的前缀被称为一条路由。
两个重要的属性:
AS-PATH:该属性包括了前缀的通告已经经过的AS,每传送到一个AS,就把ASN加进去,防止循环通告。
NEXT-HOP:NEXT-HOP 是一个开始某AS-PATH的路由接口。
对于同一个AS,有两个边界路由器,就会有两个相同前缀x的等价路径,就需要next-hop来区分了。
3.3.4 BGP路由选择
当相同前缀有多条路条路由的时候,BGP采用下面的规则,消除直到留下一条路由。
路由被指派一个本地偏好值,选取偏好值最高的路由
选取最短AS-PATH 的路由
选择最靠近NEXT-HOP路由器的路由
六、广播与多播路由选择
广播路由选择:从一个源结点到网络所有其他结点交付分组的服务
多播路由选择:从一个源结点向其他网络结点的一个子集发送分组的副本。
1、广播路由选择算法
N次单播:源结点向每个结点发送一个分组
缺点:
效率低,显然,很多重复路径,发送了从一个内容,可以选择让后面的路由器根据需求复制副本,进行转发。
需要每个发送方知道所有接收方的地址
基于单播来广播是不理智的,因为单播路径是基于广播路径得到的。
1.1无控制洪泛
源结点向所有邻居发送分组的副本,某个结点收到分组后,也复制该分组, 发送给所有邻居。显然如果有圈,就会无休止地循环。
1.2受限洪泛
1.2.1序号控制洪泛
就是把源结点的地址或者其他唯一标识符以及广播序号加入广播分组,在 向所有邻居结点转发。如果当前结点自己已经在列表里面,就丢弃,否则转 发。
1.2.2反向路径转发(RPF)
当一台路由器接收到分组后,仅当该分组到达的链路正好位于自己的返回其源的最短单播路径上,就向所有其他链路转发改分组。
1.3生成树广播
前面的方案都还是不能完全避免冗余广播分组的传输。
采用最小生成树广播,当源结点广播一个分组,就向属于改生成树的特定链路发送分组,接收到分组的结点,向所有生成树的邻居转发分组。
显然这个不仅消除了冗余,而且一旦合适,该树可以给任意结点广播。注意到一个结点不需要知道整棵树,只需要知道哪个结点属于树。
问题:主要是对生成树的生成和维护。
采用基于中心的方法生成树,结点向中心结点单播加入树报文,直到它到达一个属于生成树的结点或到达该中心
2.多播
多播分组,仅被交付给网络结点的一个子集。
多播组:用一个D类地址来标识一个接收方小组。
多播组如何形成,如何总结,主机如何加入等等,都与IGMP因特网组管理协议有关。
2.1 因特网组管理协议
IGMP运行在一台主机和其直接相连的路由器之间。她告诉路由器,本组机的一个应用程序想加入多播组。
另外需要网络层多播路由选择协议辅助完成。
IGMP的三种报文类型;
IGMP直接承载在IP数据报中
membership_query: 一台路由器向所有相连主机发送
membership_query报文,确定主机是否已经加入多播组合。
主机用membership_report 来响应,当主机想加入时,也可以主动发送。
leave_group: 这个报文表示离开分组,但是不是很有必要,因为当member
ship_query 时,如果没有回应,那么就会被移出分组。
这个有时被称为软状态机制,需要显式更新。
2.2多播路由选择算法
使用一棵组共享树进行多播路由选择。
主要是要构建一棵树,包含所有属于多播分组主机相连的边缘路由器。(注意可能会包含一些不属于多播主机相连的路由器),使用基于中心的方法构造多播树。
使用一棵基于源的树的多播路由选择。
使用RPF算法构造一棵多播路由选择树,用于特定源的多播数据报。
剪枝策略,如果一个不参与多播分组的路由器收到一个多播分组,那么他可以想上游路由器发送一个剪枝报文,如果一台路由器从他的下游收到一个剪枝报文,他就能向上转发一个剪枝报文。
链路层
一、概念与服务
1、概述
1.1两种链路层信道
广播信道:用于连接有线局域网,卫星网,和混合光纤同轴电缆接入网的多 台主机。
点对点信道:在长距离的链路链接的两台路由器之间。
结点:运行链路层协议的任何设备都称为结点,包括主机,路由器,交换机, wifi接入点。
链路:连接相邻结点的通信信道
1.2链路层提供的服务
成帧:帧有首部字段和数据字段,链路层把网络层的数据报放在帧的数据字 段
链路接入:媒体访问控制(MAC)协议规定了帧在链路的传输规则。对于点 对点链路,只要链路空闲就可以发送,而广播链路,需要MAC 协议协调传输。
可靠交付:链路层通过确认和重传完成可靠交付,主要用于易产生高差错率 的链路。
差错检测和纠正:链路层通过硬件实现差错检测,并能够确定差错出现的位 置(因此可以纠正)。
2、链路层实现的位置
网络适配器,有时也叫网络接口卡(NIC),是链路层主体部分的实现。网络 适配器的核心是链路层的控制器,有实现了(成帧,链路接入,差错检测) 功能的芯片。
控制器,从协议栈高层生成的并存储在主机内存中的数据报,封装成链路层 帧,遵循链路接入协议将帧传送到通信链路。接收帧的时候,抽取出网络层 数据报。如果链路层执行差错检测,发送控制器设置差错检测比特,接收控 制器执行差错检测。
3、差错检测技术
(1)奇偶校验
加入一个奇偶校验位,使得发送方数据比特1的个数总是偶数(或奇 数)。但是只能检测出,出现奇数个比特的出错。
二维奇偶校验:通过行校验和列校验,联合定位出错,但是,如果其 中一个出现了多个比特出错,结果1的个数不变,就难以确定了。
(2)检验和方法
如同TCP,UDP那样,对数据的每16个字节相加回卷,把这个和的反 码,放在报文段的首部的因特网和校验和。
(3)循环冗余检测(CRC)
又称为多项式编码,考虑d比特的数据D,发送方和接收方协商一个r+1比特模式,称为r+1比特模式G,称为生成多项式。通过计算出r个附加比特R加在D后面。
使得数据,通过模2算术恰好能被G整除。
模2算术就是加法不进位,减法不借位,等价与异或
所以有数据变为D*2r XOR R = n * G
求R的过程:通过用二进制除法 D / G = n … R
二、多路访问链路和协议
1、概念
点对点链路:由链路一端的单个发送方和链路一段的单个接收方组成。
相关协议:点对点协议(PPP),高级数据链路控制(HDLC)
广播链路:多个发送方,接收方同时连接到相同的,单一的,广播信道上。
多路访问问题:如何协调多个发送方和接收结点对一个共享广播信道的访问。
多路访问协议:结点通过这些协议来规范他们在共享的广播信道上的传输行 为。
碰撞:多个发送方在同一个信道同时传播帧,就会发生碰撞,没有一个结点 可以有效得获得任何传输的帧。
2、多路访问协议
分类:信道划分协议,随机接入协议,轮流协议
约定:对于Rbps的广播信道 有
如果只有一个发送方,那么吞吐量为Rbps
如果有M个结点发送,那么每个结点吞吐量为R/M bps
协议是分散的
协议是简单的
2.1 信道划分协议
时分多路复用(TDM)
(1)划分时间帧
(2)如果信道支持N个结点,那么就把一个时间帧等长度划分为N个时隙, 也即,每个结点对应一个时隙。
(3)时隙的长度要求一个时隙内能够完成一个分组的传输。
特点:
它消除了碰撞,而且非常公平,每个结点传输速率为R/N bps
两个缺陷:
结点的速度被限制在平均速率R/N bps
结点必须等待轮到到发送的时刻
显然对于如果只有一个结点要发送,情况是很糟糕的。
频分多路复用(FDM)
TDM在时间上共享了广播信道,FDM把信道划分为N个不同的频段,他 同样有相同的优缺点。
码分多址(CDMA)
CDMA 为每个结点分配一种不同的编码,每个结点用它唯一的编码来对发 送的数据进行编码。如果精心设计这些编码,CDMA可以同时传输,接收 方仍能正确接收对应的数据。目前应用比较广泛,在蜂窝电话。
2.2 随机接入协议
工作原理:每个结点总是以信道的全部速率R进行发送,如有碰撞,涉及碰 撞的结点,反复重发帧,直到没有碰撞为止。但是每经历依次碰撞,就随机 选择一个随机等待时延。
两种常见的协议:ALOHA协议,载波侦听多路访问协议(CSMA)
2.2.1时隙ALOHA
前提假设:
所有帧长为L比特
时隙长度为L/R s 就是传输一个帧的时间
结点只在时隙起点传输
结点是同步的,都知道时隙的开始时间
当发生帧碰撞时,所有结点都在该时隙结束之前检测到该碰撞事件
执行过程:
如果结点有新的帧要发送时,他等待下一个时隙开始并在该时隙传输整个帧
如果没有碰撞,成功传输帧
如果有碰撞,时隙结束前检测到,该结点以p(0<p<1)的概率,在后序的每个时隙重传它的帧,直到无碰撞地传输出去。
特点:
单个结点活跃时,时隙ALOHA允许结点以速率R进行传输。
时隙ALOHA也是高度分散的,每个结点都是单独决定什么时候重传。
成功时隙:刚好只有一个结点传输的时隙
时隙多路访问协议的效率:当有大量活跃结点且每个结点总有大量的帧要发送,长期运行中成功时隙份额。
传输成功的概率:p(1-p)N-1
因此任意一个结点传输成功的概率N p(1-p)N-1
经过计算,得到最大效率为1/e = 0.37
2.2.2ALOHA
实际的ALOHA协议是一个非时隙的,完全分散的协议。
实现过程:
如果一个结点传输的帧遇到冲突,那么就立刻以p的概率重传这个帧,否者 等待一个帧的传输时间。此后,以概率p重传,或者1-p的概率等待另一个 帧的时间。
传输成功概率:显然前后不能相交p(1-p)2(N-1)
因此任意一个结点传输成功的概率Np(1-p)2(N-1)
经过计算,得到最大效率为1/2e
2.3载波侦听多路访问(CSMA)
ALOHA 每个结点的传播都是独立发送帧到广播信道。
载波侦听:一个结点在传输前先听信道,如果有结点正在传输,就等待直到 有一小段时间没有传输,然后开始传输。
碰撞检测:一个传输结点在传输的过程中,一直侦听信道,如果它检测到另 一个结点正在传输干扰帧,他就停止传输。
载波侦听多路访问CSMA 和具有碰撞检测的CSMA/CD 协议就包含了这 两个规则。
广播信道端到端信道传播时延:信号结点从一个结点传播到另一个结点所花 费的时间。
该传播时延越大,载波侦听结点听不到网络中一个结点已经开始传输的机会 越大,所以这是影响协议性能的关键。
具有碰撞检测的载波侦听多路访问(CSMA/CD)
改变:当一个结点执行碰撞检测时,一旦检测到碰撞将立即停止传输。
通过不传输一个无用的,损坏的帧,有助于改善协议的性能。
运行过程:
(1)适配器从网络层获取数据报,准备链路帧,放入帧适配器缓存
(2)适配器侦听到空闲(无能量从信道进入适配器),它开始传输帧。如果 信道在忙,就一直等待,直到侦听到信道没有能量才开始传输。
(3)传输过程中,适配器继续监视是否有来自其他适配器的信号能量
(4)如果传输整个帧的过程中,没有检测到来自其他适配器的能量,就完 成了传输,如果途中检测到,就立刻终止。
(5)因碰撞终止传输后,适配器等待一个随机的时间量,返回第二步。
补充:当检测到一个冲突,双方再发一个48bit的碰撞加强干扰帧,然后再随 机回退一个时间。在侦听到信道空闲时,要等待一个96bit时间,也叫 最小帧间隔时间,主要是方便接收方,清空缓存。
随机间隔:
碰撞结点数量少的时候,时间间隔小,碰撞结点数量多的时候,时间间隔较长。
二进制指数回退算法:(以太网和DOCSIS 电缆网络采用的策略)
内容:
经历n次碰撞的结点,随机从{0,1,… , 2n-1} 中选择一个K值,对于以太网,实际等待时间量是K.512 比特时间,n能够取10以内的数。
CSMA/CD效率
定义:当有大量的活跃结点,且每个结点有大量的帧要发送时,真在信道中无碰撞的传输的那一部分的时间在长期运行时间所占的份额。
近似公式:e = 1/(1 + 5dprop/dtrans)
以太网帧的bit数:1500*8 = 12000 b
3、轮流协议
前面的多路访问的两个理想特性:
1个活跃结点,该活跃结点具有Rbps的吞吐量
M个活跃结点,每个活跃结点具有R/M bps (CSMA没有)
3.1 轮询协议
(1)要指定一个结点为主结点,它依次轮询每个结点。
(2) 它告诉被查询的结点,允许传输帧的最多数量。传输完后,轮询下 一个结点。依此类推
优点:轮询协议消除了碰撞和空时隙,使得轮询取得的效率高很多。
缺点:引入了轮询时延,即通告一个结点可以传输多少的时间。
要是主节点故障了,那整个信道就变得不可操作了。
3.2 令牌传递协议
这个没有主结点,一个称为令牌的小的传输帧,在结点之间以某种固定的 次序进行交换。
当一个结点收到令牌时,只有它需要发送帧的时候才会持有令牌,否者立刻 转发令牌。
特点:令牌传递是分散的,当一个结点故障,也会使信道崩溃,或者一个结 点忘记释放令牌了,需要某些策略来处理。
三、交换局域网
1、链路层寻址与ARP
1.1 MAC地址
链路层地址不是针对某个主机或者路由器,而是它们的适配器(网络接 口)具有链路层地址。
别名:LAN地址,物理地址,MAC地址。
长度:6字节 大多数局域网(包括以太网和无线局域网802.11)
用处:当一个适配器接收到帧,检查目的地址是否跟自己的MAC地址 匹配,如果匹配,就提取出封装数据,沿这协议栈向上传递。不 匹配就丢弃。
MAC广播地址:FF-FF-FF-FF-FF-FF
1.2 地址解析协议(ARP)
作用:完成把网络层地址转化成链路层地址
ARP模块:以相同局域网的ip作为输入,返回相应的MAC地址
与DNS的区别:DNS 为因特网任何地方的主机解析主机名,而ARP只为 同一个子网的主机和路由器接口解析IP地址。
ARP表:每个主机或者路由器内存都存有一个ARP表,有三个字段(ip 地址,MAC地址,TTL)TTL用来指示存放时间,一般20分钟
ARP分组:ARP查询分组和响应分组具有相同的格式,发送ip地址,接 收ip地址,发送MAC地址。
获取MAC:通过广播ARP分组,就可以获取所有子网的主机的ip和MAC 地址。
即插即用:ARP表是自动建立的,不需要要管理员配置的。
1.3发送数据报到子网外
首先就是获取网关的MAC地址,转发到网关路由器,他有自己的转发表, 根据转发表转发出去。
2、以太网
以太网成功的原因:
以太网是第一个广泛部署的高速局域网
ATM,令牌环,等比以太网更加复杂,更加昂贵。
其他网络的竞争主要是有更高的数据速率,但以太网也跟上来了。
2.1 以太网帧结构
前同步码:8字节,前面七个字节都是10101010,最后一个字节是10101011, 前面7个字节,用于唤醒接收适配器,并且同步他们的时钟。因为适配器A 会根据不同的以太局域网类型采用10Mbps,100Mbps等发送,但A不一 定精确以额定速度发送,可能会有漂移。前同步码最后两个1就是用来警告 B,重要的内容来了。
数据字段:46-1500 字节。这个字段承载着IP数据报,以太网最大的传输 单元(MTU)是1500字节。如果不够46字节,就要填充够46字节。
目的地址:6字节,目的适配器的MAC地址
源地址:6字节,传输帧到局域网上的适配器MAC地址
类型字段:允许以太网复用多种网络层协议,指明传给那种网络层协议,注 意IP和其他链路层协议都有各自的标准化的类型编号。ARP协 议有自己的类型编号:0806,因此ARP分组被多路分解给ARP 协议。显然这个类型字段和网络层的协议字段,运输层的端口号 是类似的,把一层的某协议和上层的某协议结合起来。(2字节)
CRC:(4字节),用于循环冗余检查,检查帧是否出现差错的。
2.2 以太网提供的服务
以太网技术向网络层提供的是无连接服务,跟IP,UDP,类似。
以太网技术向网络层提供不可靠服务。有趣的是,适配器B通过CRC校验, 可以知道是否出现差错,但通过了,它不会发送确认帧,不通过,直接丢弃, 也不会发送否定确认帧。
以太网的帧的重传,完全是因为传输层的重传,但它本身并分不清。
2.3 链路层交换机
交换机的主要任务是,接收入链路层的帧,并将他们转发到出链路。它对子 网的主机和路由器都是透明的。
2.3.1 主要功能
过滤:决定一个帧是否转发到某个接口,还是将他丢弃
转发:决定一个帧是否应该导向某个接口,并把该帧移到那些接口
交换机表:表项(MAC地址,通向该MAC地址的接口,表项放置的时间)
与路由转发表有点像,但也有不同。
索引交换机表:帧来自接口x
(1)如果没有目的地址的表项,则广播该帧,发送到所有其他接口
(2)如果目的地址和x接口关联,如果该帧来自包括目的适配器的局域网, 无需转发,直接丢弃该帧即可。?/
(3)如果目的地址和y(y!=x)关联,那么转发到接口y的输出缓存。
2.3.2 交换机的自学习功能
(1)交换机表初始为空
(2)接收到一个入帧,存储(帧源地址,到达接口,当前时间),显然局 域网的每个结点都发送了一个帧,那么每个结点的去向都记录在表中了。
(3)老化期:如果一段时间后,没有接收到某地址的帧,就删除该地址表 项。
显然,交换机也是一个即插即用设备。它也是双工的,交换机接口可以同时 接收和发送。
2.3.3 链路层交换机的性质
消除碰撞:交换机的最大聚合带宽是该交换机所有接口的速率之和。
异质的链路:交换机链路彼此分离,不同链路可以以不同速率运行并且可以 在不同媒体上运行。
管理方便:如果一个适配器异常工作,持续发送以太网帧,交换机能够检测 到该问题,并在内部断开该适配器。
2.3.4 交换机与路由器
交换机
优点:即插即用,减少人力
有相对高的分组过率和转发速率(只需要处理两层,物理层,链路层)
交换机网络的活跃拓扑限制为一棵生成树,防止广播帧循环
缺点:交换机对于广播风暴不提供任何保护措施,即如果某主机坏了,不断 传播以太网广播帧,交换机将转发这些帧,造成网络崩溃。
路由器
优点:网络寻值是分层次的,当网络存在冗余路径时,分组通常也不会通过 路由器循环。
分组不会限制在一棵生成树,有丰富的拓扑结构构建最佳路径。
路由器对第二层的广播风暴提供了防火墙的保护。
缺点:他们不是即插即用的,需要人为地配置。
处理时间比交换机长,因为要处理到第三层字段。
四、虚拟局域网
虽然局域网通常配置为有等级结构的,每个工作组或者部门有自己的交换局域网,但是还是有很多不好的地方:
缺点:
缺乏流量隔离。虽然等级结构可以把组流量局域化到一个交换机,单广播流 量依然必须跨越整个机构网络。希望一个交换机,可以隔离某个结点。
交换机的无效使用。一个交换机可以给一个组使用,但交换机端口比较多时, 可以满足多个组的使用,但它就不能隔离这些组了。
管理用户。对于属于多个组的人,难以处理。
1、虚拟局域网(VLAN)
支持VLAN的交换机,允许一个单一的物理局域网基础设施定义多个虚 拟局域网。
特点:
同一个VLAN的主机可以互相彼此通信。
在一个基于端口的VLAN中,交换机的端口有网络管理员分组划分。
交换机维护一张端口到VLAN的映射表,交换机仅在属于相同VLAN的 端口直接进行交付帧。
问题:完全隔离两个VLAN,那么他们要想互发又不行。
解决1:通过一个外部路由器,来连接两个VLAN。
问题:不同交换机的相同VLAN 怎么联通
解决:引入VLAN干线连接,连接两台交换机,该干线端口属于任何VLAN, 那么交换机如何知道到达的帧属于哪个VLAN呢?
802.1Q以太网帧加入4字节VLAN标签,承载着该帧所属的VLAN标识 符。
VLAN标签由VLAN干线发送侧的交换机加入帧中,接收侧删除。
VLAN标签组成:
标签协议标识符:TPID 2字节
标签控制信息字段:12比特的VLAN标识和3比特的优先权字段
五、多协议标签交换(MPLS)
多标签协议的提出,主要是为了改善ip路由器的转发速度。
允许路由器基于固定长度的标签转发数据报来增强其功能。
一个MPLS使能的路由器,称为标签交换路由器,通过在其转发表查找MPLS 标签,通过适当的接口转发MPLS帧。
优点:基于标签执行交换,不需要考虑分组的IP地址
MPLS可以提供多条路由转发分组的能力,而标准的IP路由选择协 议是不可能的。
六、数据中心网络
结构:
刀片:主机的别称
机架:每个机架有20-40个刀片
机架顶部交换机(TOR),用于与每台主机互联
第二层交换机:互联TOR交换机
第一层交换机:互联第二层交换机
边界路由器:将数据中心网络与公共因特网互联
负载均衡:
对于服务请求频繁的资源,会冗余地分配在多个主机上,对于外部请求,会 先定向到一个负载均衡器,他的任务是在对应的服务主机均衡地分配请求给 主机,主机完成后,向负载均衡器响应,负载均衡器再相应客户请求。
无线网络和移动网络
一、概述
1、基本概念
无线主机:任何便携机,掌上机,智能手机,桌面计算机等。主机是可以移 动或者不移动的。
无线链路:主机通过无线通信链路连接到一个基站或者无线主机。
两个标准特性:
覆盖区域
链路速率:链路速率取绝于距离,信道条件,无线网用户数量。
基站:无线基础网络设施的一个关键部分
(1)负责向与之关联的主机发送数据和从主机那接收分组。
(2)协调与之关联的多个无线主机的传输
例:蜂窝塔,802.11 无线LAN的接入点
关联:主机位于该基站的通信覆盖范围;主机使用该基站中继他和更大网络 之间的数据。
基础设施模式:与基站关联的主机的运行模式,因为所有的传统网络服务(地 址分配,路由选择)都是由网络向 通过基站相连的主机提供。
自组织网络:自组织网络中,无线主机没有这样的设施与之相连。
切换:移动主机从一个基站的覆盖范围移动到另一个基站的覆盖范围。
2、无线网络的分类
两个准则:
(1)无线网络的分组是否跨越了一个无线跳或多个无线跳
(2)网络是否有基站这样的基础设施
单跳,基于基础设施
直接与基站通信,这样的基站一般与较大的有线网络(如因特网)相连
单跳,无基础设施
不存在与无线网络连接的基站,例如蓝牙网络,具有自组织模式的 802.11网络
多跳,基于基础设施
无线结点为了与基站通信,不得不通过其他无线结点中继他们的通信
例:某些无线传感网络
多跳,无基础设施
没有基站,但结点为了到达目的低,必须通过一些其他无线结点中继报 文。例:移动自组织网络(MANET),车载自组织网络(VANET)
二、无线链路和网络特征
与有线网对比
无线802.11网络 -> 有线以太网
无线网络接口 -> 有线网络接口
接入点 -> 以太网交换机
1、有线链路和无线链路主要区别
递减的信号强度
电磁波穿过物体后强度会减弱,在自由空间,信号随着发送方和接收方 的距离增加而减弱(又叫路径损耗)。
其他源的干扰
同一个频道发送信号的电波源将互相干扰。如2.4GHz的无线电话和 802.11b无线LAN,还有环境中的电磁噪声。
多路径传播
电磁波受部分物体和地面反射,就可能产生多路径传播。
2.信噪比(SNR)
信噪比:所收到的信号和噪声强度的相对测量,单位dB。
信噪比越大,越利于我们从背景噪声中提取信号。
BER :比特差错率,接收方在接收到有差错传输比特的概率。
特点:
(1)对于给定的调制方案,SNR越高,BER越低
发送方可以通过增加它的传输功率来增加SNR,可以降低BER,但是必须 消耗更多能量。而且到后面,降低效果不明显。
(2)对于给定的SNR,具有高比特传输速率的调制技术,将具有较高的BER。
显然,对于特定的信噪比,你传输越快,越容易出错。
(3)应动态选择调制技术,适应信道条件,降低BER
3、终端隐藏问题
物理阻挡:物体阻挡,可能会妨碍结点听到对方的传输
信号减弱:无线媒体传播时,信号会逐渐减弱
4、CDMA
不同主机使用一个共享媒体通信时,需要有一个协议来保证多个发送方发送 的信号不在接收方互相干扰。
有线提过三种媒体访问协议:信道划分,随机访问,轮流。
CDMA(码分多址)是信道划分的一种,无线LAN和蜂窝网应用最广泛。
1、编码
发送方的每个比特都通过乘以一个信号比特进行编码,这个信号通常是 一串1,-1的值,变化速率(码片速率)比初始数据比特序列变化速率 快的多。
以初始数据比特到达CDMA编码器的时间定义为时间单元,那么,再 把每个时间单元分成M个时隙,CDMA的编码就是是M个-1或1组 成的序列。
2、多个发送比特混合
只要他们使用的编码序列不一样,那么对他们累加就行,然后接收方负责用各自的编码序列去解码。
三、WIFI:802.11 无线LAN
1、体系结构
基本服务集(BSS):基本构建模块,一个BBS包含一个或多个无线站点和 接入点AP(基站)
AP:每个AP的无线接口也有一个MAC地址
基础设施无线LAN:配置有AP的无线LAN,基础设施是指,互联AP和路 由器的有线以太网。
1.1信道关联
无线站点要与一个AP关联才能够发送或接收网络层数据。
配置AP:管理员配置一个AP时,分配一个单字或双字的服务集标识SSID。
为AP分配一个信道号。对于2.4-2.4835GHz频段,802.11定义 了11个部分重叠的信道,信道之间相隔4个及以上的信道才不会 重叠。显然一个物理网络可以安装三个AP,分配信道1,6,11.
WIFI丛林:就是在一个位置,站点可以检测到多个AP的信号。
关联的过程:
(1)每个AP会周期性发送信标帧,信标帧包括SSID和MAC地址。
(2)无线站点,通过扫描11个信道,寻找附件AP发出的信标帧。
(3)主机选择接收到具有最高信号强度的信标帧。(不一定是最好的,可能主机 负载过多,可用带宽低,某些未过载AP信号弱,可用带宽可能会大)
被动扫描:扫描信道和监听信标帧的过程
主动扫描:站点向覆盖其位置的所有AP广播探测帧,AP用探测响应帧应答探 测请求帧。
(1)AP发送信标帧
(2)H1想选择的AP发送关联请求帧
(3)被选中的AP想H1发送关联响应帧
(1)H1广播探测请求帧
(2)AP发送探测帧响应
(3)H1想选择的AP发送关联请求帧
(4)被选中的AP想H1发送关联响应帧
2、802.11 MAC协议
2.1 概述
站点可以是一个无线站点,也可以是一个AP。
因为存在多个站点可能同时经过相同的信道传输数据帧,需要用多路访问协议来协调传输。
受以太网CSMA的成功鼓舞,802.11 设计了带碰撞避免的CSMA(CSMA/CA)
2.2 CSMA/CD 和 CSMA/CA的区别
802.11 使用的是碰撞避免而非碰撞检测
802.11 使用链路层确认/重传(ARQ)方案,因为无线信道有比较高的误比特 率。
2.3 802.11 不能实现碰撞检查的原因
碰撞检测的能力要求站点具有同时发送和接收(其他站点的发送信号)的能 力,802.11 的适配器,接收信号的强度远远小于发送信号的强度,制造具 有检测碰撞能力的硬件代价大。
适配器会因为隐藏终端问题和衰减问题而无法检测到所有的碰撞。
2.4链路层确认方案
(1)目的站点收到一个通过CRC校验的帧后,等待一个短帧间隔(SIFS), 发送一个确认帧。
(2)发送站点在给定时间内未收到确认帧,就假定发生错误,并重传帧,使 用CSMA/CA 访问该信道。
(3)若干个固定次重传后仍未收到确认,发送站点将放弃发送并丢失该帧。
2.5CSMA/CA协议过程
(1)站点鉴听到信道空闲时,等待一个分布式帧间间隔(DIFS),然后发送 帧。
(2)否则,随机选择一个回退值,侦听信道空闲时,递减该值,信道忙时, 计数值不变。
(3)当计数值为0时,如果信道空闲,站点发送整个数据帧,并等待确认。
(4)如果收到确认帧,就回到第二步准备发送另一帧。否者回答第二步, 并选择一个更大范围的随机值。
CSMA采用倒计时抑制传输,主要是考虑到一种情况,如果多个主机都正在等待空闲信道,一旦某个传输完,他们同时开始传输,那不就发生碰撞了。对于802.11 ,碰撞代价比较大,他们不检测碰撞和放弃发送。
2.6 处理隐藏终端问题:RTS 和CTS
(1)站点向AP发送一个短请求发送(RTS)控制帧,指示DATA帧和确认帧 需要的总时间。
(2)当AP接收到RTS帧后,广播CST帧(允许发送帧)作为响应。
广播的目的:告诉发送方可以发送
告诉其他站点不要在预期内发送
优点:
隐藏终端问题缓解 了,因为DATA帧的只有信道被预约了才进行传输。
RTS 和 CTS帧较短,那么即使碰撞了,持续时间也不长。
缺点:
因为RTS和CTS 也引入了时延以及消耗了信道资源。
3、802.11 帧
3.1 有效荷载:通常是一个IP数据报或者ARP分组,虽然允许最大长度2312字节,但一般小于1500字节。
3.2CRC 循环冗余校验字段,从而接收方可以检测所收到的帧比特错误。
3.3 地址字段
四个地址段
地址1:接收方无线站点的MAC地址
地址2:传输该帧的MAC地址
地址3:一般是存放网关路由器的MAC地址
考虑从路由器发送到主机H:
路由器通过ARP得到H的MAC地址,构造以太网帧发给AP,AP把一个 802.3帧转换成802.11帧,并完成对三个地址的设置。
考虑从主机H到路由器:
H构造802.11帧,插入三个地址,AP接收到帧后,转换成以太网帧,源地 址是H的MAC地址,目的MAC地址为R的MAC地址。
3.4 序号
使用序号可以使接收方区分新传输的帧和以前帧的重传。
3.5持续期
协议允许结点预约信道的时间,包括数据帧的传输时间和传输确认的时间
数据帧,RTS,CTS 都存在这个字段值。
3.6控制字段
类型和子类型用于区分关联,RTS,CTS,ACK,和数据帧
To from 用来定义不同字段的意义
WEP指示是否加密
4、相同ip子网移动的问题
当站点从一个BBS移动到另一个BBS,如果属于同一个子网,可以用比较直接的方法解决,但是如果不是同一个子网,那就需要用更为复杂的移动性管理协议。
简单的方法:
站点和旧的AP解除关联,然后和新的AP关联,保持其IP和正在进行的TCP会话。新的AP以H1的MAC地址,向交换机发送广播帧。
5、802.11的高级特色
(1)速率适应
离基站近,信噪比高,可以提高传输速率,同时又能为维持低BER。
如果没有接收到确认帧,就将传输速率降低到一个较低的速率。连续得到10 个帧的确认,就提高传输速率。
(2)功率管理
提供此功能服务,可以使结点的侦听,传输,和其他需要打开电路的时间量 最小化。
将802.11帧的功率管理比特置1,向AP表示它打算睡眠。
设置结点的一个定时器,是的正好AP计划发送信标帧(100ms)前唤醒它。
AP从设置的功率管理比特,可以知道不应该给该结点发送任何帧,就先缓 存,以后再传输。
本文标签: 知识点
版权声明:本文标题:计网知识点总结 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1725921610h893105.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论