DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 541 评论 :: 1614万 阅读
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

随笔分类 -  tcp/ip

1 2 下一页

tcp/ip
摘要:1.CLOSE_WAIT的简单解决方案 不久前,我的Socket Client程序遇到了一个非常尴尬的错误。它本来应该在一个socket长连接上持续不断地向服务器发送数据,如果socket连接断开,那么程序会自动不断地重试建立连接。 有一天发现程序在不断尝试建立连接,但是总是失败。用netstat查 阅读全文
posted @ 2019-01-28 16:44 DoubleLi 阅读(773) 评论(0) 推荐(0) 编辑

摘要:TIME_WAIT状态原理 通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态。 客户端主动关闭连接时,会发送最后一个ack后,然后会进入TIME_WAIT状态,再停留2个MSL时间(后有MSL的解释),进入CLOSED状态。 下图是以客户端主动关闭连接为例,说明这一过程的。 阅读全文
posted @ 2019-01-28 16:43 DoubleLi 阅读(647) 评论(0) 推荐(0) 编辑

摘要:修改Time_Wait参数的方法 (在服务端修改)Windows下在HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters,添加名为TcpTimedWaitDelay的DWORD键,设置为30,以缩短TIME_WAI 阅读全文
posted @ 2019-01-25 18:11 DoubleLi 阅读(925) 评论(0) 推荐(0) 编辑

摘要:最近线上遇到windows机器访问其他机器的时候失败的情况。实际就是本地的端口不够用造成的。D:\>netsh interface ipv4 show dynamicportrange protocol=tcpProtocol tcp Dynamic Port Range Start Port : 阅读全文
posted @ 2019-01-25 18:10 DoubleLi 阅读(588) 评论(0) 推荐(0) 编辑

摘要:问题描述:有一段时间,服务器启动了好多程序,做的是 obd监听服务,连接好多个服务器,由于程序的本身的问题造成大量的wait-time,一番百度后找到找到方案1 设置一由于wait-time 需要经过2MSL 之后才会释放,所以可以通过设置这个时间来解决,方法如下 修改Time_Wait参数的方法 阅读全文
posted @ 2019-01-25 18:09 DoubleLi 阅读(1407) 评论(0) 推荐(0) 编辑

摘要:总结: 最合适的解决方案是增加更多的四元组数目,比如,服务器监听端口,或服务器IP,让服务器能容纳足够多的TIME-WAIT状态连接。在我们常见的互联网架构中(NGINX反代跟NGINX,NGINX跟FPM,FPM跟redis、mysql、memcache等),减少TIME-WAIT状态的TCP连接 阅读全文
posted @ 2019-01-25 18:07 DoubleLi 阅读(870) 评论(0) 推荐(0) 编辑

摘要:【背景说明】 在7层负载均衡上,查询网络状态发现timewait太多,于是开始准备优化事宜 整体的拓扑结构,前面是lvs做dr模式的4层负载均衡,后端使用(nginx、or haproxy)做7层负载均衡 【优化效果】 修改前,建立连接的有29个,timewait的就达到了900个,如下图所示 修改 阅读全文
posted @ 2019-01-25 18:05 DoubleLi 阅读(933) 评论(0) 推荐(0) 编辑

摘要:TIMEWAIT状态本身和应用层的客户端或者服务器是没有关系的。仅仅是主动关闭的一方,在使用FIN|ACK|FIN|ACK四分组正常关闭TCP连接的时候会出现这个TIMEWAIT。服务器在处理客户端请求的时候,如果你的程序设计为服务器主动关闭,那么你才有可能需要关注这个TIMEWAIT状态过多的问题 阅读全文
posted @ 2019-01-25 15:59 DoubleLi 阅读(261) 评论(0) 推荐(0) 编辑

摘要:此处的”非正常断开”指TCP连接不是以优雅的方式断开,如网线故障等物理链路的原因,还有突然主机断电等原因有两种方法可以检测:1.TCP连接双方定时发握手消息 2.利用TCP协议栈中的KeepAlive探测第二种方法简单可靠,只需对TCP连接两个Socket设定KeepAlive探测,所以本文只讲第二 阅读全文
posted @ 2017-03-24 16:07 DoubleLi 阅读(573) 评论(0) 推荐(0) 编辑

