通常使用的网络(包括互联网)是在TCP/IP协议族的基础上运作的,而HTTP属于它内部的一个子集
~先来一波书上的知识做个小笔记~
而TCP/IP协议是计算机与网络设备互相通讯的规则;
简单的说从电缆的规格到IP地址的选定方法等与互联网相关联的协议集合起来总称TCP/IP
通过TCP/IP进行分层管理
TCP/IP协议族按照层次分为4层:应用层、传输层、网络层、数据链路层
- 应用层: 决定了向用户提供应用服务时通信的活动;
HTTP协议也处于该层;DNS服务同样处于这层
- 传输层:提供处于网络连接中的两台计算机之间的数据传输;在传输层有两个性质不同的协议:
TCP 和 UDP
- 网络层: 处理网络上流动的数据包;
IP协议
- 链路层/网络接口层:处理连接网络的硬件设备
以上四层的通讯顺讯
用HTTP来举例:发送端输入URL发送请求(http协议,http请求)查看web页面
其中IP协议的作用是把数据包传送给对方;确保准确的传送的两个重要条件是IP地址和MAC地址;MAC地址是指网卡所属的固定地址
接下来,要敲小黑板划重点了
常常放在口中的TCP连接3次握手和四次挥手,到底是怎么实现的呢?
emmm...确实每次都是话到口边却说不来了
下面来打包一下,做个一次性总结:
为了准确无误的将数据送到目标地,连接时TCP采用3次握手策略
,握手中使用了TCP的标志:syn和ack
- 发送端首先发送带syn同步序列标志的数据包给接收端
- 接收端收到后回传一个带有syn/ack(确认)标志的数据包表示传达确认信息
- 发送端收到后,在发送一个带有ack(确认)标志的数据包表示握手结束
当客户端不想再连接了,那么它接下来就要向服务端发起结束请求了,但是这不是谈恋爱,不是一方说分手就能分手的。因为客户端发起结束请求,并不代表服务端此刻已经把所有的数据都返给客户端了;所以就有了四次挥手
, 目的也是为了确保客户端与服务端的数据传输是完整的
- 首先是客户端发起的结束请求,也就是发送FIN报文;此时的客户端进入FIN_WAIT_1状态
- 服务端收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),服务端进入CLOSE_WAIT状态
- 服务端发送一个FIN,用来关闭服务端到客户端的数据传送,服务端进入LAST_ACK状太
- 客户端收到FIN后,客户端进入TIME_WAIT状态,接着发送一个ACK给服务端,确认序号为收到序号+1,服务端进入CLOSED状态,完成四次挥手。
HTTP协议与其他协议之间的关系DNS服务
:解析对应域名的IPhttp协议
:生成针对目标Web服务器的HTTP请求报文TCP协议
: 为了方便数据传递,将HTTP请求报文分割成报文段,把每个报文段可靠的传送给对方;或者接收对方的报文段,重组成报文IP协议
:搜索对方的地址,一边中转一边传送