TCP/IP 是什么
TCP/IP 是一些列协议所组成的网络分层模型,这里以四层模型为例讲解,除了四层模型外还有七层模型。
TCP/IP 和 HTTP
从本质上讲 TCP/IP 和 HTTP 不是一类可比较的东西,TCP/IP 是协议族,由一些列协议组成;HTTP 是具体的协议,包含在 TCP/IP 之中,位于网络分层模型的最上层——应用层。
TCP/IP 和 HTTPS
HTTPS 简称HTTP over SSL,是工作在 SSL 或者 TSL 上的HTTP,是具有加密通信的HTTP,HTTPS 在原本的网络分层模型中添加了一层安全层,位于应用层和传输层之间。
网络的四层模型
- Application Layer 应用层,这层包含有 HTTP、FTP、DNS 等协议,负责数据的组装,定义了数据的规则。
- Transport Layer 传输层,这层有 TCP、UDP 协议,建立通信连接,将数据分块、重传,保证数据的稳定传输。
- Internet Layer 网络层,这层有 IP 协议,发送、接收分块的网络数据,寻址和路由。
- Link Layer 数据链路层,以太网、WI-FI。
TCP 连接
什么是连接
通信双方确认可以相互通信,不会将对方信息丢弃,简单来说就是对 对方的请求 产生响应,即为连接。
TCP 和 HTTP 的关系理解
以寄信为例,在寄信之前你得保证这个地址对方能接收到,这就是建立连接;那么信是怎么样的一种形式?比如需要 邮票、地址、编号、内容等等...是一种能让对方获取到信息的规则。 所以,TCP 扮演的是能让双方互相 交流 的角色,HTTP 扮演了 交流的规则。
Socket 是什么
直译为 插座、插口、套接字。它是TCP在应用中的具体实现,所以 Socket 连接即为 TCP连接。
TCP 怎么建立连接
三次握手,是一个确认双方可以相互发消息的过程,具体如下:
- 客户端向服务端发送建立连接请求。
- 服务端确认建立连接回应客户端,好的,我也要向你发送信息了
- 客户端收到消息,再次向服务端确认 好的
TCP 关闭
为什么需要关闭TCP连接?为了节省资源,应用在维持TCP连接的时候会持有对方的信息占用内存等等。
TCP 关闭过程
四次握手,是一个确认双方交流结束的过程,具体如下:
- 客户端向服务端说:我没有消息要给你发了,要关闭客户端到服务端的传输请求。
- 服务端说:好的,确认关闭。
- 服务端向客户端说:我没有消息要给你发了,要关闭服务端到客户端的传输请求。
- 客户端说:好的,确认关闭。
为什么 TCP 的关闭过程需要四部
因为 TCP 连接是双向通信,需要单方向确认进行关闭,比如:服务端没有消息给客户端发了,但是客户端可能还要给服务端发送消息,这时候还不能关闭客户端到服务端的通信过程。
容易混淆的概念
- http连接:其实是以http协议的TCP连接。
- http短连接:以http协议的TCP连接,通信一次就关闭。
- http长连接:以http协议的TCP连接,一次连接可以相互通信多次。