摘要:最近在windows编程时需要考虑到“如何优雅地关闭一个socket”,查阅了一些资料,现将查到的相关资料做个汇编,希望能对后来者有所帮助(比较懒,所以英文资料没有翻译:-)) 1. 关闭Socket时究竟做了什么 关闭socket分为主动关闭(Active closure)和被动关闭(Passiv 阅读全文
posted @ 2017-03-24 16:04 DoubleLi 阅读(3331) 评论(0) 推荐(0) 编辑

摘要:tcp状态: LISTEN:侦听来自远方的TCP端口的连接请求SYN-SENT:再发送连接请求后等待匹配的连接请求SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认ESTABLISHED:代表一个打开的连接FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请 阅读全文
posted @ 2017-03-24 11:41 DoubleLi 阅读(745) 评论(0) 推荐(1) 编辑

摘要:阅读目录(Content) 一、UDP广播 二、UDP多播 1、多播(组播)的概念 2、广域网的多播 三、UDP广播与单播 广播与单播的比较 使用UDP协议进行信息的传输之前不需要建议连接。换句话说就是客户端向服务器发送信息,客户端只需要给出服务器的ip地址和端口号,然后将信息封装到一个待发送的报文 阅读全文
posted @ 2016-09-12 15:47 DoubleLi 阅读(78139) 评论(4) 推荐(0) 编辑

摘要:转自: http://hi.baidu.com/hepeng597/item/5ba27e0b98bc8de3ff240de0 三次握手Three-way Handshake 一个虚拟连接的建立是通过三次握手来实现的 1. (B) --> [SYN] --> (A) 假如服务器A和客户机B通讯. 当 阅读全文
posted @ 2016-07-28 09:58 DoubleLi 阅读(407) 评论(0) 推荐(1) 编辑

摘要:摘要: 本文给出IPv4与IPv6数据报格式示意图,并整理了各个字段含义,最后对比IPv4与IPv6数据报格式的区别。 一、IPv4数据报 图1 IPv4数据报格式版本号(version) 不同的IP协议版本使用不同的数据报格式。首部长度(HL, Internet Head Length) 确定IP 阅读全文
posted @ 2016-07-28 09:55 DoubleLi 阅读(3841) 评论(0) 推荐(0) 编辑

摘要:摘要: 本文讲述了TCP套接字编程模块,包括服务器端的创建套接字、绑定、监听、接受、读/写、终止连接,客户端的创建套接字、连接、读/写、终止连接。先给出实例,进而结合代码分析。 PS:本文权当复习套接字编程的读书笔记。 一、TCP套接字编程模型 同一台计算机上运行的进程可以利用管道、消息队列、信号量 阅读全文
posted @ 2016-07-28 09:54 DoubleLi 阅读(8107) 评论(0) 推荐(0) 编辑

摘要:摘要: 本文摘抄并整理了以太网相关理论知识,包括CSMA/CD协议机制及工作、LAN互连,详细分析了Ethernet II帧格式,最后给出Ethernet II帧实例。 一、以太网[1] 1.1 概述 以太网(Ethernet)是一种计算机局域网组网技术。IEEE制定的IEEE 802.3标准给出了 阅读全文
posted @ 2016-07-28 09:52 DoubleLi 阅读(6592) 评论(1) 推荐(0) 编辑

摘要:摘要: 本文简单介绍了网络层理论知识,详细讲解了IP数据报各个字段,并从Wireshark俘获分组中选取IP数据报进行分析,也阐述了分组和分片的区别。 一、IPv4数据报 网络层是处理端到端数据传输的最低层。网络层关注如何将分组从源端沿着网络路径送达目的端,期间可能需要经过许多跳中间路由器。即提供转 阅读全文
posted @ 2016-07-28 09:51 DoubleLi 阅读(6972) 评论(0) 推荐(0) 编辑

摘要:摘要: 本文简单介绍了DNS协议理论知识,给出URL解析步骤,详细讲述了DNS报文各个字段含义,并从Wireshark俘获分组中选取DNS相关报文进行分析。 一、概述 1.1 DNS 识别主机有两种方式:主机名、IP地址。前者便于记忆(如www.yahoo.com),但路由器很难处理(主机名长度不定 阅读全文
posted @ 2016-07-28 09:50 DoubleLi 阅读(1240) 评论(0) 推荐(0) 编辑

摘要:摘要: 本文剖析了浏览器输入URL到整个页面显示的整个过程,以百度首页为例,结合Wireshark俘获分组进行详细分析整个过程,从而更好地了解TCP/IP协议栈。 一、俘获分组 1.1 准备工作 (1) 清空浏览器缓存 首先清空Web浏览器的高速缓存,确保Web网页是从网络中获取,而不是从高速缓冲取 阅读全文
posted @ 2016-07-28 09:50 DoubleLi 阅读(6203) 评论(0) 推荐(0) 编辑

摘要:摘要: 本文简单介绍了TCP面向连接理论知识,详细讲述了TCP报文各个字段含义,并从Wireshark俘获分组中选取TCP连接建立相关报文段进行分析。 一、概述 TCP是面向连接的可靠传输协议,两个进程互发数据之前需要建立连接,这里的连接只不过是端系统中分配的一些缓存和状态变量,中间的分组交换机不维 阅读全文
posted @ 2016-07-28 09:48 DoubleLi 阅读(2354) 评论(0) 推荐(0) 编辑

1 2 下一页
点击右上角即可分享
微信分享提示