音效素材网提供各类素材,打造精品素材网站!

站内导航 站长工具 投稿中心 手机访问

音效素材

浏览器与apache通讯中的TCP连接状态迁移
日期:2012-11-13 15:21:00   来源:佚名

前言

浏览器(IE,火狐,谷歌等)和apache都是基于http协议进行通讯的。浏览器在客户端,apache在服务端。http协议是在TCP/IP模型中的应用层。TCP协议状态在TCP/IP模型中的传输层。在浏览一个网站的时候,如果关闭了浏览器,只是关闭了浏览器的进程,浏览器和apache之间的连接还没有完全断开。操作系统会在一定时间后自动断开该连接。服务端也是一样,虽然apache的进程已经关闭了,但是连接不会立刻断开,linux操作系统会在一定时间后断开该连接。

TCP/IP结构对应OSI结构

TCP/IPOSI功能TCP/IP协议族应用层应用层文件传输,电子邮件,文件服务,虚拟终端TFTP,HTTP,SNMP,FTP,SMTP,DNS,RIP,Telnet 表示层数据格式化,代码转换,数据加密没有协议 会话层解除或建立与别的接点的联系没有协议传输层传输层提供端对端的接口TCP,UDP网络层网络层为数据包选择路由IP,ICMP,OSPF,BGP,IGMP,ARP,RARP链路层链路层传输有地址的帧以及错误检测功能SLIP,CSLIP,PPP,MTU,ARP,RARP 物理层以二进制数据形式在物理媒体上传输数据ISO2110,IEEE802,IEEE802.2

 

那么当完成数据传输后操作系统是怎么断开该连接的?下面详细讲解这个连接和断开过程。

首先了解TCP协议的几种状态

LISTEN:侦听来自远方的TCP端口 的连接请求

SYN-SENT:再发送连接请求后等待匹配的连接请求

SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接 请求的确认

ESTABLISHED:代表一个打开的连接

FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认

FIN- WAIT-2:从远程TCP等待连接中断请求

CLOSE-WAIT:等待从本地用户发来的连接中断请求

CLOSING:等待远程TCP对 连接中断的确认

LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认

TIME-WAIT:等待足够的时间以确保远程TCP接 收到连接中断请求的确认

CLOSED:没有任何连接状态

发起连接请求

apache服务器(服务端)不会主动发起连接请求的,apache服务器一直监听80端口(设定的某个端口),一旦有连接请求就会对请求作出响应。

所以每次的连接都是从浏览器(客户端)发起的。而关闭连接请求有可能是apache服务器发给浏览器,也有可能是浏览器发送给apache服务器。

浏览器发起关闭连接请求

浏览器在什么情况是会发起关闭连接请求?

1,所有的数据传输完成。

2,关闭了浏览器

3,其他

浏览器发起关闭连接请求的TCP协议状态迁移图

每个步骤的说明:

1,浏览中输入网址,开始连接服务器。这时浏览器的状态是SYN_SENT,apache的状态是LISTEN。

2,apache收到连接请求,开始一些准备工作,比如为该连接开辟内存空间,建立进程,并回复浏览器确认连接。这时浏览器的状态是SYN_SENT,apache的状态是SYN_RCVD。

3,浏览收到连接确认,连接被成功建立,开始请求需要的数据。这时浏览器的状态是ESTABLISHED,apache的状态是SYN_RECVD。

4,apache收到数据请求,发送相应的数据给浏览器。这时浏览器的状态是ESTABLISHED,apache的状态也是ESTABLISHED。

5,浏览器继续请求需要的数据。这时浏览器的状态是ESTABLISHED,apache的状态也是ESTABLISHED。

6,apache收到数据请求,发送响应的数据给浏览器。这时浏览器的状态是ESTABLISHED,apache的状态也是ESTABLISHED。

。。。。。

。。。。。

重复5和6直到所有数据接收完成

7,浏览器判断所有数据接收完毕,发送关闭连接请求。这时浏览器的状态是FIN_WAIT_1,apache 的状态是ESTABLISHED。

8,apache收到关闭连接请求,开始关闭连接工作(只是开始,并不是准备工作全部完成),比如关闭内存空间,关闭进程等,并发送同意关闭连接。这时浏览器的状态是FIN_WAIT_1,apache的状态是CLOSED_WAIT。

9,浏览器收到同意关闭连接,浏览器不会再发送请求,只是等待,开始等待apache的关闭工作完成,开始等待apache完成关闭工作后的确认。这时浏览器的状态是FIN_WAIT_2,apache的状态是CLOSE_WAIT。

10,apache完成关闭工作,内存回收,关闭进程等,发送最后的关闭确认请求。这时浏览器的状态是FIN_WAIT_2,apache的状态是LAST_ACK。

11,浏览器收到最后的关闭确认,关闭连接,并发送最后的关闭连接应答。这时会有2*SML秒的缓冲时间。2*SML时间后连接正式关闭。SML时间根据操作系统不一样而不一样。centos的SML时间是30秒。这时浏览器的状态时TIME_WAIT,apache的状态是LAST_ACK。

