网络基础(1):IP、ICMP、traceroute

一、OSI模型:
在这里插入图片描述
套接口:应用层到传输层或其他协议层的访问接口

二、IP数据报格式
在这里插入图片描述
版本:ip协议版本号,长度为4,IPv4为4,IPv6为6
首部长度:该字段4位,首部最大字节为60个字节
服务类型:长度为8位,3位优先权,最小延迟(D)、最大吞吐量(T)、最高可靠性®、最小费用(F)各1位,最后1位保留未用
总长度:该字段16位,
标识:16位,每发送一个IP包会加一
标志:3位,第一位不使用,第二位表示该片要不要被舍弃,第三位表示有无后续分片
片偏移:数据的偏移值
生存时间(TTL):最多经过的路由器数量,减为0时舍弃
协议类型:传输层使用的类型 6TCP 17UDP
首部校验和:对头部进行校验,因为传输层会对数据进行校验,每次经过路由器只是头部会改变,因此只需要对头部进行校验
源IP地址:发送数据的主机IP地址
目的IP地址:接受数据的主机IP地址
可选项:最多40字节

路由选择:
会根据目标IP地址在路由表内部进行查询(内部是一个32位IP组成的01二叉树),对应了4个字段,下一个IP地址,到达下一个IP的路由IP,下一个路由的类型,使用的网卡,首先查询下一个地址,搜索优先级 主机号>网段>默认路由

子网:
将IP网络段后的bit分成子网号和主机号,根据子网掩码来判断子网号和主机号占了多少位
网络段和子网用1表示,主机号用0表示,减少路由表的规模

ARP协议:
实现网络层地址到物理地址的转换,
在这里插入图片描述
路由器会将ARP报文进行广播,在同一个网路上的路由、主机都会收到该报文,目的IP的主机、路由会进行应答,将自己的mac地址填入,交换源目地址,再发送。

ARP用高速缓存区来保存IP和对应的mac地址

RARP:没有磁盘的主机使用RRAP,从接口网卡上读取mac地址

三:ICMP
在这里插入图片描述
类型字段可以有15不同的值,代码字段进一步描述:8,0 ping请求;0,0 ping应答
可以分成查询报文和差错报文。3表示不可达,11表示超时(TTL=0),8表示回显请求,0表示回显应答,5表示重定向

在这里插入图片描述
若主机给主机发送报文产生了端口不可达,接收方需要给主机发送ICMP差错报文,数据段始终包含发生差错的IP的首部(20字节)和产生ICMP差错报文的IP数据报数据段的前8个字节(,即udp首部,包含端口号),由于ICMP数据报文中的数据段并没有指定目的端口,所以是发送给对方系统而不是指定的端口,再根据端口找到相应的进程进行处理

不会发送差错报文的情况:
ICMP差错报文;源地址有多个的数据报;目的地址是广播、多播;

ping:
在这里插入图片描述
unix下标识符为进程id,每发送一个ping包,序号+1 ,选项数据会记录发送数据包的时间戳,接收方会把改时间发回来,原发送发接收到后会用当前时间减去该时间,得到往返时间

windows:标识符都一样,不管多少进程,每次都会处理一个进程,比如A,B两个进程,Aping了1,B再ping序号就是2.。。。会根据你ping的顺序进行标号,选项数据没有意义

**主机A:ping使用了ICMP协议,首先生成ICMP报文,类型设为8,代码设为0,标识符、序号以及选项数据。将IP地址和ICMP协议封装成IP数据报。在路由表中搜索相应的mac地址,若没有搜到则发出ARP广播,获取ARP报文的系统会根据自身的IP来决定是否回应。再将mac地址和IP数据报封装成数据帧发送过去。

主机B:接收到后先后检查mac地址和IP地址,得到ICMP数据报。构建一个ICMP数据报,类型和代码设为0,可选选项为接收的ICMP报文中的时间戳,发还给主机A。在规定时间内,若主机A接收到,则表示可达,否则表示不可达。主机A接收到后将数据报里的时间戳和当前的时间进行比较,则能得到往返时间。**

有个记录路由选项:可以记录每一次的通过的路由器的出口的IP地址

**四、traceroute:**可以跟踪经过的路由器IP地址
原理:发送udp包,并且选择不存在port作为目的port,发送的报文的TTL从1开始递增。当TTL=1时候,第一个路由接收后TTL=0,并会发送一个超时的ICMP包,这个包的源IP就是路由1,
TTL=2时候,第一个路由接收后TTL=1,第二个路由接收后TTL=0,并会发送一个超时的ICMP包,这个包的源IP就是路由2.。。。直到返回的是一个端口不可达的ICMP包,表示已经到达目的主机

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值