TCPIP协议头部结构体
TCPIP的知识梳理(按四层结构体系描述)

TCPIP的知识梳理(按四层结构体系描述)TCP/IP协议TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/⽹际协议)是指能够在多个不同⽹络间实现信息传输的协议簇。
TCP/IP协议不仅仅指的是TCP 和IP两个协议,⽽是指⼀个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇,只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
TCP/IP传输协议是严格来说是⼀个四层的体系结构,应⽤层、传输层、⽹络层和数据链路层都包含其中。
OSI参考模型与TCP/IP四层模型对⽐ ⼀、应⽤层协议该层存在的协议:HTTP,DNS,FTP,Telnet,SMTP,RIP,NFSHTTP协议:(后⾯专门⽤⼀篇⽂章详解HTTP和HTTPS)HTTP (HyperText Transfer Protocol 超⽂本传输协议) 基于 TCP,使⽤端⼝号 80 或 8080。
每当你在浏览器⾥输⼊⼀个⽹址或点击⼀个链接时,浏览器就通过 HTTP 协议将⽹页信息从服务器提取再显⽰出来,这是现在使⽤频率最⼤的应⽤层协议。
这个原理很简单:点击⼀个链接后,浏览器向服务器发起 TCP 连接;连接建⽴后浏览器发送 HTTP 请求报⽂,然后服务器回复响应报⽂;浏览器将收到的响应报⽂内容显⽰在⽹页上;报⽂收发结束,关闭 TCP 连接。
HTTP 报⽂会被传输层封装为 TCP 报⽂段,然后再被 IP 层封装为 IP 数据报。
HTTP 报⽂的结构:可见报⽂分为 3 部分:(1)开始⾏:⽤于区分是请求报⽂还是响应报⽂,请求报⽂中开始⾏叫做请求⾏,⽽响应报⽂中,开始⾏叫做状态⾏。
在开始⾏的三个字段之间都⽤空格分开,结尾处 CRLF 表⽰回车和换⾏。
(2)⾸部⾏:⽤于说明浏览器、服务器或报⽂主体的⼀些信息。
(3)实体主体:请求报⽂中通常不⽤实体主体。
TCPIP的层次结构

TCPIP的层次结构TCP/IP 是万维网(WWW)的基础通信协议栈,是指在网络中,网络设备之间的数据通信时,采用的通信协议集合。
URL 就是采用 TCP/IP 协议集合传输数据的一种规范性的表示方式。
TCP/IP 协议一共分为四层,由底往上分别是:第四层:应用层:这是一种最易于人们理解的网络协议类型,也是最容易实现和调试的类型。
它关注的是用户和软件应用程序如何通过网络对话,是一种用来标准化网络应用程序接口的协议,是用户最高级别视角。
常用的协议有:Simple Mail TransferProtocol(SMTP)、 Hypertext Transfer Protocol(HTTP)、 File TransferProtocol(FTP)、DNS 协议等。
第三层:传输层:比如 TCP 和 UDP,这一层就是定义了如何从源地址传到目标地址,并确保传输可靠。
它就是允许网络应用程序在两台主机之间传输数据的,它只提供“端对端”的数据传输,但是它不提供如何在网络上传输的细节,它确保了传输的稳定和可靠性。
第二层:网络层:比如 Internet 协议(IP),这一层就负责选择传输到下一个节点的路径,它还会决定哪些路径更可靠以及哪些路径使得传输数据相对更高效,或者是最短的。
因此它负责网际和组网互联间的数据传输。
第一层:链路层:比如以太网协议(Ethernet),这一层使网络能够实现物理上的连接,如用网线连接硬件设备。
要完成网络报文在物理连接间的转发,则必须有一种用来处理物理和数据链路层功能的协议,如常用的以太网协议。
总的来说,使用 TCP/IP 协议存储在网络中的信息以及传输协议的内容,在从一台主机传输到另一台主机时,将依次经由应用层、传输层、网络层、链路层,最终完成数据传输。
TCP/IP 协议让计算机可以了解网络的另一台计算机以及网络外的所有其它主机的位置,来完成互联网的数据传输。
TCPIP协议头部结构

