TCP/IP协议族是一个四层协议系统,从下到上分别是:数据链路层、网络层、传输层以及应用层
各层协议如下:
数据链路层:ARP(地址解析协议),RARP(逆地址解析协议);
网络层:ICMP(因特网控制报文协议),IP(因特网协议);
传输层:TCP(传输控制协议),UDP(用户数据报协议);
应用层:ping,telent,OSPF,DNS;
各层功能:
数据链路层是用来实现网卡接口的网络驱动程序,数据链路层的协议实现了IP地址和机器物理地址之间的相互转换,由于上层协议使用下层协议的服务(通过封装(每层的协议都在上层的数据的基础上加上自己的头部信息有时还会加上尾部信息)来实现),因此网络层要调用数据链路层,则要将数据链路层的物理地址转换为网络层使用的IP地址,这也是ARP协议的用途。
网络层是用来实现数据包的选路和转发,IP协议是根据数据包的目的IP地址来决定如何投递它,如果数据包不能发给目标主机的话那么IP协议就为它寻找合适的下一跳路由器,并将数据包交给路由器来转发,直到数据包到达目的主机。
ICMP 是用来检测网络连接的,报文格式如下;
8位类型字段用来区分报文类型,它又将ICMP报文分为差错报文和查询报文,差错报文是用来回应网络错误的而查询报文是用来查询网络信息的。
传输层是为两台主句提供端到端的通信;
TCP协议是为应用层提供提供可靠的,面向连接的和基于流的服务,TCP服务使用超时重传、数据确认等方式来确保数据包被正确的发送到目的端;
UDP是不可靠的,无连接的和基于数据报的服务,如果数据包在出现中途丢失则UDP协议只会通知应用程序发送失败而已;
应用层是负责处理应用程序的逻辑,比如文件传输,名称查询等等;
ping 是应用程序,不是协议,它除过利用ICMP报文检测连接,也是调试网络环境的必备工具。
数据链路层,网络层,传输层在内核空间中实现,应用层在用户空间中实现。
可以用etc/services文件来查看所有知名的应用层协议,以及使用了哪些传输层的服务。