随笔分类 - tcp/ip协议
摘要:转自:https://www.cnblogs.com/xiaolincoding/p/12995358.html 前言 网上许多博客针对增大 TCP 半连接队列和全连接队列的方式如下: 增大 TCP 半连接队列的方式是增大 /proc/sys/net/ipv4/tcp_max_syn_backlog
阅读全文
摘要:仍然考虑链路的延迟与带宽的乘积为8 K B,帧尺寸为1 K B的情形。让发送方在收到第一帧的A C K的同时准备发送第九帧。允许我们这样做的算法称为滑动窗口( sliding window),时间线如图2 - 2 1所示。 1. 滑动窗口算法 滑动窗口算法工作过程如下。首先,发送方为每1帧赋一个序号
阅读全文
摘要:正好有一个大作业关于用socket实现滑动窗口协议,所以写了一个,模拟接收方与发送方窗口都是2,用两个线程实现。 下面是代码,注释的比较详细了。 socket_udp.h [cpp] view plaincopyprint? #include<stdio.h> #include<Windows.h>
阅读全文
摘要:引用自:http://www.cnblogs.com/vamei/archive/2012/12/02/2796988.html在粗略了解了IP接力和IP地址后,我们再反过来,看一看IP协议的具体细节和设计哲学。IPv4与IPv6头部的对比我们已经在IP接力中介绍过,一个IP包分为头部(header)和数据(payload/data)两部分。头部是为了实现IP通信必须的附加信息,数据是IP通信所要传送的信息。黄色区域 (同名区域)我们看到,三个黄色区域跨越了IPv4和IPv6。Version(4位)用来表明IP协议版本,是IPv4还是IPv6(IPv4, Version=0100; IPv6,
阅读全文
摘要:引用自:http://blog.csdn.net/cccallen/article/details/6619994连接套接字,阻塞的套接字超时时间很长无法接受,而是用非阻塞套接字时使用的方案也有多种。后者是个比较好的方法方案1:不断重试,直到连接上或者超时:[cpp] view plaincopyintconnect_socket_timeout(intsockfd,char*dest_host,intport,inttimeout){ structsockaddr_inaddress; structin_addrinaddr; structhostent*host; interr,n...
阅读全文
摘要:引用自:http://www.cnblogs.com/qlee/archive/2011/07/12/2104089.html注:主动、被动 与 服务器、客户端没有明确的对应关系。这个图N多人都知道,它排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻 的认识,不能只停留在一知半解之中。下面对这张图的11种状态详细解析一下,以便加强记忆!不过在这之前,先回顾一下TCP建立连接的三次握手过程,以及 关闭连接的四次握手过程。1、建立连接协议(三次握手) (1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中
阅读全文
摘要:引用自:http://blog.csdn.net/cccallen/article/details/8003324应用层对于每个socket采用如下函数来开启 keepalive机制,其参数将采用系统上述配置。setsockopt(rs, SOL_SOCKET, SO_KEEPALIVE, (void *)&keepAlive, sizeof(keepAlive));注意:keepalive是一个TCP协议包,并不是应用层数据包,意即通过recv等函数从应用层上是无法获得该协议包。可通过抓包工具来看。===========================================
阅读全文
摘要:引用自:http://www.cnblogs.com/yuilin/archive/2011/11/03/2234304.htmlTCP/IP协议是Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议。单从TCP/IP协议这个名称看,好多人误以为它是一个协议。其实TCP/IP并不是一个协议,而是一个协议族,这个族里面括很多协议,其中比较主要的是TCP协议和IP协议,所以简称为TCP/IP协议。TCP/IP协议由4层组成,从下到上分别是,网络接口层,网络层,传输层,应用层。这里有的朋友可能会有疑问,开放系统互.
阅读全文
摘要:转载自:http://blog.csdn.net/chensichensi/article/details/5263132关于time-wait状态只有发起主动关闭的一方进入此状态。例外情况是双方同时关闭,这时都进入此状态在此状态中停留的时间是2MSL,MSL定义为30秒到2分钟,linux定义的是30秒,所以停留1分钟如果此状态下有数据达到,就重置该定时器。time-wait状态下按理对方关闭了连接,不会有数据到来的。下面是time-wait存在的必要性:对于主动关闭方,最后要发送一个ACK给对方确认关闭。而这个ACK包有可能丢失,所以设置一个等待时间,如果对方重传FIN包的话还可以在发送A
阅读全文
摘要:原文来自 http://www.thegeekstuff.com/2011/03/linux-performance-monitoring-intro/comment-page-1/#comment-103583 1、CPU 2、内存 3、I/O 4、网络 1、CPU 应该理解CPU运行的主要参数:
阅读全文