TCPIP协议头部结构TCP/IP协议是计算机网络通信中最重要的协议之一,它定义了数据在网络中的传输方式和规则。
TCP/IP协议头部是数据传输中包含的一部分,包含了必要的信息以描绘和控制数据传输的过程。
本文将详细介绍TCP/IP协议头部的结构。
TCP/IP协议头部结构如下:首部长度(Header Length):占4位,用于指示TCP/IP协议头部的长度。
由于TCP/IP协议头部中的各字段长度不固定,所以需要首部长度字段来指示实际长度。
首部长度字段的速与单位是4字节,所以一个数据报的首部长度最多为60字节。
服务类型(Type of Service):占8位,用于指示数据报在网络中的处理优先级。
这个字段一般用于指示比如数据报的延迟要求、吞吐量要求、可靠性要求等。
总长度(Total Length):占16位,表示整个IP数据报的长度。
包括首部和数据部分的总长度。
总长度字段可以对IP数据报进行分片和重组操作。
标识(Identification):占16位,用于标识IP数据报的碎片。
当IP数据报需要进行分片时,原始数据报的标识字段会被分片后的每个数据片段所继承。
标志(Flags):占3位,用于指示数据报的分片情况。
包括“不分片”、“更多分片”、“最后一个分片”。
这些标志字段主要用于数据报的重组。
分段偏移(Fragment Offset):占13位,用于表示分片结束的字节数。
当IP数据报需要进行分片时,原始数据报的分段偏移字段会被分片后的每个数据片段所继承。
生存时间(Time to Live):占8位,用于指示数据报在网络中的最大存活时间。
每经过一个路由器,生存时间减1,当生存时间为0时,数据报会被丢弃。
协议(Protocol):占8位,用于指示IP数据报传递给哪个上层协议处理。
例如,TCP协议的值为6,UDP协议的值为17头部校验和(Header Checksum):占16位,用于检验IP首部的完整性。
TCP-IP协议体系结构简介

TCP/IP 协议体系结构简介1、TCP/IP 协议栈协议栈四层模型四层模型TCP/IP 这个协议遵守一个四层的模型概念:应用层、传输层、互联层和网络接口层。
这个协议遵守一个四层的模型概念:应用层、传输层、互联层和网络接口层。
网络接口层网络接口层模型的基层是网络接口层。
模型的基层是网络接口层。
负责数据帧的发送和接收,负责数据帧的发送和接收,负责数据帧的发送和接收,帧是独立的网络信息传输单元。
帧是独立的网络信息传输单元。
帧是独立的网络信息传输单元。
网络接口层将帧网络接口层将帧放在网上,或从网上把帧取下来。
放在网上,或从网上把帧取下来。
互联层互联层互联协议将数据包封装成internet 数据报,并运行必要的路由算法。
数据报,并运行必要的路由算法。
这里有四个互联协议:这里有四个互联协议:网际协议IP :负责在主机和网络之间寻址和路由数据包。
:负责在主机和网络之间寻址和路由数据包。
地址解析协议ARP :获得同一物理网络中的硬件主机地址。
:获得同一物理网络中的硬件主机地址。
网际控制消息协议ICMP :发送消息,并报告有关数据包的传送错误。
:发送消息,并报告有关数据包的传送错误。
互联组管理协议IGMP :被IP 主机拿来向本地多路广播路由器报告主机组成员。
主机拿来向本地多路广播路由器报告主机组成员。
传输层传输层传输协议在计算机之间提供通信会话。
传输协议的选择根据数据传输方式而定。
传输协议在计算机之间提供通信会话。
传输协议的选择根据数据传输方式而定。
两个传输协议:两个传输协议:传输控制协议TCP :为应用程序提供可靠的通信连接。
适合于一次传输大批数据的情况。
并适用于要求得到响应的应用程序。
求得到响应的应用程序。
用户数据报协议UDP :提供了无连接通信,且不对传送包进行可靠的保证。
适合于一次传输小量数据,可靠性则由应用层来负责。
可靠性则由应用层来负责。
应用层应用层应用程序通过这一层访问网络。
应用程序通过这一层访问网络。
OSI七层模型和TCPIP模型及对应协议(详解)

