Linux内核--网络协议栈(二)UDP数据包发送

这篇具有很好参考价值的文章主要介绍了Linux内核--网络协议栈(二)UDP数据包发送。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、引言
二、数据包发送
------>2.1、数据发送流程
三、协议层注册
------>3.1、socket系统调用
------>3.2、socket创建
------>3.3、协议族初始化
------>3.4、对应协议的socket创建
------------>3.4.1、sock
------>3.5、协议注册
四、通过套接字发送网络数据
------>4.1、inet_sendmsg

一、引言

本文首先从宏观上概述了数据包发送的流程,然后分析了协议层注册进内核以及被套接字的过程,最后介绍了通过套接字发送网络数据的过程。

二、数据包发送

2.1、数据发送流程

从宏观上看,一个数据包从用户程序到达硬件网卡的整个过程如下:文章来源地址https://www.toymoban.com/news/detail-791669.html

  1. 使用系统调用(如 sendto,sendmsg 等)写数据
  2. 数据分段socket顶部,进入socket协议族(protocol family)系统
  3. 协议族处理

到了这里,关于Linux内核--网络协议栈(二)UDP数据包发送的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TCP和UDP协议发送数据包的大小方面的知识介绍

    MTU最大传输单元,这个最大传输单元实际上和链路层协议有着密切的关系,EthernetII帧的结构DMAC+SMAC+Type+Data+CRC由于以太网传输电气方面的限制,每个以太网帧都有最小的大小64bytes最大不能超过1518bytes,对于小于或者大于这个限制的以太网帧我们都可以视之为错误的数据帧,一

    2024年02月05日
    浏览(30)
  • 如何学习 Linux 内核网络协议栈

    内核显然需要一个数据结构来表示报文,这个结构就是 sk_buff ( socket buffer 的简称),它等同于在TCP/IP详解 卷2中描述的 BSD 内核中的 mbuf。 sk_buff 结构自身并不存储报文内容,它通过多个指针指向真正的报文内存空间:   sk_buff 是一个贯穿整个协议栈层次的结构,在各层间传递时

    2024年02月07日
    浏览(33)
  • 浅析linux内核网络协议栈--linux bridge

    本文是参考附录上的资料整理而成,以帮助读者更好的理解kernel中brdige 模块代码。 简单来说,桥接就是把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。 交换机就是这

    2023年04月08日
    浏览(28)
  • 【Linux】【网络】传输层协议:UDP

    UDP传输的过程类似于寄信。 无连接:知道对端的IP和端口号就直接进行传输,不需要建立连接。 不可靠:没有确认机制,没有重传机制;如果因为网络故障该段无法发到对方,UDP协议层也不会给应用层返回任何错误信息。 面向数据报: 不能够灵活的控制读写数据的次数和数量

    2024年02月07日
    浏览(28)
  • 一文讲解如何学习 Linux 内核网络协议栈

    协议栈的细节 下面将介绍一些内核网络协议栈中常常涉及到的概念。 sk_buff 内核显然需要一个数据结构来表示报文,这个结构就是 sk_buff ( socket buffer 的简称),它等同于在TCP/IP详解 卷2中描述的 BSD 内核中的 mbuf。 sk_buff 结构自身并不存储报文内容,它通过多个指针指向真正的

    2023年04月08日
    浏览(71)
  • Linux网络-UDP/TCP协议详解

    2023/10/17 14:32:49 Linux网络-UDP/TCP协议详解 零、前言 一、UDP协议 二、TCP协议 1、应答机制 2、序号机制 3、超时重传机制 4、连接管理机制 三次握手 四次挥手 5、理解CLOSE_WAIT状态 6、理解TIME_WAIT状态 7、流量控制 8、滑动窗口 丢包问题 9、拥塞控制 10、延迟应答 11、捎带应答 12、面

    2024年02月07日
    浏览(36)
  • 性能分析与调优: Linux 使用ELRepo升级CentOS内核

    目录 一、实验 1.环境 2.agent 服务器使用ELRepo升级CentOS内核 二、问题 1. RHEL-7, SL-7 或者 CentOS-7系统如何安装ELRepo 2.RHEL-8或者RHEL-9系统如何安装ELRepo (1)主机 表1-1 主机 主机 架构 组件 IP 备注 prometheus 监测 系统 prometheus、node_exporter  192.168.204.18 grafana 监测GUI grafana 192.168.204.19

    2024年01月23日
    浏览(51)
  • Linux CPU 性能分析工具火焰图(Flame Graphs)认知

    博文内容为 《BPF Performance Tools》 读书笔记整理 详细了解小伙伴可以访问作者官网: https://www.brendangregg.com/flamegraphs.html 有油管上分享的作者在 USENIX ATC 2017 的视屏 理解不足小伙伴帮忙指正 不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼前的风景已经

    2024年02月20日
    浏览(48)
  • ESP32网络开发实例-UDP数据发送与接收

    本文将详细介绍在Arduino开发环境中,如何实现ESP32通过UDP协议进行数据发送与接收。 用户数据报协议 (UDP) 是一种跨互联网使用的通信协议,用于对时间敏感的传输,例如视频播放或 DNS 查找。它通过在数据传输之前不正式建立连接来加速通信。这使得数据可以非常快速地传输

    2024年02月07日
    浏览(31)
  • Linux 下 nc 发送接收 udp、tcp数据

    nc,全名叫 netcat,它可以用来完成很多的网络功能,譬如端口扫描、建立TCP/UDP连接,数据传输、网络调试等等,因此,它也常被称为网络工具的 瑞士军刀 。 一、只服务端使用nc 备注:这种方式只能发送一次数据,不能互相发送 1、udp发送接收数据,udp本质不区分客户端服务

    2024年02月16日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包