TCP/IP协议头部结构体

http://blog.csdn.net/ithomer/article/details/5662383

IP和TCP都20字节,IP存放地址,TCP存放端口。TCP还存放一些用于TCP特定协议的内容,序列号、确认号

// i386 is little_endian.
#ifndef LITTLE_ENDIAN
#define LITTLE_ENDIAN   (1)   //BYTE ORDER
#else
#error Redefine LITTLE_ORDER
#endif
//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;
//UDP头部,总长度8字节
typedef struct _udp_hdr
{
	unsigned short src_port; //远端口号
	unsigned short dst_port; //目的端口号
	unsigned short uhl;      //udp头部长度
	unsigned short chk_sum;  //16位udp检验和
}udp_hdr;
//ICMP头部,总长度4字节
typedef struct _icmp_hdr
{
	unsigned char icmp_type;   //类型
	unsigned char code;        //代码
	unsigned short chk_sum;    //16位检验和
}icmp_hdr;

  

时间: 2024-11-05 12:32:43

TCP/IP协议头部结构体的相关文章

TCP/IP报文头部结构

IP协议 IP协议是TCP/IP协议族的动力,它为上层协议提供无状态.无连接.不可靠的服务. 优点:简单,高效. IPv4首部一般是20字节长.在以太网帧中,IPv4包首部紧跟着以太网帧首部,同时以太网帧首部中的协议类型值设置为0800无状态:IP通信双方不同步传输数据的状态信息,所有的IP数据报的传输都是独立的.所以容易发生重复和乱序的情况并且IP层不予处理. 然后将这些乱序的交给上层传输层(TCP/UDP等)来处理,将其处理成有序的,正确的.再交给应用层. 不可靠:IP协议不能保证IP数据报

TCP/IP协议之IP层

TCP/IP协议的结构参见下图.有应用层,运输层,网络层,链路层. 但是如果更细化的话,其实还有几层没在这上面体现出来. 1 表示层:数据格式化,代码转换,加密. 没有协议 2 会话层:解除或者建立与其他结点的联系.没有协议 3 物理层:以二进制形式在物理链路上传输数据.协议有ISO2100,IEEE802 在上图中加上这三层协议.就构成了OSI七层协议网络模型.从上到下分别是应用层,表示层,会话层,传输层,网络层.数据链路层,物理层. 为什么一个数据传输要分成这么多层呢.统一为一个模块不行么.

《TCP/IP协议详解 卷1》 第二章 Internet 地址结构

Internet 地址结构 连接到Internet的每个设备至少要有一个IP地址.基于TCP/IP协议的专用网络中使用的设备也需要IP地址. 表示IP地址 IPv4地址: 32bit 采用点分四组或者点分十进制表示.例如165.195.130.105 IPv6地址: 128bit 采用块或字段的四个十六位进制数表示.例如5f05:2000:80ad:5800:0058:0800:2023:1d71 该表示方法有以下共识: 块前导0必须省略,如上面的地址可以写成5f05:2000:80ad:580

TCP/IP协议族(一) HTTP简介、请求方法与响应状态码

接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单的聊一下TCP/IP协议族,然后聊一下HTTP协议,然后再聊一下SSL上的HTTP(也就是HTTPS)了.当然TCP/IP协议族是个老生常谈的话题,网络上关于该内容的文章一抓一大把呢,但是鉴于其重要性,还是有必要系统的总结一下的. 一.TCP/IP协议组简述 在聊HTTP与HTTPS之前呢,我们先简

OSI七层模型详解 TCP/IP协议

总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转换,数据加密 没有协议 会话层 解除或建立与别的接点的联系 没有协议 传输层 提供端对端的接口 TCP,UDP 网络层 为数据包选择路由 IP,ICMP,OSPF,EIGRP,IGMP 数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,MTU 物理层 以二进制数据形式在物理媒体上

TCP/IP数据包结构具体解释

[关键词] TCP IP 数据包 结构 具体解释 网络 协议 一般来说,网络编程我们仅仅须要调用一些封装好的函数或者组件就能完毕大部分的工作,可是一些特殊的情况下,就须要深入的理解 网络数据包的结构,以及协议分析.如:网络监控,故障排查等-- IP包是不安全的,可是它是互联网的基础,在各方面都有广泛的应用.由IP协议衍生的协议族有10数种(据我所知),以后还会出现 很多其它的基于IP的协议- 先从实际出发吧! 一般我们在谈上网速度的时候,专业上用带宽来描写叙述,事实上不管说网速或者带宽都是不准确

深入浅出--iOS的TCP/IP协议族剖析&&Socket

深入浅出--iOS的TCP/IP协议族剖析&&Socket 简介 该篇文章主要回顾--TCP/IP协议族中的TCP/UDP.HTTP:还有Socket.(--该文很干,酝酿了许久!你能耐心看完吗?) 我在这个文章中,列举了常见的TCP/IP族中的协议,今天主角是--传输层协议. 传输层(Transport Layer)是OSI(七层模型)中最重要.最关键的一层,它负责总体的数据传输和数据控制的一层,传输层提供端到端(应用会在网卡注册一个端口号)的交换数据的机制,检查分组编号与次序.传输层对

TCP/IP协议模型详解

一.网络协议模型 1.OSI七层网络协议模型 OSI七层协议(Open System Interconnection):将网络连接过程分成数个层次(layer),每个层次负都有特定的独立功能,且每个层次的程序代码可以独立撰写,每个层次间的功能不会相互干扰. 说明: 1)越接近硬件的层次为底层(layer1),越接近应用程序的则为高层(layer7) 2)接收端或者发送端,每一层只认识对方的同一层次的数据 3)每层都有其独特的头部数据header,告知对方信息,其后的数据为真实数据 (1)物理层P

(转)TCP/IP协议与UDP/IP协议的区别

TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议, 也就是说,在收发数据前,必须和对方建立可靠的连接. 一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,只简单的描述下这三次对话的简单过程: A ---> B //主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话: A <--- B //主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作) //的数据包:“可以