OSI七层模型和TCPIP模型及对应协议(详解)1.OSI七层模型OSI(Open Systems Interconnection)七层模型是国际标准化组织(ISO)制定的一种网络体系结构模型,将计算机网络的功能划分为七个层次,每个层次负责不同的任务。
这些层次从底层到顶层分别为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
-物理层:负责传输比特流,即原始的0和1的比特流。
-数据链路层:将物理层传输的数据流划分为数据帧,并在物理传输媒介上发送和接收数据帧。
-网络层:负责通过不同网络节点进行数据的路由和转发,实现数据包的传输。
-传输层:负责端到端的通信连接,在传输过程中确保数据的可靠传输和错误控制。
-会话层:负责建立、管理和终止应用程序之间的通信会话。
-表示层:负责数据的格式化和解码、加密和解密,确保接收方能够正确理解发送方的数据。
-应用层:提供用户与网络的接口,支持各种应用程序的网络访问和通信。
2.TCP/IP模型TCP/IP模型是一种通信协议体系结构,目前是互联网的基础协议。
TCP/IP模型由四个层次构成,分别为网络接口层、互联网层、传输层和应用层。
-网络接口层:负责将数据帧从物理层传输到网络层,并对数据进行分割和重组。
-互联网层:负责将数据包从源主机传输到目的主机,包括IP协议、ARP协议和ICMP协议等。
-传输层:负责数据的可靠传输和错误控制,包括TCP(传输控制协议)和UDP(用户数据报协议)等。
-应用层:提供用户与网络的接口,支持各种应用程序的网络访问和通信,包括HTTP、FTP、SMTP等协议。
3.OSI七层模型和TCP/IP模型的对应关系及协议:-OSI的物理层对应TCP/IP的网络接口层,协议包括以太网、Wi-Fi 等。
-OSI的数据链路层对应TCP/IP的网络接口层,协议包括以太网、Wi-Fi等。
-OSI的网络层对应TCP/IP的互联网层,协议包括IP、ARP、ICMP等。
tcpip协议包含哪几层

TCP/IP协议包含哪几层TCP/IP协议是互联网通信的基础,它是一组网络通信协议的集合,通过这些协议,不同计算机之间可以在网络上进行可靠的通信。
TCP/IP协议栈由四个层次构成,分别是网络接口层、网络层、传输层和应用层。
1. 网络接口层网络接口层是最底层的协议层,它与物理网络设备直接交互。
该层的主要功能是将数据分割为帧,并控制数据在物理网络中的传输。
在这一层,数据以比特流的形式通过网卡发送和接收。
2. 网络层网络层负责在不同网络之间进行数据包的传输和路由选择。
主要的协议是Internet协议(IP),该协议定义了数据在网络中的传输方式和地址格式。
网络层将原始数据打包成数据包,并通过路由器将其发送到目标主机。
3. 传输层传输层提供端到端的数据传输服务。
它主要使用两个协议:传输控制协议(TCP)和用户数据报协议(UDP)。
TCP提供可靠的数据传输,确保数据按照正确的顺序到达目标主机。
UDP则提供无连接的不可靠传输,适用于实时性要求较高的应用。
4. 应用层应用层是最高层的协议层,它为用户提供了各种网络服务和通信应用。
在这一层,用户可以使用诸如HTTP、FTP、SMTP等协议来实现文件传输、电子邮件发送和网页浏览等功能。
应用层协议是通过各种不同的端口来识别和区分的。
总结起来,TCP/IP协议包含了网络接口层、网络层、传输层和应用层四个层次。
每一层都有自己的功能和协议,通过这些协议的配合,实现了互联网上的可靠通信和各种网络服务。
对于网络工程师和网络管理员来说,深入理解TCP/IP协议的工作原理和每一层的功能,对于解决网络故障和优化网络性能非常重要。
通过掌握TCP/IP协议,我们可以更好地理解互联网的运作方式,并为网络的安全和稳定性做出贡献。
TCPIP协议分为哪几层,请简单描述各层的作用。
TCP/IP协议分为哪几层,请简单描述各层的作用?TCP/IP协议分为四层,分别是:网络接口层:也称为数据链路层或网络接口层,主要负责物理连接和数据链路连接,包括操作系统中的设备驱动程序以及计算机中的网络接口卡。
网络层:也称为互联网层,主要负责处理分组在网络中的活动,例如分组的选路和路由。
传输层:主要为两台主机上的应用程序提供端到端的通信,负责确保数据的可靠传输,包括TCP 和UDP 协议。
应用层:负责处理特定的应用程序细节,如HTTP、FTP、SMTP 等。
需要注意的是,TCP/IP 协议并不完全符合OSI 七层参考模型,但它仍然具有四层结构。
TCP/IP 协议是互联网中最基本的通信协议,确保了网络数据信息的及时和完整传输。
TCP/IP协议各层的作用如下:网络接口层:负责物理连接和数据链路连接,主要包括操作系统中的设备驱动程序以及计算机中的网络接口卡。
这一层的主要任务是实现数据在物理媒介上的传输,并进行错误检测和纠正。
网络层:负责处理分组在网络中的活动,例如分组的选路和路由。
网络层的主要任务是将有源地址的数据分组转发到目标地址,实现数据包的跨网络传输。
在此层,常用的协议有IP 协议。
传输层:为两台主机上的应用程序提供端到端的通信,负责确保数据的可靠传输。
传输层通过TCP 和UDP 协议来实现这一功能。
TCP 协议提供可靠的数据传输,保证数据的完整性和顺序,而UDP 协议则提供不可靠的数据传输,但不保证数据的顺序和完整性。
应用层:负责处理特定的应用程序细节,如HTTP、FTP、SMTP 等。
应用层协议为用户提供了一系列的网络应用服务,如网页浏览、文件传输和电子邮件等。
总之,TCP/IP 协议各层的作用分别是:网络接口层负责物理连接和数据链路连接;网络层负责数据包的转发和路由;传输层负责端到端的可靠数据传输;应用层负责处理特定应用程序细节并提供网络服务。
这些层次共同保证了网络数据信息的及时、完整传输。
ip头部结构的详解
ip头部结构的详解ip属于网络层协议,其意义在于确定设备的位置,即ip地址。
但又和arp与tcp不同,它是为传输层服务的,通常将tcp和udp架在ip协议之上。
所以他只不过是一个数据的载体,本身并没有自己的询问与回复功能。
他在程序中,只起到确定传输的功能。
以上是ip头的内容,版本一般为4,即ipv4,如果是ipv6,则可能为6,首部长度:首部长度应该为数量*4 通常为20字节,通过抓包工具抓包,基本都是20字节无一例外。
tos服务类型:应该是对应路由器的,当终端接收到数据后,应该就不关心这个的值了。
包括过程字段(3位,设置了数据包的重要性,取值越大数据越重要),延迟字段(1位),流量字段(1位),可靠性字段(1位),成本字段(1位),未使用(1位)16位总长度:即ip总长16位标识:占16位。
IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。
但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。
当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。
相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
ip头部标识与片偏移:ip数据头中的3位标识最低位为mf,为1时说明这个ip 数据包是分片的,并且后续还有数据包,为0时说明这个ip数据包是分片的,但已经是最后一个数据了。
中间位为df,df为1时,说明这个数据包是不分片的,为零时才允许数据包分片。
片偏移:占13位。
片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。
也就是说,相对于用户数据字段的起点,该片从何处开始。
片偏移以8个字节为偏移单位。
也就是说,每个分片的长度一定是8字节(64位)的整数倍。
8位ttl生存时间,表示的是数据从一个设备发向另一个设备,经过一个中转站,则减1,当ttl为0时,即使收端收到,则认定该数据超时,则丢弃该数据。
TCPIP体系结构
TCP/IP是分层体系结构
TCP/IP是互联网的核心,是实现异构网络互连的通信协议,通过它可以实现各种异构网络或异种机之间的互联通信。
TCP/IP(Transmission Control Protocol/Internet Protocol)协议,或称网络通信协议,它是一组互联网协议族,包括上百个各种功能的协议,是国际互联网络的基础。
TCP是指传输控制协议,规定一种可靠的数据信息传递服务。
IP是指互联网协议(网络通信协议),也就是为计算机网络相互连接进行通信而设计的协议。
任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。
TCP/IP是一个四层的分层体系结构,自上而下分为:应用层、传输层、网间网层和网络接口层。
1、网络接口层:这是TCP/IP软件的最低层,负责接收IP数据报并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。
2、网际层:负责相邻计算机之间的通信。
其功能包括三方面。
1是处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。
3、传输层:提供应用程序间的通信。
其功能包括:格式化信息流;提供可靠传输。
为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。
4、应用层:向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。
tcpip协议四层模型
tcpip协议四层模型TCP/IP协议四层模型是一种常用的网络通信协议模型,它是互联网通信的基础。
该模型是由网络界所熟知且广泛采用的四层参考模型,包括应用层、传输层、网络层和数据链路层。
以下是对每一层模型的简要介绍:1. 应用层:应用层是TCP/IP协议模型的顶层,它提供了网络应用程序与网络之间的接口。
应用层协议包括HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)等,它们负责实现应用程序与网络之间的通信。
应用层协议是TCP/IP协议栈中最高层的协议,在数据传输时会将数据拆分为小块并进行分组。
2. 传输层:传输层负责将数据从源地址传送到目标地址,提供端到端的可靠通信。
主要有两种协议:TCP(传输控制协议)和UDP(用户数据报协议)。
TCP是一种面向连接的协议,提供可靠的数据传输,通过确认、重传、流量控制和拥塞控制等机制来保证数据的可靠性。
UDP则是一种无连接的协议,数据传输速度快,但不保证可靠性。
3. 网络层:网络层主要负责处理数据包的路由和转发。
它的核心是IP(Internet Protocol,互联网协议)协议,它定义了在网络中如何寻址、传递和分配数据包。
网络层还包含了一些其他的协议,如ICMP(Internet Control Message Protocol,互联网控制消息协议)用于在网络中传递错误消息。
4. 数据链路层:数据链路层负责将数据传输到物理层,并负责管理物理介质(如以太网、Wi-Fi等)。
它将IP层的数据包封装为适合在物理链路上传输的帧,以及在发送和接收之间执行错误检测和纠正。
TCP/IP协议四层模型的优势在于它提供了一个灵活、可扩展且相对简单的网络通信模型。
该模型的每一层都有自己的功能和责任,工作协同以实现数据的有效传输。
总结起来,TCP/IP协议四层模型是互联网通信的基础,它提供了一种灵活且可靠的网络通信模型。
应用层提供了各种网络应用程序的接口,传输层负责传送数据并保证可靠性,网络层处理数据包的路由和转发,数据链路层负责物理链路上的数据传输。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TCP/IP协议头部结构体网络协议结构体定义1.// i386 is little_endian.2.#ifndef LITTLE_ENDIAN3.#define LITTLE_ENDIAN (1) //BYTE ORDER4.#else5.#error Redefine LITTLE_ORDER6.#endif7.//Mac头部,总长度14字节8.typedef struct _eth_hdr9.{10. unsigned char dstmac[6]; //目标mac地址11. unsigned char srcmac[6]; //源mac地址12. unsigned short eth_type; //以太网类型13.}eth_hdr;14.//IP头部,总长度20字节15.typedef struct _ip_hdr16.{17. #if LITTLE_ENDIAN18. unsigned char ihl:4; //首部长度19. unsigned char version:4, //版本20. #else21. unsigned char version:4, //版本22. unsigned char ihl:4; //首部长度23. #endif24. unsigned char tos; //服务类型25. unsigned short tot_len; //总长度26. unsigned short id; //标志27. unsigned short frag_off; //分片偏移28. unsigned char ttl; //生存时间29. unsigned char protocol; //协议30. unsigned short chk_sum; //检验和31.struct in_addr srcaddr; //源IP地址32.struct in_addr dstaddr; //目的IP地址33.}ip_hdr;34.//TCP头部,总长度20字节35.typedef struct _tcp_hdr36.{37. unsigned short src_port; //源端口号38. unsigned short dst_port; //目的端口号39. unsigned int seq_no; //序列号40. unsigned int ack_no; //确认号41. #if LITTLE_ENDIAN42. unsigned char reserved_1:4; //保留6位中的4位首部长度43. unsigned char thl:4; //tcp头部长度44. unsigned char flag:6; //6位标志45. unsigned char reseverd_2:2; //保留6位中的2位46. #else47. unsigned char thl:4; //tcp头部长度48. unsigned char reserved_1:4; //保留6位中的4位首部长度49. unsigned char reseverd_2:2; //保留6位中的2位50. unsigned char flag:6; //6位标志51. #endif52. unsigned short wnd_size; //16位窗口大小53. unsigned short chk_sum; //16位TCP检验和54. unsigned short urgt_p; //16为紧急指针55.}tcp_hdr;56.//UDP头部,总长度8字节57.typedef struct _udp_hdr58.{59. unsigned short src_port; //远端口号60. unsigned short dst_port; //目的端口号61. unsigned short uhl; //udp头部长度62. unsigned short chk_sum; //16位udp检验和63.}udp_hdr;64.//ICMP头部,总长度4字节65.typedef struct _icmp_hdr66.{67. unsigned char icmp_type; //类型68. unsigned char code; //代码69. unsigned short chk_sum; //16位检验和70.}icmp_hdr;全面的网络协议结构体定义1./*********************************************/2.//计算机网络各种协议的结构3.#define ETHER_ADDR_LEN 6 //NIC物理地址占6字节4.#define MAXDATA 102405./*6.网络实验程序7.数据包中的TCP包头,IP包头,UDP包头,ARP包,Ethernet包等.8.以及各种表.路由寻址表,地址解析协议表DNS表等9.*/10.#define ETHERTYPE_IP 0x0800 //IP Protocal11.#define ETHERTYPE_ARP 0x0806 //Address Resolution Protocal12.#define ETHERTYPE_REVARP 0x0835 //Reverse Address Resolution Protocal 逆地址解析协议13./*********************************************/14.//ethernet15.typedef struct ether_header16.{17. u_char ether_dhost[ETHER_ADDR_LEN];18. u_char ether_shost[ETHER_ADDR_LEN];19. u_short ether_type;20.}ETH_HEADER;21./*********************************************/22.//ether_header eth;23./*********************************************/24.//arp25.typedef struct arphdr26.{27. u_short ar_hrd;28. u_short ar_pro;29. u_char ar_hln;30. u_char ar_pln;31. u_short ar_op;32.}ARP_HEADER;33./*********************************************/34./*********************************************/35.//IP报头36.typedef struct ip37.{38. u_int ip_v:4; //version(版本)39. u_int ip_hl:4; //header length(报头长度)40. u_char ip_tos;41. u_short ip_len;42. u_short ip_id;43. u_short ip_off;44. u_char ip_ttl;45. u_char ip_p;46. u_short ip_sum;47.struct in_addr ip_src;48.struct in_addr ip_dst;49.}IP_HEADER;50./*********************************************/51./*********************************************/52.//TCP报头结构体53.typedef struct tcphdr54.{55. u_short th_sport;56. u_short th_dport;57. u_int th_seq;58. u_int th_ack;59. u_int th_off:4;60. u_int th_x2:4;61. u_char th_flags;62. u_short th_win;63. u_short th_sum;64. u_short th_urp;65.}TCP_HEADER;66.#define TH_FIN 0x0167.#define TH_SYN 0x0268.#define TH_RST 0x0469.#define TH_PUSH 0x0870.#define TH_ACK 0x1071.#define TH_URG 0x2072./*********************************************/73./*********************************************/74.//UDP报头结构体*/75.typedef struct udphdr76.{77. u_short uh_sport;78. u_short uh_dport;79. u_short uh_ulen;80. u_short uh_sum;81.}UDP_HEADER;82./*********************************************/83.//=============================================84./*********************************************/85./*ARP与ETHERNET生成的报头*/86.typedef struct ether_arp87.{88.struct arphdr ea_hdr;89. u_char arp_sha[ETHER_ADDR_LEN];90. u_char arp_spa[4];91. u_char arp_tha[ETHER_ADDR_LEN];92. u_char arp_tpa[4];93.}ETH_ARP;94.#define arp_hrd ea_hdr.ar_hrd95.#define arp_pro ea_hdr.ar_pro96.#define arp_hln ea_hdr.ar_hln97.#define arp_pln ea_hdr.ar_pln98.#define arp_op ea_hdr.ar_op99.#define ARPHRD 1100./*********************************************/ 101./*********************************************/ 102.//tcp与ip生成的报头103.typedef struct packet_tcp104.{105.struct ip ip;106.struct tcphdr tcp;107. u_char data[MAXDATA];108.}TCP_IP;109./*********************************************/ 110./*********************************************/ 111.//udp与ip生成的报头112.typedef struct packet_udp113.{114.struct ip ip;115.struct udphdr udp;116.}UDP_IP;117./*********************************************/ 118./*********************************************/ 119.//ICMP的各种形式120.//icmpx,x==icmp_type;121.//icmp报文(能到达目的地,响应-请求包)122.struct icmp8123.{124. u_char icmp_type; //type of message(报文类型) 125. u_char icmp_code; //type sub code(报文类型子码) 126. u_short icmp_cksum;127. u_short icmp_id;128. u_short icmp_seq;129. char icmp_data[1];130.};131.//icmp报文(能返回目的地,响应-应答包)132.struct icmp0133.{134. u_char icmp_type; //type of message(报文类型)135. u_char icmp_code; //type sub code(报文类型子码) 136. u_short icmp_cksum;137. u_short icmp_id;138. u_short icmp_seq;139. char icmp_data[1];140.};141.//icmp报文(不能到达目的地)142.struct icmp3143.{144. u_char icmp_type; //type of message(报文类型) 145. u_char icmp_code; //type sub code(报文类型子码),例如:0网络原因不能到达,1主机原因不能到达...146. u_short icmp_cksum;147. u_short icmp_pmvoid;148. u_short icmp_nextmtu;149. char icmp_data[1];150.};151.//icmp报文(重发结构体)152.struct icmp5153.{154. u_char icmp_type; //type of message(报文类型) 155. u_char icmp_code; //type sub code(报文类型子码) 156. u_short icmp_cksum;157.struct in_addr icmp_gwaddr;158. char icmp_data[1];159.};160.struct icmp11161.{162. u_char icmp_type; //type of message(报文类型) 163. u_char icmp_code; //type sub code(报文类型子码) 164. u_short icmp_cksum;165. u_int icmp_void;166. char icmp_data[1];167.};========================================== ======================================IP协议IP协议(Internet Protocol)是网络层协议,用在因特网上,TCP,UDP,ICMP,IGMP数据都是按照IP数据格式发送得。