
Linux/TCP(网络协议)
文章平均质量分 92
Linux/TCP网络协议
u013250861
这个作者很懒,什么都没留下…
展开
-
网络协议:TCP分段、IP分片
MSS是TCP数据包每次能够传输的最大数据分段,TCP报文段的长度大于MSS时,要进行分段传输。当来自TCP报文段的某一段(在IP数据报的某一片中)丢失后,TCP在超时后会重发整个TCP报文段,该报文段对应于一份IP数据报(可能有多个IP分片),没有办法只重传数据报中的一个数据分片。到了这里有一个问题自然就明了了,TCP分段的原因是MSS,IP分片的原因是MTU,由于一直有MSS原创 2022-11-24 10:42:11 · 439 阅读 · 0 评论 -
TCP-丢包率【传输中所丢数据包数量占发送数据包的比率=(输入报文-输出报文)/输入报文】【TCP只保证传输层消息可靠,并不保证应用层的消息可靠。想保证应用层的消息可靠性,需应用层自己实现逻辑做保障】
30个现成以5Mbps速度测试60s。原创 2022-11-24 10:23:47 · 7832 阅读 · 0 评论 -
Linux网络编程(四)-协议03-TCP协议03:心跳检测机制【TCP异常断开检测机制;若对方异常断开,本机检测不到,一直等待,浪费资源】【心跳包:setsockopt函数每隔一定时间发送探测分节】
在TCP网络通信中,经常会出现客户端和服务器之间的非正常断开,需要实时检测查询链接状态。常用的解决方法就是在程序中加入心跳机制。Heart-Beat线程这个是最常用的简单方法。在接收和发送数据时个人设计一个守护进程(线程),定时发送Heart-Beat包,客户端/服务器收到该小包后,立刻返回相应的包即可检测对方是否实时在线。该方法的好处是通用,但缺点就是会改变现有的通讯协议!大家一般都是使用业务层心跳来处理,主要是灵活可控。原创 2022-10-07 20:20:55 · 1128 阅读 · 0 评论 -
Linux网络编程(四)-协议03-TCP协议02:TCP状态转换(11种状态)【netstat命令监控TCP/IP状态】【半关闭状态、2MSL(最大报文生存时间,谁先主动关闭谁等待)、端口复用】
这个图N多人都知道,它排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻的认识,不能只停留在一知半解之中。下面对这张图的11种状态详细解析一下,以便加强记忆!不过在这之前,先回顾一下TCP建立连接的三次握手过程,以及 关闭连接的四次握手过程。表示初始状态。该状态表示服务器端的某个SOCKET处于监听状态,可以接受连接。原创 2022-10-04 23:14:35 · 502 阅读 · 0 评论 -
Linux网络编程(四)-协议03-TCP协议01:通信时序【三次握手(建立连接)、传数据、四次挥手(断开连接)】【发送端以数据包为单位发送(数据包大小自定义),接收端按自定义大小滑动窗口提取数据】
TCP:一种面向连接的、可靠的、基于字节流的传输层通信协议。一般跨网关传输用TCP,有确认机制,比较安全,丢包重传。因为有确认机制,所以效率不如UDP。原创 2022-10-03 23:11:15 · 575 阅读 · 0 评论