搬运自http://blog.csdn.net/programmer_at/article/details/49203241

 当前TCP/IP协议存在哪些问题?如何改进?

当时没有回答好,然后提到了NDN可以针对TCP/IP做出改进,但是在行家面前就漏 洞百出,一是对TCP/IP网络理解不够深入,另外一方面是自己对NDN比较陌生。趁着这段时间比较得闲,在网上搜了《Named Data Networking(NDN) Project》(2010.10)和初略看了看北大出版的《信息中心网络与命名数据网络》(雷凯老师编著),对我当时的回答进行补充和完善吧。

有需求才有探索与实践,所以,首先,要理解一下当前的互联网的发展背景,才知道TCP/IP为什么逐渐无法满足我们的需求了。

一.当今互联网发展趋势与特征

1.随着用户接入网络的物理带宽的提高,互联网应用主题已经转向文字信息和多媒体音视频等内容的获取,信息内容服务已经成为网络服务的主体。
2.手机网民规模日益扩大,对移动性网络的需求在增强
3.互联网应用习惯出现显著变化,包括新型即时通信(微信),微博,云视频,云存储等在内的新兴互联网内容应用迅速扩散,说明用户越来越依赖互联网来进行内容的传播和分发,对于内容共享需求日益强烈。

二.TCP/IP协议

1.目的

在两个实体之间端到端的数字数据交换

2.优势

在数据帧的设计上简单,标准统一,兼容异构的网络互联互通,良好的破坏恢复机制,低数据开销

3.问题

(1)安全性

基于IP网络安全需要对终端和连接同时信任。IP网络接受任何人发送的任何内容,不管数据包的内容,只要发送者看似合法,这种情况导致恶意信息发送到接收者,这是IP网站容易被攻击的根源。

(2)移动性和多网址

IP地址网络层寻址器和传输层定位标识符的双重作用限制了移动性和多网址的灵活性。特别是,传输协议绑定地址以确定通信会话,如果地址变化就会中断会话,需要重新建立连接。这种语义重载又导致IP网络中不允许存在回路,也不能同一时刻具有多个网络地址。

(3)组播传输

IP组播协议是事后添加到原有的点对点通信模型,以提供将信息发送到一组接收者的能力,然而因为其拓展性方面的缺点,组播从未在局域网之外的环境中大规模使用过。

(4)可拓展性和服务质量的保证

(5)资源浪费

互联网上发生了大量的重复冗余传输

(6)带宽竞争和拥塞会导致骨干网压力,网络出入口压力大

针对TCP/IP网络的这些问题,NDN做出如下的改进或者革命(其实NDN的提出是想要替代IP网络的主体地位)

三.NDN网络

1.数据和网络安全性高——安全性

通过检查IP数据包头部或有效载荷来推测数据包的内容,通过检查目的地址可以得出谁(来自哪 里)在请求该数据。NDN明确的命名数据,无疑使网络更容易监控什么样的数据被请求,然而,NDN通过签名加密了关于数据请求者的信息,除非点对点链路直 接连接到发出请求的主机,否则路由器将只知道有人请求某些数据,但不知道是谁发起请求。

2.内容中心的位置无关传输机制——移动性

采用名字来标识数据包,NDN不再包含明确的主机或接口地址等位置信息,其通信是 由数据请求驱动的,主要是拉数据模式,一旦Interest到达一个有请求数据的节点,那么就会返回一个数据包。无论请求包还是数据包,都没有携带任何主 机或接口位置信息(如IP地址),请求包只依据自身携带的内容进行路由,而数据包则延Interest原路返回。

3.原路返回的反馈式流量平衡机制——流量,负载均衡;组网传播

NDN中只有Interest包被路由器转发,任何接收到该Interest包的路由节点, 如果拥有可以满足这个Interest包的数据,就回复一个Data包,而Data包沿着各个节点PIT中所记录的接口信息按“原路返回”:不进行路由转 发,只简单沿着Interest包被传输的相反路径返回。
IP路由采用单一的最佳路径以防止循环,不能形成网络回路;而NDN中Interest包是不会形成环路的,,其关键设计是Interest包中的 Nonce字段,该字段是个随机数,根据它可以很容易地判断出重复的Interest包,及时地丢弃,而Data包沿着Interest包被传输的相反路 径返回,不形成环路,从而解决了组播的问题。

