草庐IT

TCP/IP UDP广播无法发送或接收

TCP/IPUDP广播无法发送或者接收数据在看《TCP/IP网络编程》这本书的时候,看到广播那一节,跟着书上写代码,怎么写都不行,广播就是没法发送/接收,发送端一直在发送数据,接收端就是没有反应。对了好几遍源码,没有问题。实在是愁人。最后查了很多资料,确定是网卡的问题。现在的计算机都是多网卡,至少是有线+无线网卡,如果安装了虚拟机的话,还会有虚拟网卡。广播地址无法区分网卡,只能按照默认网卡优先级发送,这就导致我们的数据没有走那个我们需要的网卡发送出去。进而导致收不到数据。解决办法禁用一些网卡,将用不到的网卡全部禁用掉在代码里添加绑定IP地址的逻辑,绑定到具体的网卡IP我是用的是第2种方式,比较

高并发场景下大量TCP链接处于time_wait状态原因及优化思路分析

目录问题现象TIME_WAIT状态连接过多的引发的问题相关原理什么是TIME_WAIT连接?TCP三次握手TCP四次挥手为什么要有TIME_WAIT状态?首先,TIME_WAIT状态使得TCP全双工连接的终止更加可靠其次,TIME_WAIT状态的存在可以处理延迟到达的报文如何查看TIME_WAIT连接?大量的TIME_WAIT连接存在,其本质原因是什么?优化思路客户端层面服务器层面问题现象对一台服务器进行压测(模拟高并发场景),会发现大量TIME_WAIT状态的TCP连接,连接关闭后,这些TIME_WAIT会被系统回收一般来讲,在高并发的场景中,出现TIME_WAIT连接是正常现象,一旦四次握

计算机网络:传输层(TCP详解)

文章目录前言一、面向连接传输TCP1.段结构TCP往返延时(RTT)和超时2.可靠数据传输TCP发送方事件TCP重传产生TCPACK的建议[RFC1122.RFC2581]快速重传3.流量控制4.TCP连接管理同意建立连接(2次握手)TCP三次握手TCP关闭连接(四次挥手)5.拥塞控制机制拥塞感知速率控制:速率控制方法联合控制的方法TCP控制策略总结前言TCP报文段结构、可靠数据传输、TCP连接管理(三次握手、四次挥手)、拥塞控制。一、面向连接传输TCP点对点:—个发送方,一个接收方可靠的、按顺序的字节流:没有报文边界管道化(流水线):TCP拥塞控制和流量控制设置窗口大小发送和接收缓存全双工数

TCP四次挥手详解(含常见面试题)

