现在因特网使用的主流协议族是TCP/IP协议族,它是一种分层、多协议的通信体系。
TCP/IP是一个四层协议系统,自底向上分别是数据链路层、网络层、传输层和应用层。每一层完成不同的功能,且通过很多协议来实现,下层协议为上层协议提供服务。如下图所示:
在上图中,发送端发送一个“hello”,要依次经过应用层、传输层、网络层、数据链路层,每经过一层都会加一个头部(数据链路层不仅会加头部,也会加一个尾部)。数据通过物理媒介传输的过程中会经过一个又一个的路由器,每经过一个路由器都从数据链路层去掉头和尾到达网络层取出网段,这样路由器才知道数据是发往哪里的,然后再加上头部和尾部发往下一个路由器,直至到达接收端。数据到达接收端后又依次经过数据链路层、网络层、传输层、应用层,每经过一层都去掉相应的头部(数据链路层不仅会去掉相应的头部,也会去掉相应的尾部)。
数据链路层
数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。不同的物理媒介有不同的电气特性,网络驱动程序隐藏了这些细节,为上层协议提供一个统一的接口。
数据链路层两个常用的协议是ARP协议(Address Resolve Protocol,地址解析协议)和RARA协议(Reverse Address Resolve Protocol,逆地址解析协议)。他们实现了IP地址与机器物理地址之间的相互转化。网络层使用IP地址来寻址一台机器,而数据链路层使用使用物理地址来寻址一台机器,因此网络层必须先将目标机