网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.大道至简-Java之23种模式一点就通.
.给你个比较全的关于时间的操作的.
.Java基础知识——JNI入门介绍(下.
.垃圾清理势在必行——Java垃圾收.
.jive中的abstract Factory.
.Effective Java读书笔记之一.
.完成技术跨越:Java语言的11个关.
.用JSTL标签访问list且判断list的.
.JavaApplet编程之声音和图像的协.
.如何在Java程序中运行外部类文件.
.3D编程指南第四部分:M3G内建碰撞.
.从XML到Java的数据绑定之三.
.Java I/O 包中的Decor.
.eclispe下开发struts完整解决乱码.
.Java常见问题集锦25问.
.自己写的一个支持200人在线的聊天.
.Spring Framework中的面向方.
.Java基础:关于Java编程语言中的.
.深入浅出Java设计模式之迭代器模.
.JDK的命令详解.

使用 SCTP 优化网络

发表日期:2008-1-5


 

M. Tim Jones, 资深首席软件工程师, eMulex

2006 年 4 月 10 日

流控制传输协议(Stream Control Transmission Protocol,SCTP)是一种可靠的传输协议,它在两个端点之间提供稳定、有序的数据传递服务(非常类似于 TCP),并且可以保护数据消息边界(例如 UDP)。然而,与 TCP 和 UDP 不同,SCTP 是通过多宿主(Multi-homing)和多流(Multi-streaming)功能提供这些收益的,这两种功能均可提高可用性。在本文中,我们将学习 Linux® 2.6 内核中 SCTP 的要害特性,并通过服务器和客户机的源代码了解该协议提供多流的能力。

SCTP 是在 IP 网络上使用的一种可靠的通用传输层协议。尽管 SCTP 协议最初是为发送电话信号而设计的(RFC 2960),但带来了一个意外的收获:它通过借鉴 UDP 的优点解决了 TCP 的某些局限。SCTP 提供的特性使套接字初始化的可用性、可靠性和安全性都得以提高。(图 1 给出了 IP 堆栈的层次化架构。)


图 1. IP 栈的层次化架构
使用 SCTP 优化网络(图一)

本文简要介绍了 Linux 2.6 内核中 SCTP 的概念,重点介绍了一些高级特性(例如多宿主和多流),并且给出了服务器和客户机的部分代码片断(并给出了一个可以获得更多代码的 URL),从而展示了这种协议提供多流的能力。

下面让我们开始介绍 IP 堆栈的内容。

IP 堆栈

Internet 协议套件被划分成几层;每层都提供特定功能,如图 1 所示。

自下而上:

  • 链路层(link layer) 提供了通信介质的物理接口(例如以太网设备)。
  • 网络层(network layer) 负责治理网络中的报文移动,具体来说就是确保报文都到达自己的目标(也称为路由)。
  • 传输层(transport layer) 为应用层控制了报文在两台主机之间的流动。它还代表通信的应用程序端点,称为 端口(port)。
  • 最后,应用层(application layer) 对通过套接字传递数据具有深刻的意义。这些数据可能包括通过简单邮件传输协议(Simple Mail Transport Protocol,SMTP)发送的 e-mail 消息,或通过超文本传输协议(Hypertext Transport Protocol,HTTP)呈现的 Web 页面。

所有应用层协议都使用套接字层作为与传输层协议之间的接口。Sockets API 是由 UC Berkeley 在 BSD UNIX® 操作系统上开发的。

在深入钻研 SCTP 之前,让我们首先简单回顾一下传统的传输层协议。

传输层协议

两种最流行的传输层协议是传输控制协议(TCP)和用户数据报协议(UDP):

  • TCP 是一种可靠的协议,它可以确保有序地发送数据,并治理网络中的拥塞问题。
  • UDP 是一种面向消息的协议,它不能确保有序地发送数据,也无法治理网络拥塞的问题。

然而,UDP 是一种快速协议,可以保护自己传输的消息的边界。

本文引出了另外一个选择:SCTP。它提供了像 TCP 一样可靠、有序地发送数据的功能,但却以像 UDP 一样面向消息的方式来进行操作,这可以保护消息边界。SCTP 还提供了几个高级特性:

  • 多宿主(Multi-homing)
  • 多流(Multi-streaming)
  • 初始化保护(Initiation protection)
  • 消息分帧(Message framing)
  • 可配置的无序发送(Configurable unordered delivery)
  • 平滑关闭(Graceful shutdown)


上一篇:使用 FUSE 开发自己的文件系统 人气:783
下一篇:TortoiseSVN从1.2.6升级到1.3.2过程中遇到的问题 人气:529
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