我是靠谱客的博主 文艺香菇,最近开发中收集的这篇文章主要介绍协议栈开发,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

 

#include<stdio.h>

// 以太网帧头封装 18字节头部
#define ETH_LENGTH 6  //宏定义以太网帧长6字节;目的Mac地址和源Mac地址 
 struct ethdr{
     unsigned char h_dest[ETH_LENGTH];
     unsigned char h_src[ETH_LENGTH];
     unsigned short proto;
 }; 
// ip头部20—60字节
 struct iphdr{
     unsigned char version:4;
                   hdrlen:4;
     unsigned char tos;
     unsigned short total_len;
     
     unsigned short id;
     unsigned short flag:3;  // 3位标志位 
                    offset:13;  //13位片偏移
                    
    unsigned ttl; // Linux默认64跳,window255跳 
    unsigned char protocol; // 8位协议位,表示传输层具体协议
    unsigned short check; //  16位 
     
    unsigned int sip;// 32位 源ip地址 
    unsigned int dip; // 32位 目的ip地址 
    
 }? end iphdr ?;
 
// 8字节udp头部 
struct udphdr{    
    unsigned short sport; // 2字节源端口号 
    unsigned short dport; // 2字节目的端口号 
    unsigned short len; // 2字节udp长度 
    unsigned short check; // 2字节校验 
};

struct udppkt{
    
    struct ethhdr eh;
    struct iphdr ip;
    struct udphdr udp;
    unsigned char body[0]; // 定义一个柔性数组 
            
};

int main(){
    struct ethhdr "eh;
    struct nm_desr

 

最后

以上就是文艺香菇为你收集整理的协议栈开发的全部内容,希望文章能够帮你解决协议栈开发所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部