---
title: "Discussion on \"Linux下如何在数据链路层接收原始数据包\" | Hashnode"
description: "Discussion on \"Linux下如何在数据链路层接收原始数据包\". 大多数的网络编程都是在应用层接收数据和发送数据的，程序员无需关注报文的各种报头，网络协议栈会解决这些问题，本文介绍在数据链路层的网络编程方法，介绍如何在数据链路层直接接收从物理层发过来的原始数据包，要得到数据，必须自己解开数据链路层、网络层和传输层的报头，文章给出了一个完整的范例程序，希望本文能帮助读者对网络通信有更深刻的理解；阅读本文需要具备基本的使用socket进行网络编程的能力，熟悉OSI的网络模型，本文对初学者有一定的难度。\n\n1. 概述\n\nlinux下进行网络编程通常都是使用socke..."
url: "https://hashnode.com/posts/180002-link-layer-programming/6395e4b2aa513b26339cf690"
---

[Feed](https://hashnode.com/feed) /

Discussion

# [Linux下如何在数据链路层接收原始数据包](https://whowin.cn/180002-link-layer-programming?utm_source=hashnode&utm_medium=feed)

大多数的网络编程都是在应用层接收数据和发送数据的，程序员无需关注报文的各种报头，网络协议栈会解决这些问题，本文介绍在数据链路层的网络编程方法，介绍如何在数据链路层直接接收从物理层发过来的原始数据包，要得到数据，必须自己解开数据链路层、网络层和传输层的报头，文章给出了一个完整的范例程序，希望本文能帮助读者对网络通信有更深刻的理解；阅读本文需要具备基本的使用socket进行网络编程的能力，熟悉OSI的网络模型，本文对初学者有一定的难度。 1. 概述 linux下进行网络编程通常都是使用socke...

Dec 8, 2022 · 7 min read · whowin.cn  
Updated Oct 15, 2024  
Read the article

-   [#raw-socket](https://hashnode.com/tag/raw-socket)
-   [#linux](https://hashnode.com/tag/linux)
-   [#udp](https://hashnode.com/tag/udp)

## Written by

[whowin](https://hashnode.com/@whowin)

@whowin · Beijing, China

  
[View profile](https://hashnode.com/@whowin)

一枚有30多年经验的退休程序员，主要从事嵌入式软件开发

## Responses

Markdown supported · ⌘↵ to post

No responses yet.
