一、协议分层
网络协议可以分为五层:物理层、数据链路层、网络层、传输层和应用层。
二、物理层
就是将电脑通过物理方式(光缆、电缆、双绞线、无线电等方法)连接起来,用于传输0和1的电信号。
三、数据链路层
此层主要是MAC地址,在子网络中进行广播发送数据包,在网络中的电脑,通过对比发送包中的MAC地址,来判断此包是否发送给自己,如果不是,则丢弃此包,否则将接收此包。
问题:
是否可以将美国和中国的电脑都分在一个子网络中,从而只通过MAC地址的方式进行连接?
这几乎是不可能的,所以产生了一个新的协议,IP协议。
四、网络层
网络层中,主要的是IP协议,IP协议能够区分哪些MAC地址属于同一个子网络,哪些不是同一个子网络。如果是同一个子网络,就采用广播方式发送,否则就采用"路由"方式发送。("路由"的意思,就是指如何向不同的子网络分发数据包)
通过IP地址,我们就可以发送数据包到目标主机,在发送过程中,虽然我们可能不知道对方的MAC地址,但是我们可以先把数据包通过路由发送到目标主机的子网络中,然后通过ARP协议,获得其MAC地址,最终将数据包发送到目标主机。
通过两个IP地址和子网掩码进行AND运算就可以判断两台电脑是否在同一个子网络中。
它的数据就放在以太网数据包的"数据"部分。
五、传输层
"传输层"的功能,就是建立"端到端"的通信。相比之下,"网络层"的功能是建立"主机到主机"的通信。只要确定主机和端口,我们就能实现程序之间的交流。
主要有TCP协议和UDP协议
它的数据就放在IP数据包的"数据"部分。
六、应用层
应用程序收到"传输层"的数据,接下来就要进行解读。由于互联网是开放架构,数据来源五花八门,必须事先规定好格式,否则根本无法解读。
"应用层"的作用,就是规定应用程序的数据格式。
举例来说,TCP协议可以为各种各样的程序传递数据,比如Email、WWW等。那么必须有相应的不同协议规定电子邮件、网页等数据的格式,这些应用程序协议也就成了应用层
这是最上面的一层,直接面对的是用户。它的数据就放在TCP数据包的"数据"部分。