每发一个包,不论大小协议头会占用一定的空间 TCP头20字节,IP头20字节,MAC头14字节,共54字节

//Mac头部,总长度14字节 
typedef struct _eth_hdr 
    unsigned char dstmac[6]; //目标mac地址 
    unsigned char srcmac[6]; //源mac地址 
    unsigned short eth_type; //以太网类型 
}eth_hdr; 
//IP头部,总长度20字节 
typedef struct _ip_hdr 
    #if LITTLE_ENDIAN 
    unsigned char ihl:4;     //首部长度 
    unsigned char version:4, //版本  
    #else 
    unsigned char version:4, //版本 
    unsigned char ihl:4;     //首部长度 
    #endif 
    unsigned char tos;       //服务类型 
    unsigned short tot_len;  //总长度 
    unsigned short id;       //标志 
    unsigned short frag_off; //分片偏移 
    unsigned char ttl;       //生存时间 
    unsigned char protocol;  //协议 
    unsigned short chk_sum;  //检验和 
    struct in_addr srcaddr;  //源IP地址 
    struct in_addr dstaddr;  //目的IP地址 
}ip_hdr; 
//TCP头部,总长度20字节 
typedef struct _tcp_hdr 
    unsigned short src_port;    //源端口号 
    unsigned short dst_port;    //目的端口号 
    unsigned int seq_no;        //序列号 
    unsigned int ack_no;        //确认号 
    #if LITTLE_ENDIAN 
    unsigned char reserved_1:4; //保留6位中的4位首部长度 
    unsigned char thl:4;        //tcp头部长度 
    unsigned char flag:6;       //6位标志 
    unsigned char reseverd_2:2; //保留6位中的2位 
    #else 
    unsigned char thl:4;        //tcp头部长度 
    unsigned char reserved_1:4; //保留6位中的4位首部长度 
    unsigned char reseverd_2:2; //保留6位中的2位 
    unsigned char flag:6;       //6位标志  
    #endif 
    unsigned short wnd_size;    //16位窗口大小 
    unsigned short chk_sum;     //16位TCP检验和 
    unsigned short urgt_p;      //16为紧急指针 
}tcp_hdr;

TCP包头的更多相关文章

  1. 以太网/ IPV4/IPV6包头,TCP包头格式回顾

    问题:以太网数据包,承载的数据内容大小46~1500字节,是如何来的? 以太网数据包结构  以太网协议规定最小链路层数据包(帧)为64字节,其中以太网首部+尾部共计18字节(源/目的MAC12字节:上 ...

  2. [转]使用wireshark分析TCP/IP协议中TCP包头的格式

    本文简单介绍了TCP面向连接理论知识,详细讲述了TCP报文各个字段含义,并从Wireshark俘获分组中选取TCP连接建立相关报文段进行分析. 一.概述 TCP是面向连接的可靠传输协议,两个进程互发数 ...

  3. Linux网络编程--wireshark分析TCP包头的格式

    摘要:     本文简介了TCP面向连接理论知识,具体讲述了TCP报文各个字段含义.并从Wireshark俘获分组中选取TCP连接建立相关报文段进行分析. 一.概述     TCP是面向连接的可靠传输 ...

  4. TCP/IP协议栈概述及各层包头分析

    TCP/IP协议栈中各层包头的分析 Protocol列表示的是该数据包最高层对应的协议,Length列表示该包的长度(包括从底层的协议到最高层的协议,其中包头一般是,链路层14字节,IP20字节,TC ...

  5. TCP的三次握手(建立连接)和四次挥手(关闭连接)

    参照: http://course.ccniit.com/CSTD/Linux/reference/files/018.PDF http://hi.baidu.com/raycomer/item/94 ...

  6. wireshark抓包工具简介以及tcp三次握手的一些含义

    wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示网络封包的详细信息.使用wireshark的人必须了解网络协议,否则就看不懂wireshark了.为了安全考虑, ...

  7. TCP/IP协议与UDP协议的区别

    TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接.一个TCP连接必须要经过三次“对话”才能建立起来, ...

  8. TCP协议与UDP协议的区别

    TCP协议与UDP协议的区别(转) 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! ...

  9. TCP、UDP协议间的区别(转)

    一.TCP/IP协议是一个协议簇.里面包括很多协议的.UDP只是其中的一个.之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了. TCP/IP协议集包括应用层,传输层 ...

随机推荐

  1. JQuery Highcharts图表控件多样式显示多组数据

    具体实现的效果如图: 具体代码: ASP.NET前台脚本代码: <%@ Page Language="C#" AutoEventWireup="true" ...

  2. R语言实战读书笔记(四)基本数据管理

    4.2 创建新变量 几个运算符: ^或**:求幂 x%%y:求余 x%/%y:整数除 4.3 变量的重编码 with(): within():可以修改数据框 4.4 变量重命名 包reshape中有个 ...

  3. Android 最火的快速开发框架XUtils

    参考:http://www.oschina.net/p/xutils 项目git地址https://github.com/wyouflf/xUtils 目录(?)[-] 最近搜了一些框架供初学者学习比 ...

  4. python练习程序(批量重命名)

    # -*- coding: cp936 -*- import sys,os,string d=0; path="F://test" srcfile=os.listdir(path) ...

  5. 【英语】Bingo口语笔记(16) - 咬舌音和咬唇音的辨读

  6. MySQL与Oracle 差异比较之三函数

    函数 编号 类别 ORACLE MYSQL 注释 1 数字函数 round(1.23456,4) round(1.23456,4) 一样:ORACLE:select round(1.23456,4) ...

  7. Suse linux 11 SP2 nginx 使用笔记

    1. 下载源代码 http://nginx.org/en/download.html   2. DAV模块缺省没有编译,要加入编译选项 # ./configure --with-http_dav_mo ...

  8. vsftpd2.3.2安装、配置详解

    一.vsftpd 简介     Vsftpd是一个基于GPL发布的类UNIX系统的ftp服务器软件.其全称是Very Secure FTP Deamon,在安全性.速度和稳定性都有着不俗的表现.在安全 ...

  9. windows 自动关机命令

    Windows 的关机是由Shutdown.exe程序来控制的,位于Windows\System32文件夹中.如果想让Windows 2000也实现同样的效果,可以把Shutdown.exe复制到系统 ...

  10. ylb:表的结构的修改和基本约束

    ylbtech-SQL Server:SQL Server-表的结构的修改和基本约束 SQL Server 表的结构的修改和基本约束. 1,表的结构的修改和基本约束返回顶部 use master go ...