linux网络协议是什么?该如何去理解?

网络协议有很多,但大多是针对windows的,那么linux网络协议你是怎么样理解的呢?本文和大家一起探讨这个问题。

Linux网络协议栈基于分层的设计思想,总共分为四层,从下往上依次是:物理层,链路层,网络层,应用层。

Linux网络协议栈其实是源于BSD的协议栈,它向上以及向下的接口以及协议栈本身的软件分层组织的非常好。 Linux的协议栈基于分层的设计思想,总共分为四层,从下往上依次是:物理层,链路层,网络层,应用层。

物理层主要提供各种连接的物理设备,如各种网卡,串口卡等;

链路层主要指的是提供对物理层进行访问的各种接口卡的驱动程序,如网卡驱动等;

网路层的作用是负责将网络数据包传输到正确的位置,最重要的网络层协议当然就是IP协议了,其实网络层还有其他的协议如ICMP,ARP,RARP等,只不过不像IP那样被多数人所熟悉;

传输层的作用主要是提供端到端,说白一点就是提供应用程序之间的通信,传输层最着名的协议非TCP与UDP协议末属了;

应用层,顾名思义,当然就是由应用程序提供的,用来对传输数据进行语义解释的“人机界面”层了,比如HTTP,SMTP,FTP等等,其实应用层还不是人们最终所看到的那一层,最上面的一层应该是“解释层”,负责将数据以各种不同的表项形式最终呈献到人们眼前。

Linux网络核心架构Linux的网络架构从上往下可以分为三层,分别是: 用户空间的应用层。 内核空间的网络协议栈层。 物理硬件层。 其中最重要最核心的当然是内核空间的协议栈层了。

Linux网络协议栈结构Linux的整个网络协议栈都构建与Linux Kernel中,整个栈也是严格按照分层的思想来设计的,整个栈共分为五层,分别是 :

1,系统调用接口层,实质是一个面向用户空间应用程序的接口调用库,向用户空间应用程序提供使用网络服务的接口。

2,协议无关的接口层,就是SOCKET层,这一层的目的是屏蔽底层的不同协议(更准确的来说主要是TCP与UDP,当然还包括RAW IP, SCTP等),以便与系统调用层之间的接口可以简单,统一。简单的说,不管我们应用层使用什么协议,都要通过系统调用接口来建立一个SOCKET,这个SOCKET其实是一个巨大的sock结构,它和下面一层的网络协议层联系起来,屏蔽了不同的网络协议的不同,只吧数据部分呈献给应用层(通过系统调用接口来呈献)。

3,网络协议实现层,毫无疑问,这是整个协议栈的核心。这一层主要实现各种网络协议,最主要的当然是IP,ICMP,ARP,RARP,TCP,UDP等。这一层包含了很多设计的技巧与算法,相当的不错。

4,与具体设备无关的驱动接口层,这一层的目的主要是为了统一不同的接口卡的驱动程序与网络协议层的接口,它将各种不同的驱动程序的功能统一抽象为几个特殊的动作,如open,close,init等,这一层可以屏蔽底层不同的驱动程序。

5,驱动程序层,这一层的目的就很简单了,就是建立与硬件的接口层。 可以看到,Linux网络协议栈是一个严格分层的结构,其中的每一层都执行相对独立的功能,结构非常清晰。 其中的两个“无关”层的设计非常棒,通过这两个“无关”层,其协议栈可以非常轻松的进行扩展。在我们自己的软件设计中,可以吸收这种设计方法。

以上就是如何理解Linux网络协议的方法,根据Linux网络协议四层相互之间的关系了解性的记忆会比较有帮助,谢谢大家的阅读。

(0)

相关推荐

  • Linux网络管理员指南(下载)

    本书同时收录了Linux领域两位领导人物的作品—相当于“Linux 文档项目”的一个印刷版本,展示了Linux 核心概念及其基本结构。对于面向所有主流Linux子系统的支持与管理任务,本书都进行了恰到 ...

  • 网络协议之OSPF的NSSA区域原理与配置

    OSPF路由协议在因特网的发展历程上正起着越来越重大的作用。而NSSA则是在该协议发展过程中产生的一种新的属性。而关于NSSA区域的理解,一直是广大网络爱好者的心头之痒。这篇文章,从NSSA区域的产生 ...

  • Win8系统网络协议如何准确安装或卸载

    网络协议是计算机网络中进行数据建议从而建立的约定和规则,相信不少用户遇到系统网络协议带来的故障问题,比如某些软件或游戏需要不同网络协议才能够正常使用,这时候需要用户手动去安装或卸载相关的网络协议,比如 ...

  • Win10系统访问不了NAS和linux网络共享怎么解决

    Win10系统访问不了NAS和linux网络共享怎么解决 1.按下win键+X键或者在开始菜单右键点击,出现的菜单中选择"控制面板". 2.找到"卸载程序"点击 ...

  • Win10无法访问老的NAS设备或linux网络共享的解决方法

    比较老的NAS设备或者一些Linux系统的SAMBA软件包可能都是使用的是SMB1.x协议,Win10支持SMB 3.1.1协议.无法访问的话,就要确保系统内SMB1.0协议的安装,下面小编就为大家介 ...

  • 网络协议的安装和设置(win10网络协议安装)

    我们在使用电脑的时候,网络协议是计算机网络中,进行数据建议从而建立的约定和规则,如果用户遇到系统网络协议带来的故障问题该怎样解决,比如某些软件或游戏需要不同网络协议才能够正常使用,这时候就需要用户手动 ...

  • Linux网络配置和网络诊断命令介绍

    linux系统得到了越来越多工程师和公司的青睐,那么初学linux系统地朋友们该如何学好linu网络配置和网络诊断的命令呢?下面小编就来给大家讲一下一些基本的常用命令吧. 操作方法 01 在接下来的讲 ...

  • 常用的网络协议小结

    常用的网络协议有哪些 ARP(Address Resolution Protocol)地址解析协议 它是用于映射计算机的物理地址和临时指定的网络地址。启动时它选择一个协议(网络层)地址,并检查这个地址 ...

  • 网络协议是什么?网络协议三要素是什么?

    本文向大家详细介绍网络协议是什么以及网络协议三要素是什么的基础知识,不懂的朋友可以通过本文了解学习! 网络协议是什么 网络协议的定义:为计算机网络中进行数据交换而建立的规则、标准或约定的集合。 一个网 ...