TCP/IP协议族是一个四层协议系统,自底而上分别是数据链路层、网络层、传输层和应用层。每一层完成不同的功能,

且通过若干协议来实现,上层协议使用下层协议提供的服务。

 

 

 

 

1、数据链路层

      负责帧数据的传递。(经过数据链路层封装的数据称为帧)

      数据链路层两个常用的协议时ARP(地址解析协议)和RARP(逆地址解析协议)。它们实现了IP地址和机器物理地址之间的相互转换。

网络层使用IP地址寻址一台机器,而数据链路层使用物理地址寻址一台机器,因此网络层必须先将目标机器的IP地址转换为其物理地址,

才能使用数据链路层提供的服务,这就是ARP协议的用途。RARP协议仅用于网络上的某些无盘工作站(没有硬盘)。因缺乏存储设备,

无盘工作站无法记住自己的IP地址,但他们可以利用网卡上的物理地址来向网络管理者(服务器或网络管理软件)查询自身的IP地址。

运行RARP服务的网络管理者通常存有该网络上所有机器的物理地址到IP地址的映射。

2、网络层

      负责数据怎样传递过去。

      网络层实现数据包的选路和转发。WAN(广域网)通常使用众多分级的路由器来连接分散的主机或LAN(局域网),因此,

通讯的两台主机一般不是直接相连的,而是通过多个中间节点(路由器)连接的。网络层的任务就是选择这些中间节点,

已确定两台主机之间的通讯路径。同时,网络层对上层协议隐藏了网络拓扑连接的细节,使得在传输层和网络应用程序看来,

通讯的双方是直接相连的。

3、传输层

  负责传输数据的控制(准确性、安全性)

  传输层为两台主机上的应用程序提供端到端(end to end)的通信。与网络层使用的逐跳通信方式不同,传输层只关心通信的

起始端和目的端,而不在乎数据包的中转过程。

 

    垂直的实线箭头表示TCP/IP协议族各层之间的实体通信,而水平的虚线箭头表示逻辑通信线路。传输层为应用程序封装了一条

端到端的逻辑通信链路,它负责数据的收发、链路的超时重传等。

      传输层协议主要有三个:TCP 协议、UDP协议、SCTP协议。

4、应用层

      负责数据的展示和获取。

      数据链路层、网络层、传输层负责处理网络通信细节,这部分必须既稳定又高效,因此它们都在内核空间中实现。而应用层则在

用户空间中实现,因为它负责处理众多逻辑,比如文件传输、名称查询和网络管理等。如果应用层也在内核中实现,则会让内核变的

十分庞大。当然,也有少数服务器程序是在内核中实现的,这样代码就无须在用户空间和内核空间来回切换(主要是数据的复制),

极大地提高了工作效率。不过这种代码实现起来较复杂,不够灵活且不便于移植。