12,apache收到最后的关闭连接应答,apache关闭连接。这时也会有2*SML秒的缓冲时间。2*SML后连接正式关闭。这时浏览器的状态是TIME_WAIT,apache的状态是TIME_WAIT。

13,2*SML秒后浏览器的状态时CLOSED,apache的状态也是CLOSED。

apache发起关闭连接请求

apache在什么情况下会发起关闭连接请求呢?

1,http.conf 里面有个参数time_out。这个值是完成上一个请求的应答之后和下一个请求到来的时间差。如果apache在完成上一个请求的应答之后等了time_out秒还没收到第二个连接,apache就会主动断开该连接。

2,apache内存耗尽,或者一些其他原因

apache发起关闭连接请求的TCP状态迁移图

每个步骤的说明:

1,浏览中输入网址,开始连接服务器。这时浏览器的状态是SYN_SENT,apache的状态是LISTEN。

2,apache收到连接请求,开始一些准备工作,比如为该连接开辟内存空间,建立进程,并回复浏览器确认连接。这时浏览器的状态是SYN_SENT,apache的状态是SYN_RCVD。

3,浏览收到连接确认,连接被成功建立,开始请求需要的数据。这时浏览器的状态是ESTABLISHED,apache的状态是SYN_RECVD。

4,apache收到数据请求,发送相应的数据给浏览器。这时浏览器的状态是ESTABLISHED,apache的状态也是ESTABLISHED。

5,浏览器继续请求需要的数据。这时浏览器的状态是ESTABLISHED,apache的状态也是ESTABLISHED。

6,apache收到数据请求,发送响应的数据给浏览器。这时浏览器的状态是ESTABLISHED,apache的状态也是ESTABLISHED。

。。。。。

。。。。。

重复5和6直到所有数据接收完成

7,apache等待time_out秒后没有收到下个请求,所以主动发起关闭连接请求。这时浏览器的状态是ESTABLISHED,apache的状态是FIN_WAIT_1。

8,浏览器收到关闭连接请求,开始关闭连接工作(只是开始,并不是准备工作全部完成),比如关闭内存空间,关闭进程等,并发送同意关闭连接。这时浏览器的状态是CLOSED_WAIT,apache的状态是FIN_WAIT_1。

9,apache收到同意关闭连接,apache不会再发送请求,只是等待,开始等待浏览器的关闭工作完成,开始等待浏览器完成关闭工作后的确认。这时浏览器的状态是CLOSED_WAIT,apache的状态是FIN_WAIT_2。

10,浏览器完成关闭工作,内存回收,关闭进程等,发送最后的关闭确认请求。这时浏览器的状态是LAST_ACK,apache的状态是FIN_WAIT_2。

11,apache收到最后的关闭确认,关闭连接,并发送最后的关闭连接应答。这时会有2*SML秒的缓冲时间。2*SML时间后连接正式关闭。这时浏览器的状态时LAST_ACK,apache的状态是TIME_WAIT。

12,浏览器收到最后的关闭连接应答,浏览器关闭连接。这时也会有2*SML秒的缓冲时间。2*SML后连接正式关闭。这时浏览器的状态是TIME_WAIT,apache的状态也是TIME_WAIT。

13,2*SML秒后浏览器的状态时CLOSED,apache的状态也是CLOSED。

查看apache的连接状态

linux下查看所有连接状态的命令为:

#netstat -nat

linux下查看所有TCP连接数的统计:

#netstat -nat|awk ‘{print awk $NF}’|sort|uniq -c|sort –n

linux下查看80端口的连接数的统计:

#netstat -nat|grep “:80″|awk ‘{print $5}’ |awk -F: ‘{print $1}’ | sort| uniq -c|sort -n

linux下查看apache的连接状态的命令为:

#netstat -nat|grep –i ’80′

linux下查看apache的某个状态的命令为:

#netstat -nat|grep LISTEN

#netstat -nat|grep ESTABLISHED

#netstat -nat|grep TIME_WAIT

。。。。。。。。对应的TCP协议状态

 

linux下查看apache的所有相关连接状态的命令为:

#netstat -n |awk ‘/^tcp/ {++S[$NF]} END {for(a in S)print a,S[a]}’

该命令非常实用,会列出apache的所有连接状态信息的统计。如果某个状态没有连接则不显示。

补充:

本篇文章是为以后编写关于apache,mysql并发优化的辅助文章,是最基础的知识。是本人对浏览器与apache的TCP连接状态的一些理解,难免会有一些错误。但是作为一个程序员如果理解上面这些内容足以。更多的细节内容应该是架构师的事情了。

