TCP

初识TCP-单台服务器支持多少连接数

生产环境可能会报:Socket/File: Can’t open so many files 在性能测试过程中,经常会接触到链接数相关的问题,有一个问题曾经困扰我好长时间,那就是一台服务器最多能支持多少链接数呢? 有的朋友可能会说是65535,因为操作系统有65535个端口,那么这个答案准确吗? 首 ......
服务器 TCP

TCP和UDP协议的区别

1、TCP是面向连接的,而UDP是无连接的协议。2、TCP对于传输有用的数据非常可靠,因为它需要确认发送的信息,并且能重新发送丢失的数据包;UDP是一种不可靠的协议,数据包丢失,它不会请求重新传输,目标计算机会收到损坏的数据3、TCP速度较慢,但更健壮,因为TCP在传输数据之前建立连接,并确保数据包 ......
TCP UDP

win10使用Docker Desktop启动mysql报错:Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306:

问题描述 今天上班用wind10电脑启动Docker Desktop使用MySQL,突然间报了一个错,错误如下: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0. ......
3306 available exposing response Desktop

tcp/ip 面试问题总结

### tcp 三次握手为什么三次 典型场景: 1 客户端对服务器说: 大哥你好这是我的窗口大小,以及初始序号 2 服务器对客户端说: 好的老弟,这是我的窗口大小和初始序号 3 客户端对服务器说: 好的大哥 ......
问题 tcp ip

网络编程 p4 TCP编程

# **TCP编程** - **基本介绍** 1. 基于客户端——服务端的网络通信; 2. 底层使用的是TCP/IP协议; 3. 应用场景举例:客户端发送数据,服务端接收并显示在控制台; 4. 基于Socket的TCP编程; - **示意图** ![](https://img2023.cnblogs ......
网络编程 网络 TCP p4

Nginx 代理 WebSocket 、TCP协议

Nginx 代理 WebSocket 什么是 WebSocketWebSocket 是一种网络传输协议,可在单个 TCP 连接上进行全双工通信,位于 OSI 模型的应用层。WebSocket 中的握手和 HTTP 中的握手过程兼容,且可以使用 HTTP 中的 Upgrade 协议头将连接从 HTTP ......
WebSocket Nginx TCP

[linux]常见内核TCP参数描述与配置

## 前言 所有的TCP/IP参数都位于/proc/sys/net目录下(请注意,对/proc/sys/net目录下内容的修改都是临时的,任何修改在系统重启后都会丢失),如果需要固化设置,则需要修改`/etc/sysctl.conf`(也可以在`/etc/sysctl.d`目录下新建conf文件) ......
内核 常见 参数 linux TCP

增加 Windows Server 2022 上的 TCP 连接数 可以调整10000个连接, 增加UDP连接数 可以调整5000个 你可以通过修改注册表来实现。请按照以下步骤进行操作

增加 Windows Server 2022 上的 TCP 连接数,你可以通过修改注册表来实现。请按照以下步骤进行操作: 打开注册表编辑器:按下 Win + R 键,在运行框中输入 "regedit",然后点击 "确定"。 导航到以下注册表路径:HKEY_LOCAL_MACHINE\SYSTEM\C ......
注册表 步骤 可以通过 Windows Server

【网络】【TCP】没有 accept,能建立 TCP 连接吗?

