| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 理解socket tcp http tomcat linux的关系 -> 正文阅读 |
|
[网络协议]理解socket tcp http tomcat linux的关系 |
理解socket tcp http tomcat linux的关系背景前几天看了一个文章一台Linux服务器最多能支撑多少个TCP连接?。这个问题问道我,我连切入点都没有,揪原因是因为对socket、tcp、http等概念没有区分开,一知半解。这几天梳理了一下,打算记录下来。 问题列表
回答思路网络上协议类的文章很多只抛结论,东拼西凑,需通过实验验证真伪 tcp socket的关系?socket:英文意思:插头、插孔。网络中不同主机上的应用进程之间进行双向通信的端点的抽象。 tcp:Transmission Control Protocol ,传输控制协议。熟悉tcp三次握手、四次断开,主要是应对传输过程中,可能出现的不稳定情况。 类比电脑通过插座从电厂取电:插座的socket、tcp是电的传输 电脑(服务端)》插座 (socket)》电线(tcp) =》插座(socket)=》电厂 tcp tcp/ip的关系tcp/ip:Transmission Control Protocol/Internet Protocol,传输控制协议\网络协议。是指为不同网络之间通信的一个协议簇。不仅有tcp ip 还有ftp、smtp、http等协议,报文通过协议头进行区分。常说的四层结构:链路层、网络层、传输层、应用层就就tcp/ip的协议簇的分层。 tcp对应在tcp/ip传输层的协议 tcp http的关系?http:Hyper Text Transfer Protocol,超文本传输协议。架构在tcp上的,实现简单发送-响应的网络协议。 可以看下面的wireshark抓包详细了解他们的关系↓↓↓↓↓ wireshark抓包tcp/ip的四层抽象
抓包可以看到任意一个网络请求,都分三层或四层。 物理链路层:写得是物理设备,接口等信息 网络层:ip版本 源、目的地址 传输层:TCP还是什么传输协议 应用层:空 ,因为tcp处于握手建联,所以上层的应用层还在等待中
tcp建立连接后,就可以有应用层的信息,这里是http的应用层信息,可以看到访文的是8080的端口 http和tcp关系上图可以看到,http 和 tcp一个是应用层,一个是传输层协议。是上下游关系。 tcp三次握手、四次断开发送两个http求解,期间进行抓包,可以看到三次握手和四次断开。 访问一个http的接口,触发三次握手。 如果server端没有特殊设置,HTTP的keep=Alive时间是60s。60s后触发三次握手 tcp的长短连接的区别?短链接:client和server完成一次通信,就close。短链接一般由client端关闭 长连接:出去单次短链接,就是长连接。http协议,默认的tcp长连接是60s。如果长连接时间过长,server将需要保留大量的长连接,server压力不小。长连接一般由server关闭。 Http长连接和TCP长连接的区别?http的长连接:使用 keep-alive配置,传输层是需要tcp的长连接。http的长连接需要tcp的长连接。 tcp的长连接:有心跳机制,一些旧系统就使用几条特定的长连接做传输,理论上永远不断,了解不多 tomcat 这种的的web容器可以建立多少tcp连接?
tomcat有几个关键指标:tomcat的最大连接数,可以解决为餐厅吃饭,餐厅的排号最大值,超过就不能排队了。
当超过了max-connections(座位满了),就再看accept-count(排队拿号),如果排队再满了,就不丢弃。 所以能最大数量是=threads.max + max-connections +accept-count 实验代码实现写一个springboot的代码,接口
这时候,1000个线程,只能由16个能建立连接。其余的连接Connection timed out: connect。 1+5+10=16
比如我设置为8w个max-connections,使用Jmete建立了10229的连接数,再多的话,内存不足,就卡死了。如果内存足够,就看操作系统的限制了。 linux系统可以建立多少tcp连接?篇幅原因,自行查看一台Linux服务器最多能支撑多少个TCP连接? 后记今天是2022年10月24日,特意写一个博客,程序员节日快乐。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 5:45:37- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |