http长连接和短连接以及连接的本职
本文主要讲了,http长连接本质是tcp的长连接。
连接的本质
建立连接这个词,是从早期的电话系统中来的,那个时候,“建立连接”就真的是把你的电话和对方电话在电路上连起来。所以这个名词就保留至今。
当然现在的电话网络,早就不需要为某个通信建立专门的电路连接了,单个通信链路支持多路通信复用。
从TCP角度来说,“连接”是个纯粹概念性的东西。从开发角度来看,假设我们的服务器要给隔壁老王(192.168.233.233)进行联络,基本大概的步骤是:
……
……
……
这个建立连接的详细内容可以阅读《TCP/IP详解 卷一》。
从上面的描写可以看出来,所谓网络连接,并不存在物理上的动作。
PS:这里并没有完整描述整个连接建立过程,比如DNS,ARP部分,有需要再写吧。不过建议题主若想详细了解,还是翻翻《TCP/IP详解 卷一》更好,一个回答真的说不完。
原文请百度知乎,查看。
第二人阐述:
网络通信建立连接的本质:告知彼此的第一个发送字节的初始序列号,建立连接后对每一个发送的字节,都需要
以初始序列号为原点,进行编号,需要对方来确认,每一个字节编号都已经成功接收,此乃建立连接的本质。
以大家都耳熟能详的TCP来举例,但是先强调一点,TCP 有两个状态位比较特殊,
一个是SYN,
一个是FIN,
他们各占一个字节。
A(初始序列号为0)
--------TCP 连接--------
(初始序列号为0)B
双方初始序列号是由OS动态生成的,随机的值,
一般每个TCP session都会有不一样的初始序列号,占四个字节,为了便于描述,
假定通信双方的初始序列号都为0,A先发1000字节的数据给B,发送成功之后释放连接。
Step 1: A 发送TCP SYN 给B
Step 2: B 发送TCP SYN + ACK给A
Step 3: A发送ACK给B
完成建立连接,由于SYN占用一个字节,而ACK不占用字节,其实三次握手的本质是对SYN这个编号为0,占用一个字节的数据的双向确认,
此过程完成,彼此的真正数据的交换的编号为1,1。
Step 4: A 发送1000字节给B,第一个字节的编号为1,最后一个字节编号为1000
Step 5: B发送一个包含ACK的确认号1001,意思是1001这个编号前的数据已经成功接收,如果还有数据要发送,请使用编号1001。
A主动发起释放连接
Step 6: A发送包含FIN的单向释放连接,编号1001
Step 7: B确认此释放连接请求,ACK 1002
B发起单向释放连接
Step 8: B发送包含FIN的单向释放连接,编号1
Step 9: A确认此释放连接请求,ACK 2,意思是FIN已经成功接收,连接可以释放。
另外,TCP建立连接还会有MSS,Window Size,Scaling window ,SACK,SNACK,Security Authentication option等参数的协商,
但是这些参数只是为了提高传输效率、增加TCP连接的安全性,避免没有安全保护的TCP遭到第三方的伪造TCP Reset 攻击。
第三人阐述:
连接的本质就是通信各方用一种共同认可的机制进行数据传输。
分层结构的出现就是为了大家协商出共同认可的机制,提供指导思想。TCP/IP就是这种指导思想的一种实现。
本文内容摘抄自知乎。
http长连接和短连接以及连接的本职的更多相关文章
- TCP同步与异步,长连接与短连接【转载】
原文地址:TCP同步与异步,长连接与短连接作者:1984346023 [转载说明:http://zjj1211.blog.51cto.com/1812544/373896 这是今天看到的一篇讲到T ...
- HTTP的长连接和短连接
本文总结&分享网络编程中涉及的长连接.短连接概念. 关键字:Keep-Alive,并发连接数限制,TCP,HTTP 一.什么是长连接 HTTP1.1规定了默认保持长连接(HTT ...
- HTTP的长连接和短连接——Node上的测试
本文主要从实践角度介绍长.短连接在TCP层面的表现,借助Node.JS搭建后台服务,使用WinHTTP.Ajax做客户端请求测试,最后简单涉及WebSocket. 关键字:长连接.短连 ...
- (转)HTTP 长连接和短连接
1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问 ...
- HTTP长连接和短连接
1.HTTP协议的五大特点1)支持客户/服务器模式2)简单快速3)灵活4)无连接每次连接只处理一个请求,服务器处理完客户的请求,并受到客户的应答后,断开连接.5)无状态协议不会记录服务器客户端状态. ...
- 误人子弟的网络,谈谈HTTP协议中的短轮询、长轮询、长连接和短连接
引言 最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码.在研究一个项目的时候,源码里面用到了HTTP的长轮询.由于之前没太接触过,因此LZ便趁着这个机会,好好了解了一下HT ...
- Http 和TCP的关系,TCP长连接和短连接有什么区别?
HTTP 协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用.由于HTTP在 ...
- 【转】HTTP中的长连接和短连接分析
1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问 ...
- HTTP 长连接和短连接
1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问 ...
- (转)HTTP长连接和短连接
1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问 ...
随机推荐
- Struts-Core jar包
密码t6mp https://pan.baidu.com/share/init?surl=E--zExzI9-VY1zaT8F9i9w
- flexible.js在华某为手机上使用rem时,页面宽度超出手机屏幕宽度
问题:手机端项目在华为的某款手机上显示时页面内容没有自适应手机宽度,出现横向滚动条 原因:手机获取手机屏幕宽度并计算出rem时出现偏差,明显宽余真实手机屏宽度 解决方案一:在页面里获取页面最外层dom ...
- chromium之revocable_store
// |RevocableStore| is a container of items that can be removed from the store. Revoke: 撤销 Revocable ...
- 【解决】docker 容器中 consul集群问题处理
现象描述: node1 和node2 日志反复出现 add remove node3节点. node3 节点 一直 驳回 node1 和node2 认为node3已经dead的消息 不断重启se ...
- 基于socketserver模块实现并发的套接字(tcp、udp)
tcp服务端:import socketserver class MyHandler(socketserver.BaseRequestHandler): def handle(self): #通信循环 ...
- 【vlan之四种方式链路认证组网]
---恢复内容开始--- 根据项目需求,搭建好如下拓扑图: 在[sysname]下配置给予协议的vlan vlan 1#vlan 10 protocol-vlan 0 ipv4#vlan 20 pro ...
- linux总结及常用命令
一.操作系统的作用: 1.是现代计算机系统中最基本和最重要的系统软件 2.承上启下的作用 3.向下对硬件操作进行封装 4.向上对用户和应用程序提供方便访问硬件的接口 二.不同领域的操作系统: 1 ...
- 关于在各种int类型选择时的考虑
整数类型int在不同版本的c标准中不断丰富. 最初的K&R标准给出了int作为整数的基本类型,给出long.short.unsigned作为int的变式.在c90中又加入了signed. 在c ...
- 最小费用最大流模板 洛谷P3381
题目描述 如题,给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表 ...
- Java:Random函数及其种子的作用
伪随机(preundorandom):通过算法产生的随机数都是伪随机!! 只有通过真实的随机事件产生的随机数才是真随机!!比如,通过机器的硬件噪声产生随机数.通过大气噪声产生随机数 Random生成的 ...