网络协议(浅见)

一、网络协议HTTP、TCP

HTTP:HyperText Transfer Protocol,超文本传输协议

TCP:Transmission Control Protocol,传输控制协议

1、HTTP的工作原理:

复制代码
  HTTP 协议采用请求/响应模型。客户端向服务器发送一个请求报文,服务器以一个状态作为响应。

以下是 HTTP 请求/响应的步骤:

1、客户端连接到web服务器:HTTP 客户端与web服务器建立一个 TCP 连接;

2、客户端向服务器发起 HTTP 请求:通过已建立的TCP 连接,客 户端向服务器发送一个请求报文;

3、服务器接收 HTTP 请求并返回 HTTP 响应:服务器解析请求,定位请求资源,服务器将资源副本写到 TCP 连接,由客户端读取;

4、释放 TCP 连接:若connection 模式为close,则服务器主动 关闭TCP 连接,客户端被动关闭连接,释放TCP 连接;若

connection 模式为keepalive,则该连接会保持一段时间,在该 时间内可以继续接收请求;

5、客户端浏览器解析HTML内容:客户端将服务器响应的 html 文 本解析并显示;

复制代码
  例如:在浏览器地址栏键入URL,按下回车之后会经历以下 流程:

1、浏览器向 DNS 服务器请求解析该 URL 中的域名所对应 的 IP 地址;

2、解析出 IP 地址后,根据该 IP 地址和默认端口 80或443,和服务器建立 TCP 连接;

3、浏览器发出读取文件(URL 中域名后面部分对应的文件) 的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;(若在https下会有12个包,SSL握手有8个包)

4、服务器对浏览器请求作出响应,并把对应的 html 文本 发送给浏览器;

5、释放 TCP 连接;

6、浏览器将该 html 文本并显示内容;

2、HTTP、HTTPS之间的区别

区别 HTTP HTTPS
证书 不需要 需要ca申请证书,一般免费证书较少,因而需要一定费用
传输方式 明文传输 ssl加密传输协议
端口 80 443
连接 简单,无状态 SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议
页面响应 速度快,HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包 速度慢, HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。

3、三次握手,四次挥手

TCP:说到TCP,不得不讲的就是传说中的三次握手,四次挥手。

ACK:确认序号的标志,ACK=1表示确认号有效,ACK=0表示报文不含确认序号信息

SYN:连接请求序号标志,用于建立连接,SYN=1表示请求连接

FIN:结束标志,用于释放连接,为1表示关闭本方数据流

1、建立连接的三次握手:

握手之前主动打开连接的客户端结束CLOSED阶段,被动打开的服务器端也结束CLOSED阶段,并进入LISTEN阶段。随后开始"三次握手":

第一次握手:客户端发送syn包(syn=x)的数据包到服务器,并进入SYN_SENT状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RCVD状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

2、关闭连接的四次挥手:

第一次挥手:客户端发出释放FIN=1,自己序列号seq=u,进入FIN-WAIT-1状态

第二次挥手:服务器收到客户端的后,发出ACK=1确认标志和客户端的确认号ack=u+1,自己的序列号seq=v,进入CLOSE-WAIT状态

第三次挥手:客户端收到服务器确认结果后,进入FIN-WAIT-2状态。此时服务器发送释放FIN=1信号,确认标志ACK=1,确认序号ack=u+1,自己序号seq=w,服务器进入LAST-ACK(最后确认态)

第四次挥手:客户端收到回复后,发送确认ACK=1,ack=w+1,自己的seq=u+1,客户端进入TIME-WAIT(时间等待)。客户端经过2个最长报文段寿命后,客户端CLOSE;服务器收到确认后,立刻进入CLOSE状态。

通俗理解就是:
三次握手:
四次挥手:

3、为什么建连接三握手,关连接要四挥手?

三次握手时,服务器同时把ACK和SYN放在一起发送到了客户端那里

四次挥手时,当收到对方的 FIN 报文时,仅仅表示对方不再发送数据了但是还能接收数据,己方是否现在关闭发送数据通道,需要上层应用来决定,因此,己方 ACK 和 FIN 一般都会分开发送。

相关推荐
互成2 小时前
加密系统哪款最好用?2026年五款加密系统深度对比测评
运维·网络·安全
mftang2 小时前
WebSocket 通信协议详细解析
网络·websocket·网络协议
野指针YZZ2 小时前
TCP包 wireshark抓包分析-RK3588
网络·tcp/ip·wireshark
纽创信安2 小时前
纽创信安与SGS启动网络安全ISO 21434认证项目
网络·安全·web安全
MinterFusion3 小时前
如何在开放麒麟(openKylin)下安装FTP服务器(v0.1.0)
运维·服务器·网络·vsftpd·开放麒麟·明德融创·openkylin
Predestination王瀞潞3 小时前
5.2.1 通信->DNS域名系统协议标准(IETF RFC 1035):DNS(Domain Name System)
网络·网络协议·tcp/ip
帐篷Li4 小时前
【AgenticCPS 】CPS联盟返利系统 - 实施计划
大数据·网络·人工智能
Fly Wine4 小时前
IPsec 最简单场景总部和网关之间建立,并且流量不会全部经过总部
网络
GOU925 小时前
5101实验
网络·macos
IpdataCloud6 小时前
直播打赏异常排查:大额打赏IP来自高风险地区?用IP查询定位触发人工审核
网络·tcp/ip·网络安全·ip