协议栈
在云边听雨
这个作者很懒,什么都没留下…
展开
-
SCTP在LINUX中的实现:代码结构
Linux中,SCTP是作为一个kernel模块编译加载的,代码主要是在net/sctp目录下。1. 主要数据结构1.1 endpointstruct sctp_endpoint{ struct list_head asocs;……}在应用程序调用listen()之后,会创建一个endpoint结构。收到INIT CHUNK的时候,转载 2017-08-30 09:07:02 · 654 阅读 · 0 评论 -
SCTP协议源码分析--拥塞控制算法
为了避免网络出现不必要的拥塞,SCTP偶联会在适当时候控制进入到网络中的数据包数量,其控制方法是端点使用慢启动和避免拥塞等算法。无论如何,慢启动和避免拥塞都会尽量增大拥塞控制窗口(cwnd),而重传或通路idle时则会试图降低拥塞控制窗口。1. 几个相关概念 慢启动(Slow-Start) 当在一个状态不明的网络或者是空闲了相当长时间的网络上开始传送数据转载 2017-08-30 09:09:57 · 960 阅读 · 0 评论 -
SCTP协议源码分析--多归属特性multi-homed(一)
SCTP协议有一个重要的特点,即Multi-homed(多归属),这是与TCP协议不同的显著地方之一,是对TCP协议的重大改进,充分利用了多条路由皆可承载数据流的特点,保证了物理网络级的冗余。Multi-homed SCTP的直接表现就是有多个transport(即通路path),即到对端多个IP地址的path(通路)。一般来说有一条primary transport(主通路),其它的转载 2017-08-30 09:11:12 · 755 阅读 · 0 评论 -
SCTP协议源码分析--多归属特性multi-homed(二)
继续看看path&assoc的断开和恢复管理。 二. Manage transport andassociation偶联的多归属管理主要针对transport,但多个transport/path的断开必然会倒致association也断开。所以追踪path的更新、断开和恢复,也离不开assoc的断开和恢复管理。每个path的传送失败(即收不到SA转载 2017-08-30 09:12:28 · 1364 阅读 · 0 评论 -
inux c学习笔记----SCTP基础客户/服务编程(setsockopt,sctp_sendmsg等)
在编程之前先了解一下sctp套接字选项 setsockopt(设置socket状态) 相关函数getsockopt表头文件#include#include定义函数int setsockopt(int s,int level,int optname,const void * optval,,socklen_top转载 2017-08-30 09:16:40 · 2938 阅读 · 0 评论 -
linux c学习笔记----UDP基础客户/服务编程(sendto,recvfrom)
sendto(经socket传送数据)相关函数send , sendmsg,recv , recvfrom , socket表头文件#include #include 定义函数int sendto ( int s , const void * msg, int len, unsigned int flags, const struct s转载 2017-08-30 09:17:24 · 387 阅读 · 0 评论 -
sctp 编程接口指南
SCTP 套接字接口当 socket() 调用为 IPPROTO_SCTP 创建套接字时,它会调用特定于 SCTP 的套接字创建例程。针对 SCTP 套接字执行的套接字调用会自动调用相应的 SCTP 套接字例程。在一对一套接字中,每个套接字都对应一个 SCTP 关联。可以通过调用以下函数来创建一对一套接字:socket(AF_INET[6], SOCK_STREAM, IPPROT转载 2017-08-30 09:31:35 · 651 阅读 · 1 评论 -
TCP 的那些事儿(上)
TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》(当然,你也可以去读一下RFC793以及后面N多的RFC)。另外,本文我会使用英文术语,这样方便你通过这些英文关键词来查找相转载 2017-08-30 10:27:36 · 403 阅读 · 0 评论 -
TCP 的那些事儿(下)
这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇之前,你需要做好准备,本篇文章有好些算法和策略,可能会引发你的各种思考,让你的大脑分配很多内存和计算资转载 2017-08-30 10:28:27 · 494 阅读 · 10 评论