linux内核网络子系统初探---概述

linux内核网络子系统初探—概述

一、网络模型 简单介绍

学习网络时,必定能在各种教材资料里见到以下三种网络模型:
在这里插入图片描述
三种模型间的差异:

  • OSI七层模型是理论上的网络模型,从功能方面分成了相对独立的7个层次,由于太复杂所以仅停留在理论上,并没有实际应用。
  • TCP/IP四层模型是商用的模型,是由实际应用发展总结出来的。
  • 五层模型一般是教学目的,为了介绍网络原理设计的,采取折中的方法结合了OSI与TCP/IP模型的特点。

下图是七层与四层模型具体功能的对比图,可基本了解网络子系统的功能组成:
在这里插入图片描述
这几种模型是根据功能划分的,内核的实现代码不是按这样分层次编写的,每一模型层可能对应着许多具体的驱动接口层。
PS:本系列提及的“应用层”、“传输层”、“网络层”、“数据链路层”、“物理层”均指代的是五层模型中对应的层。

二、 网络基础知识

  • 互联:在internet里,互联表示多个计算机网络在物理与逻辑上的连接。网络协议即是统一规定了互联的具体规则。
  • PDU(protocol data unit):网络模型中,每一层使用自己的协议与另一系统内的对应层相互通信,每层协议在对等层间交换的信息叫PDU协议数据单元。
    在这里插入图片描述
  • 网络数据的封装、解封:
    在这里插入图片描述
    在这里插入图片描述
  • ipv4与ipv6:ipv6被称为下一代互联网的协议,是由于ipv4地址逐渐耗尽才设计的ipv6。两者最直观的差异在于ip地址。ipv4地址共32bit,ipv6地址扩展到128bit。目前一般提到的ip协议指的是ipv4。

三、最初的linux内核网络模块

内核版本号时间内核版本发展情况
v0.011991/9第一个正式向外发布的Linux内核版本,此时代码里还没有网络支持
v0.961992/5开始加入网络支持,此时linux/net里只支持本地socket处理,没有tcp/ip相关协议族,不算严格意义上的网络模块
v1.01994/3Linux 1.0版本正式发布,linux的使用逐渐广泛
从linux v1.0开始,内核才真正实现了网络协议栈功能。
linux v1.0代码中网络部分:
[root@localhost linux-1.0]# ls net/
ddi.c  inet  Makefile  socket.c  Space.c  unix
[root@localhost linux-1.0]# ls net/inet/
arp.c       dev.h   icmp.h  loopback.c  protocol.c  README    skbuff.h  tcp.h    utils.c
arp.h       eth.c   inet.h  Makefile    protocol.h  route.c   sock.c    timer.c
datagram.c  eth.h   ip.c    packet.c    raw.c       route.h   sock.h    udp.c
dev.c       icmp.c  ip.h    proc.c      raw.h       skbuff.c  tcp.c     udp.h
[root@localhost linux-1.0]# ls net/unix/
Makefile  proc.c  sock.c  unix.h

其中,unix子文件夹是unix域协议族的相关代码。

PS:关于unix
unix域协议族是client/server在同一台主机上通信时使用的一种机制,分为两类套接字:字节流套接字(类似于TCP)和数据报套接字(类似于UDP)。UNIX域协议特点:在同一台主机上的传输速度比tcp/ip协议栈快大概两倍。

linux内核网络子系统初探 这个系列,将对照着最原始版本 v1.0 的代码,初步系统性的学习linux内核代码中的网络部分。后续文章将主要围绕socket层(对应着应用层)、tcp+udp层(对应着传输层)、ip层(对应着网络层)、ethernet层(对应着数据链路层) 这5个网络子系统核心部分(涉及到5层网络模型中的4层,内核中没有物理层)来讲解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值