本文地址:http://www.qindamoni.com/84

    大家在看的文章

    腾讯天籁行动一周年 那个佩戴人工耳蜗的

    从无数噪音中找到重要的声音有多难?来自广东佛山的宋晓婷对此深有体会。患有先天神经性耳聋的她,在13岁植入人...

    腾讯 天籁

    移动端也能音频编辑? HMS Core音频编辑能力全新开放

    移动端也能音频编辑? HMS Core音频编辑能

    音频编辑服务(Audio Editor Kit)是华为为开发者开放的各类场景音频处理能力的集合,汇聚了华为在音乐、语音等相关...

    音频编辑 也能 能力 开放 HMS

    十大国产投影仪排行:数码粉揭晓家用投影仪排名前十的品牌

    十大国产投影仪排行:数码粉揭晓家用投

     要说现在最火的数码产品是什么,智能投影仪自然是逃不过的一款产品,拥有百寸大屏,轻松满足日常观影追剧的...

    投影仪 十大 揭晓 前十 排名

    小米众筹上新:米家智能多功能养生壶仅售149元

    小米众筹上新:米家智能多功能养生壶仅

    11月18日,小米商城众筹平台将上线一款米家智能多功能养生壶新品,零售价169元,众筹仅售149元。这款产品拥有100...

    多功能 小米 仅售 养生 上新

    三星Galaxy Z Flip3 5G玩法升级 助力社交新体验

    三星Galaxy Z Flip3 5G玩法升级 助力社交新体

    8月11日,三星正式推出新一代折叠屏手机,分别是三星Galaxy Z Fold3 5G和三星Galaxy Z Flip3 5G。两款新机均沿用了之前的经...

    三星 玩法 助力 社交 新体验

    联手打造球场好声 Sonos 正式成为利物浦足球俱乐部官方音响合作伙伴

    联手打造球场好声 Sonos 正式成为利物浦足

    2021 年 8 月 10 日 – 随着新赛季的到来,Sonos 即将与利物浦足球俱乐部展开合作,在球队主场安菲尔德体育场为世界各...

    利物浦 球场 足球俱乐部 联手 音响

    助力职场青年打造A+生产力 全新荣耀MagicBook锐龙版上市后倍受好评

    助力职场青年打造A+生产力 全新荣耀Mag

    自7月20日迎来首销后,新上市的全新荣耀MagicBook 14/15锐龙版热度一直居高不下。在过去的近两个星期时间,不仅赢得...

    荣耀 职场 倍受 助力 生产力

    云手机批量运行一人成军 多多云性能功能产能三好生

    云手机批量运行一人成军 多多云性能功能

    信息时代飞速发展,5G网络普及应用,人们生产生活的效率也随之不断提升。过去需要耗费众多人力物力才能完成的事...

    一人 好生 产能 批量 性能

    小米穿戴APP全新升级:正式开启1000万千卡全民挑战

    小米穿戴APP全新升级:正式开启1000万千卡

    作为Redmi品牌的第一款智能手表产品——Redmi Watch小方屏的推出正式将智能手表品类带入到300元档位内,而Redmi Watch小...

    穿戴 小米 全民 开启 挑战

    新晋全球第二的小米迈向高端的方式 打开MIX FOLD你就懂了

    新晋全球第二的小米迈向高端的方式 打开

    今天凌晨Canalys发布了第二季度全球智能手机市场份额的报告,小米市场份额17%,智能手机销量超越了苹果,晋升全球...

    你就 小米 迈向 新晋 打开

    从主动降噪耳机到旗舰桌面音响,杰士多款新品中国上市

    从主动降噪耳机到旗舰桌面音响,杰士多

    2021年9月9日,传奇音响品牌杰士在中国上市多款新品。其中,T5 II ANC是杰士首款真无线主动降噪耳机产品,在传承杰...

    中国 旗舰 降噪 耳机 音响

    母亲节送礼清单来了!送妈妈最好的数码礼物都在京东电脑数码

    母亲节送礼清单来了!送妈妈最好的数码

      母亲节将至,你准备好礼物了吗?岁月如梭,为了养育子女成长,妈妈半生操劳。“你陪我长大,我陪你变老”...

    来了 数码 都在 最好的 母亲节

    局域网网络中怎么限制别人的上网网速?局域网限制别人网速的方法

    局域网网络中怎么限制别人的上网网速?

    局域网是封闭型的,那么局域网网络中怎么限制别人的上网网速?下面就整理了关于局域网限制别人的网速的方法,...

    限制网速 局域网

    保存在计算机上的设置与网络要求不匹配的解决办法

    保存在计算机上的设置与网络要求不匹配

    计算机上的网络连接连不上网络该怎么办呢?点击连接的时候发现提示:用于网络的保护在计算机上的设置与网络的...

    网络配置 网络连接

    中软国际与金蝶达成全面战略合作 共创数

    2021年9月,中软国际与金蝶软件(中国)有限公司(以下简称“金蝶”)签署战略合作协议。此次战略合作,双方将聚焦...

    金蝶 中软 国际

    新品三连发,Nokia C20 Plus 让简单好用更进一步

    新品三连发,Nokia C20 Plus 让简单好用更进

    2021 年 6 月 11 日——诺基亚手机的新家 HMD Global 今日发布 3 款新品,分别为全新智能手机 Nokia C20 Plus、真无线耳机 ...

    连发 好用 新品 简单 Nokia

    + 更多文章 +
    业界电商杂谈