<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>UDP on Leanku 的博客</title><link>https://www.leanku.com/tags/udp/</link><description>Recent content in UDP on Leanku 的博客</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Mon, 10 Jul 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://www.leanku.com/tags/udp/index.xml" rel="self" type="application/rss+xml"/><item><title>TCP/IP 详解：理解互联网通信的基础</title><link>https://www.leanku.com/post/computerscience/tcp-ip-network-communication/</link><pubDate>Mon, 10 Jul 2023 00:00:00 +0000</pubDate><guid>https://www.leanku.com/post/computerscience/tcp-ip-network-communication/</guid><description>&lt;h1 id="tcpip-详解理解互联网通信的基础"&gt;TCP/IP 详解：理解互联网通信的基础&lt;/h1&gt;&#10;&lt;p&gt;我们每天都在使用网络。&lt;/p&gt;&#10;&lt;p&gt;打开浏览器访问一个网站、使用 SSH 登录服务器、调用 HTTP API、连接 MySQL、使用 Redis，甚至程序之间建立 TCP 长连接，本质上都离不开一套共同的网络通信基础：&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;TCP/IP 协议族。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;很多后端开发者知道 TCP、UDP、IP、端口这些概念，但如果把它们放在一起，经常会产生几个疑问：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;TCP/IP 到底是什么？&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;TCP 和 IP 分别负责什么？&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;IP 地址和端口有什么区别？&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;TCP 为什么需要三次握手？&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;数据到底是如何从一台机器到另一台机器的？&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Socket 又处于什么位置？&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;HTTP 和 TCP 又是什么关系？&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;理解这些问题之后，后面的 Socket、HTTP、HTTPS、WebSocket 才会真正容易理解。&lt;/p&gt;&#10;&lt;p&gt;本文不试图把计算机网络所有知识一次讲完，而是从后端开发最需要掌握的角度，建立一套完整的 TCP/IP 基础认知。&lt;/p&gt;&#10;&lt;h2 id="1-tcpip-到底是什么"&gt;1. TCP/IP 到底是什么？&lt;/h2&gt;&#10;&lt;p&gt;首先需要纠正一个常见认识：&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;TCP/IP 不是一个单独的协议，而是一组用于网络通信的协议族。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;TCP/IP Protocol Suite，也就是 TCP/IP 协议族，包含多个不同层次、不同职责的协议。&lt;/p&gt;&#10;&lt;p&gt;例如：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;应用层&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── HTTP&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── DNS&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── SMTP&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── SSH&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;传输层&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── TCP&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── UDP&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;网际层&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── IP&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── ICMP&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── ...&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;链路层&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── Ethernet&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── Wi-Fi&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── ...&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这些协议共同完成网络通信。&lt;/p&gt;</description></item></channel></rss>