1 前言 这节我们来看个问题,就是 有 accept,能建立 TCP 连接吗? 2 刨析 下面这个动图,是我们平时客户端和服务端建立连接时的代码流程。 对应的是下面一段简化过的服务端伪代码。 int main() { /*Step 1: 创建服务器端监听socket描述符listen_fd*/ li ......
TCP accept 网络

【网络】【TCP】TCP 四次挥手,可以变成三次吗?

1 前言 这节我们来看个问题,就是 TCP 四次挥手,可以变成三次吗? 2 刨析 虽然我们在学习 TCP 挥手时,学到的是需要四次来完成 TCP 挥手,但是在一些情况下, TCP 四次挥手是可以变成 TCP 三次挥手的。 而且在用 wireshark 工具抓包的时候,我们也会常看到 TCP 挥手过程 ......
TCP 网络

十九、TCP和UDP通信

1、QTcpServer tcp服务端的使用 (1)在pro文件中添加network模块 (2)定义槽函数,为QTcpServer对象的newConnection信号绑定槽函数,来监听客户端的新连接 (3)在槽函数中使用nextPendingConnection方法动态创建一个QTcpSocket对 ......
TCP UDP

TCP的Keep-Alive机制:链接存在但是没有数据传输,内核怎么处理

服务端会定期发送**探测报文**来检测客户端的存活状态。 由三个内核参数控制: - 首次发送探测报文时间:`net.ipv4.tcp_keepalive_time`有报文传输时重置 - 探测报文的发送间隔:`net.ipv4.tcp_keepalive_intvl` - 探测报文的最大重试次数:`n ......
数据传输 内核 Keep-Alive 机制 链接

【网络】【TCP】TCP 和 UDP 可以使用同一个端口吗?

1 前言 这节我们来看个问题,就是 TCP 和 UDP 可以使用同一个端口吗? 关于端口的知识点,还是挺多可以讲的,比如还可以牵扯到这几个问题: 多个 TCP 服务进程可以同时绑定同一个端口吗? 重启 TCP 服务进程时,为什么会出现“Address in use”的报错信息?又该怎么避免? 客户端 ......
端口 TCP 网络 UDP

【网络】【TCP】服务端没有 listen,客户端发起连接建立,会发生什么?

1 前言 这节我们来看个问题,就是 服务端没有 listen,客户端发起连接建立,会发生什么? 为服务端没有调用 listen,客户端会 ping 不通服务器,如果你这么想那你就搞错了。 ping 使用的协议是 ICMP,属于网络层的事情,而问的方向是传输层的问题。 针对这个问题,服务端如果只 bi ......
客户端 客户 listen 网络 TCP

TCP/IP 五层模型

TCP/IP 五层模型 从下到上依次是: 1)物理层:主要是指具体的物理媒介和物理设备 任务:物理层的主要功能是利用传输介质为数据链路层提供物理联接,负责数据流的物理传输工作(主要定义了系统的电气、机械、过程和功能标准。如:电压、物理数据速率、最大传输距离、物理联接器和其他的类似特性)。基本单位是比 ......
模型 TCP IP

【网络】【TCP】TCP 协议有什么缺陷?

1 前言 这节我们来看个问题,就是 TCP 协议有什么缺陷? TCP 通过序列号、确认应答、超时重传、流量控制、拥塞控制等方式实现了可靠传输,看起来它很完美,事实真的是这样吗?TCP 就没什么缺陷吗? 所以,今天就跟大家聊聊,TCP 协议有哪些缺陷?主要有四个方面: 升级 TCP 的工作很困难; T ......
TCP 缺陷 网络

【网络】【TCP】TCP Keepalive 和 HTTP Keep-Alive 是一个东西吗?

1 前言 这节我们来看个问题,就是 TCP Keepalive 和 HTTP Keep-Alive 是一个东西吗? 事实上,这两个完全是两样不同东西,实现的层面也不同: HTTP 的 Keep-Alive,是由应用层(用户态) 实现的,称为 HTTP 长连接; TCP 的 Keepalive,是由  ......
Keep-Alive TCP Keepalive 东西 Alive

【网络】【TCP】如何基于 UDP 协议实现可靠传输?

1 前言 这节我们来看个问题,就是 TCP 协议有什么缺陷? 很多同学第一反应就会说把 TCP 可靠传输的特性(序列号、确认应答、超时重传、流量控制、拥塞控制)在应用层实现一遍。 实现的思路确实这样没错,但是有没有想过,既然 TCP 天然支持可靠传输,为什么还需要基于 UDP 实现可靠传输呢?这不是 ......
网络 TCP UDP

.NET面试题系列(23)tcp粘包问题

序言 什么是粘包 所谓粘包问题主要还是因为接收方不知道消息之间的界限,不知道一次性提取多少字节的数据所造成的。 解决粘包问题的方法 资料 tcp粘包问题 ......
问题 NET tcp

tcp三次握手和四次挥手

和udp的区别 定义上来说,tcp是面向连接的、安全的、可靠的协议;udp是面向数据报的、不可靠的协议。 从本质上来说,就是tcp每次建立和断开连接,都要进行握手和挥手,客户端每次传送数据包,都会收到服务端的ack确认,还有报文缺失、超时的重传机制。 udp是没有这些握手和确认机制的,所以udp不保 ......
tcp

【网络】【TCP】拔掉网线后, 原本的 TCP 连接还存在吗?

1 前言 这节我们来看个问题,就是 拔掉网线后, 原本的 TCP 连接还存在吗? 可能有的同学会说,网线都被拔掉了,那说明物理层被断开了,那在上层的传输层理应也会断开,所以原本的 TCP 连接就不会存在的了。就好像, 我们拨打有线电话的时候,如果某一方的电话线被拔了,那么本次通话就彻底断了。 真的是 ......
网线 TCP 原本 网络

【网络】【TCP】HTTPS 中 TLS 和 TCP 能同时握手吗?

1 前言 这节我们来看个问题,就是 HTTPS 中 TLS 和 TCP 能同时握手吗? 通常情况下,HTTPS 建立连接的过程,先进行 TCP 三次握手,再进行 TLS 四次握手,比如,下面这个 TLSv1.2 的 基于 RSA 算法的四次握手过程: 不过 TLS 握手过程的次数还得看版本。 TLS ......
TCP 同时 HTTPS 网络 TLS

TCP协议的首部结构?

源端口:占2字节。目的端口:占2字节。序号:占4字节。序号范围是[0,2^23-1],共2^23个序号。当序号达到2^23-1时候,下一个序号就回到0。TCP是面向字节流的,在一个TCP连接中传送的字节流的每一个字节都按顺序编号。整个TCP的起始序号必须在建立时确认,首部中的序号字段指的是这个报文段 ......
结构 TCP

【网络】【TCP】TCP 连接,一端断电和进程崩溃有什么区别?

1 前言 这节我们来看个问题,就是 TCP 连接,一端断电和进程崩溃有什么区别? 这个属于 TCP 异常断开连接的场景,这部分内容在我的「图解网络」还没有详细介绍过,这次就乘着这次机会补一补。 这个问题有几个关键词: 没有开启 keepalive; 一直没有数据交互; 进程崩溃; 主机崩溃; 我们先 ......
一端 TCP 进程 网络

【网络】【TCP】如果 TIME_WAIT 状态持续时间过短或者没有,会有什么问题?

1 前言 这节我们来看个问题,就是 TIME_WAIT 状态持续时间过短或者没有,会有什么问题? 或者net.ipv4.tcp_tw_reuse 参数可以快速复用处于 TIME_WAIT 状态的 TCP 连接,那为什么 Linux 默认是关闭状态呢?也就是为什么要保留这个 TIME_WAIT 状态呢 ......
TIME_WAIT 状态 时间 问题 网络

STM32F104C8T6 + CH395Q 作为TCP服务器实现多TCP连接

初始化 Socket 为 TCP 服务器模式 初始化步骤如下: ① 发送命令 CMD_SET_PROTO_TYPE_SN 设置 Socket 工作在 TCP 模式; ② 发送命令 CMD_SET_SOUR_PORT_SN 设置源端口 Sport; ③ 发送命令 CMD_OPEN_SOCKET_SN ......
TCP 服务器 104C F104 395Q

【网络】【TCP】已建立连接的TCP,收到SYN会发生什么?

1 前言 这节我们来看个问题,就是一个已经建立的 TCP 连接,客户端中途宕机了,而服务端此时也没有数据要发送,一直处于 Established 状态,客户端恢复后,向服务端建立连接,此时服务端会怎么处理? TCP 连接是由「四元组」唯一确认的。然后这个场景中,客户端的 IP、服务端 IP、目的端口 ......
TCP 网络 SYN

【网络】【TCP】四次挥手中收到乱序的 FIN 包会如何处理?

1 前言 这节我们来看个问题,就是四次挥手中收到乱序的 FIN 包会如何处理? 比如,如果 FIN 报文比数据包先抵达客户端,此时 FIN 报文其实是一个乱序的报文,此时客户端的 TCP 连接并不会从 FIN_WAIT_2 状态转换到 TIME_WAIT 状态。 因此,我们要关注到点是看「在 FIN ......
网络 TCP FIN

nvm安装node报错Get "https://nodejs.org/dist/latest/SHASUMS256.txt": dial tcp 104.20.23.46:443: i/o timeout

windows上通过nvm管理node版本,在本地安装了nvm后,通过nvm安装node,报错了,信息: Could not retrieve https://nodejs.org/dist/latest/SHASUMS256.txt. Get https://nodejs.org/dist/lat ......
quot SHASUMS timeout latest nodejs

进程通信之套接字(TCP)

1、服务器端 1 #include<stdio.h> 2 #include<sys/socket.h>//套接字 3 #include<netinet/in.h> 4 #include<string.h> 5 #include<stdlib.h> 6 #include<arpa/inet.h>//字 ......
套接字 进程 TCP