概述
五层模型
层与协议
实体层
把电脑连接起来的物理手段。主要规定了网络的一些电气特性,作用是负责传送0和1的电信号。
链接层
以太网协议

规定:一组电信号构成一个数据包,叫做“帧”(Frame)。
每一帧分为两个部分:标头(Head)和数据(Data)。
标头:包含数据包的一些说明项,比如发送者,接受者,数据类型等等
数据:数据包的具体内容
“标头”的长度,固定为18字节。”数据”的长度,最短为46字节,最长为1500字节。因此,整个”帧”最短为64字节,最长为1518字节。如果数据很长,就必须分割成多个帧进行发送。
MAC地址
物理地址和局域网地址
数据包的发送和接受地址,就叫做MAC地址。
每块网卡都有全世界独一无二的MAC地址,长度为48个二进制位,通常用12个十六进制数表示
前6个十六进制数是厂商编号,后6个是该厂商的网卡流水号。
广播
ARP协议
上图中,1号计算机向2号计算机发送一个数据包,同一个子网络的3号、4号、5号计算机都会收到这个包。它们读取这个包的”标头”,找到接收方的MAC地址,然后与自身的MAC地址相比较,如果两者相同,就接受这个包,做进一步处理,否则就丢弃这个包。这种发送方式就叫做”广播”(broadcasting)。
有了数据包的定义、网卡的MAC地址、广播的发送方式,”链接层”就可以在多台计算机之间传送数据了。
网络层
网络层的诞生。作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络。
这套地址就叫做“网络地址”,称为“网址”。
网络地址帮助我们确定计算机所在的子网络,MAC地址则将数据包送到该子网络中的目标网卡。因此,从逻辑上可以推断,必定是先处理网络地址,然后再处理MAC地址。
IP协议
规定网络地址的协议,叫做IP协议。
其所定义的地址,就叫做IP地址。
IPv4:网络地址由32个二进制位组成
作用:为每一台计算机分配IP地址,还有确定哪些地址在同一个子网络。
子网掩码
子网络特征参数
它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。比如,IP地址172.16.254.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。
知道”子网掩码”,我们就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。
IP数据包
ARP协议
可以获得同一个子网络内的主机MAC地址,可以把数据包发送到任意一台主机之上。
ARP地址包含在以太网数据包中。
传输层
端口
就是每个使用网卡的程序的编号。
每个数据包都发到主机的特定端口,所以不同程序就能取到自己需要的数据。
“端口”是0到65535之间的一个整数,正好16个二进制位。0到1023的端口被系统占用,用户只能选用大于1023的端口。不管是浏览网页还是在线聊天,应用程序会随机选用一个端口,然后与服务器的相应端口联系。
“传输层”的功能,就是建立”端口到端口”的通信。相比之下,”网络层”的功能是建立”主机到主机”的通信。只要确定主机和端口,我们就能实现程序之间的交流。
UDP协议
需要在数据包中加入端口信息,就需要UDP协议
几乎就是在数据前面,加上端口号。
简单易实现,可靠性差。无法知道对方是否收到。
TCP协议
近似于有确认机制的UDP协议,每发出一个数据包都要求确认。
如果有一个数据包遗失,收不到确认,发出方就知道要重发这个数据包了。
因此,TCP协议能够确保数据不会遗失。缺点是过程复杂,实现困难,消耗较多的资源。
应用层
作用就是规定应用程序的数据格式。
