admin 管理员组文章数量: 1086019
2024年3月10日发(作者:给你一个接口你怎么测)
1、DLC(数据链路控制)帧结构
所处位置:网络接口层
结构:Destination MAC Adress(6 Bytes)+Source MAC Adress(6 Bytes)+以太类型(2 Bytes)
2、IP数据报结构
所处位置:网络层
如图3所示,IP数据报中依次包括以下信息:
1、Version=4,表示IP协议的版本号为4。该部分占4个BIT位。
2、Header Length=20 Bytes,表示IP包头的总长度为20个字节。该部分占4个BIT位,单位
为4个字节,因此,一个IP包头的长度最长为“1111”,即15*4=60个字节。 注:最小
长度为5个单位,即5*4=20字节。这就是首部的固定部分,说明首部还40字节的任选字段。
当IP分组的首部长度不是4字节的整数倍时,必须利用最后一个填充字段加以填充。
3、Type of Service(TOS)=00,表示服务类型为0。该部分用二个十六进制值来表示,共占
8个BIT。
8个BIT的含义是:
000 前三位不用
0 表示最小时延,如Telnet服务使用该位
0 表示吞吐量,如FTP服务使用该位
0 表示可靠性,如SNMP服务使用该位
0 表示最小代价 注:要求选择费用更低廉的路由
0 不用
4、Total Length=48Bytes,表示该IP包的总长度为48个字节。该部分占16个BIT,单位为Byte。
由此可见,一个IP数据包的最大长度为2的16次方减1,即:65535个字节。因此,在以
太网中能够传输的最大IP数据包为65535个字节。 注:最大是指首部和数据之和的长度
5、Identification=363,表示IP包识别号为363。该部分占16个BIT,以十进制数表示。
6、Flags,表示片标志,占3个BIT。各位含义分别为:第一个“0”不用,第二个“0”为
分片标志位,“1”表示分片,“0”表示不分版本。第三个0为是否最后一片标志位,0表示
最后一片,1表示还有更多的片(More Fragment-分片未结束)。
7、Fragment Offset=0,表示片偏移为0个Bytes。该部分占13个BIT。注:偏移单位为8
字节所以偏移的取值为0~8192,仅最后一个分片没有偏移。由于数据报不能按序到达,故
目标逐句要按标识和偏移值重组数据报
【
关于偏移的举例解释
:】数据报长度4000字节 固定首部长度20字节 最长数据长度为
1500字节 试问划分几个短数据报片?各数据报片的偏移字段为何值?
这问题,其实你应该看看计算机网络这本书。在网络层,因为要向下传输,而低层会有最大
传输值,超过这个值,就得将数据包分片。
批注 [微软用户1]: 错误,这三位用于
表示优先级,允许发送方表示本数据
报的重要程度。一共有8个优先级:
0为一般优先级,7为最高优先级
批注 [微软用户2]: 标识字段是为了
使分片后的各数据报片最后能够准
确地重装成为原来的数据包。每个数
据包不管分成多少片都具有相同的
标识号,用来确定该分片属于哪个数
据报。分片到达时,目的主机根据标
识号和源地址以及偏移来进行重组。
每个数据报都有唯一的标识号。标识
号并没有顺序号的意思,因为IP是
无连接服务,数据报不存在按顺序接
收的问题。
批注 [微软用户3]: 这一位记为DF(Do
not Fragment),当DF=1,表示不可
分片;DF=0,表示可以分片。
a=1500+20=1700;(算出每片数据报的长度=最长数据长度+固定首部)
分片数目=总数据报长度 / 每片长度=4000 / 1700=2.4 取整数后是 3.
所以分为 3片。
第一片偏移值是 0; 占据0~1699字节。(长度是1700字节)
第二片偏移地址是0+1700=1700字节 ; 占据1700~3399 字节。(长度是1700字节)
第三片偏移地址是1700+1700=3400字节;占据3400~3999字节。 (长度是600字节)
8、Time to Live=128Seconds/Hops,表示生存时间TTL值为128。该部分占8个BIT。
9、Proctol=6(TCP),表示协议类型为TCP,协议代码是6。如果是UDP协议,则此处的协
议代码应为17。如果是ICMP协议,则此处的协议代码应为1。该部分占8个BIT。
10、Header Checksun=4035(correct),表示IP包头校验和为4035,括号内的Correct表示此
IP数据包是正确的,没有被非法修改过。该部分占16个BIT,用十六进制表示。
11、Source Address=[76.88.16.104],表示IP数据包源地址为:76.88.16.104。该部分占32个
BIT。
12、Destination Address=[76.88.16.16],表示IP数据包目的地址为:76.88.16.16。该部分占32
个BIT。
13、No Options,表示IP数据包中未使用选项部分。当需要记录路由时才使用该选项。
3 传输层 TCP结构详解
1、Source Port=1038,表示发起连接的源端口为1038。该部分占16个BIT。通过此值,可
以看出发起连接的计算机源端口号。
2、Destination Port=21(FTP-CTRL),表示要连接的目的端口为21。该部分占16个BIT。通过
此值,可以看出要登录的目的端口号。21端口表示是FTP服务端口。
3、Initial Sequence Number=1791872318,表示初始连接的请求号,即SEQ值。该部分占32
个BIT,值从1到2的32次方减1。
4、Next Expected SEQ Number=1791872319,表示对方的应答号应为1791872319,即对方返
回的ACK值。该部分占32个BIT,值从1到2的32次方减1。
5、Data Offset=28 Bytes,表示数据偏移的大小。该部分占4个BIT。
6、Reserved Bites:保留位,此处不用。该部分占6个BIT。
7、Flags=02。该值用两个十六进制数来表示。该部分长度为6个BIT,6个标志位的含义分
别是:
0 URG,紧急数据标志,为1表示有紧急数据,应立即进行传递。
0 ACK,确认标志位,为1表示此数据包为应答数据包
0 PSH,PUSH标志位,为1表示此数据包应立即进行传递。
0 RST:复位标志位。如果收到不属于本机的数据包,则返回一个RST
0 SYN:连接请求标志位。为1表示为发起连接的请求数据包。
0 FIN:结束连接请求标志位。为1表示是结束连接的请求数据包。
8、Window=64240,表示窗口是64240。该部分占16个BIT。
9、CheckSum=92D7(Correct),表示校验和是92D7。该部分占16个BIT,用十六进制表示。
10、Urgent Pointer=0,表示紧急指针为0。该部分占16个BIT。
11、Maximum Segment Size=1460,表示最大段大小为1460个字节。
总结:
通过上述分析,可以发现:在以太网中,最大传输单元MTU为1500个字节,在一个IP包
中,去除IP包头的20个字节,可以传输的最大数据长度为1480个字节。在TCP包中,去
除20个TCP包头,可以传输的最大数据段为1460个字节。因此,当数据超过最大数据长
度时,将对该数据进行分片处理,在IP包头中会看到有多个片在传输,但标识号是相同的,
表示是同一个数据包。
版权声明:本文标题:TCP IP结构 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1710079142a556714.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论