4.基于名字路由的可拓展性更优

NDN解决了TCP/IP网络中的IP地址耗尽问题,内网穿透问题,移动性问题,可扩展地址管理问题,打破传统的C/S结构,解决了TCP/IP网络下热门服务器负载过重的问题。

5.基于逐跳的报文包转发——减少冗余传输

请求数据时,请求方发出Interest包(含标识目标数据的数据命名),请求包 可以在任意的连接无关的中间节点上被转发,一个Internet包经过每一跳都有可能从不同数据源(包括缓存)得到匹配的的Data包,不一定要走完路径 到达数据源的终点。一旦data包在回传的路径上丢包,只需在丢包的节点断点续传。这样,就消除了对终端主机执行拥塞控制和传输确认的依赖。

6.传输层的嵌入式缓存——减轻带宽压力

NDN路由器可以对内容缓存,而且这个缓存直接建立在网络传输层,节省了带宽,提高了内容共 享率,无论IP路由器转发后不能重用该数据,而NDN路由器能够重用该数据,因为它们的命名是不变的,而且不包含代表位置相关的IP地址信息,数据可以在 传输路径中间任意节点缓存,复制或者移动,尽可能长时间地保存接收到的数据,将数据缓存自身以满足未来潜在的请求。

四.NDN网络工作机制简介

NDN中的通信是由接收端(即数据消费者)驱动的。为了接收数据,一个消费者发出一条兴趣(Interest)报文,该报文携带一个名字,由名字识别期望的数据(见1)。例如,一个消费者可请求/parc/videos/WidgetA.mpg。一台路由器记住请求到达的接口,之后通过在其转发信息表(FIB)(是由一种基于名字的路由协议传播的)中查找该名字而转发兴趣报文。一旦兴趣到达拥有被请求数据的一个节点,则发回一条数据(Data)报文,它携带数据的名字和内容,还有生产者密钥的一个签名(图1)。这条数据报文经兴趣报文所产生的反向路径到达消费者。注意兴趣或数据报文都没有携带任何主机或接口地址(例如IP地址);依据兴趣报文中携带的名字,兴趣报文向数据生产者路由,而数据报文依据在每个路由跳处由兴趣所建立的状态信息得以返回(图2)。

NDN路由器在一段时间内保持兴趣和数据。当从下游接收到相同数据的多条兴趣报文时,仅有第一条兴趣报文朝向数据源发送到上游。之后路由器将兴趣存储在未决兴趣表(PIT)之中,其中每个表项包含兴趣的名字以及由之接收到匹配兴趣的接口集合。当数据报文到达时,路由器查找匹配PIT表项,并将数据转发到PIT表项中列出的所有接口。之后路由器清除相应的PIT表项,并在内容存储(Content Store)中缓存数据,内容存储基本上是受限于缓存替换策略的路由器缓冲内存。数据采取与请求数据的兴趣报文相同的路径,但方向相反。一个数据沿每跳满足一个兴趣,取得逐跳的流平衡。

转载于:https://www.cnblogs.com/junglefish/p/5874183.html

