《基于TCP交换的电路交换与分组交换融合方法》读书笔记
简介
在论文《Is IP going to take over the world (of communications)?》中作者对IP相关的一些说法(假设)提出了质疑,并得出结论:虽然分组交换IP(packet-switched IP)会继续主导网络边缘的服务,但网络核心将会使用光电路交换作为提供服务的平台。在论文《基于TCP交换的电路交换与分组交换融合方法》中介绍了一种融合电路交换与分组交换的基于TCP交换的方法。
TCP交换需要考虑的问题
- 电路状态管理
电路交换要求在数据传输前建立电路且保持它们的相关的状态。流的数目和增减的速度在使用软状态的简单硬件中很容易处理。在大容量的交换机中依然可以利用这一特性来处理。 - 额外信号花费
对电路进行管理时为了建立和撤消电路,交换机需要通过交互信号的方式来完成这项任务。使用硬或软状态是信号复杂性和信号花费之间的折中。 - 带宽的浪费
分配固定带宽将会浪费链路的容量,若使用较小电路带宽值将增加需要保持的状态数目,增加了交换机的处理要求。 - 拥塞控制
如果在电路交换中电路处于忙状态则新电路的请求不能被实时处理,除非有一条电路空闲。但是平均来说它们和分组交换流有相同响应时间。
TCP交换
TCP交换是基于IP交换之上,它将每个应用流映射到核心电路的一个轻负载电路上。它通过应用流来触发建立快速轻量级电路。边缘网络的分组交换部分保持不变,核心网络的电路交换部分使用简单信号机制来创建和删除相关链路。核心的电路交换独立于边缘的分组网络而成为 TCP交换云。从应用流第一个到达的分组触发边界路由器去创建一条新的电路,是一个固定分配的电路。TCP交换使用软状态保持电路,由软状态来管理并在超时后删除该电路。
当边界路由器检测到一个应用流的第一个数据包时,它检查 IP包的包头信息,由一个通常的转发路由来决定输出的电路交换链路。接着边界路由器检查输出链路上一条空闲的电路。如果一条空闲链路已经存在,边界路由器开始使用它,传递分组给TCP交换云的第一个核心电路交换机。如果没有空闲的电路,将缓存这些分组直到有一条空闲电路。
如果在输出链路上顺利地建立了电路,分组被转发到下一跳电路交换机。核心的电路交换机会选择一个空闲的电路来使用,然后它检查电路上的第一个分组,使用它的IP路由表项做出下一跳路由判断。如果空闲的输出电路存在,它将连接输入的电路和输出的电路。在这以后,电路交换机就不需要处理任何属于这个流的分组,所有后来的分组都在这个已建立的固定分配电路上进行传输。
电路创建过程穿过TCP交换云以跳跃状沿着路由路径持续进行,直到能建立从入口边界路由器到出口边界路由器的完整的路线。当分组到达时,出口边界路由器接收到来自电路的分组,决定它们的下一个跳跃点,然后通过分组交换网将它们往目的地发送。
TCP交换的关键技术
- 创建电路
在设计时可以使用隐式的信号在一个不活动的电路上接受第一个应用流分组来触发电路交换机转发分组并创建新电路。电路交换机使用软状态来监视链路的使用。 - 带宽分配
有两种分配一个峰值带宽给一个流的方法:
a.在边界路由器上分配好给定的带宽。
b.让应用流源使用显式的信号机制来通告所需的带宽。 - 应用流控制
分类器在接入边界路由器检测新应用流,通过活动流列表比较到达应用流的头部以确定是否已存在与该流相对应的电路,或者是否需要创建新的电路。分类器将应用流映射到相应的输出电路。 - 电路管理
一个电路在一段时间内保持不活动将会被删除。超时的电路需要立刻回收,当新应用流到达时这条电路就可被标记为替换一个新电路的可选之一。同时可以使用不同的替换策略,如使用抢占式最近最少使用算法(LRU)。 - 超时管理
为了避免空闲链路,应使用一个较短的超时值,同时要考虑TCP 的定时机制。 不活跃超时应大于RTT值,若超时小于RTT值将会产生较大的链路浪费。 - 链路合并
若几个应用在相同的两端主机上同时建立并行的TCP链路,这些并行的应用流可能浪费一定的链路带宽。因此可以让这些并行流共享一条链路。
《基于TCP交换的电路交换与分组交换融合方法》读书笔记的更多相关文章
- csapp读书笔记-并发编程
这是基础,理解不能有偏差 如果线程/进程的逻辑控制流在时间上重叠,那么就是并发的.我们可以将并发看成是一种os内核用来运行多个应用程序的实例,但是并发不仅在内核,在应用程序中的角色也很重要. 在应用级 ...
- CSAPP 读书笔记 - 2.31练习题
根据等式(2-14) 假如w = 4 数值范围在-8 ~ 7之间 2^w = 16 x = 5, y = 4的情况下面 x + y = 9 >=2 ^(w-1) 属于第一种情况 sum = x ...
- CSAPP读书笔记--第八章 异常控制流
第八章 异常控制流 2017-11-14 概述 控制转移序列叫做控制流.目前为止,我们学过两种改变控制流的方式: 1)跳转和分支: 2)调用和返回. 但是上面的方法只能控制程序本身,发生以下系统状态的 ...
- CSAPP 并发编程读书笔记
CSAPP 并发编程笔记 并发和并行 并发:Concurrency,只要时间上重叠就算并发,可以是单处理器交替处理 并行:Parallel,属于并发的一种特殊情况(真子集),多核/多 CPU 同时处理 ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
- 读书笔记--SQL必知必会18--视图
读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...
- 《C#本质论》读书笔记(18)多线程处理
.NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...
- C#温故知新:《C#图解教程》读书笔记系列
一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...
- C#刨根究底:《你必须知道的.NET》读书笔记系列
一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...
- Web高级征程:《大型网站技术架构》读书笔记系列
一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...
随机推荐
- c++ 用eclipse建立一个类,并实例化并运行
新建项目 file->new->c/c++ project 项目结构 cpc.cpp //================================================= ...
- bzoj1497: [NOI2006]最大获利(最小割)
传送门 第一眼看去:好难 第二眼:不就是个裸的最大权闭合子图么…… 我们从源点向所有用户连边,容量为收益,用户向自己的中转站连边,容量为INF,中转站向汇点连边,容量为费用 那么总收益-最小割就是答案 ...
- 前端css知识实现自动打字,文字滚动
HTML部分: <div class="div1"> <div class="div2">文字文字文字文字文字文字文字文字文字文字文字文 ...
- docker管理
查看容器名 [root@docker ~]# docker inspect -f "{{.Name}}" a2f /u1 停止/启动终止状态的容器 [root@docker ~]# ...
- [Python自学] day-19 (1) (FBV和CBV、路由系统)
一.获取表单提交的数据 在 [Python自学] day-18 (2) (MTV架构.Django框架)中,我们使用过以下方式来获取表单数据: user = request.POST.get('use ...
- 桥接模式(Bridge)---结构型
1 基础知识 定义:将抽象部分与它的具体实现部分分离,使得它们都可以独立变化.特征:通过组合的方式建立两个之间的联系而不是继承. 使用场景:抽象和具体实现之间增加更多的灵活性:一个类存在两个(多个)独 ...
- Laravel Passport API 认证使用小结
Laravel Passport API 认证使用小结 八月 4, 2017 发布在 Laravel 看到Laravel-China 社区常有人问 Laravel Passport 用于密码验证方式来 ...
- Linux查看进程的启动路径——pwdx
想要找到transfer的启动路径. 一般是ps -ef | grep keyward 但是这个刚好是没有用绝对路径执行. 再用pwdx pid获得
- logserver 日志服务项目发布
logserver是使用logback.light-4j.commons-exec等构建的简单日志服务,参考项目logbackserver和light4j,支持跟踪日志.分页查看.搜索定位.下载文件等 ...
- HearthBuddy BotManager
MainWindow private void button_0_Click(object sender, RoutedEventArgs e) { Configuration.Instance.Sa ...