参考:互联网协议入门
五层模型
按照阮老师的分法分五层,从底层开始看:
- 实体层(个体硬件)
- 连接层(组网)
- 网络层(组大网)
- 传输层(单个机器内部信息分流)
- 应用层(易用性保证)
网络协议
以太网协议
解决问题:不同机器之间的连接。在网络中广播信息,接受者自行判断是不是发给自己的。
连接层协议,数据结构:Head—Data
以太网规定,一组电信号构成一个数据包,叫做"帧"(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)。
IP协议
解决问题:随着网络中机器的增多,全网广播已经不可行了,这时就引入了IP概念,把一个大网络划分成不同区段,消息可通过IP路由到指定的子网。
网络层协议,数据结构建立在以太网协议基础上:Head—Head—Data
TCP协议
解决问题:在IP基础之上进行数据去向的细分,另外保证数据传输的可靠性。
传输层协议,能够把数据进一步分发到端口,建立端口到端口的信道:
Head(以太网)—Head(IP)—Head(TCP)—Data
端口:每个需要网络连接的程序都会被分配一个端口号(就是一个数字),当网络中的信息到达机器内部之后,通过端口号来判定这个信息要发送给哪个程序。
HTTP协议
解决问题:在TCP基础之上对数据格式进行规范化。
应用层,HTTP协议中的数据字段都是放在TCP协议的Data中。
HTTP协议主要是在TCP协议的基础上对传输数据的结构和样式进行了定义,让我们能够在应用层轻松的传输和解析各种各样的数据。
SOCKET
解决问题:把TCP协议数据传输过程抽象成可操作接口。
应用层,建立在TCP基础之上,Socket本身并不是协议,而是一个对TCP协议的再封装,把数据传输的过程抽象成具体接口,使我们能够轻松的实现基于TCP的数据传输。