Linux网络内核基础框架

本文了解的具体内容与核心

在这里插入图片描述

TCP/IP 协议体系

在这里插入图片描述

  • 应用层:为网络用户提供各种服务,例如电子邮件、文件传输等。
  • 表示层:为不同主机间的通信提供统一的数据表示形式。
  • 会话层:负责信息传输的组织和协调,管理进程会话过程。
  • 传输层:管理网络通信两端的数据传输,提供可靠或不可靠的传输服务。
  • 网络层:负责数据传输的路由选择和网际互连
  • 数据链路层,负责物理相邻(通过网络介质相连)的主机间的数据传输,主要作用包括物理地址寻址、数据帧封装、差错控制等。该层可分为逻辑链路控制子层(LLC)和介质访问控制子层(MAC)。
  • 物理层,负责把主机中的数据转换成电信号,再通过网络介质(双绞线、光纤、无线信
    道等)来传输。该层描述了通信设备的机械、电气、功能等特性。

通常,上述的传输层、网络层、数据链路层和物理层又被依次称为第四层、第三层、第二层和第一层。相比于OSI体系,TCPIP 协议体系的架构更加简单实用:
在这里插入图片描述
说明:
在这里插入图片描述

注意:

  1. 除了上述标准的四个层次外,TCP/IP协议体系还需要路由协议来管理数据传输路径,ARP协议来管理本地网络寻址。这两部分都在Linux网络内核中实现
  2. 为支持应用程序访问网络服务,内核提供了编程接口,即套接字接口。(俗称网络编程)

网络数据包的封装与解封

以 FTP 客户/服务器工作过程为例,描述 TCP/IP 协议体系处理流程
在这里插入图片描述
文字描述流程:
发送

  1. 第一,在应用层,FTP 协议模块在文件数据前部添加 FTP 头部(标准的 FTP 协议数据段),把文件数据封装成FTP数据:
  2. 第二,在传输层,TCP协议模块在FTP数据前部添加TCP头部(标准的 TCP协议数据段),把FTP数据封装成TCP数据(段):
  3. 第三,在网络层,IP协议模块在 TCP 数据前部添加 IP 头部(标准的 I P协议数据段),把 TCP 数据封装成 IP 数据(分组);
  4. 第四,在网络介质层,以太网设备驱动程序在数据前部和后部添加以太网头部和尾部(标准的以太网数据段),把IP数据封装成以太网数据(帧)。
  5. 最后,以太网设备把以太网数据转换成电信号,通过以太网线将数据信号传给客户端。

接收

  1. 第一,检测到网线上的电平信号后,以太网卡尝试把收到的数据转换成完整的以太网数据:
  2. 第二,如果以太网卡成功获取一个发给本客户端的数据,则启动驱动程序去掉以太网数据的头部和尾部,得到被封装的IP数据,并将该数据递交给网络层;
  3. 第三,在网络层,IP 协议模块去掉 IP 数据头部,还原被封装的 TCP 数据,并递交给传输层;
  4. 第四,在传输层,TCF协议模块去掉 TCP 数据头部,还原被封装的FTP 数据,并递交给应用层:
  5. 第五,在应用层FTP协议模块去掉 FTP数据头部,还原被封装的文件数据。

分片知识补充
传输文件时,TCP/IP协议体系必须考虑网络介质对网络数据单元的尺寸限制。当文件长度超出了最大尺寸限制时,服务器端把文件数据分成一些小的分片,然后分别封装发送。当接收到这些分片后,客户端把分片重新组合成原始文件。

linux网络内核组成

在这里插入图片描述

  • 套接字接口:网络内核最顶层是支持应用程序开发的函数接口,这是一系列标准函数。
  • 套接字支持多种不同类型的协议族:UNIX域协议族、TCP/IP协议族、IPX协议族等。本书只讨论TCP/IP协议族对应的套接字(INET套接字),该套接字又包括3个基本类型:SOCK_STREAM、SOCK_DGRAM和SOCK_RAW。通过SOCK_STREAM接可以访问TCP协议、SOCK_DGRAM套接字可以访问UDP协议、SOCK_RAW套接字可以直接访问IP协议。可见,套接字接口是网络内核的入口
  • 传输层和网络层。套接字往下依次是传输层和网络层。传输层包括标准的TCP和 UDP协议模块,而网络层包括标准的 IP 协议模块。
  • 数据链路层。对于需要逻辑链路的网络,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值