代码改变世界

随笔分类 -  tcp/ip

【转】理解 Linux backlog/somaxconn 内核参数

2020-06-17 22:11 by Loull, 543 阅读, 收藏, 编辑
摘要: 理解 Linux backlog/somaxconn 内核参数:转自 https://jaminzhang.github.io/linux/understand-Linux-backlog-and-somaxconn-kernel-arguments/ 引言 之前负载均衡超时问题这篇博文中提到一个可 阅读全文

tcpdump

2019-11-12 20:38 by Loull, 500 阅读, 收藏, 编辑
摘要: 基础 下面是一些用来配置 tcpdump 的选项,它们非常容易被遗忘,也容易和其它类型的过滤器比如Wireshark等混淆。 选项 -i any 监听所有的网卡接口,用来查看是否有网络流量 -i eth0 只监听eth0网卡接口 -D 显示可用的接口列表 -n 不要解析主机名 -nn 不要解析主机名 阅读全文

Netty通信网络参数配置

2017-07-03 17:09 by Loull, 10528 阅读, 收藏, 编辑
摘要: Netty服务端/客户端网络通信过程中常用的参数: Name Associated setter method "writeBufferHighWaterMark" 默认64 * 1024(用法未知) "writeBufferLowWaterMark" 默认32 * 1024(用法未知) "writ 阅读全文

TCP选项之SO_LINGER

2017-07-03 17:06 by Loull, 638 阅读, 收藏, 编辑
摘要: SO_LINGER这个选项在我以前带队改造haproxy的时候引出过一个reset(RST)客户端连接的bug。SO_LINGER作用设置函数close()关闭TCP连接时的行为。缺省close()的行为是,如果有数据残留在socket发送缓冲区中则系统将继续发送这些数据给对方,等待被确认,然后返回 阅读全文

TCP/IP协议栈中的TimeStamp选项

2017-06-19 23:47 by Loull, 529 阅读, 收藏, 编辑
摘要: 原文转自:http://www.cnblogs.com/lovemyspring/articles/4271716.html TCP应该是以太网协议族中被应用最为广泛的协议之一,这里就聊一聊TCP协议中的TimeStamp选项。这个选项是由RFC 1323引入的,该C建议提交于1992年,到今天已经 阅读全文

TCP协议

2017-06-19 23:45 by Loull, 481 阅读, 收藏, 编辑
摘要: TCP简介 TCP简介 TCP是TCP/IP协议栈中传输层协议,TCP为应用层提供了一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。 TCP的可靠性主要通过以下方法去保证: 应用程序被分割成TCP认为最适合 阅读全文

TCP Keepalive笔记

2017-02-27 15:13 by Loull, 1661 阅读, 收藏, 编辑
摘要: TCP是无感知的虚拟连接,中间断开两端不会立刻得到通知。一般在使用长连接的环境下,需要心跳保活机制可以勉强感知其存活。业务层面有心跳机制,TCP协议也提供了心跳保活机制。 长连接的环境下,人们一般使用业务层面或上层应用层协议(诸如MQTT,SOCKET.IO等)里面定义和使用。一旦有热数据需要传递, 阅读全文

针对TCP连接异常断开的分析

2016-02-22 22:11 by Loull, 7424 阅读, 收藏, 编辑
摘要: 我们知道,一个基于TCP/IP的客户端-服务器的程序中,正常情况下,我会是启动服务器使其在一个端口上监听请求,等待客户端的连接;通过TCP的三次握手,客户端能够通过socket建立一个到服务器的连接;然后,两者就可以基于这个socket连接通信了。连接结束后,客户端(进程)会退出;在不需要继续处理客 阅读全文

TCP心跳 | TCP keepAlive(转)

2016-02-22 15:55 by Loull, 1051 阅读, 收藏, 编辑
摘要: 应用层对于每个socket采用如下函数来开启 keepalive机制,其参数将采用系统上述配置。 setsockopt(rs, SOL_SOCKET, SO_KEEPALIVE, (void *)&keepAlive, sizeof(keepAlive)); 注意:keepalive是一个TCP协议 阅读全文

闲说HeartBeat心跳包和TCP协议的KeepAlive机制

2016-02-22 15:21 by Loull, 2120 阅读, 收藏, 编辑
摘要: 很多应用层协议都有HeartBeat机制,通常是客户端每隔一小段时间向服务器发送一个数据包,通知服务器自己仍然在线,并传输一些可能必要的数据。使用心跳包的典型协议是IM,比如QQ/MSN/飞信等协议。学过TCP/IP的同学应该都知道,传输层的两个主要协议是UDP和TCP,其中UDP是无连接的、面向p 阅读全文

