TCP、UDP、Socket、HTTP你不知道的故事
什么是 TCP / UDP
TCP / UDP / HTTP 是 TCP / IP 协议族中众多的子协议中的一员。
TCP / UDP : 是TCP / IP 四层模型中传输层中的一种协议。
HTTP: 是 TCP / IP 四层模型中应用层一种的协议。
Socket:是 TCP / IP 四层模型应用层和传输层的一种抽象层。
TCP: 传输控制协议(英语:Transmission Control Protocol,缩写为TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。( 维基百科 )
UDP:用户数据报协议(英语:User Datagram Protocol,缩写为UDP),又称使用者资料包协定,是一个简单的面向数据报的传输层协议,正式规范为RFC 768。( 维基百科 )
HTTP: 超文本传输协定(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议[1]。HTTP是全球资讯网的数据通信的基础 ( 维基百科 )。
Socket: 英语中直意是插口、插座。我们一般叫做套接字,来源于 Unix。
Socket 与其他三者不一样,Socket 的本质是编程的接口也就是 API, 是应用层和传输层的一个抽象层。在 Linux 内核中,Socket 就是一个文件形式存在( Unix / Linux 基本哲学之一就是“一切皆文件”),一些 Socket 函数对这个文件进行的操作。就是我们常见的 Socket API。
了解 TCP / IP 是什么?
那么就一起来了解一下 TCP / IP 协议族吧,
TCP / IP 协议族简称 TCP / IP,其中主要是由于两个核心协议:TCP( 传输控制协议 ) 、IP ( 网际协议 ),是早期最早的标准。
TCP / IP 包含了众多协议,这些协议是为网际网络基础通信提供标准理论。
TCP / IP 通过封装和抽象把整个体系分成四个抽象层:
TCP / IP 四层模型应用层:
为应用程序提供网络接口,支持文件传授、通信等功能的网络应用。直接和用户打交道,通过相关协议生成标准的数据协议。常见协议主要有:HTTP、HTTPS、FTP( 文件传输 )等
传输层:
传输层提供应用程序间的通信,格式化信息流,为网络提供错误控制和数据流量控制。
常见协议:TCP、UDP等
网络互连层:
这是整个 TCP / IP 协议栈中的核心,将数据从原网络发往目标网络。
常见协议:IP 协议等
网络接口层:
把数据链路层和物理层放在一起,为 TCP / IP 提供硬件实现基础。给网络互联层提供一个访问接口。这一层为有具体的定义。所以根据网络类型不同而不同。
常见:WiFi、以太网。
TCP / IP 对应还有一个标准的模型为: OSI 七层模型
TCP / IP 四层模型与OSI 七层模型OSI 七层模型具体部分,可自行去了解。
综上:
TCP 、UDP、HTTP 是网络协议中一种。TCP 和 UDP 属于传输层协议。HTTP 属于应用层协议。
而 Socket 可以理解为一个操作 “文件” 的 API。
站在巨人的肩膀上才能看的更远。