TCP四次挥手过程客户端发起fin位为1的FIN报文,此时客户端进入FIN_WAIT_1状态服务端接受到FIN报文后,发送ack应答报文,此时服务端进入close_wait状态客户端接受到ack应答报文后,进入FIN_WAIT_2状态服务端处理完数据后,向客户端发送FIN报文,此时服务端进入LAST_ACK状态客户端接受到FIN报文后,客户端发送应答ack报文,进入TIME_WAIT阶段服务端接受到ack报文后,断开连接,处于close状态客户端过一段时间后,也就是2MSL后,进入close状态主动关闭连接的,才有TIME_WAIT状态为什么挥手需要四次?由于TCP的半关闭(half-clos

WIFI模块ESP-01S调试(AP和STA模式)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、指令集二、ESP-01S工作模式三:工具准备四:测试步骤五:AP测试六:STA测试七:总结前言记录ESP-01S模块测试一、指令集AT指令集点击即可查看AT指令集,遇到不懂的指令直接打开查找相应指令描述。二、ESP-01S工作模式AT+CWMODE=?0:无Wi-Fi模式,并且关闭Wi-FiRF1:Station模式:客户端模式,自身看作一个终端设备2:SoftAP模式:服务器模式,自身看作是一个服务器3:SoftAP+Station模式:两个模式并存三:工具准备1.串口调试工具2.网络调试助手3.有人网络助手四:

python之TCP的网络应用程序开发

文章目录版权声明python3编码转换socket类的使用创建Socket对象Socket对象常用方法和参数使用示例服务器端代码客户端代码TCP客户端程序开发流程TCP服务端程序开发流程TCP网络应用程序注意点socket之send和recv原理剖析send原理剖析recv原理剖析send和recv原理剖析图多任务版TCP服务端程序开发版权声明本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明,所有版权属于黑马程序员或相关权利人所有。本博客的目的仅为个人学习和交流之用,并非商业用途。我在整理学习笔记的过程中尽力确保准确性,但无法保证内容的完整性和时效性。本博客的内容可能会随

7-tcp 三次握手和四次挥手、osi七层协议,哪七层,每层有哪些?tcp和udp的区别?udp用在哪里了?

1tcp三次握手和四次挥手2osi七层协议,哪七层,每层有哪些3tcp和udp的区别?udp用在哪里了?1tcp三次握手和四次挥手#tcp协议---》处于osi7层协议的传输层,可靠连接,使用三次握手,四次挥手保证了可靠连接,数据不会丢失-SYN:SYN=1表示要建立连接-ACK:ACK=1表示我收到了,允许-seq:随机数,建立连接无论客户端还是服务端要建立连接就要要携带-ack:回应请求就要加1返回-FIN:表示断开连接-三次握手:-第一次:喂(SYN=1),我是lqz(seq=随机数)客户端:SYN_SEND状态服务端:没收到:listen状态,收到了是:SYN_RCVD状态-第二次:收

TCP/IP协议、三次握手、四次挥手

TCP/IPTCP/IP协议分层TCP头部三次握手TCP四次挥手常见问题1、什么是TCP网络分层2、TCP为什么是三次握手,不是两次或者四次?3、TCP为什么是四次挥手,为什么不能是三次挥手将第二次挥手和第三次挥手合并?4、四次挥手时为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?5、如果已经建立了连接,但是客户端突然出现故障了怎么办?TCP/IP协议分层TCP头部三次握手整个流程为:客户端主动打开,发送连接请求报文段,将SYN标识位置为1,SequenceNumber置为x(TCP规定SYN=1时不能携带数据,x为随机产生的一个值),然后进入SYN

基于Qt的UDP通信、TCP文件传输程序的设计与实现——QQ聊天群聊

🙌秋名山码民的主页😂oi退役选手,Java、大数据、单片机、IoT均有所涉猎,热爱技术,技术无罪🎉欢迎关注🔎点赞👍收藏⭐️留言📝获取源码,添加WX目录前言一、主界面和聊天窗口二、UDP聊天三、TCP文件传输server类Clint类最后前言QQ是一款优秀的聊天软件,本文将提供主要代码和思路来实现一个类似于QQ群聊的网络聊天软件,大致有以下俩个功能:采用qt5编写,实现基于UDP的文本聊天功能,和基于TCP的文件传输功能基本聊天会话功能通过获取每一个用户运行该程序的时候,发送广播来实现,不仅用户登录的时候进行广播,退出、发送信息的时候都使用UDP广播来告知用户,每个用户的聊天窗口为一个端点文件传

TCP 重传、滑动窗口、流量控制、拥塞控制

1:重传机制 超时重传 快速重传SACK方法 DuplicateSACK1:重传机制超时重传:重传机制的其中一个方式,就是在发送数据时,设定一个定时器,当超过指定的时间后,没有收到对方的ACK确认应答报文或者数据包丢失,      就会重发该数据,也就是我们常说的超时重传。超时重传时间RTO的值应该略大于报文往返RTT的值。快速重传:不以时间为驱动,而是以数据驱动重传。工作方式是当收到三个相同的ACK报文时,会在定时器过期之前,重传丢失的报文段。      只解决了一个问题,就是超时时间的问题,但是它依然面临着另外一个问题。就是重传的时候,是重传一个,还是重传所有的问题。SACK(解决快速重传