学好 TCP/IP 基础

654 阅读3分钟

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 怎么建立连接

三次握手,是一个确认双方可以相互发消息的过程,具体如下:

  1. 客户端向服务端发送建立连接请求。
  2. 服务端确认建立连接回应客户端,好的,我也要向你发送信息了
  3. 客户端收到消息,再次向服务端确认 好的

TCP 关闭

为什么需要关闭TCP连接?为了节省资源,应用在维持TCP连接的时候会持有对方的信息占用内存等等。

TCP 关闭过程

四次握手,是一个确认双方交流结束的过程,具体如下:

  1. 客户端向服务端说:我没有消息要给你发了,要关闭客户端到服务端的传输请求。
  2. 服务端说:好的,确认关闭。
  3. 服务端向客户端说:我没有消息要给你发了,要关闭服务端到客户端的传输请求。
  4. 客户端说:好的,确认关闭。

为什么 TCP 的关闭过程需要四部

因为 TCP 连接是双向通信,需要单方向确认进行关闭,比如:服务端没有消息给客户端发了,但是客户端可能还要给服务端发送消息,这时候还不能关闭客户端到服务端的通信过程。

容易混淆的概念

  • http连接:其实是以http协议的TCP连接。
  • http短连接:以http协议的TCP连接,通信一次就关闭。
  • http长连接:以http协议的TCP连接,一次连接可以相互通信多次。