计算机网络自定向下方法知识点整理(部分)
作者:互联网
1-2物理媒体
1.双绞铜线
由两根绝缘的铜线组成,以规则的螺旋状排列。
无屏蔽双绞线(UTP)10Mbps~10Gbps
最终作为高速LAN联网的主导性解决方案也常用于住宅因特网接入
2.同轴电缆
由两个铜导体组成,是同心而不是并行的
在电缆电视系统中应用普遍。
发送设备将数字信号调制到某个特定的频段,产生的模拟信号从发送设备传输到一个或多个接收方。
被用作引导型共享媒体
3.光纤
能够引导光脉冲的媒体。支持极高的比特速率。
成为长途引导型传输媒体。
常用于因特网主干。
4.陆地无线电信道
具有穿透墙壁、提供与移动用户的连接以及长距离承载信号的能力。
常见有三类:很短距离、局域、广域
5.卫星无线电信道
同步卫星
近地轨道卫星
1-3网络核心
1-3-1分组交换
将长报文划分成较小的数据块,这些数据块称为分组
在源和目的间,每个分组都通过通信链路和分组交换机(路由器或者链路层交换机)
1.储存转发传输
定义:在交换机能够开始向输出链路传输该分组的第一个比特前,必须接收到整个分组
多数分组交换机在链路的输入端使用存储转发传输机制。
传输时延计算:
1.一个分组
源在0时刻开始传输,在L/R秒,该路由器刚好接受整个分组,所以开始向目的地发送分组。在时刻2L/R秒,路由器完成传输,目的地刚好接收了整个分组,所以传输时延是2L/R,若交换机不进行存储,则时延为L/R
2.三个分组
L/R,路由器开始转发第一个分组,源开始发送第二个分组。2L/R时刻,路由器完成第一个分组的发送,且接收到第二个分组。3L/R时刻,目的地收到了前两个分组,路由器收到第三个分组。4L/R时刻,目的地收到所有三个分组。
3.N条速率为R的链路组成的路径(N-1台路由器)
d
端
到
端
=
N
L
R
d_{端到端}=N\frac{L}{R}
d端到端=NRL
4.P个分组经过N条链路序列的时延有多大
d
端
到
端
=
(
P
+
N
−
1
)
L
R
d_{端到端}=(P+N-1)\frac{L}{R}
d端到端=(P+N−1)RL
2.排队时延和分组丢失
排队时延:分组在输出缓存中等待输出的时间
丢包:当缓存已经被其他分组占满时,到达的分组或已经排队的分组之一会被丢弃(取决于算法)
3.转发表和路由选择协议
转发表:用于将目的地址(或地址的一部分)映射成为输出链路。
当某个组到达一台路由器时,路由器检查该地址,并用这个目的地址搜索其地址转发表,以发现适当的输出链路。路由器则将分组导向出该链路。
路由选择协议:用于自动的设置转发表(routing protocol)
1-3-2电路交换
在电路交换网络中,预留了端系统之间沿路径通信所需要的资源(缓存,链路传输速率)再分组交换网络中这些资源则是不预留的。在发送方能够发送信息之前,该链路网络必须在发送方和接收方之间建立一条连接。此时,沿着发送方和接收方之间的路径上的交换机都会维护该连接状态。
1.电路交换网络中的复用
频分复用(FDM):链路的频谱使用跨越链路创建的所有连接共享的。特别是,在连接期间为每条连接转设一个频段。
时分复用(TDM):在电话网络中,这个频段的宽度通常为4kHz(每秒4000个周期)。对于一个特定的TDM链路,时间划分为固定的帧,每个帧又被划分为固定数量的时隙。
2.分组交换与电路交换的对比
分组交换:
设计简单
资源利用率高
1.有时延,非实时
2.不一定可靠,可能丢包
3.存在重复数据
电路交换:
传输快,高效
实时
1.资源利用率低
2.建立连接需要较大开销
1-4分组交换网络中的时延、丢包和吞吐量
1-4-1分组交换网中的时延概述
1.时延的类型
(1)处理时延
检查分组首部和决定将该分组导向何处所需要的时间。
检查比特级别差错
(高速路由器的处理时延通常是微秒或者更低的数量级)
(2)排队时延
在队列中,分组在链路上等待传输的时延。取决于先期到达的正在排队向链路传输的分组数量
(毫秒到微秒级)
(3)传输时延
分组由路由器推向链路所需要的时延
用L比特表示该分组的长度,用Rbps表示从路由器A到路由器B的链路传输速率,则传输时延是L/R。
通常在毫秒到微秒量级
(4)传播时延
从该链路的起点到路由器传播所需要的时间
该传播速率取决于该链路的物理媒体。
1-4-2排队时延和丢包
1.流量强度 La/R
排队时延很大程度取决于流量到达该队列的速率、链路的传输数据、流量到达的性质(流量是周期性还是突发性到达)。令a表示分组到达队列的平素速率(a pkt/s),R是传输速率(比特推向路由器的速率),假定所有分组都是由L比特组成的。则比特到达队列的平均速率是La bps,La/R称为流量强度。若La/R > 1 则比特到达队列的平均速率超过队列传输比特的数量,排队时延驱向无穷大。
2.丢包
分组到达了一个排队队列满的路由器时,该分组将被丢弃。
丢包的概率也是另一个衡量节点性能的指标。
1-4-3端到端时延
d 端 到 端 = N ( d p r o c + d t r a n s + d p r o p ) d_{端到端}=N(d_{proc}+d_{trans}+d_{prop}) d端到端=N(dproc+dtrans+dprop)
假定源主机和目的主机间有N-1台路由器。每台路由器和源主机上的处理时延是 d p r o c d_{proc} dproc,每条链路的传播时延是 d p r o p d_{prop} dprop每台路由器和源主机的输出速率是R,则 d t r a n s = L R d_{trans}=\frac{L}{R} dtrans=RL 。
1.Tracerout
源主机中的Traceroute程序朝着目的地发送多个特殊分组,当路由器收到这个特殊分组之一的时候,它向源回送一个短报文。包括路由器的名字和地址。
2.端系统、应用程序和其他时延
某些端系统可能有意地延迟某些分组的传输,这是它与其他端系统共享媒体的协议的一部分
媒体分组化时延:发送方在向因特网攒底分组之前必须首先用编码数字化一个分组。
1-4-4计算机网络中的吞吐量
考虑主机A到主机B跨越计算机网络传送一个大文件
瞬时吞吐量:主机B接收到该文件的速率
平均吞吐量:若该文件由F个比特组成,主机B接收到所有F比特用去了T时间,则为F/T bps
1-5协议层次及其服务模型
1-5-1分层的体系结构
1.协议分层
(1)应用层
应用层是网络应用程序和它们的应用层协议留存的地方。应用层的信息分组称为 报文
(2)运输层
在应用程序端点之间传送应用层报文,运输层的分组称为 报文段
(3)网络层
网络层负责将称为 数据报 的网络层分组从一台主机移动到另一台主机。
(4)链路层
为了将分组从一个节点移动到路径上的下一个节点,网络层必须依靠该链路层的服务。链路层提供的服务取决于该链路上特定的链路层协议。链路层分组称为 帧
(5)物理层
物理层的任务是将该帧中的一个个比特从一个节点移动到下一个节点。与实际的传输媒体相关
2-1应用层协议原理
2-1-1网络应用程序体系结构
1.客户-服务器体系结构(client-server architecture,C/S)
数据中心
2.P2P体系结构
自扩展性
2-1-3可供应用程序使用的运输服务
服务要求
1.可靠数据传输(reliable data transfer)
容忍丢失的应用
2.吞吐量
1.带宽敏感应用
具有吞吐量要求的应用程序
2.弹性应用
能够根据当时可用的宽带多少或多或少地利用可用的吞吐量
3.定时
运输层协议可以提供定时保证。
4.安全性
2-1-4因特网提供的运输服务
1.TCP服务
·面向连接的服务
应用层数据报文开始流动之前,TCP让客户和服务器互相交换运输层控制信息。在握手之后,TCP连接就建立了,这条链路是全双工的。当应用程序结束报文发送时,需要断开连接
·可靠的数据传输服务
通信进程能够依靠TCP,无差错、按适当顺序交付所有发送额数据。
TCP还拥有拥塞控制机制。
2.UDP服务
不提供不必要服务的轻量级运输协议,仅提供最小服务。
·面向无连接的服务
在进程通信前没有握手过程。
·不可靠的数据传输
UDPB协议并不保证该报文将到达接收端的进程,也不保证到达的顺序。
3.因特网运输协议不提供的服务
对吞吐量或定时保证的服务
2-4因特网的目录服务
I
1.主机名
主机的一种标识方法
2.IP地址
一个IP地址由4个字节组成,每个字节被句点分割,表示了0~255的十进制数字。
2-4-1DNS提供的服务
DNS通过客户-服务器模式提供服务。能将主机名到IP地址的转换服务。
DNS是:
① 一个由分层DNS服务器实现的分布式数据库
②一个是的主机能够查询分布式数据库的应用层协议
Internet核心功能
网络边界复杂
运行在UDP上,使用53号端口
(1)主要服务模式
①同一台用户主机上运行着DNS应用的客户端
②浏览器从URL中抽取主机名,并将其传给DNS应用客户端
③DNS客户向DNS服务器发送一个包含该主机名的请求
④DNS客户会收到回答报文,其中包含对应于该主机名的IP地址
⑤一旦浏览器收到来自DNS的IP地址,则通过80端口发送TCP连接请求
(2)提供的其他重要服务
·主机别名
·邮件服务器别名
·负载分配
繁忙的站点被冗余的分布在多台服务器上,因此一个IP地址集合对应于一个规范主机名对应。当客户对映射到某地址集合的名字发出请求是,该服务器用IP地址的整个集合进行响应,但在每个回答中循环这些地址的次序。
2-4-2DNS工作机理概述
集中式设计的弊端:
·单点故障
若DNS只是一个单一的服务器,如果该DNS服务器崩溃,则整个因特网崩溃
·通信容量
单个DNS将负载巨大的询问
·远距离集中式数据库
单个的DNS服务器不能“邻近”所有的查询用户,将导致远距离的查询产生严重的时延
·维护
单个DNS服务器不得不为所有的因特网主机保留记录,还不得不解决每一个新添加的主机而频繁更新
1.分布式、层次数据库
·根DNS服务器
400多个根名服务器,由13个不同的组织管理‘
工作流程:
如果不知道映射,访问权威域名服务器
获得映射
向本地应服务器返回映射
·顶级域(DNS)服务器
顶级域(com,org,net,edu,gov)国家顶级域(uk,fr,ca,jp)
Network Solutions 维护 com 顶级域名服务器
Educause 维护 edu 顶级域名服务器
·权威DNS服务器
组织的域名解析服务器,提供组织内部服务器的域名解析服务
组织负责维护
组织委托服务商进行维护
·(本地DNS服务器)
不严格属于层级体系
每个ISP都用一台本地DNS服务器(默认名字服务器),本地域名解析服务器无法解析域名时,访问根服务器。
当主机DNS查询时,查询被发送到本地DNS服务器
作为代理(proxy),将查询转发给(层次式)域名解析服务器
2.DNS 缓存
只要域名解析服务器获得了域名-IP映射,即缓存这一映射
一段时间后缓存条目失效(删除)
本地DNS服务器一般会缓存顶级域名服务器的映射
因此根域名服务器不经常被访问
* 工作流程
例如:
客户端想要查询www.amazon.com IP:
客户端查询根服务器,找到com域名解析服务器
客户查询com域名解析服务器,找到amazon.com解析服务器
客户查询amazon.com域名解析服务器,获得IP地址
迭代查询
被查询服务器返回域名解析服务器的名字,“我不认识这个域名,但你可以问这个服务器”
递归查询
将域名解析的任务交给所联系的服务器
实践中:从请求主机到本地DNS服务器的查询是递归的,其余查询是迭代的
2-6视频流和内容分发网络
2-6-3内容分发网CDN
单一的C/S结构对于视频服务的弊端:
①远离数据的客户请求访问时,分组可能要跨越许多通讯链路及ISP,可能带来很高的时延
②流行的视频可能会多次经过相同的链路。
③单点故障问题
内容分发网络 Content Distribution Network,CDN
CDN管理分布在多个地理位置上的服务器,在它的服务器中存储视频的副本,并且将每个用户的请求定向到一个将提供最好的用户体验的CDN位置
1.专用CDN
由内容提供商自己所有
2.第三方CDN
代表多个内容提供商分发内容
3. 服务器安置原则
深入:
该原则通过遍及全球的接入ISP中部署服务器集群来深入到ISP的接入网中。其目标是靠近端用户,通过减少端用户和CDN集群之间链路和路由器的数量,改善用户的时延和吞吐量。但高度分布式的设计带来了维护和管理的挑战。
邀请做客:
在关键位置建造大集群来邀请到ISP做客,这些CDN通常将集群放在因特网交换节点IXP中。这种设计通常产生较低的维护和管理开销,但是以端用户较高的时延和较低的吞吐量为代价。
4. 优缺点
见安置原则
3-3无连接运输:UDP
基于Internet IP协议
复用/分用
简单的错误校验
尽力而为的服务,UDP段可能丢失,非按序到达
无拥塞控制
关于发送生么数据以及何时发送的应用层控制更为精细
无需连接建立–减小延迟
发送方和接收方之间不需要握手
无连接状态
不需要维护连接状态,实现简单
每个UDP段独立于其他段
分组首部开销小-8个字节
应用:
容忍丢失
速率敏感
DNS
SNMP
可靠数据传输:
在应用层增加可靠机制
应用特定的错误恢复机制
3-1-1 UDP报文段结构
共四段,每段两个字节(16bit)
源端口号-目的端口号-长度-检验和
3-3-2 UDP检验和
端到端原则:链路层有可能不附带差错检测,路由器的储存转发也可能引入差错检测
发送方:
将段的内容视为16-bit整数
校验和计算:计算所有整数的和,进位加在和的后面,将得到的值按位求反,得到校验。
放入校验和字段
接受方:
计算所搜到段的校验和
与校验和字段进行对比
相等:可能有错误(未发现)
不相等:有错误
3-4可靠数据传输原理
可靠数据传输协议
单向数据传输
数据传输是发送端到接收端的
双向数据传输
全双工数据传输
3-4-1构造可靠数据传输协议
什么是可靠:
不错,不丢,不乱
可靠传输协议:
可靠数据传输对 应用层,传输层,链路层 都很重要
网络TOP-10问题
信道的不可靠性决定了可靠数据传输协议(rdt)的复杂性
渐进式的设计可靠数据传输协议的发送方和接收方
只考虑单向数据传输(但控制信息双向流动)
有限状态机(Finite State Machine)FSM:用于刻画传输协议
1.经完全可靠信道的可靠数据传输:rdt1.0
底层信道完全可靠:不会发生错误(bit error),不会丢弃分组和乱序(现实中不存在)
发送方和接收方的FSM独立
发送端:
状态:等待上层调用
事件:rdt发送数据
活动:生成包,发送包
接收端:
状态:等待下层调用
事件:rdt收到包
活动:解析包到数据,向上层传输数据
2.经具有比特差错信道的可靠数据传输:rdt2.0
分组不会丢失,不会失序,只可能产生比特差错。
解决:利用 校验和 检测位错误(参考UDP)
如何从错误中恢复:
1.肯定确认(Acknowledgements,ACK)
接收方显式地告知发送方分组已经正确接收
2.否定确认机制(NAK)
接收方显式地告知发送方分组有错误
发送方收到NAK后,重传分组
基于以上重传机制的rdt协议称为ARQ(Automatic Repeat Request)协议
Rdt2.0中引入的新机制:
差错检测
接收方反馈控制信息:ACK/NAK
重传
停——等协议
发送方:
状态1:等待上层调用
状态2:等待ACK或者NAK
状态1->状态2:
事件:rdt_send(data)
活动:sndpkt=make_pkt(data,checksum),udt_send(sndpkt)
状态2->状态2:
事件:rdt_rcv(rcvpkt)&&isNAK(rcvpkt)
活动:udt_send(sndpkt)
状态2->状态1:
事件:rdt_rcv(rcvpkt)&&isACK(rcvpkt)
活动:无
接收方:
状态:等待下层调用
事件1:rdt_rcv(rcvpkt)&&corrupt(rcvpkt)
活动1:udt_send(NAK)
事件2:rdt_rcv(rcvpkt)&¬corrupt(rcvpkt)
活动2:extract(rcvpkt,data),deliver_data(data),udt_send(ACK)
rdt2.0的缺陷
没有考虑到ACK/NAK消息发生错误或别破坏
3.经有比特差错的信道的可靠数据传输2:rdt2.1和rdt2.2
rdt2.0缺陷的解决方案:
1.为ACK/NAK增加校验和,检错并纠错
2.添加额外的控制消息(控制消息仍然会坏掉)
3.如果ACK/NAK坏掉,发送方重传,但不能简单的重传,产生重复分组
如何解决重复分组问题:
1.序列号:发送方给每个分组增加序列号
2.接收方丢弃重复的分组
仍然使用stop-and-wait 停——等协议
rdt2.1
发送方:
为每个分组增加了序列号(0和1)
需要校验ACK/NAK消息是否发生错误
状态数量翻倍:必须记住当前分组的序列号
接受方:
需判断分组是否重复:当前所处状态提供了期望收到的分组
当收到非期望的分组是,也将发送ACK分组
rdt2.2无NAK消息协议
与rdt2.1功能相同,但只是用ACK
如何实现
接受方通过ACK告知最后一个被正确接收的分组
在ACK消息中显式地加入被确认分组的序列号
发送方收到重复的ACK后,采取与收到NAK消息相同的动作:重传当前分组
rdt2.2 发送方
rdt2.2 接收方
4.经具有比特差错和丢包信道的可靠数据传输:rdt3.0
校验和+序列号+ACK+重传 不能满足信道实际的错误需求
解决方法:
发送方等待合理的时间------设置定时器
如果没有收到ACK,重传。
如果ACK只是延迟而不是丢失,会产生重复-----序列号咳解决该问题
发送方
状态1:等待是上层调用0
状态1->状态1:
事件:rdt_rcv(rcvpkt)
活动:无
状态2:等待ACK 0
状态1->状态2:
事件:rdt_send(data)
活动:sndpkt=make_pkt(0,data,checksum),udt_send(sndpkt),start_timer
状态2->状态2:
事件1:rdt_rcv(rcvpkt)&&(corrupt(rcvpkt)||isACK(rcvpkt,1))
活动1:无
事件2:timeout
活动2:udt_send(sndpkt),starttimer
状态3:等待来自上层的调用1
状态2->状态3:
事件:rdt_rcv(rcvpkt)&& notcorrupt(rcvpkt) && isACK(rcvpkt,0)
活动:stop_timer
状态3->状态3::
事件:rdt_rcv(rcvpkt)
活动:无
状态4:等待ACK 1
状态3->状态4:
事件:rdt_send(data)
活动:sndpkt=make_pkt(1,data,checksum),udt_send(sndpkt),start_timer
状态4->状态4:
事件1:rdt_rcv(rcvpkt) && (corrupt(rcvpkt) || isACK(rcvpkt,0))
活动1:无
事件2:timeout
活动2:udt_send(sndpkt),starttimer
状态4->状态1:
事件:rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,1)
活动:stop_timer
至此,我们得到了一个可靠数据传输协议
3-4-2流水线可靠数据传输协议
rdt3.0 能够正确工作,但性能很差
示例:1Gbps,15ms端到端传播延迟,1KB分组
T t r a n s m i t = L ( l e n g t h ) R ( b p s ) = 8 k b / p k t 1 0 9 b / s c e = 8 μ s T_{transmit}=\frac{L(length)}{R(bps)}=\frac{8 kb/pkt}{10^9b/sce}=8 μs Ttransmit=R(bps)L(length)=109b/sce8kb/pkt=8μs
发送方利用率:发送方发送时间百分比
U s e n d e r = L / R R T T + L / R = 0.008 30.008 = 0.00027 U_{sender}=\frac{L/R}{RTT+L/R}=\frac{0.008}{30.008}=0.00027 Usender=RTT+L/RL/R=30.0080.008=0.00027
RTT是传输时间
1Gbps的链路上,每30ms才发送一个分组,33KB/sec
网络协议限制了物理资源了利用
若增加序号到3个,允许三个分组一起发出去,则
U s e n d e r = 3 ∗ L / R R T T + L / R = 0.024 30.008 = 0.0008 U_{sender}=\frac{3*L/R}{RTT+L/R}=\frac{0.024}{30.008}=0.0008 Usender=RTT+L/R3∗L/R=30.0080.024=0.0008
性能提升了3倍!
流水线机制
允许发送方在收到ACK之前能连续发送多个分组
更大的序列号范围
发送方和接收方需要更大的存储空间以缓存分组
滑动窗口协议 Sliding-window protocol
窗口
允许使用的序列号范围
窗口尺寸为N:最多有N个等待确认的消息
滑动窗口
随着协议的运行,窗口在序列号空间内向前滑动
绿色:已经收到ACK的包
黄色:已经发送,但未收到ACK的包
蓝色:可用的序列号,还未发送
白色:不可用
3-4-3退回N步(Go Back to N,GBN)协议
发送方
·分组头部包含k-bit序列号
·窗口长度N
最多允许N个分组为确认
base 最小未使用序号
nextseqnum 最小未使用序号(及下一个待发分组序号)
[0 , base -1 ] 段内序号对应于 已经发送且确认的分组
[base , nextseqnum - 1 ] 对应 已经发送但未收到确认的分组
[nextseqnum , base + N - 1 ] 对应 要被立即发送的分组
[ base + N , ~] 对应 不可使用的分组
ACK(n)
确认到序号n(包含n)的分组已经被正确接收
可能收到重复的ACK
为传输中的分组设置计时器timer
超时Timeout(n)事件
重传所有序列号大于等于n,还未收到ACK的所有分组
上层调用
如果窗口未满,则产生分组并发送
如果窗口已满,则将数据返回给上层,隐式的告诉上层窗口已满。
接收方:
ACK机制
发送方拥有最高序列号的、已被正确接收的分组ACK
可能产生重复的ACK
只需记住唯一的expectseqnum
乱序到达的分组
直接丢弃:接受方没有缓存
重新确认序列号最大的、按序到达的分组
3-4-4选择重传 (Selective Repeat,SR)协议
GBN的缺陷
N步重传重传了很多不必要的分组,造成浪费
改进
接收方对每个分组单独进行确认
设置缓存机制,缓存乱序到达的分组
发送方值重传那些没收到ACK的分组
为每个分组设置一个单独的定时器
发送方窗口
N个连续的序列号
限制已发送但未确认的分组
绿色:已经发送且受到确认的分组
黄色:已发送,还未确认
上蓝色:可用,还未发送
粉色:失序分组(已经到达,但未确认)
灰色:期待,还未到达的分组
下蓝色:可接受(窗口内)
窗口不同步
发送方事件及动作
1.从上层收到数据:检查下一个可用序列号,在窗口内则发送,不在则退回或缓存
2.超时timeout:重发超时的第n号分组,重启n号分组的计时器
3.ACK(n):收到n号分组的ACK,若n==send_base 则窗口滑动到最小的未确认的分组处。否则只标记非确认
接收方事件及动作
若接受到 pkt 在 [rcvbase, rcvbase+N+1]内
- send ACK(n)
- 若乱序,则缓存
- 若按序到达,将一直到最小的已缓存的分组交付给上次,向前滑动窗口
若接收到 pkt 在 [rcvbase - N,rcvbase -1]
发送ACK(n)
其余情况则忽略
需求
N S + N R < = 2 k N_{S}+N_{R}<=2^k NS+NR<=2k
否则,会出现问题。无法区分下列两种情况。
3-5面向连接的传输:TCP
3-5-6TCP连接管理
三步握手
①Client -> Server : SYN=1,seq = client_isn(initial sequence number)
②Server -> Client : SYN=1,seq = client_isn,ack = client_isn + 1,server_isn (SYNACK报文段,连接已经建立)
③Client -> Server :SYN=0,seq = client_isn + 1,ack = server_isn + 1(可包含数据)
之后的报文段中,SYN都将置为0
四步挥手
①CLOSED 状态 Client -> Server :FIN = 1 ,Client 进入 SYN_SENT 状态,
②Server -> Client :ACK , 客户端收到ACK后,等待服务器的FIN,服务器发送ACK后,等待一段时间并发送FIN
③Server‘ -> Client :FIN 收到该报文段后客户端进入ESTABLISHED的阶段,并返回ACK
④Client -> Server : ACK,发出此报文后,等待一段时间断开连接
等待中,若收到FIN则重新发送ACK
server 收到ACK连接关闭
* 优缺点
安全性不高
可以保证连接的可靠有效建立
* 安全性(SYN洪泛)
SYN洪泛是一种经典的 DoS 拒绝服务攻击,攻击者发送大量的TCP SYN报文段而不完成第三次握手。而在第二次连接中服务器往往已经给改客户分配了资源,因此在不断的不完整握手到来时,服务器资源被消耗殆尽
有效的防御SYN cookie
服务器通过cookie来判断用户的ACK是否合理,而服务器只对ACK合理的客户分配资源而并不记忆之前的SYN段。
①IP提供“尽力而为的,不可靠的”服务。IP服务不去确认数据报是否按需或者是否正确。而TCP提供的是可靠数据传输。通过使用流量控制、序号、确认和计时器等保证正确、按序将数据从发送方传输到接收方。
② 所处层次不同
TCP解决的是端到端的进程间交付,需采用多路复用和多路分用问题
IP解决的是点到点的主机间交付,IP则更多考虑路由路径问题
③ 拥塞控制方面
TCP基于信源控制:延迟较大,难以实现公平性,可以解决长期拥塞
IP 基于节点控制:无延迟,可以实现公平性,无法实现长期拥塞
* TCP与UDP对比
①TCP
基于连接服务:通信需要三次握手建立连接,结束时需要四次挥手断开连接
可靠的数据传输:TCP保证数据按序,准确到达
②UDP
基于无连接服务:通讯不需要建立连接,想法就发,报文简单仅为UDP报头+IP数据报,至此单播,多播和广播功能
“尽力而为的服务”:UDP不保证数据到达的顺序,可能丢包
3-7 TCP拥塞控制原理
Sender 限制发送速率
LastByteSent - LastByteAcked <= CongWin(拥塞窗口)
r a t e ≈ C o n g W i n R T T B y t e s / s e c rate \approx \frac{CongWin}{RTT} Bytes/sec rate≈RTTCongWinBytes/sec
用LOSS事件感知网络拥塞
Loss = timeout 或 3个重复的ACK
发生 Loss 后,发送方降低速率
1.慢启动 SS
TCP连接建立时,CongWin=1
例如MSS = 500 byte,RTT = 200 msec,初始速率 = 20k bps
可用带宽可能远高于初始速率,希望快速增长
原理:当连接开始时,指数性增长
每个RTT将CongWin翻倍
收到每个ACK进行操作
开始速率很慢,但快速攀升。
2.拥塞避免:加性增—乘性减AIMD
加性增—乘性减:AIMD
Additive Increase:谨慎的探测可用带宽,逐渐增加发送速率,直到Loss。
Multiplicative Decrease:Loss后直接CongWin减半。
3.快速恢复
慢启动和拥塞避免的切换:Threchold
Loss 事件发生时,Threshold被设定为Loss时间前CongWin值的一半
Loss 事件的响应
收到3个重复的ACKs:CongWin切到一半,Threshold也减为一半,然后线性增长
Timeout事件:CongWin直接设为1个MSS,Threshold减为一半,然后慢启动+拥塞控制
4-4SDN软件定义网络
* 功能
可以通过应用程序接口(API)或者开放的程序接口(如OpenFlow)来集中控制网络的行为。通过基于软件的控制,网络管理人员可以直接从中央控制台来控制流量的流向,并在整个网络中提供服务,而不用管连接的硬件组件是如何的。
* 原理
协同应用层
体现用户意图的各种上层应用程序,此类应用程序称为协同层应用程序,典型的应用包括OSS(Operation support system 运营支撑系统)、Openstack等。
OSS:负责整网的业务协同。
Openstack:在数据中心负责网络、计算、储存的协同
传统的IP网络具有转发平面、控制平面和管理平面,SDN网络架构也同样包含这3个平面,
只是传统的IP网络是分布式控制的,而SDN网络架构下是集中控制的
控制层
控制层是系统的控制中心,负责网络的内部交换路径和边界业务路由的生成,并负责处理网络状态变化事件。当网络发生状态变化,比如链路故障,节点故障,网络拥塞等时,控制层会根据这些网络状态的变化调整网络交换路径和业务路由,使网络始终能够处于一个正常的服务状态。
控制层的实现实体就是DNS控制器,也就是SDN网络架构下最核心的部件,控制层是SDN网络系统中的大脑,是决策部件,其核心功能是实现网络内部交换路径的计算和边界业务路由计算。控制层的接口主要是通过南向控制接口和转发层交互,北向业务接口和协同应用层交互。
转发层
转发层主要由转发器和连接器的线路构成基础转发网络,这一层负责执行用户数据的转发,转发过程中所需要的转发表项是由控制层生成的。
转发层是系统执行单元,本身通常不做决策,其核心部件是系统转发引擎,由转发引擎负责根据控制层下发的转发数据进行报文转发。该层和控制层之间通过控制接口交互,转发层一方面上报网络资源信息和状态,另一方面接收控制层下发的转发信息。
5-2路由选择算法(routing algorithm)
* 概念
选择从发送方到接收方的过程中确定一条通过路由器网络的好的路径。通常,一条好的路径指的是具有最低开销的路径。
从抽象的图中寻找最短路径的算法
5-2-1链路状态路由选择算法LS(Dijkstra算法)
集中式路由选择算法:需要掌握全局的路由信息
具体操作详见数据结构:最短路Dijkstra算法
存在震荡的可能:
e.g. 假设链路费用是该链路承载的通信量(如下图则发生震荡)
5-2-2距离向量路由选择算法DV
Bellman-Ford方程(动态规划)
原理:
令: d x ( y ) = d_{x}(y)= dx(y)=从x到y的最短路径的费用(距离)
则: d x ( y ) = m i n v { c ( x , y ) + d v ( y ) } d_x(y)=min_v\{ c(x,y) + d_v(y) \} dx(y)=minv{c(x,y)+dv(y)} 在x的所有邻居v中,区x->v + v->y 的费用和最小值
x只需要知道x与其邻居的路径费用。
D x ( y ) = D_x(y)= Dx(y)=从节点x到y的最小费用估计
节点x:
已知到达每个邻居的费用:c(x,v)
维护其所有邻居的距离向量: D v = [ D v ( y ) : y N ] D_v=[D_v(y):y N] Dv=[Dv(y):yN]
核心思想:
每个节点不定时地将其自身的DV估计发送给邻居
当x节点收到邻居的新的DV估计时,即依据B-F更新其自身的距离向量估计
D x ( y ) D_x(y) Dx(y)将最终收敛于实际的最小费用 d x ( y ) d_x(y) dx(y)
特点
异步迭代:引发每次局部迭代的因素
局部链路费用的改变
来自邻居的DV更新
分布式:每个节点只当DV变化时才通告给邻居
邻居才必要时(其DV更新后发生改变)再通告它们的邻居
每个节点:
等待(本地局部链路费用变化或者收到邻居的DV的更新)——>重新计算Dx
——>如果到达任意目的的距离发生变化,则通告邻居——>邻居(等待)
1.距离向量算法:链路开销改变与链路故障
链路费用变化:
①检测本地链路费用变化
②更新路由信息,重新计算距离向量
③如果DV改变,通告所有邻居
好消息传播快。
当网络中出现环路时候:无穷计数问题
坏消息传播慢。
2.距离向量算法:增加毒性逆转
如果一个节点到达目的节点的最小费用路径是通过某个邻居,则
通告给该邻居节点到达该目的地的距离为无穷大
定义最大度量:
定义最大的有效费用值,如15跳,16跳就代表不可达
3.LS和DV的比较
①LS需要知道全局链路状态,而DV只需要知道到邻居的链路装啊提
②报文复杂性:LS要求每次链路状态发生改变时,发生O(n+e)个 报文到其他所有节点。DV仅在最低链路开销发生变化时与相邻节点通告。
③收敛速度:LS算法是一个 O ( n 2 ) O(n^2) O(n2)的算法,DV算法收敛的很慢,会遇到路由环路或者无穷计数问题。
④健壮性:LS算法下,节点路径的计算是分离的,一个节点可向所有其他节点通告不正确的最小费用路径。DV算法中,一个不正确的节点计算值往往会扩散到整个网路。
5-3因特网中自治系统内部的路由选择:OSPF
自治系统AS(autonomous system)
聚合一系列路由器为一个区域,同一自治系统的路由器使用相同的路由协议
不同的自治系统内的路由器可以运行不同的路由协议
自治系统内部路由选择协议 intra-autonomous system routing protocol
自治系统间路由选择协议 inter-autonomous system routing protocol
某一自治系统内的路由器的转发表:AS内部路由算法+AS间路由算法
1.原因
·规模
将任意规模的网络抽象与一个图计算路由过于理想化
①不可能标识所有路由器——考虑6亿节点的网路,路由表无法存储,路由计算过程的信息交换量巨大,淹没链路。
②网络不是扁平的,每个路由器的处理信息的能力不同。
·管理自治
每个网络的管理可能都期望自主控制其网内的网络路由
互联网=网络之网络
2.开放最短路优先(Open Shortest Path First,OSPF)
实现:
·开放:公共可用
·链路状态路由算法
LS分组扩散
每个路由器构造完整AS的拓扑图
利用Dijkstra算法计算路由
OSPF通告中每个入口对应一个邻居
OSPF通告在整个AS范围内洪泛
OSPF报文直接封装在IP数据报中
优点
·安全
所有的OSPF报文可以被认证(口令或者MD5),预防网络入侵
·多条相同开销的路径
无需选择单一的路径来承载所有的流量。实现流量均衡。
针对每条链路可以针对不同的TOS设置不同的费用度量,实现不同数据类型路由的分流
·单播与多播的综合支持(多播OSPF,MOSPF)
利用相同的网络拓扑数据
·支持在单个AS中的层次结构
两级分区:局部区域(area),主干区(Backbone)
链路状态通告只限于区域内
每个路由器只掌握所在区域的详细拓扑
只知道去往其他区网络的”方向“
区域边界路由器:“汇总”到达所在区域网络的距离,通告给其他区边界路由器
主干路由器:在主干区内运行OSPF路由算法
AS边界路由器:连接其他的AS
5-4ISP之间的路由选择:BGP
边界网关协议BGP(Border Gateway Protocol)
事实上的标准域间路由协议
自治系统间路由任务:
学习哪些网络可以通过哪些相邻的AS到达
将这些网络可达性信息由网关路由器传播给AS1内部路由器
外部BGP eBGP external
从邻居AS获取子网可达性信息
内部BGP iBGP internal
向所有AS内部路由器传播子网可达性信息。基于可达性信息确定到其他网络的的“好”的路由
5-4-1BGP的作用
BGP会话:两个BGP路由器(peers)
通告去往不同目的前缀的路径(路径向量协议)
报文基于半永久的TCP连接
BGP报文:
①OPEN:与peer建立TCP连接,并认证发送方
②UPDATE:通告新路径(或撤销原路径)
③KEEPALIVE:在无UPDATE时,保活连接,也用于对OPEN请求报文的确认
④NOTIFICATION:报告先前报文差错,也用于关闭连接
1)从邻居AS获得前缀的可达性信息
容许子网向Internet区域部分通告它的存在:“我在这儿!”
2)确定到该前缀的“最好的”路由
一台路由器可能知道两条或更多条到达特定前缀的不同路由。该路由器将利用获得的前缀可达性信息及其他策略运行GBP路由选择过程确定最好的路由。
5-4-2通告BGP路由信息
网关路由器gateway router
位于AS边缘
通过链路连接其他AS的网关路由器
可以实现自治系统间的路由
内部路由器internal router
AS内部的路由器
分发路径信息:
当AS3通告一个前缀给AS1时,AS3承诺可以将数据报转发给该子网,AS3会在通告中聚合网络前缀(减少通告报文量)
分发路径信息:
在3a与1c之间,AS3利用eBGP会话向AS1发送前缀可达性信息。
1c则可用iBGP向AS1内部所有路由器分发新的前缀可达性信息
1b可以(也可能不)进一步通过1b-2a的eBGP会话,向AS2通告新的可达性信息
当路由器获得新的可达性信息时,扩展入口
5-4-3确定最好路由
BGP属性
前缀+属性=路由
两个重要属性
①AS-PATH(AS路径):包含前缀通告所经过的AS序列
②NEXT-HOP(下一跳):开始一个AS-PATH的路由接口,指向下一跳AS
1.热土豆路由选择
当多个网关路由器可以到达同一个某个AS时:将分组发送给最近的网关路由器
①通过AS间路由协议学习到:子网x可以通过多个网关到达
②利用AS内部路由协议,确定到达每个网关的最小费用路径
③选择费用最小的网关
④通关转发表,确定去往该网关的接口l,增加入口(x,l)
2.路由选择算法
当网关路由器收到路由通告后,利用其输入策略决策接受/拒绝该路由——基于策略的路由
当路由器获知到达某目的AS的多条路由基于以下准则选择:
①本地偏好值属性:策略抉择,选择偏好值最大的
②最短AS-PATH:经过AS少
③最近的NEXT-HOP路由器:热土豆路由
④附加准则
6-2差错检测
6-2-1奇偶校验
设置奇偶校验位补全1的数目为奇数或者偶数。
6-2-2校验和方法 checksum
16位反码求和
6-2-3循环冗余检测 CRC Cyclic Redundancy Check
计算
多项式码:任何一个由二进制数位组成的代码都可以和一个只含有0,1两个数的多项式意义建立对应关系如:
1 0 1 1 0 1 1
x 6 x 5 x 4 x 3 x 2 x 1 x 0 x^6\;x^5\;x^4\;x^3\;x^2\;x^1\;x^0 x6x5x4x3x2x1x0
k位的帧对应一个k-1次的多项式—共有k项(0次项~k-1次项)选定一个多项式编码生成多项式G(x)作为除数(r阶)
设待发送的k位帧为M(x),k>r
r位冗余的计算: 2 r M ( x ) / G ( x ) = Q ( x ) + R ( x ) 2^rM(x)/G(x)=Q(x)+R(x) 2rM(x)/G(x)=Q(x)+R(x)
用二进制模2运算进行 2 r 2^r 2r乘M(x)的运算—>在M(x)后面添加r个0,得到k+r位的被除数
除以r+1位的G(x),异或操作:0^0=0 0^1=1 1^0=1 1^1=0
乘法:
在按位乘时,与正常的乘法相同,不进位,加法按照模2加法进行
除法:
位数足够时,异或运算。被除数(余数)首位是1,商1,首位是0,商0,
余数删除首位。
得到一个 2 r M + R 2^rM+R 2rM+R的编码
校验:
得到的码除以该多项式编码,得到余数为0则正确,否则错误。
检错能力:
CRC校验码能检查出全部单个错
全部离散二位错
全部奇数个错
全部长度小于等于k位的突发错
能以[1-(1/2)k-1]的概率检出长度为K+1位的突发错
K=16 漏检率位0.003%
6-3多路访问链路和协议
* 为什么出现(多路复用)
所有节点都可能传输帧,也可能多个节点同时传输帧。没有多路复用协议,传输的帧在接收方就会发生碰撞。发生碰撞的帧会丢失。
6-3-1信道划分协议
(选)1.时分多路复用 TDM
(选)2.频分多路复用FDM
3.码分多址CDMA
* CDMA/CD
详见6-3-2 随机接入MAC协议
* CDMA/CA
详见7-3-2 802.11随机接入协议
* CD与CA对比
6-3-2随机接入协议
1.时隙ALOHA
假定
所有帧大小相同
时间被划分为等长的时隙:每个时隙只能传输一个帧
节点只能在时隙开始时刻发送帧
节点时钟同步
如果2个或2个以上节点在同一时隙发送帧,节点即检测到冲突
运行:
当节点有新帧时,在下一个时隙发送
如果无冲突,该节点可以在下一个时隙继续发送新的帧
如果冲突,则该节点在下个时隙以概率p重传,直至成功
优点:
单个节点中,可以连续以信道全部速率传输数据
高度分散化,只需同步时隙
简单
缺点:
冲突,浪费时隙
空闲时隙
节点也许能以远小于分组传输时间检测到冲突
时钟同步
效率
假设:N个节点共享链路,每个接地那均以概率p发送数据
对于给定节点,该节点成功发送帧的概率为 p ( 1 − p ) N − 1 p(1-p)^{N-1} p(1−p)N−1
对于任意节点成功发送帧的概率为 N p ( 1 − p ) N − 1 Np(1-p)^{N-1} Np(1−p)N−1
最大效率:求使得 N p ( 1 − p ) N − 1 Np(1-p)^{N-1} Np(1−p)N−1最大的p*
对于很多节点,求当N趋于无穷时的极限可得最大效率为 1 e = 0.37 \frac{1}{e}=0.37 e1=0.37
2.ALOHA
更加简单,无需同步
运行:
当有新的帧生成时,立即发送
冲突可能性增大
在 t 0 t_0 t0时刻发送帧,会在 [ t 0 − 1 , t 0 + 1 ] [t_0-1,t_0+1] [t0−1,t0+1]期间其他节点发送的帧冲突
效率
无其他节点在t0-1t0期间发送帧,无其他节点在t0t0+1期间发送帧
n p ( 1 − p ) 2 ( n − 1 ) = 1 2 e = 0.18 np(1-p)^{2(n-1)}=\frac{1}{2e}=0.18 np(1−p)2(n−1)=2e1=0.18
3.载波侦听多路访问CSMA
·载波侦听
发送帧之前,监听信道
信道空闲,发送完整帧
信道忙,推迟发送:
1-坚持CSMA:一直监听,直到信道空闲
非坚持CSMA:等待一段时间,再监听
p-坚持CSMA:以概率p监听信道
冲突仍然可能发生:信号传播延迟
4.具有碰撞检测的CSMA ,CSMA/CD
短时间内可以检测到冲突
冲突后传输终止,减少信道浪费
冲突检测:
局域网易于实现,测量信号强度对比发送和接收的信号强度
无线局域网很难实现,信号衰减太快。
特点:“边发边听,不发不听”
数据帧要满足:
网络带宽:R bps
最小数据帧长度 L m i n b i t s L_{min} bits Lminbits
信号传播速度 V
L
R
>
=
2
d
m
a
x
V
\frac{L}{R}>=\frac{2d_{max}}{V}
RL>=V2dmax
或者
L
m
i
n
R
=
R
T
T
m
a
x
\frac{L_{min}}{R}=RTT_{max}
RLmin=RTTmax
5.CSMA/CD 效率
T p r o p = T_{prop}= Tprop=LAN中两个节点间的最大传播延迟
t
t
r
a
n
s
=
t_{trans}=
ttrans= 最长帧传输延迟
效
率
=
1
1
+
5
T
p
r
o
p
/
t
t
r
a
n
s
效率=\frac{1}{1+5T_{prop}/t_{trans}}
效率=1+5Tprop/ttrans1
6-6数据中心网络
刀片 blade:数据数据中心中的主机
机架顶部交换机 Top of Rack TOR
主机被堆叠在机架上,每个机架顶部有一台交换机。它与机架上的主机相关联,与其他数据中心的其他交换机相关联。
边界路由器 border router
1.负载均衡
负载均衡器:向主机分发请求,以主机当前的负载作为函数来在主机之间均衡负载。
2.等级体系结构
路由器和交换机等级结构
3.数据中心网路的发展趋势
全连接拓扑
7-1 无线网络概述
* 概念
无线主机:在无线网络中运行的端系统设备
无线链路
均使用CSMA/CA多路访问控制协议
* 分类
基础设施(基站)网络模式
特定网(自组网)网络模式
基站:访问点AP (access point)
基本服务集BSS(Basic Service Set)
基础设施网络模式
无线主机
AP:基站
自组网模式
只有主机
7-3WiFi:802.11 无线LAN
基础设施(基站)网络模式
基本服务集
无线主机
AP:基站
特定网(自组网)网络模式
基本服务集
只有主机
7-3-1 802.11体系结构
主机:必须要与某一个AP关联(associate)
扫描信道,监听包含AP名称(SSID)和MAC地址的信标帧
选择一个AP进行关联(可能搜索到多个AP)
可能需要身份认证
典型情形:DHCP
1.基本服务集BSS(Basic Service Set)
接入点 access point,AP
中央基站 base station
配置AP的无线LAN经常被称作基础设施无线LAN
802.11b:2.4Ghz~2.485Ghz频谱划分11个不同的频率信道
AP选择一个频率(信道)
存在干扰的可能:相邻的AP可能选择相同的信道
2.信道与关联
关联过程
主机必须要与某一个AP关联(associate)
①扫描信道,监听包含AP名称(SSID)和MAC地址的信标帧
②选择一个AP进行关联(可能搜索到多个AP)
③可能需要身份认证
④典型情形:DHCP
主动扫描和被动扫描
被动扫描:
获取各个AP发送的信标帧
主机向选择的AP发送关联请求帧
AP向主机发送关联响应帧
主动扫描:
主机主动广播探测请求帧
AP发送探测响应帧
主机选择AP发送关联请求帧
AP向主机发送关联响应帧
7-3-2 802.11MAC协议
基于CSMA-发送数据前侦听信道:避免与正在进行传输的其他节点冲突
不能边发送边检测冲突
无线信道很难实现CSMA/CD
无法侦听到所有可能的冲突:隐藏站,由于障碍物等原因的信号衰减
目标:避免冲突CSMA/CA
CSMA/CA
通过定义间隔时间,反应帧的优先级
sender发送方:
1.如果监听信道空闲了DIFS,则发送帧
2.如果监听到信道忙
开始随机退避计时
当信道空闲时,计时器倒计时
计时器超时,发送帧
如果没有收到ACK,则增加退避时间,重复第二步
receiver接收方
1.如果正确接收到帧:延迟SIFS后,向发送端发送ACK
冲突避免CA
基本思想:允许发送端”预约“信道,而不是随机发送数据帧,从而避免长数据帧的冲突
发送端首先利用CSMA向BS发送很短的RTS
BS广播一个CTS帧响应
CTS帧可被所有节点接收-消除隐藏站
发送端可以发送数据帧,其他节点推迟发送
利用很小的预约帧彻底避免的数据帧的发送冲突
MAC帧
7-3-4 在相同IP子网中的移动性
7-3-5 802.11 高级特色
速率适应
类似于TCP的拥塞控制机制
功率管理
使得节点的侦听、传输、接收功能以及其他需要“打开”电路的时间量最小化
参考资料
计算机网络自顶向下方法第七版
哈尔滨工业大学计算机网络公共课程
标签:知识点,ACK,发送,计算机网络,分组,链路,定向,路由,路由器 来源: https://blog.csdn.net/weixin_45842558/article/details/111679755