tcp-ip
文章平均质量分 51
yushuifirst
这个作者很懒,什么都没留下…
展开
-
socket的listen()的backlog参数和未完成队列、已完成队列的关系
TCP:socket的listen()的backlog参数和未完成队列、已完成队列的关系listen函数是网络编程一个基本的函数,而且它的backlog参数却是和TCP协议息息相关的。我们来看一下一个backlog参数到底有多少秘密。一、 为了理解backlog参数,我们必须首先认识listen函数。#include<sys/socket.h>int listen(int sockfd, in转载 2015-05-31 19:35:49 · 1991 阅读 · 0 评论 -
TCP慢启动与拥塞控制笔记
TCP慢启动与拥塞控制笔记流量控制传输数据的时候,如果发送方传输的数据量超过了接收方的处理能力,那么接收方会出现丢包。为了避免出现此类问题,流量控制要求数据传输双方在每次交互时声明各自的接收窗口「rwnd」大小,用来表示自己最大能保存多少数据,这主要是针对接收方而言的,通俗点儿说就是让发送方知道接收方能吃几碗饭,如果窗口衰减到零,那么就说明吃饱了,必须消化消化,如果硬撑的话说不定会大小便失禁,那就是转载 2015-06-01 14:29:26 · 825 阅读 · 0 评论 -
tcp的状态变迁图
tcp的状态变迁图状态转换图中状态的描述:CLOSED:无连接是活动的或正在进行LISTEN:服务器在等待进入呼叫SYN_RECV:一个连接请求已经接受,等待确认SYN_SENT:已发出请求SYN。ESTABLISHED:正常数据传输状态FIN_WAIT1:主动关闭,等待应答ACKFIN_WAIT2:已接受关闭应答ACKITMED_WAIT:等待所有分组死掉CLOSING:两边同时原创 2015-06-30 15:50:05 · 674 阅读 · 0 评论 -
tcp粘包、 拆包 与解决方法
**我们在前面曾经说过,发送端可以是一K一K地发送数据,而接收端的应用程序可以两K两K地提走数据,当然也有可能一次提走3K或6K数据,或者一次只提走几个字节的数据,也就是说,应用程序所看到的数据是一个整体,或说是一个流(stream),一条消息有多少字节对应用程序是不可见的,因此TCP协议是面向流的协议,这也是容易出现粘包问题的原因。而UDP是面向消息的协议,每个UDP段都是一条消息,应用程序必须以原创 2015-08-02 10:21:45 · 1997 阅读 · 0 评论 -
TCP超时重传机制
TCP可靠性中最重要的一个机制是处理数据超时和重传。TCP协议要求在发送端每发送一个报文段,就启动一个定时器并等待确认信息;接收端成功接收新数据后返回确认信息。若在定时器超时前数据未能被确认,TCP就认为报文段中的数据已丢失或损坏,需要对报文段中的数据重新组织和重传。尽管超时重传的概念十分简单,但是在实现中,TCP处理超时重传的机制与其他可靠性协议相比是相当复杂的。RTO 影响超时重传机制协议效率原创 2015-08-04 19:40:54 · 1960 阅读 · 0 评论