NDN与TCP/IP相关推荐

  1. NDN Link :利用区块链技术代替TCP/IP 通信模式

    运行了近40年的互联网协议通信协议TCP / IP面对当今的互联网需求,已经变成难以增长的绊脚石,当年设计时根本无法想像到今时今日的网络世界.为令互联网可以持续发展,研究人员想要用新的互联网协议取代它 ...

  2. 【NDN IoT】Challenges in IoT Networking via TCP/IP Architecture 全文翻译

    Challenges in IoT Networking via TCP/IP Architecture 在TCP/IP体系结构下物联网络存在的挑战 Wentao Shang              ...

  3. 命名数据网络(NDN)与TCP/IP网络

    之前面试时遇到一个十分有趣的开放性的问题:  当前TCP/IP协议存在哪些问题?如何改进? 当时没有回答好,然后提到了NDN可以针对TCP/IP做出改进,但是在行家面前就漏洞百出,一是对TCP/IP网 ...

  4. HTTP 协议入门 — (TCP/IP协议族、通信传输流、URI 与 URL 的区别、Cookie 状态管理、HTTP 支持的方法、状态码类别、HTTP 首部字段)

    TCP/IP协议族 在介绍 HTTP 协议之前,我们先对 TCP/IP 协议族有个大概的了解,TCP/IP 协议从上到下主要分为应用层.传输层.网络层和数据链路层,各层的主要功能如下表所示: 协议层 ...

  5. TCP/IP协议三次握手与四次握手流程解析

    原文链接地址:http://www.2cto.com/net/201310/251896.html TCP/IP协议三次握手与四次握手流程解析 TCP/IP协议的详细信息参看<TCP/IP协议详 ...

  6. 用TCP/IP进行网际互联一

    地址解析协议ARP 主机知道某个目的主机的IP就可以知道该目的主机的物理地址. 改进ARP 每个ARP广播分组中都包含有发送方自身的IP和物理地址的绑定,接收方在处理ARP分组时,先在自己的缓存中更新 ...

  7. ip设置 kali 重置_在 Windows 系统中如何重置 TCP/IP 协议堆栈修复网络连接问题

    Internet 在 TCP/IP 协议上工作,如果 TCP/IP 协议堆栈在 Windows 或任何其他操作系统(例如 Linux 或 MacOS)中无法正常工作,则您的 Internet 连接会出 ...

  8. TCP/IP 协议栈4层结构及3次握手4次挥手

    TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输.TCP/IP 协议采用4层结构,分别是应用层.传输层.网络层和链路 ...

  9. TCP/IP基础概念及通信过程举例

    TCP/IP基础概念及通信过程举例 出现 上个世纪60年代,由于中央集中式网络的容灾性较弱,以美国国防部为中心的一家组织研究出分组交换网络.后来为了验证分组交换技术的实用性,ARPANET出现了,并且 ...

最新文章

  1. 轻松进行iPad Safari设置
  2. mysql导出 error1290_解决MySQL导出数据到文件报错:ERROR 1290
  3. matlab中打不开保存好的模糊控制器,【求助大神】模糊控制器仿真,在Simulink运行时出现问题...
  4. 《统计自然语言处理》读书笔记 一.基础知识及概念介绍
  5. 浅谈:Spring Boot原理分析,切换内置web服务器,SpringBoot监听项目(使用springboot-admin),将springboot的项目打成war包
  6. 监控程序崩溃重启_Bug 10 重启和正常输入的抉择记录
  7. 双链表嵌套的简单学生信息管理系统
  8. 【C++grammar】文件I/O流的基本用法
  9. leetcode 554. 砖墙
  10. 线程和std::shared_ptr智能指针使用
  11. oracle 查看日志组切换状态_【DB笔试面试800】在Oracle中,归档和非归档模式之间的不同点是什么?它们各自的优缺点是什么?...
  12. echo输出到stderr
  13. 如何在Kubernetes中暴露服务访问 1
  14. cad批量打印_CAD如何进行批量打印图纸
  15. 《尚书》全文、注释及译文(2)
  16. 碧蓝航线经济系统的流程图
  17. C语言入门(一):基础语法
  18. 【拼多多】新手卖家的启蒙贴 ,如何快乐的做图,快乐的开店
  19. 参考文献正确格式 如何直接得到
  20. iphone android选择,关于苹果手机和安卓手机的选择

热门文章

  1. [SPP-NET]Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
  2. 计算机网络总结:第三章 运输层
  3. eclipse中配置Tomcat,并进行简单测试
  4. JAVA的JDK环境变量的配置JAVA_HOME;PATH;CLASSHOME
  5. 已编辑好的mysql_如何修改一个已存在的数据库名称?
  6. ajax校验的优点,django框架中ajax的使用及避开CSRF 验证的方式详解
  7. 重磅 |《企业埋点体系搭建方法论及实践经验》白皮书上线
  8. HTML-语义类标签
  9. IC攻城狮求职宝典 01 2018年IC设计企业 笔试题 01 英伟达(Nvidia)
  10. Python实现进度条总结