——by Chaf
计算机网络总复习第一章 计算机网络与互联网络一、什么是互联网络1、从构成角度看 2、从服务角度看3、协议二、网络边缘1、网络结构2、 网络边缘:运行应用的端系统(端系统中的应用交互方式)3、利用网络的服务三、网络核心1、网络核心2、数据交换方式及比较四、接入网与物理媒介1、住宅接入网络:点到点接入2、机构接入:LAN3、物理链路4、常用介质五、互联网结构和ISP1、近似层次型结构2、ISP之间的连接3、内容提供商网络六、分组交换网络中的延迟与丢失1、延迟的原因(4个)(1)处理延迟(2)排队延迟(3)传输延时(4)传播延时2、流量强度3、丢失原因4、吞吐量七、协议层次与服务模型1、分层的原因2、分层3、相关术语与概念4、互联网络分层模型及每一层的功能5、封装和解封装八、历史第二章 应用层一、网络应用原理1、应用架构(1) 客户-服务器(C/S)体系结构(2)对等体(P2P)体系结构(3)C/S和P2P体系结构混合体2、进程通信3、SOCKET4、进程编址5、 应用所需要的服务需要考虑的因素6、传输层协议二、WEB和HTTP1、WEB应用包括2、术语3、HTTP协议(1)作用(2)HTTP连接4、往返延迟RTT和对象的抓取时间5、报文格式6、COOKIES7、WEB缓存三、FTP*(不要求)四、EMAIL1、电子邮件应用的构成2、邮件报文格式解析3、邮件存取协议五、DNS1、DNS的作用2、DNS的概念:分布式、层式数据库3、DNS的构成4、域名解析的过程5、DNS缓存6、新增一个域7、攻击DNS六、P2P1、P2P概念:每个对等体既是客户端又是服务器2、典型P2P应用及其原理七、视频流化服务和CDN1、服务器向客户端进行视频流化的方式2、DASH流化过程3、CDN八、TCP的SOCKET编程1、SOCKET的概念2、SOCKET API3、TCP SOCKET数据传输的特点4、TCP SOCKET编程5、面向连接的套接字通信工作流程九、UDP SOCKET编程1、UDP SOCKET数据传输的特点2、UDP SOCKET 编程第三章 传输层一、传输层服务1、传输服务2、传输协议3、传输服务与网络服务的区别4、互联网络传输层协议二、复用与解复用1、复用2、解复用3、复用和解复用的工作原理:IP PORT三、无连接传输协议UDP1、必要性2、UDP报文(数据报)格式四、可靠数据传输的原理1、Rdt服务(1)Rdt1.0:在可靠信道上的可靠数据传输(2) Rdt2.0:具有比特差错的信道(3)Rdt2.1:处理Rdt2.0的缺陷(4)Rdt2.2:无NAK的协议(5)rdt3.0:具有比特差错和分组丢失的信道2、技术机制3、利用率计算(1)停止等待技术(2)管道技术五、有连接的传输层协议:TCP1、TCP服务特性2、TCP段结构3、RTT时间估计和重发超时时间估计4、TCP的可靠数据传输原理5、流量控制6、连接管理六、拥塞控制原理1、拥塞的概念及原因2、拥塞控制的手段七、TCP的拥塞控制原理1、TCP拥塞控制原理2、TCP拥塞控制算法3、TCP的吞吐量4、TCP的公平性第四章 网络层:数据平面一、简介1、网络层的主要服务和功能2、实现网络层功能的方式:3、网络层提供服务的一些重要指标二、路由器结构和工作原理1、路由器的2大功能2、构成三、互联网网络层协议1、IP网络提供的网络模型:尽力而为2、网络层构成3、IP数据报格式4、IP编址5、DHCP协议(Dynamic Host Configuration Protocol )6、路由聚集7、IPv6四、通用转发和SDN1、SDN方式控制平面和数据平面分离的优点2、分组交换机的工作原理3、OpenFlow数据平面抽象第五章 网络层:控制平面一、概述1、实现控制平面的方法2、传统方式3、SDN方式二、路由选择算法1、路由协议的目标2、路由分类3、LS算法(全局的路由选择算法)4、DV算法(局部的路由选择算法)4、LS和DV算法的比较5、层次路由三、互联网络的路由协议1、内部网关协议IGP2、外部网关协议EGP3、内部网关协议和外部网关协议的对比四、SDN控制平面1、优势2、SDN控制器3、OpenFlow协议五、ICMP协议1、作用2、报文类型3、举例:Traceroute and ICMP第六章 数据链路层与局域网一、引论1、链路层提供的服务2、链路层网络节点的连接方式3、链路层实现位置4、适配器通信5、数据链路层和局域网二、检错与纠错1、检错原理三、多路访问协议1、多路访问协议的必要性2、媒体访问控制(MAC)协议(1)信道划分(2)RAP:随机访问协议(3)轮流MAC协议四、链路层编地址1、MAC地址2、MAC地址与网络层IP地址的区别3、ARP协议五、以太网络1、IEEE802.3标准:链路和物理层2、以太网络的帧结构3、向上提供服务的特点4、访问控制技术5、编码六、HUB和交换机1、集线器(Hub)2、交换机3、路由器和交换机的区别第七章 网络安全一、网络安全的含义1、网络安全的含义2、网络安全威胁二、加密原理1、加密技术三、认证原理1、目的2、使用对称加密技术进行认证的工作原理3、使用公开密钥加密体系进行认证的工作原理四、报文完整性1、目的2、手段:数字签名3、报文摘要四、改进五、密钥分发和证书1、KDC工作原理2、CA工作原理6、防火墙和IDS7、多层次的安全日常应用:连接到互联网总结附录一、常用缩写二、易错点总结三、重要例题第二章 P10第三章 P27第三章 P40第四章 P5第四章 P14第四章第四章第四章第四章第五章 P3第五章 P5第五章 P7第五章 P14第五章 P15第六章 P5第六章 P15第六章 P21第六章 P17第六章 P26第六章 P27第六章 P37
互联网络=能够为应用提供通信服务的通信架构(已连接可靠服务和无连接不可靠服务)+使用通信服务相互配合工作的应用
协议:对等层实体在通信过程中所遵循的规则集合,控制发送和接收消息
协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及在报文传输和/或接收或其他事件方面所采取的动作
协议=语法+语义+时序
网路结构=网络边缘(主机、应用程序)+网络核心(路由器、网络的网络)+接入网与通信链路
采用网络设施的面向连接服务:TCP
采用基础设施的无连接服务:UDP
电路交换
特点:网络资源(如带宽)被分成片,独享资源,建立呼叫连接
分片方式:
频分FDM:
时分TDM:
波分WDM
举例:电话网络
分组交换
特点:以分组为单位存储-转发方式;传输时使用全部带宽;在转发之前,节点必须收到整个分组(延迟、排队);路由器缓存用完时,分组将被抛弃;统计多路复用(时分复用)
虚电路网络VC:
数据报网络Datagram
举例:IP网络
分组交换vs电路交换
分组交换是“突发数据的胜利者”
分组交换
缺点:
优点:
将端系统连接到边缘路由器的链路或网路
调制解调器 modem
接入网 DSL
采用现存的到交换局DSLAM的电话线
<2.5Mbps上行传输速率
<24Mbps下行传输速率
线缆网络(混合光纤同轴网络HFC)
FTTH(光纤到户)
家庭网络
以太网络 Ethernet
无线接入网络 WLAN
在每个传输-接收对,跨越一种物理媒体
双绞线(TP)
同轴电缆
两根同心的铜导线
双向
基带电缆:
宽带电缆
光纤
无线链路
T-1 ISP
T-2 ISP
Local ISP
在全球部署DC
内容提供商网络在多处与各个ISP相联
内容提供商自己部署网络将全球的DC相联
节点延迟的计算:
假设:
有以下规律:
在源端和目标端之间传输的速率(数据量/单位时间)
网络比较复杂,分层实现比较容易设计,调试和实现
将复杂网络的功能划分成功能明确的层次,上层利用下层提供的服务来实现本层的协议,从而为上层提供更复杂的功能
服务:底层实体向上层实体提供它们之间的通信的能力,通过原语来操作,垂直
服务访问原语:上层使用下层服务的形式,高层使用低层提供的服务,以及低层向高层提供服务都是通过服务访问原语进行交互
服务访问点SAP:上层使用下层提供的服务通过层间接口(如端口、地址)
面向连接的服务:
连接:两个通信实体为进行通信而建立的一种结合
过程:建立连接,通信,拆除链接
例子:网络层的连接为虚电路
适用范围:对于大的数据块要传输,不适合小的零星报文
特点:报序
服务类型:
无连接的服务
无连接服务:两个对等层实体在通信前不需要建立一个连接,不预留资源;不需要通信双方都是活跃
特点:不可靠、可能重复、可能失序
IP分组,数据包
适用范围:适合传送零星的数据
服务类型:
协议:对等层实体之间在相互通信的过程中,需要遵循的规则的集合,水平
协议数据单元
服务与协议的联系:
应用层:网络应用
传输层:主机之间的数据传输
网络层:为数据报从源到目的选择路由
链路层:相邻网络节点间的数据传输
物理层:在线路上传送bit
服务器
一直运行
固定的IP和周知的端口号
扩展性:服务器场
客户端
几乎没有一直运行的服务器
任意端系统之间可以进行通信
每一个节点既是客户端又是服务器
参与的主机间歇性连接且可以改变IP地址
例子:Gnutella,迅雷
Napster
文件搜索:集中
文件传输:P2P
即时通信
在线监测:集中
两个用户之间聊天:P2P
同主机:使用进程间通信机制通信(由操作系统定义)
不同主机:通过交换报文来通信
按照应用协议交换报文
一个整数,OS用于标识应用通信关系所采用的本地标示
TCP:连接的本地标示,四元组(源IP,源port,目标IP,目标port),TCP服务器需要两个套接字
UDP:端节点的本地标示,二元组(本IP,本port),UDP服务器需要一个套接字
IP+port
TCP:提供的服务特性,可靠的字节流服务,面向连接,流量控制,拥塞控制
UDP:提供的服务特性,无连接,不可靠的服务
都能提供进程的标示,区分不同的进程
定义了client和server之间通信的报文格式,解释和时序 (Port 80)
持久HTTP
多个对象可以在一个TCP连接上传输(HTTP/1.1默认使用持久连接)
服务器在发送响应后,仍保持TCP连接
在相同客户端和服务器之间的后续请求和响应报文通过相同的连接进行传送
客户端在遇到一个引用对象的时候,就可以尽快发送该对象的请求
分类:
非流水方式的持久HTTP:
流水方式的持久HTTP:
非持久HTTP
最多只有一个对象在TCP链接上发送
下载多个对象需要多个TCP连接
HTTP/1.0使用非持久连接
缺点:
举例:
注意: 应对每一个对象重复操作
往返时间RTT:一个小的分组从客户端到服务器,再回到客户端的时间(传输时间忽略)
响应时间:
请求报文
ASCII
方法:
响应报文
响应状态码:
200 OK:请求成功,请求对象包含在响应报文的后续部分
301 Moved Permanently:
400 Bad Request:表示该请求不能被服务器解读
404 Not Found:请求的文档再该服务上没有找到
505 HTTP Version Not Supported
组成部分:
维护状态:
应用:用户验证、购物车、推荐、用户状态
目的:不访问原始服务器,就满足客户的请求
原理
用户设置浏览器:通过缓存访问Web
浏览器将所有的HTTP请求发给缓存
作用:
条件GET方法:如果缓存器中的对象拷贝是最新的,就不要发送对象
缓存器:在HTTP请求中指定缓存拷贝的日期
If-modified-since:<date>
服务器:如果缓存拷贝陈旧,则响应报文没包含对象
HTTP/1.0 304 Not Modified
用户代理
邮件服务器
SMTP
使用TCP在客户端和服务器之间传送报文,Port:25
直接传输:从发送方服务器到接收方服务器
传输三个阶段:
命令/响应交互
报文必须为7位ASCII码
SMTP vs HTTP
举例:
报文头
To:
From:
Subject:
与SMTP命令不同
报文体:报文,ASCII码字符
MIME:邮件多媒体扩展,可以在邮件中编解码多媒体内容
作用
常用
POP3:邮局访问协议,用户身份确认(代理<-->服务器)并下载
用户确认阶段
事务处理阶段,客户端:
会话中无状态
本地管理文件夹
IMAP:Internet邮件访问协议
HTTP:Yahoo,Hotmail等(方便)
解析器:本地应用(UDP)
域名服务器
DNS协议
报文:查询和响应报文的报文格式相同
资源记录(RR)
作用:维护域名-IP地址(其他)的映射关系
位置:Name Server的分布式数据库
RR的格式:(domain_name,ttl,type,class,value)
Domain_name:域名
Class类别:对于Internet,值为IN
Value值:可以是数字,域名或ASCII串
Type类别:资源记录的类型
Type=A
Type=NS
Type=CNAME
Type=MX
TTL:生存时间,决定了资源记录应当从缓存中删除的时间
解析器->本地DNS服务器->上层域名服务器->...->权威域名服务器,返回
递归查询
迭代查询
DDoS攻击
对根服务器进行流量轰炸攻击:发送大量ping
向TLD服务器流量轰炸攻击:发送大量查询
重定向攻击
中间人攻击
DNS中毒
技术上较困难:分布式截获和伪造
利用DNS基础设施进行DDoS
P2P网络是这些peer构成的应用层面上的逻辑网络
P2P网络比C/S分发内容快的原因:这些peer节点参与到内容的上载,流量和服务都是分布的,可扩展性
分发时间
假设:
服务器向个对等方传输该文件的一个副本,分发时间。对于P2P架构网络,服务器至少在其接入链路上发送文件一次,故最小分发时间至少为
令表示具有最小下载速率的对等方的下载速率,则最小分发时间至少为
系统整体的总上载能力等于服务器的上载速率加上每个单独的对等方的上载速率,即,则最小分发时间至少为
对于C/S体系网络,
对于P2P体系网络,
应用:文件分发、流媒体、VoIP
服务器
客户端
先获取告示文件
周期性测量服务器到客户端的带宽
查询告示文件,在一个时刻请求一个块,HTTP头部指定字节范围
智能客户端
单个服务器,或者服务器群向客户端提供海量内容并发服务的问题:扩展性差
CDN的原理
缓存节点放置的方式
举例:
TCP连接的本地标示,向这个SOCKET写就是发送给对方的进程;从SOCKET中读,就是读取对方发送过来的数据
服务器首先运行,等待连接建立
服务器进程必须先处于运行状态
客户端主动和服务器建立连接
创建客户端本地套接字(隐式捆绑到本地port)
当有与客户端连接的请求到来时
服务器接受来自用户端的请求,接触阻塞式等待,返回一个新的socket(与欢迎socket不同),与客户端通信
连接API调用有效时,客户端与服务器建立了TCP连接
建立SOCKET
使用
关闭
为运行在不同主机上的应用进程提供逻辑通信
运行于端系统的两个对等传输层实体相互通信应该遵守的规则集合
网络服务:主机-主机之间的逻辑通信
传输服务:进程-进程之间的逻辑通信
TCP:有连接,可靠保序数传服务
UDP:不可靠、不保序的传输
源端多个上层应用收集数据:应用报文,封装报文
接收端将数据按照端口号(结合IP地址)给相应的SOCKET对应的应用
TCP有连接情况:SOCKETS为4元组(源IP,源port,目的IP,目的port)
UDP无连接情况:SOCKETS为2元组(目的IP,目的port)
UDP校验和
目的:检测在被传输报文段中的差错
发送方:
接收方:
计算接收到的报文段的校验和
检查计算出的校验和与校验和字段的内容是否相等
Internet校验和的例子:
下层的信道是完全可靠的
发送方和接收方的FSM
下层信道可能会出错:将分组中的比特翻转
从差错中恢复:
新机制:采用差错控制编码进行差错检测
FSM描述:
引入序号
处理重复:
发送方处理出错的ACK/NAK
接收方处理出错的ACK/NAK
讨论:
发送方:
接收方:
必须检测接收到的分组是否是重复的
接收方不知道它最后发送的ACK/NAK是否被正确地收到
发送方不对收到地ACK/NAK给确认
接收方发送ACK,若接收方收到:
rdt2.1的运行
特点:
功能同rdt2.1,但只使用ACK
接收方对最后正确接收的分组发ACK,以代替NAK
当收到重复的ACK时,重传当前分组
rdt2.2的运行
FSM描述
方法:发送方等待ACK一段合理的时间
FSM描述
rdt3.0的运行:
rdt3.0的性能
rdt3.0的停-等操作
流水线:提高链路利用率
校验和,正向确认,反向确认
序号:检查重复
只有正向确认的机制
检错重发和超时重发:处理丢失
链路带宽延迟积(容量)效率低
在未经对方确认的情况下,可以连续发送多个PDU
通用:滑动窗口(slide window)协议
发送缓冲区
发送窗口的移动——前沿移动
发送窗口的移动——后沿移动
发送窗口
接收窗口
接收窗口=接收缓冲区
接收窗口尺寸Wr=1,只能顺序接收
接收窗口尺寸Wr>1,则可以乱序接受
接收窗口的滑动与发送确认
滑动:低序号的分组要来,接收窗口移动;高序号分组乱序到,缓存但不交付(rdt不允许失序),不滑动
发送确认:
Go-back-N(GBN)协议
特点:发送窗口大于1,接收窗口=1(只能顺序接收;发送方设置一个超时定时器,一旦出错,返回到出错的哪一个PDU重发)
发送方:
分组头部有k比特的序列号,一次发送多个分组
窗口大小为N,发送缓冲区:允许未确认的连续多个分组
ACK(n):发送端收到确认n,即序号为n之前的所有分组进行确认(累计确认)
只对后沿分组设定时器
timeout(n):重传发送窗口中所有序号大于等于n的分组
扩展的FSM:
接收方:
只发送ACK:对顺序接收的最高序号的分组
对乱序的分组:
运行实例:
选择重传(SR)
特点:发送窗口大于1,接收窗口大于1(能够乱序接收;发送方为每个发送出去的PDU;设置超时定时器,哪个超时重发哪个)
发送方:
接收方:
分组n [rcvbase, rcvbase+N-1]
分组n [rcvbase-N, rcvbase-1]
其他:
SR的运行
窗口的最大尺寸(n为序号空间大小,例如:n=2,序列号:0、1、2、3)
点对点:一个发送方,一个接收方
可靠的、按顺序的字节流:没有报文边界
管道化(流水线):TCP拥塞控制和流量控制设置窗口大小
发送和接收缓存
全双工数据
面向连接:在数据交换之前,通过握手(交换控制报文)初始化发送方、接收方的状态变量
有流量控制:发送方不会淹没接收方
序号:报文段首字节的在字节流的编号(偏移量)32bits
确认号(对顺序收到的最后一个字节+1)32bits:
接收窗口:指示接收方愿意接受的字节数量,用于流量控制 16bits
标志字段:
设置TCP的超时:
估计RTT:
SampleRTT:测量从报文段发出到确认的时间(若有重传,忽略此次测量)
移动平均计算:对几个最近测量值求平均值
指数加权移动平均:
设置超时:
TCP在IP不可靠服务的基础上建立了rdt
管道化的报文段
累计确认(像GBN)
单个单传定时器(像GBN)
是否可以接受乱序,没有规范
通过以下时间触发重传
超时(只重发最老的一个段:SR)
重复的确认
快速重传:在没有超时的情况下,收到对方对于某一个段的重复三次(一共4个)ACK
超时周期往往太长:在重传丢失报文段之前的延时太长
通过重复的ACK来检测报文段丢失
如果发送方收到同一数据的三个冗余ACK,重传最小序号的段
在定时器过时之前重发报文段
它假设跟在被确认的数据后面的数据丢失了
目的:防止淹没接收方
方法:将接收窗口大小捎带方式传递给发送端
接收方在其向发送方的TCP段头部的rwnd字段通告其空闲buffer大小
发送方限制未确认字节个数接收方发送过来的rwnd值
缓存中可用的空间
=RcvWindow
=RcvBuffer-[LastByteRcvd-LastByteRead]
连接建立:3次握手技术,对双方选择的初始序号给予确认,准备好缓冲区
过程:
三次握手FSM
连接拆除:对称
客户端,服务器分别关闭自己一侧的连接
一旦接收到FIN,用ACK回应
可以处理同时的FIN交换
拥塞:太多的数据需要网络传输,超过了网络的处理能力
拥塞的表现:
拥塞的原因:
场景1
假定:
场景2
假定:
一个路由器,有限的缓冲
分组丢失时,发送端重传
理想化:发送端有完美的信息
发送端知道什么时候路由器的缓冲可用
理想化:掌握丢失信息
现实情况:重复
拥塞的代价:
场景3
假定:
拥塞的代价
当分组丢失时,任何“关于这个分组的上游传输能力”被浪费
端到端的拥塞控制
网络辅助的拥塞控制
路由器提供给端系统以反馈信息
检测拥塞
某个段超时了(事件丢失):拥塞
有关某个段的3次重复ACK:轻微拥塞
速率控制方法
维持一个拥塞窗口的值:CongWin
发送端限制已发送但是未确认的数据量(的上限):
LastByteSent-LastByteAcked CongWin
粗略控制网络速率:
CongWin是动态的,是感知到网络拥塞程度的函数:
超时或者3个重复ack,CongWin↓
正常收到ACK:
拥塞控制机制:
慢启动
连接刚建立时,CongWin=1MSS
当连接开始时,指数性增加发送速率直到丢失事件发生
总结:初始速率很慢,但指数级加速,SS时间很短,长期可以忽略
AIMD
乘性减:丢失事件后将CongWin降为1,将CongWin/2作为阈值,进入慢启动阶段(倍增至CongWin/2)
加性增:当CongWin>阈值时,一个RTT如果没有发生丢失事件,将CongWin加1MSS
当收到3个重复的ACKs(丢失):
当超时事件发生时:
总结(Reno方法):
当CongWin<Threshold,发送端处于慢启动阶段(slow-start),窗口指数型增长
当CongWIn>Threshold,发送端处于拥塞避免阶段(congestion-avoidance),窗口线性增长
当收到三个重复的ACKs,Threshold设置成CongWin/2,CongWin=Threshold
当超时事件发生时(timeout),Threshold=CongWin/2,CongWin=1MSS,进入SS阶段
举例:
注意: 重复ACK过程中,CongWin和Threshold不变,收到三个重复ACK后,Threshold=CongWin/2,CongWin=Threshold+3MSS
Tahoe:超时事件和3个冗余ACK处理一样(无快速恢复)
Reno:超时事件和3个冗余ACK处理不一样
设W为发生丢失事件时的窗口尺寸,则平均吞吐量:
设L为丢包率,则平均吞吐量:
公平性目标:如果K个TCP会话分享一个链路带宽为R的瓶颈,每一个会话的有效带宽为R/K
TCP公平的原因:
对于两个竞争的TCP会话:
网络层服务
网络层功能
转发:将分组从路由器的输入接口转发到合适的输出接口
路由:使用路由算法来决定分组从发送主机到目标接收主机的路径
传统方式
控制平面和数据平面的功能垂直集成在每个设备上(路由器)
控制平面功能:路由协议实体分布式地计算路由表
数据平面:IP协议按照路由表进行分组的转发
SDN通用转发方式
输入端口:线路终端实现物理层功能、链路协议实体实现链路层功能,网络层功能实现分布式分组转发
交换结构
通过内存交换
通过总线交换
通过互联网络的交换
输出端口
实现分组的调度(选择下一个要通过链路传输的分组)
FIFO:按照分组到来的次序发送
丢弃策略:如果分组到达一个满的队列,丢弃哪个分组
优先权:发送最高优先权的分组
多类,不同类别有不同的优先权
Round Robin(RR)scheduling
加权队列Weighted Fair Queuing(WFQ)
输出端口排队
设有N个流,链路容量为C,缓存大小等于
路由处理器:控制各部分的协调工作
路由协议 路由选择协议 ICMP协议
转发表
获得IP数据报的目标地址
对于转发表中的每一个表项
分片和重组
原因:网络链路有MTU(最大传输单元)——链路层帧所携带的最大数据长度
大的IP数据报在网络上被分片(fragmented)
一个数据报被分割成若干个小的数据报
重组只在最终得目标主机进行
IP头部信息用于标识,排序相关分片
举例
IP地址:主机或路由器和网络接口得32位标识
接口:主机/路由器与网络链路得连接处
一个IP地址和一个接口相关联
子网
IP地址:子网部分(高位bits),主机部分(低位bits)
在一个子网内得设备之间通信的特点:
要判断一个子网,将每一个接口从主机或者路由器上分开,构成了一个个网络的孤岛,每一个孤岛(网络)都是一个都可以被称之为子网
IP地址分类
特殊的IP地址
子网部分:全为0——本网络
主机部分:全为0——本主机
主机部分:全为1——广播地址,这个网络的所有主机
专用IP地址
永远不会被当做公用地址来分配,不会与公用地址重复
路由器不对目标地址是专用地址的分组进行转发
专用地址范围:
子网掩码和CIDR
子网掩码
32bits:
A,B,C类网络的子网掩码:
另一种表示方法:
CIDR(Classless InterDomain Routing无类域间路由)
目的:允许主机在加入网络的时候,动态地从服务器那里获得IP地址
工作概况
DHCP返回:
实例
连续的子网前缀的子网可达信息可以做聚集,减少向外部传输路由的数量,减少路由计算的负担。
IPv6数据报格式
头部:
特点:
IPv6的变化
Checksum:被移除,降低在每一段中的处理速度
Options:允许,但是在头部之外,被“Next Header”字段标示
ICMPv6:ICMP的新版本
IPv4到IPv6的迁移
隧道:在IPv4路由器之间传输的IPv4数据报中携带IPv6数据报
流:由分组(帧)头部字段所定义
通用转发:简单的分组处理规则
在每个路由器中的单独路由器算法元件,在控制平面进行交互
一个不同的(通常是远程的)控制器与本地控制代理(CAs)交互
根据收集到的路由信息(拓扑、链路代价等),计算出源到目标较好的路径,代价比较低的路径
静态和动态
全局和局部
配置LS路由选择算法的路由工作过程
LS路由的基本工作原理
发现相邻节点,获知对方网络地址
测量到相邻节点的代价(延迟、开销)
组装一个LS分组,描述它到相邻节点的代价情况
将分组通过扩散的方法发到所有其他路由器
通过Dijkstra算法找出最短路径(路由算法)
初始化
从所有临时节点中找到一个节点代价最小的临时节点,将之变为永久节点(当前节点)W
对此节点的所有在临时节点集合中的邻节点(V)
开始一个新的循环
Dijkstra算法举例:
Dijkstra算法的讨论
算法复杂度:n节点
可能的震荡
基本思想
代价及相邻节点间代价的获得:
路由信息的更新:
找到一个最小的代价,和相应的下一个节点
水平分裂算法
目的:解决无穷计算问题(当源节点作为下一跳到目的节点的中间节点时会出现循环)
举例:C知道要经过B才能到达A,所以C向B报告它到A的距离为INF;C告诉D它到A的真实距离
特例:
距离矢量算法
节点x:
每个节点定时或DV有变化时,将自己的距离矢量估计值传送给邻居,邻居收到DV时更新自己的距离矢量
Bellman-Ford方程
:x往y的代价
:x到邻居v的代价
:v声称到y的代价
估计值最终收敛于实际的最小代价值
举例:
迭代方式
异步式:被以下事件触发
分布式:
链路代价变化
节点检测到本地链路发生变化
更新路由信息,重新计算DV
若DV发生变化,通告其邻居
毒性逆转:
消息复杂度(DV胜出)
LS:有n个节点,E条链路,发送报文O(nE)个
DV:只和邻居交换信息
收敛时间(LS胜出)
LS:O()
DV:收敛较慢
健壮性(LS胜出)
LS:
DV:
RIP
特点:
DV:在邻居之间每30秒交换通告报文
每一个通告至多AS内部的25个目标网络的DV(25个子网,最大跳数为16)
链路失效与恢复(若180秒没有收到通告信息——邻居或链路失效)
进程处理
OSPF
使用LS算法
OSPF通告信息中携带L每一个邻居路由器的一个表项
通告信息会传遍AS全部(通过泛洪)
高级特性:
层次性的OSPF路由
两个级别的层次性:本地,骨干
区域边界路由器(area border router):汇总到自己区域内网络的距离,向其他区域边界路由器通告
骨干路由器(backbone router):仅仅在骨干区域内,运行OSPF路由
边界路由器(boundary router):连接其他AS‘s
IGRP
BGP
简介
eBGP,iBGP连接
BGP会话
2个BGP路由器在一个半永久的TCP连接上交换BGP报文,通告向不同目标子网前缀的“路径”
举例:
路径的属性
AS-PATH:前缀的通告所经过的AS列表
NEXT-HOP:从当前AS到下一跳有多个链路,在NEXT-HOP属性中,告诉对方通过哪个转发
其他属性:路由偏好指标,如何被插入的属性
BGP路由
基于策略的路由:
BGP路径通告
BGP报文
使用TCP协议交换BGP报文
BGP报文:
BGP路径选择
策略
Inter-AS:管理员需要控制通信路径,谁在使用它的网络进行数据传输
Intra-AS:一个管理者,无需策略
规模
Inter-AS:路由必须考虑规模问题,以便支持全网的数据转发
Intra-AS:路由规模不是一个大的问题
性能
控制器和SDN交互的协议
采用YCP来交换报文
3种OpenFlow报文类型
控制器>交换机
异步(交换机>控制器)
对称
ICMP处在网络层,但在IP协议上面
ICMP报文
成帧,链路存取控制(链路访问控制)
在相邻节点完成可靠数据传递
流量控制
错误检测
差错由信号衰减和噪声引起
接收方检测出错误:
差错纠正
全双工和半双工服务
在每一个主机上
链路层的功能在适配器上实现
接到主机的系统总线上
硬件、软件和固件的综合体
发送方
接收方
WAN:网络形式采用点到点链路
带宽大、距离远(延迟大)
若采用多点连接方式:
LAN:一般采用多点连接方式
奇偶校验(发送方附加一个bit,选择它的值,偶校验:使得所有比特中1的总数为偶数;奇校验:使得所有比特中1的总数为奇数)
单bit奇偶校验:检测单个bit级错误
2维奇偶校验:检测和纠正单个bit错误
循环冗余校验CRC
将数据比特D看成二进制的数据
生成多项式G:双方协商的r+1位模式(r次方)
目标:选择r位CRC附加位R,使得
举例:
分布式算法决定节点如何使用共享信道
关于共享控制的通信必须用借助信道本身传输
TDMA
FDMA
CDMA
时隙ALOHA
假设
运行
当节点获取新的帧,在下一个时隙传输
传输时没有检测到冲突,成功
检测时如果检测到冲突,失败
优点
缺点
存在冲突,浪费时隙
即使有帧要发送,仍然也可能存在空闲的时隙
节点检测冲突的时间<帧传输的时间
需要时钟上同步
效率
假设有N个节点,每个节点都有很多帧要发送,在每个时隙中传输概率为p
一个节点成功传输概率为
信道上,任何一个节点的成功概率是
N为无穷大时的极限为1/e=0.37
纯ALOHA
简单、无须节点之间在时间上同步
当有帧需要传输:马上传输
冲突的概率增加:
纯ALOHA的效率:
CSMA(载波侦听多路访问)
基本思想:在传输前先侦听信道
CSMA冲突原因:传播延迟。两个节点可能侦听不到正在进行的传输
CSMA/CD(冲突检测)
CSMA/CD:
冲突检测技术:
有线局域网中容易实现:
无线信道:在传输时接收是关闭的
以太网CSMA/CD算法
a. 适配器获取数据报,创建帧
b. 发送前:侦听信道CS
c. 发送过程中,冲突检测CD
d. 发送方适配器检测到冲突,除放弃外,发送一个Jam信号,所有听到冲突的适配器也是如此(强化冲突:让所有站点都知道冲突)
e. 如果放弃,适配器进入指数退避状态:在第m次失败后,适配器随机选择一个中K,等待K*512位时(512位时,对于100Mbps来说,即5.12ms),然后转至b
CSMA/CD效率
=LAN上2个节点的最大传播延迟
=传输最大帧的时间
当效率变为1
CSMA/CA(冲突避免,IEEE802.11 MAC协议)
发送方:
接收方
冲突原因:
RTS-CTS交换
思想:允许发送方“预约”信道,而不是随机访问该信道(避免长数据帧的冲突 )
发送方首先使用CSMA向BS发送一个小的RTS分组
BS广播 clear-to-send CTS,作为RTS的响应
CTS能够被所有涉及到的节点听到
轮询
主节点邀请从节点依次传送
缺点:
令牌传递
控制令牌循环从一个节点到下一个节点传递
令牌报文:特殊的帧
缺点:
令牌开销:本身消耗带宽
延迟:只有等到抓住令牌,才可传输
单点故障:
格式
32bit IP地址
LAN(MAC/物理/以太网)地址
作用
IP地址:分层
MAC地址:平面
目的:完成物理网络范围内IP地址到MAC地址的转换
ARP表:包括一些LAN节点IP/MAC地址的映射
工作原理:
在同一LAN网络内的ARP协议
A要发送帧给B(B的IP地址已知),但B的MAC地址不在A的ARP表中
A广播包含B的IP地址的ARP查询包(广播查询)
B接收到ARP包,回复A自己的MAC地址
A在自己的ARP表中,缓存IP-to-MAC地址映射关系,直到信息超时
路由到其他LAN的ARP协议
假定发送数据报:由A通过R到B,假设A知道B的IP地址
在R上有两个ARP表,分别对应两个LAN
在源主机的路由表中,发现到目标主机的下一跳时111.111.111.110
在源主机的ARP表中,发现其MAC地址是E6-E9-00-17-BB-4B,etc
A创建数据报,源IP地址:A;目标IP地址:B
A创建一个链路层的帧,目标MAC地址是R,该帧包含A到B的IP数据报
帧从A发送到R
帧被R接收到,从中提取出IP分组,交给上层IP协议实体
R转发数据报,数据报源IP地址为A,目标IP地址为B
R创建一个链路层帧,目标MAC地址为B,帧中包含A到B的IP数据报
前导码(preamble)
7B 10101010 + 1B 10101011
用来同步接收方和发送方的时钟速率
地址(dest/source address):6字节源MAC地址,目标MAC地址
类型(type):指出高层协议
CRC:在接收方校验(未通过校验则丢弃错误帧)
无连接:帧传输前,发送方和接收方之间没有握手
不可靠:接收方适配器不发送ACKs或NAKs给发送方
Manchester编码
本质上为物理层的中继器:
所有以hub连在一起的站点处于同一网段(可以允许一个站点发送的网络范围),处在一个碰撞域
通过hub可扩展节点之间的最大距离
通过hub,不能将10BaseT和100BaseT的网络连接在一起
工作原理
选择性转发
自学习
流量隔离
专用接入
都是存储转发设备,但层次不同
都有转发表
交换机:维护交换表,按MAC地址转发
路由器:维护路由表,执行路由算法
机密性:只有发送方和预订的接收方能够理解传输的报文内容
可认证性:发送方和接收方需要确认对方的身份
报文完整性:发送方、接收方需要确认报文在传输的过程中或者时候没有被改变
访问控制和服务可用性:服务可以接入以及对用户而言是可用的
对称加密:发送方和接收方的密钥相同
替换(如单码替换密码:将一个字母替换成另外一个字母)
DES
US加密标准
56-bit对称密钥,64-bit明文输入
初始替换
16轮一样的函数应用,每一轮使用不同的48bit密钥
最终替换
AES
公开密钥加密
RSA
要求:
选择密钥
1)选择2个很大的质数,(e.g., 1024 bits each)
2)计算,
3)选择一个(要求)和没有一个公共因子,互素
4)选择使得正好能够被整除即
5)公钥,私钥
加密
公钥,加密一个bit模式,m,如此计算:
(i.e., 除以的余数)
解密
私钥,对接收到的密文解密,如此计算:
(i.e., 除以的余数)
例子
特点
传送密码来认证
传送加密后的密码来认证
接收方发送给发送方一个nonce,R,发送方必须返回加密之后的R,使用双方约定好的key(证明发送方的活跃性)
使用nonce,公开密钥加密技术,
原理:对使用散列函数,获得固定长度的报文摘要
散列函数的特性:
散列函数算法
MD5散列函数
SHA-1
加密报文摘要
CA将每一个注册实体E和他的公钥捆绑
E到CA那里注册他的公钥
当Alice需要拿到Bob的公钥
证书结构:
信任树
根证书:根证书是未被签名的公钥证书或自签名的证书
信任树
作用
阻止拒绝服务攻击
阻止非法的修改/对非授权内容的访问
只允许认证的用户能否访问内部网络资源(经过认证的用户/主机集合)
类型
网络级别:分组过滤器
内部网络通过配置防火墙的路由器连接到互联网上
路由器对分组逐个过滤,根据以下规则来决定转发还是丢弃:
应用级别:应用程序网关
根据应用数据的内容来过滤进出的数据报
举例:允许内部用户登录到外部服务器,但不是直接登录
IDS:入侵检测系统
深入分组的检查:检查分组的内容(特征串、已知攻击数据库的病毒和攻击串等)
检查分组间的相关性,判断是否为有害的分组
安全电子邮件
1)Alice需要发送机密的报文m给Bob
Alice:
Bob:
2)Alice需要提供源端的可认证性和报文完整性
3)Alice需要提供机密性,源端可认证性和报文的完整性
常用接入技术:DSL、FTTH、Ethernet 、WiFi、3G、LTE
1Byte=8bits
1MB=1024KB=1024x1024B=1024x1024x8bits
Byte:字节
bit:位、比特
节点延迟的计算:
SSL属于应用层服务,若是用 SSL 来强化 TCP,则需要在应用程序中包含 SSL 代码
一个机构的 Web 服务器和邮件服务器可以有完全相同的主机名别名
使用 UDP 服务器时,没有欢迎套接字,来自不同客户端的所有数据都通过这个套接字进入服务器
使用 TCP 服务器,有一个欢迎套接字,每次客户端启动与服务器的连接时,都会创建一个新套接字
为了支持 n 个并行连接,TCP服务器需要 n + 1 个套接字
HTTP 响应报文的头部代码是: 304 时, 为空的报文体
周知端口号:0~1023
rwnd=接收缓存-主机 B 中已接收但未读取的数据量
主机A发送但未被确认的字节数不会超过接收缓存的大小
可靠数据传输协议中,窗口长度n与信道利用率的关系:
TCP客户端建立连接的socket函数:socket-bind-listen-accept
TCP首部20字节,UDP首部8字节,IPv4数据报头部20字节,IPv6数据报头部40字节
易错点:持续连接每次下载引用对象需要发送请求,即一个
易错点:
a.b.c.d/x形式表示:
易错点:1100001 1……应分到接口3
易错点:
易错点: 分配地址以为基准分配
易错点:
易错点:Dijikstra算法每次选择距离最短点进路径进行迭代
易错点:DV表的计算
易错点: 链路代价变化对DV算法的影响
易错点:CRC的计算