计算机网络之网络层协议IP分析

根据上篇博文所分析的传输层协议TCP,数据的传输路线,由高到低进行包装数据包。
应用层->传输层->网络层,目前到达网络层了。网络层协议也有好多种,其基本都是用IP协议作为支撑的,现在就来分析一下IP协议头部。
在这里插入图片描述

头部分析

(1)版本(占4位)
用来区分是IPV4还是IPV6

(2)首部长度(占4位)
即该包网络层长度,因为网络层也是变长的。单位也是4字节,因为4位能表示的最大数值为15,因此IP头部最大占15*4=60个字节。

(3)区分服务(占8位)
主要用来区分该传送包是否需紧急发送。例如,语音通话和发邮件。语音通话的内容优先于发邮件,在网络比较阻塞的时候,需要先传送语音通话的数据。
3位优先权字段(现在已经被忽略),4位TOS字段,和1位保留字段(必须置为0),4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。这四者相互冲突,只能选择一个。对于ssh/telnet这样的应用程序,最小延时比较重要;对于ftp这样的应用程序,最大吞吐量比较重要

(4)总长度(占16位)
即网络层IP首部+传输层TCP首部+数据

(5)标识(占16位)
唯一的标识主机发送的每一个数据报,其初始值由系统随机生成;每发送一个数据报,其值就+1。如果IP报文在数据链路层被分片了,那么每一个片里面的这个标识是相同的

(6)标志 (占3位)
用来表明该包是否分片.
第一位保留(现在不用,没想好以后用不用),第二位置为1表示禁止分片,这时候如果报文长度超过MTU,IP模块就会丢弃报文并返回一个ICMP差错报文。第三位表示“更多分片”,即如果最后这一位是1,表示这是最后一个分片,其余之前的分片这一位是0,这一位相当于一个结束标志,表示之后还有没有分片.

(7)分片偏移(占13位)
是分片相对于原始IP报文开始处的偏移。其实就是表示当前分片在原报文中的哪个位置。实际偏移的字节数是这个数*8得到的。因此,除了最后一个报文外,其他报文的长度必须是8的整数倍(否则报文就不连接了)

(8)生存时间(TTL, 占8位)
数据报到达目的地的最大报文跳数。一般是64,128,256。每次经过一个路由,TTL-1,一直减到0还没到达,那么就丢弃了并向源端发送一个ICMP差错报文。这个字段主要是用来防止出现路由循环.

(9)协议(占8位)
因为先包装传输层协议,再包装IP协议,因此IP协议知道传输层用的是什么协议,这里指明这个协议类型.其中,ICMP是1,TCP是6,UDP是17,具体的可看/etc/protocols文件

(10)头部校验和(占16位)
由发送端填充,接收端对其使用使用CRC(循环冗余校验)算法进行校验,来鉴别头部是否损坏.

(11源地址(占32位)
表示发送端IP地址

(12)目的地址(占32位)
表示接收端IP地址

(13)选项(最长40字节,60最大长度-20固定长度)
记录路由:告诉数据报途径的所有路由器都将自己的IP地址填入IP头部的选项部分
时间戳:告诉每个路由器都将数据报被转发的时间(或时间与IP地址对)填入IP头部的选项部分
松散源路由选择:指定一个路由器IP地址列表,数据报发送过程必须经过其中所有的路由器
严格源路由选择:与松散源类似,不同的是只能经过列表中的被指定的路由器

(14)数据
即上一层TCP和UDP的数据报

抓包分析

下面通过抓包分析网络层IP协议内容:
在这里插入图片描述
从上图可以看出该数据包:
IPV4协议
头部长20字节
区分服务为0
总长度52
识别号24329
标志:不分片
片偏移:0
TTL:128
协议:6(TCP)
头部校验和:0
源地址:127.0.0.1
目的地址:127.0.0.1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值