概述

互联网分为五层,自下而上分为应用层、传输层、网络层、链接层、实体层。

实体层

实体层就是把电脑连接在一起的物理手段。它主要规定了网络的一些电气特性,作用是负责传送0和1的电信号。

链接层

拥有唯一的MAC地址进行标识,有了数据包和网卡MAC地址、广播的发送方式,链路层就可以在多台计算机之间传送数据。

网络层

网络层关心的是如何把一个数据从一台设备发送到另一台设备。是主机到主机之间的通信。

传输层

有了MAC地址和IP地址,我们可以在互联网任意两个主机上建立通信。区分一台主机中的接收的数据包属于哪个程序使用,是靠端口判断的。传输层的功能是从端口到端口的通信。因此Unix系统就把主机和端口叫作套接字(socket)

UDP协议

UDP数据包,也是由”标头”和”数据”两部分组成。
“标头”部分主要定义了发出端口和接收端口,”数据”部分就是具体的内容。然后,把整个UDP数据包放入IP数据包的”数据”部分,而前面说过,IP数据包又是放在以太网数据包之中的,所以整个以太网数据包现在变成了下面这样:

TCP协议

UDP协议的优点是比较简单,容易实现,但是缺点是可靠性差,一旦数据发出后,无法知道对方是否收到。
为了解决这个问题,TCP协议诞生。TCP协议可以理解为有确认机制的UDP协议。如果发送一个数据包遗失,就收不到确认,发送方就知道有必要重新发送数据包。
而且TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络效率通常TCP数据包的长度不会超过IP数据包长度,以保证单个TCP数据包不被分割。

应用层

应用层的作用就是规定应用程序的数据格式。
TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP。必须有不同的协议规定电子邮件、网页、FTP数据格式,这些应用程序协议构成了“应用层”。