存档

‘网络协议’ 分类的存档

Socket选项系列之SO_LINGER

2013年2月24日 7 条评论 9,865 次浏览

SO_LINGER是nginx里用到的另外一个重要套接口选项(因为它涉及到的问题很重要),虽然它不是特定于TCP套接口的,但针对的仍然是面向连接的协议,因此就TCP而言,自然也是可以使用它,这里就统一以TCP为例(即下面所提到的套接口仍然都还是TCP套接口)来进行阐述。 当应用程序在调用close()函数关闭TCP连接时,Linux内核的默认行为是将套接口发送队列里的原有数据(比如之前残留的数据)以及新加入的数据(比如函数close()产生的FIN标记,如果发送队列没有残留之前的数据,那么这个FIN标记将单独产生一个新数据包)发送出去并且销毁套接口(并非把相关资源全部释放,比如只是把内核对象sock标记为dead状态等,这样当函数close()返回后,TCP发送队列的数据包仍然可以继续由内核协议栈发送,但是一些相关操作就会受到影响和限制,比如对数据包发送失败后的重传次数)后立即返回。这需要知道两点:第一,当应用程序获得close()函数的返回值时,待发送的数据可能还处在Linux内核的TCP发送队列里,因为当我们调用write()函数成功写出数据时,仅表示这些数据被Linux内核接收放入到发送队列,如果此时立即调用close()函数返回后,那么刚才write()的数据限于TCP本身的拥塞控制机制(比如发送窗口、接收窗口等等),完全有可能还呆在TCP发送队列里而未被发送出去;当然也有可能发送出去一些,毕竟在调用函数close()时,进入到Linux内核后有一次数据包的主动发送机会,即: tcp_close()... [阅读更多]

Socket选项系列之TCP_DEFER_ACCEPT

2013年2月24日 1 条评论 4,802 次浏览

学过计算机网络课程的人,应该都知道TCP协议有个连接状态转换图,也许对其整体详细不甚清楚,但至少对TCP握手协议有些印象。标准的TCP三次握手(本节仅考虑这种情况,对于四次握手等其他情况,可以参考RFC... [阅读更多]

Socket选项系列之TCP_CORK

2013年2月24日 没有评论 3,745 次浏览

从上一节的内容可以看到,选项TCP_NODELAY是禁用Nagle算法,即数据包立即发送出去,而选项TCP_CORK与此相反,可以认为它是Nagle算法的进一步增强,即阻塞数据包发送,具体点说就是:TCP_CORK选项的功能类似于在发送数据管道出口处插入一个“塞子”,使得发送数据全部被阻塞,直到取消TCP_CORK选项(即拔去塞子)或被阻塞数据长度已超过MSS才将其发送出去。举个对比示例,比如收到接收端的ACK确认后,Nagle算法可以让当前待发送数据包发送出去,即便它的当前长度仍然不够一个MSS,但选项TCP_CORK则会要求继续等待,这在前面的tcp_nagle_check()函数分析时已提到这一点,即如果包数据长度小于当前MSS... [阅读更多]

Socket选项系列之TCP_NODELAY

2013年2月24日 没有评论 3,683 次浏览

在网络拥塞控制领域,我们知道有一个非常有名的算法叫做Nagle算法(Nagle algorithm),这是使用它的发明人John Nagle的名字来命名的,John... [阅读更多]

SPDY的抓包调试

2012年12月16日 3 条评论 6,470 次浏览

SPDY默认运行在SSL安全协议之内,因此对它的抓包调试会比较麻烦,Nginx的SPDY支持没有找到对应的关闭ssl的选项,而Apache的mod-spdy模块有个对应的SpdyDebugUseSpdyForNonSslConnections选项(http://code.google.com/p/mod-spdy/wiki/ConfigOptions),可以设置采用non-SSL运行SPDY,所以这里也就试试它。 因为系统上默认已经有了Apache,所以采用二进制简单安装mod-spdy模块。 1,系统环境: #... [阅读更多]

Nginx&SPDY试用

2012年12月15日 没有评论 2,722 次浏览

1,系统环境: # cat /etc/issue CentOS release 6.2 (Final) Kernel \r on an \m # uname -a Linux localhost.localdomain 2.6.32-220.el6.i686 #1 SMP Tue Dec 6 16:15:40 GMT 2011 i686 i686 i386... [阅读更多]

HTTP 2.0(续)

2012年12月15日 没有评论 2,790 次浏览

终于把HTTP 2.0的草案文档看完了,当然,其实当前也就是SPDY:http://tools.ietf.org/html/draft-ietf-httpbis-http2-00,个人感觉它的核心也就是Framing... [阅读更多]

分类: http&spdy, 网络协议 标签: ,

HTTP 2.0

2012年12月4日 没有评论 3,031 次浏览

自认为对HTTP相关协议还是算相对比较熟悉的,因为看一些web服务器源代码的缘故,所以将HTTP/1.0(RFC 1945)以及HTTP/1.1(RFC 2616)的两个RFC文档反复看过很多遍,当然,还有RFC 793、RFC 822、RFC 2525、RFC... [阅读更多]

分类: http&spdy, 网络协议 标签:

基于SCTP的嵌入式远程视频自适应传输系统[硕士小论文]

2011年12月19日 没有评论 3,117 次浏览

摘 要: 介绍一种基于嵌入式Linux... [阅读更多]

分类: 网络协议 标签: , , ,