TCP/IP 详解:理解互联网通信的基础

TCP/IP 详解:理解互联网通信的基础 我们每天都在使用网络。 打开浏览器访问一个网站、使用 SSH 登录服务器、调用 HTTP API、连接 MySQL、使用 Redis,甚至程序之间建立 TCP 长连接,本质上都离不开一套共同的网络通信基础: TCP/IP 协议族。 很多后端开发者知道 TCP、UDP、IP、端口这些概念,但如果把它们放在一起,经常会产生几个疑问: TCP/IP 到底是什么? TCP 和 IP 分别负责什么? IP 地址和端口有什么区别? TCP 为什么需要三次握手? 数据到底是如何从一台机器到另一台机器的? Socket 又处于什么位置? HTTP 和 TCP 又是什么关系? 理解这些问题之后,后面的 Socket、HTTP、HTTPS、WebSocket 才会真正容易理解。 本文不试图把计算机网络所有知识一次讲完,而是从后端开发最需要掌握的角度,建立一套完整的 TCP/IP 基础认知。 1. TCP/IP 到底是什么? 首先需要纠正一个常见认识: TCP/IP 不是一个单独的协议,而是一组用于网络通信的协议族。 TCP/IP Protocol Suite,也就是 TCP/IP 协议族,包含多个不同层次、不同职责的协议。 例如: 应用层 ├── HTTP ├── DNS ├── SMTP └── SSH 传输层 ├── TCP └── UDP 网际层 ├── IP ├── ICMP └── ....

2023年07月10日 · 5 min · Leanku