位置: 编程技术 - 正文

linux网络协议是什么?该如何去理解?(linux网络协议栈内核分析)

发布时间:2024-02-26

推荐整理分享linux网络协议是什么?该如何去理解?(linux网络协议栈内核分析),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux 路由协议,linux wifi协议栈,linux网络传输协议,linux 协议,linux网络协议栈内核分析,linux 协议,linux 网络协议栈,linux 网络协议,内容如对您有帮助,希望把文章链接给更多的朋友!

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

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

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

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

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

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

linux网络协议是什么?该如何去理解?(linux网络协议栈内核分析)

  传输层的作用主要是提供端到端,说白一点就是提供应用程序之间的通信,传输层最着名的协议非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网络协议栈内核分析

本文链接地址:https://www.jiuchutong.com/biancheng/353505.html 转载请保留说明!

上一篇:linux下 如何修改命令行提示符路径提示符路径长度(linux常用命令修改)

下一篇:Linux系统怎样识别没有扩展名的文件类型? 用file命令解决(看linux系统)

  • 职工旅游不计入福利费
  • 机械费可以计入劳务单价吗
  • 研发费用辅助账谁来做
  • 电信要收取安装费吗
  • 装载机属于哪种车型
  • 预支差旅费属于什么凭证
  • 分税制的内容有哪些?
  • 补开的银行手续费发票怎么做账
  • 淘宝企业店铺的钱会打到哪里
  • 汽车融资租赁行业发展趋势
  • 成本票最多开多少
  • 开专票附加8个税点怎么计算?
  • 2021年营业额多少需要交税
  • 6位数开票代码
  • 批发企业购进商品发生的进货费用可以选择下列
  • 事业单位固定资产报废的账务处理
  • 企业社保缴费工资
  • 取得成本tc
  • 资产负债表里的存货怎么算
  • 软件开发公司排行榜
  • 供热企业收取采暖费标准
  • PHP:pg_result_seek()的用法_PostgreSQL函数
  • php批量发送邮件
  • 给客户回扣如何做账
  • 来料加工企业需注意什么
  • 减值准备递延所得税资产
  • 小企业会计准则和一般企业会计准则的区别
  • phpwhile循环多维数组
  • 税收变动作用
  • js如何实现异步编程
  • 商业银行流动性风险监管指标
  • opencv识别车牌
  • 微信小程序实现轮播图
  • python访问字符串
  • 公司购买手机的发票
  • 员工食堂买菜账务流程
  • 长期借款属于什么会计分录
  • 信用减值损失在贷方表示什么
  • sqlserver 删除数据
  • 车辆购置税相关法律规定
  • 用友t3软件财务软件具体操作
  • 客户提现产生的费用计入
  • 费用报销冲抵借支
  • 收到支付宝认证怎么做账
  • 利润表期初余额怎么填
  • 电子监控系统安装与维修
  • 累计摊销可以做什么分录
  • 加计扣除要交企业所得税吗
  • 会计错账的更正方法及适用范围
  • 原始凭证的会计分录
  • sql like多个
  • mysql 常用
  • sqlserver合并脚本工具
  • 通过SQL语句直接把表导出为XML格式
  • mysql 通过拷贝数据文件的方式进行数据库迁移实例
  • win10 bios模式
  • 怎么把html转换成psd
  • ubuntu20.04最小化安装教程
  • linux获取主目录的命令
  • Yosemite使用技巧 如何使用Yosemite mac信息功能共享电脑屏幕教程
  • win10安装失败
  • win8的系统
  • 系统自动保存文件在哪里
  • win10系统安装cad2008的注册机无法打开
  • jsonarray fromobject
  • Extjs优化(一)删除冗余代码提高运行速度
  • [置顶] 此外,车牌号:454118(懂得都懂[doge])
  • 表格指定高度是多少
  • jquery 写文件
  • shell脚本 教程
  • 浅谈如何培养孩子的注意力
  • jquery 弹出页面
  • 浅谈 javascript 事件处理
  • adb shell命令
  • javascript数据结构与算法百度云视频资源
  • 蒲河大集是什么多少号沈阳大集各个大集多少号
  • 太原公安分局有几个
  • 苏州地方税务
  • 机票验真查询系统
  • 签订设计合同
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号