1. 互联网协议
互联网根据功能模块不同大致可以分为五层,从下到上分别是:实体层(physical layer)、链路层(link layer)、网络层(network layer)、传输层(transport layer)、应用层(application layer)。不同层有不同的协议,他们共同构成了互联网协议。
1.1 实体层
要想两台电脑间可以连接,首先得通过光缆、电缆、短波等方式把其连接起来。
实体层就是把两台电脑连接起来的物理手段。规定了一些电气的特性,作用是传输0、1电信号。
1.2 链路层
确定0、1电信号的分组方式以及每个信号位有何含义。起初有很多协议,后来“以太网”协议占据主导地位。
以太网协议: 每一个数据包叫做“一帧”,每一帧由“标头”和“数据”两部分构成。标头是固定的18字节包含发送者、接受者、数据类型等信息,数据是46-1500字节,当数据过大时就会进行分割。
MAC地址: 以太网规定每个入网设备都必须具有“网卡”接口,网卡的地址就是“标头”数据包的发送地址和接收地址。
数据交流方式: 以太网是以广播的方式进行的。它会向子网络内所有的电脑都发送一份数据包,接收到的电脑会拿出标头中的接受地址与自身的MAC地址进行比较。如果相同就接受这个包,否则就丢掉。
1.3 网络层
根据以太网协议,发送数据是局限在子网络之间的。那怎么判断是否属于同一子网络,这就诞生了网络层。它的作用是引入一套地址来判断不同就算机是否属于同一子网络。
IP 协议: 现在最常用的是IPv4,由32位二进制数组成。同样分成两部分,一部分代表网络,一部分代表主机 。
子网掩码: 标记IP地址的哪部分属于网络,哪部分表示主机。
IP数据包: IP协议携带的数据叫做IP数据包。也包括标头和数据两部分。标头有:版本、长度、IP地址等信息。整体会被包到以太网协议的数据中。
ARP 协议: IP数据包被包到了以太网数据包中。但我们只有IP地址,不知道MAC地址,如何进行下一步通信呢?ARP协议会发出一个数据包,包含接受者IP地址,在接受者MAC地址栏填入“FF:FF:FF:FF:FF:FF”,网络中的计算机接收到后拿出IP地址与自身的比较,相同则回复自身MAC地址,否则就丢掉。
1.4 传输层
同一台计算机上会有很多应用,QQ、微信、邮箱、网页……。接受到信息给谁呢?这就要用到端口了。每个应用都会分配不同的端口。端口编号是0-65535,其中0-1023是系统端口不可以占用。应用程序会随机在其他端口中选择一个,然后与服务器相应端口联系。
UDP 协议:几乎就是在数据前面加上端口号。标头主要定义:接收端口和发送端口。UDP数据包的放在IP数据包的数据里。标头定长8字节,总长度65535。
TCP 协议:UDP协议的优点是比较简单,容易实现,但是缺点是可靠性较差,一旦数据包发出,无法知道对方是否收到。为了解决这个问题,提高网络可靠性,TCP协议就诞生了。可以大致理解为有确认机制的UDP协议。发送一个数据,接收者收到后会回复,如果没有接到回复就会重发。
1.5 应用层
数据传输到应用以后怎么展示呢?每个不同的应用有不同的协议。网页的就是http协议,文件的FTP协议,邮件的email等。
最终数据形式: