为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

IP头和TCP头中各字段的含义

2017-08-10 4页 doc 18KB 85阅读

用户头像

is_099060

暂无简介

举报
IP头和TCP头中各字段的含义IP头和TCP头中各字段的含义1IP头中各字段的含义IP协议头最少20个字节,以下是IP头中包括的各字段的名称,其中括号内的值为该字段的长度,以比特为单位:版本(4),头长度(4),IP服务类别(8),总长度(16),标记(16),标志(4),偏移量(12),生存周期(8),协议(8),头效验和(16),源地址(32),目的地址(32),选项,填充。各字段的含义如下所示:·版本(4):指出IP的版本,如果是IPv4,则该字段为4。·头部长度(4):以32比特为除数计算出的IP头部长度。本区域值=IP...
IP头和TCP头中各字段的含义
IP头和TCP头中各字段的含义1IP头中各字段的含义IP头最少20个字节,以下是IP头中包括的各字段的名称,其中括号内的值为该字段的长度,以比特为单位:版本(4),头长度(4),IP服务类别(8),总长度(16),标记(16),标志(4),偏移量(12),生存周期(8),协议(8),头效验和(16),源地址(32),目的地址(32),选项,填充。各字段的含义如下所示:·版本(4):指出IP的版本,如果是IPv4,则该字段为4。·头部长度(4):以32比特为除数计算出的IP头部长度。本区域值=IP头部长度/32,最长的IP包头长度可以为480比特。·IP服务类别(8):按位被如下定义——PPPDTRC0·PPP:定义包的优先级:·000普通(Routine)·001优先的(Priority)·010立即的发送(Immediate)·011闪电式的(Flash)·100比闪电还闪电似的的(FlashOverride)·101CRI/TIC/ECP·110网间控制(InternetworkControl)·111网络控制(NetworkControl)·D时延:0为普通,1为尽量小;·T吞吐量:0为普通,1为尽量大;·R可靠性:0为普通,1为尽量大;·M传输成本:0为普通,1为尽量小;·0被保留,恒定为0。·总长度(16):以字节为单位计算的IP包的长度,包括数据和头部。·标记(标志/偏移量)(16):共同来实现包的分段。一旦一个数据包要穿过一个链路,这个链路的最大传输单元(MTU)要比这个包的长度要小,MTU是链路上所能传输的最大包的大小,那么这个数据包要被拆分成几个小数据包,并且在目的地址重新组合起来。·标记:13比特,路由器将一个包拆分后,所有拆分开的小包被标记相同的值,以便目的端设备能够区分哪个包属于被拆分开的包的一部分。·标志:3比特,第1比特没有使用,第2比特为“不分段”比特,如果该比特为1,则含义为通知沿途的路由器即便数据包长度超过MTU值,也不要拆分这个数据包。(路由器会将这个包丢弃)第3比特:路由器拆分小包后,会将每个小包(除了最后一个)的本比特置1。·生存周期(8):该数值由发出数据包的设备设置,为避免路由循环,每个包经过路由器时,路由器会将这个数值减去1,当这个数值为0,则数据包被丢弃。·协议(8):定义上层协议的类型。·1ICMP·2IGMP国际胡连网组管理协议·6TCP·17UDP·88IGRP·89OSPF·头部校验和(16):用来做IP头部的正确性检测,但不包含数据部分,因为每个路由器要改变TTL的值,所以路由器会为每个通过的数据包重新计算这个值。·源地址(32)/目的地址(32):除非使用NAT,否则整个传输的过程中,这两个地址不会有改变。·选项:长度不固定,可选的,主要用于测试。·填充:为确保IP头部的长度为32的整数倍,在选项后面,IP协议会填充若干个0,以达到32比特的整数倍。2TCP头中各字段的含义TCP协议头最少20个字节,以下是TCP头中包括的各字段的名称,其中括号内的值为该字段的长度,以比特为单位:TCP源端口SourcePort(16),TCP目的端口DestinationPort(16),TCP序列号SequenceNumber(32),TCP应答号AcknowledgmentNumber(32),数据偏移量HLEN(4),保留Reserved(6),标志CodeBits(6),窗口Window(16),校验位Checksum(16),紧急指针UrgentPointer(16),选项Option,填充。各字段的含义如下所示:·TCP源端口(SourcePort):16位的源端口,源端口和源IP地址的作用是标示报文的返回地址。·TCP目的端口(DestinationPort):16位的目的端口,这个端口指明报文接收计算机上的应用程序地址接口。·TCP序列号(SequenceNumber):32位的序列号由接收端计算机使用,重新分段的报文成最初形式。当SYN出现,序列码实际上是初始序列码(ISN),而第一个数据字节是ISN+1。这个序列号是可以补偿传输中的不一致。·TCP应答号(AcknowledgmentNumber):32位的序列号由接收端计算机使用,重组分段的报文成最初形式,如果设置了ACK控制位,这个值表示一个准备接收的包的序列码。·数据偏移量(HLEN):4位,包括TCP头大小,指示何处数据开始。·保留(Reserved):6位值域,这些位必须是0,为了将来定义新的用途所保留。·标志(CodeBits):6位标志域。表示为:紧急标志、有意义的应答标志、推、重置连接标志、同步序列号标志、完成发送数据标志。按照顺序排列是:URG、ACK、PSH、RST、SYN、FIN。·窗口(Window):16位,用来表示想收到的每个TCP数据段的大小。·校验位(Checksum):16位,源主机基于数据内容计算一个数值,目的主机要与源机器数值结果完全一样,从而证明数据的有效性。由于TCP首部中不包含源地址与目标地址等信息,为了保证TCP校验的有效性,在进行TCP校验和的计算时,需要增加一个TCP伪首部的校验和,定义如下:struct{unsignedlongsaddr;//源地址unsignedlongdaddr;//目的地址charmbz;//置空charptcl;//协议类型unsignedshorttcpl;//TCP长度,包括头部长度和数据字段长度。}psdhdr;然后将这两个字段复制到同一个缓冲区SendBuf中并计算TCP校验和:memcpy(SendBuf,&psdhdr,sizeof(psdhdr));memcpy(SendBuf+sizeof(psdhdr),&tcphdr,sizeof(tcphdr));tcphdr.chksum=checksum((USHORT*)SendBuf,sizeof(psdhdr)+sizeof(tcphdr));·紧急指针(UrgentPointer):16位,指向后面是优先数据的字节,在URG标志设置了时才有效。如果URG标志没有被设置,紧急域作为填充。加快处理标示为紧急的数据段。·选项(Option):长度不定,但长度必须以字节。如果没有选项就表示这个一字节的域等于0。·填充:不定长,填充的内容必须为0,它是为了数学目的而存在。目的是确保空间的可预测性。保证包头的结合和数据的开始处偏移量能够被32整除,一般额外的零以保证TCP头是32位的整数倍。
/
本文档为【IP头和TCP头中各字段的含义】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索