TCP状态变迁图

2016-01-04 20:01 by Loull, 675 阅读, 收藏, 编辑
摘要: 服务端,端口的状态变化 先在本机(IP地址为:192.168.1.10)配置FTP服务,然后在其它计算机(IP地址为:192.168.1.1)访问FTP服务,从TCPView看看端口的状态变化。 下面黑体字显示的是从TCPView中截取的部分。 1、LISTENING状态 FTP服务启动后首... 阅读全文

TCP/IP详解--发送ACK和RST的场景

2016-01-04 19:57 by Loull, 10388 阅读, 收藏, 编辑
摘要: 在有以下几种情景,TCP会把ack包发出去:1.收到1个包,启动200ms定时器,等到200ms的定时器到点了(第二个包没来),于是对这个包的确认ack被发送。这叫做“延迟发送”;2.收到1个包,启动200ms定时器,200ms定时器还没到,第二个数据包又来了(两个数据包一个ack);3.收到1个包... 阅读全文

TCP/IP详解--连接状态变迁图CLOSE_WAIT

2016-01-04 19:55 by Loull, 1203 阅读, 收藏, 编辑
摘要: 终止一个连接要经过4次握手。这由TCP的半关闭(half-close)造成的。既然一个TCP连接是全双工(即数据在两个方向上能同时传递,可理解为两个方向相反的独立通道),因此每个方向必须单独地进行关闭。这原则就是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向连接。当一端收到一个FI... 阅读全文

TCP连接关闭总结

2015-12-25 23:08 by Loull, 5659 阅读, 收藏, 编辑
摘要: 由于涉及面太广,只作简单整理,有兴趣的可参考《UNIX Networking Programming》volum 1, Section 5.7, 5.12, 5.14, 5.15, 6.6 以及7.5 SO_LINGER选项。 以一个简单的echo服务器为例,客户端从标准输入读入字符,发送给服务器, 阅读全文

心跳机制tcp keepalive的讨论、应用及“断网”、"断电"检测的C代码实现(Windows环境下)

2015-12-25 22:31 by Loull, 2676 阅读, 收藏, 编辑
摘要: 心跳机制tcp keepalive的讨论、应用及“断网”、"断电"检测的C代码实现(Windows环境下) 说明: 1. 本文的讨论和实验都以Windows为例, 其实在linux上也大同小异。 2. 在第一次写此博文时, 我对某些地方有一些误解, 现予以更正, 对文章结构做了较大... 阅读全文

TCP的连接如何知道对方已经异常断开

2015-12-25 22:26 by Loull, 1178 阅读, 收藏, 编辑
摘要: 断电的话,对方不会发送任何数据包过来,包括RST。主机无法得知。如果是TCP已经连接,有个定时器,会发送空包,sequencenumber不变。如果一直收不到ack,会断定对方已经无法通信,而释放系统资源。但这个已经很晚了。第一时间是不可能的准确的,只能武断地认为,应答必须在多少时间内到达,否则以掉... 阅读全文

TCP中异常关闭链接的意义 异常关闭的情况

2015-12-25 22:15 by Loull, 4978 阅读, 收藏, 编辑
摘要: 终止一个连接的正常方式是发送FIN。在发送缓冲区中所有排队数据都已发送之后才发送FIN,正常情况下没有任何数据丢失。但我们有时也有可能发送一个RST报文段而不是FIN来中途关闭一个连接。这称为异常关闭。进程关闭socket的默认方式是正常关闭,如果需要异常关闭,利用SO_LINGER选项来控制。异常... 阅读全文

【转】软件工程师的视角看网络(网络那点事)

2014-08-13 11:44 by Loull, 258 阅读, 收藏, 编辑
摘要: 一、概述在以太网中,我们都很清楚网络的分层模型,ISO模型7层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP模型四层协议:主机至网络层、互联网层、传输层、应用层。 在实际应用中我们都是用TCP/IP的模型。下面我讲下软件设计需要了解的网络知识,个人感觉软件工程师应该知道这... 阅读全文

TCP的流量控制和拥塞控制

2014-07-22 21:06 by Loull, 467 阅读, 收藏, 编辑
摘要: TCP的流量控制1. 利用滑动窗口实现流量控制如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。设A向B发送数据。在连接建立时,B告诉了A:“我... 阅读全文

计算机网络基础

2014-07-22 20:23 by Loull, 327 阅读, 收藏, 编辑
摘要: 1、OSI(Open System Interconnect):开放系统互联,是一个七层的计算机网络模型,分别为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。TCP/IP(Transmission Control Protocol/Internet Protocol):传输控制协议/... 阅读全文
点击右上角即可分享
微信分享提示