一、主要四层协议系统
注:顺序为从下到上
存在在内核空间的:
- 数据链路层
- 网络层
- 传输层
存在在用户空间的:
- 列表内容
二、对四层协议系统的简单理解
1、数据链路层
(1)常用协议是ARP和RARP,其中RAP是根据IP地址获取一个物理地址,而RARP则是相反的,通过一个物理地址获得IP地址。
(2)ARP用途:数据链路层是通过物理地址去寻找一个机器的,比如MAC地址。所以网络需要把目的IP地址转化成物理地址,才能有条件去使用数据链路层提供的服务
(3)RARP用途:在某些没有存储设备的工作站,因为无法记录下自己的IP地址,只能通过自己的物理地址去申请查询自己的IP地址
2、网络层
(1)网络层主要用的协议是IP协议和ICMP协议。其中IP协议是因特网协议,网络层最核心的协议,其次是因特网控制报文协议,是IP协议的重要补充,主要用于检测网络连接。实现数据包的选路和转发。
ICMP报文格式
8位类型 | 8位代码 | 16位校验和 |
---|
注:报文的内容主要取决于报文的类型
(2)8位类型主要用于区分报文的类型,其中ICMP报文分两大类。其中一类是差错报文,负责回应网络错误;另一类是查询报文,用来查询网络信息(比如Ping),另一些ICMP报文还要使用8位代码来细分不同的条件。而ICMP报文使用16位校验和字段来进行循环冗余校验,看报文在传输的过程是否有损坏。
注意:ICMP协议不是真正意义上的网络层协议,只是因为它使用了同一层的IP协议提供的服务
传输层
传输层为两台机器提供了一端到另一端的通信,只关系它的起点端和目的端,和网络层不一样,网络层是关心数据包怎么中转的。
(1)传输层的主要协议有TCP协议,UDP协议,SCTP协议。其中TCP协议是基于流的协议,没有大小的限制,是可靠的面相连接的服务。它能够讲数据不断地从数据的一端流入另一端,没有限制,通过逐个字节想数据流中写入东西。然而UDP和TCP是相反的,UDP是面向无连接,不可靠的,基于数据包的服务。它的发送方式,是有限的,每一个UDP数据包都有一个限制的长度,接收端只可以一次性读出,否则数据会有失损。
(2)SCTP协议是一种比较新的协议,是为了在因特网上电话信号的传输而设计的。
应用层
(1)应用层负责处理应用程序的逻辑。与此不同的是数据链路层,网络层,传输层都是负责处理网络细节的,是在内核中完成的,只有应用层是在用户空间中实现的。原因是:如果应用层也在内核中实现会使得内核变得庞大,只有少数服务器程序是在内核中实现的,这样的代码不需要在用户空间和内核空间来回切换。
(2)应用层协议很多,比如ping,telnet,OSPE,DNS
注:应用层协议或者程序有时候可能会跳过传输层直接使用网络层提供的服务