TCPIP四层模型协议格式
1、以太⽹协议
2、ARP协议
tcpip协议pdf
以太⽹前两个字段⽬的地址和以太⽹源地址中,如果⽬的地址为全⼀则代表⼴播地址。
帧类型:表⽰后⾯数据的类型。0x0806表⽰ARP请求与应答
硬件类型:表⽰硬件地址的类型。为1表⽰以太⽹地址。
协议类型:表⽰要映射的协议地址类型,0x0800表⽰IP地址,它的值与以太⽹数据帧中类型字段的值⼀样。
硬件地址长度与协议地址长度:硬件地址和协议地址的长度。对于以太⽹IP地址的ARP请求/应答,值为6和4。
op:操作字段。ARP请求:1,ARP应答:2;RARP请求:3,RARP应答:4;
3、IPV4数据报格式
4位版本:以IPV4为例,协议的版本号为4;
4位⾸部长度:IP头部的长度是多少个32bit,也就是length*4的字节数;4bit表⽰的最⼤长度是15,所以IP头部最⼤长度是60个字节;
8位服务类型:3位优先权字段(已经弃⽤),4 bit的TOS⼦字段和1 bit未⽤位但必须置0。4 bit的TOS分别代表:最⼩时延、最⼤吞吐量、最⾼可靠性和最⼩费⽤。这四者相互冲突,4 bit中只能置其中1 bit。如果所有4 bit均为0,那么就意味着是⼀般服务。对于ssh/telnet这样的应⽤程序,最⼩延时⽐较重要;对于ftp这样的程序,最⼤吞吐量⽐较重要;
16位总长度:IP数据报整体占多少字节;
16位标识:唯⼀的标识主机发送的报⽂,如果IP报⽂在数据链路层被分⽚了,那么每⼀⽚⾥⾯的id也是相同的。
3位标志:第⼀位保留,第⼆位为1表⽰禁⽌分⽚,这时候如果数据报⽂长度超过MTU,ip模块就会丢弃报⽂;第三位表⽰更多分⽚,最后⼀个分⽚置0,其他是1,类似⼀个结束标记。
13位分⽚偏移:是分⽚相对于原始IP报⽂开始处的偏移,其实就是表⽰当前分⽚在原始报⽂中是处于什么位置。实际偏移的字节数是这个值*8得到的;因此除了最后⼀个报⽂外,其他报⽂的长度必须是8的整数倍(否则报⽂就不连续了)。
8位⽣存时间:数据报到达⽬的地的最⼤报⽂跳数,⼀般是64,每次经过⼀个路由,TTL-=1;如果⼀直减到0还没到达,那么就丢弃了,这个字段主要⽤来防⽌出现路由循环。
8位协议:表⽰上层协议的类型
16位⾸部校验和:使⽤CRC进⾏校验,来鉴别头部是否损坏
32位源端/⽬的端地址:表⽰发送端和接收端
4、UDP数据报
16位源端⼝号:标记发送进程
16位源端⼝号:标记接收进程
16位UDP长度:UDP⾸部和UDP数据的字节长度,最⼩值为8字节。
16位UDP校验和:检测UDP⽤户数据报在传输中是否有错,有错就丢弃。
5、TCP数据段格式
16位源端⼝号和⽬的端⼝号:⽤于寻发送进程和接收进程。这两个值加上IP⾸部中的源端IP地址和⽬的端IP唯⼀确定⼀个TCP连接32位序号/确认序号:表⽰从TCP发端向TCP收端发送的数据字节流,表⽰在这个报⽂段中的第⼀个数据字节。保证TCP数据的有序交付
4位⾸部长度:tcp报头长度(并不包含数据),以4字节为单位,tcp报头⼤⼩范围:20~60字节
URG(紧急):URG=1表⽰紧急指针字段有效。它告诉系统此报⽂段有紧急数据,应当尽快传送。
ACK(确认):ACK=1时,确认号字段才有效。
PSH(推送):让对⽅⽴即收到响应。
RST(复位):RST=1时,表明TCP链接中出现严重差错,必须释放链接,然后再重新链接。
SYN(同步):在链接建⽴时⽤来同步序号。当SYN=1,ACK=0时表⽰请求报⽂。SYN=1,ACK=1表⽰链接接受。因此SYN=1表⽰⼀个链接请求或链接接受报⽂。
FIN(终⽌):⽤来释放⼀个链接。
16位窗⼝⼤⼩:窗⼝指的是发送本报⽂段⼀⽅的接收窗⼝。窗⼝值是指从确认号算起,允许对⽅发送的数据量。也就是谁发的报⽂段,就是谁的接受窗⼝⼤⼩。
16位校验和:校验接收的数据与发送的数据是否⼀致
16位紧急指针:带外数据

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。