本文共 2644 字,大约阅读时间需要 8 分钟。
文章目录
网络层
每种协议都有自己的数据包格式?
一、网络层提供的服务
网络层负责在不同网络之间尽力转发数据包,基于数据包的IP地址转发。
不负责丢失重传,也不负责顺序。1、数据包在互联网中的传送
路由器是三层设备
2、注意
网关就是你局域网的第一个地址一般,这样发送数据的时候,就知道去找哪个出口去转发数据出去了。
虽然上面的广域网到广域网(两个路由器之间)可以通,局域网到局域网也可以通,但是10.0.0.2到12.0.0.3不通,这是因为到了11.0.0.1之后,不知道怎么走,因为它两边是10.x.x.x和11.x.x.x,它不知道12.x.x.x怎么走,所以要自己指定或者添加路由表,这样下一个路由器就能找到12.0.0.3怎么走了。二、网络设备和OSI参考模型关系
计算机通信的过程 本网段通信和跨网段通信
1、发送端
- 应用程序准备要传输的文件
- 传输层:将文件分段并编号
- 网络层:添加目标IP地址和源IP地址
- 数据链路层: 使用自己的子网掩码判断自己在哪个网段,然后再使用自己的子网掩码判断目标地址在哪个网段。如果是在同一个网段,直接使用arp协议广播解析目标IP地址的MAC地址。如果不是一个网段, 那么就使用arp协议广播网关的MAC地址。
三、网络层协议
四个:ARP、IP、ICMP、IGMP
图片下面的为图片上面的提供服务。1、ARP(负责把ip地址转成物理地址)
ARP功能:
使用自己的子网掩码判断自己在哪个网段,然后再使用自己的子网掩码判断目标地址在哪个网段。如果是在同一个网段,直接使用arp协议广播解析目标IP地址的MAC地址。如果不是一个网段, 那么就使用arp协议广播网关的MAC地址。网络中的计算机怎么知道其他计算机的MAC地址的,这就需要有一个协议解析对方的MAC地址,一次解析之后,就会缓存MAC地址,一段时间不用可能就删掉,这就是网络层的arp协议,arp解析得到物理地址是数据通信之前的工作,所以arp协议为IP协议提供服务。
ARP欺骗
就是当询问MAC地址的时候,其他的主机(不是目标机器)发送自己的MAC地址给询问机器,这样的话,每次发消息都会发送到这个主机,而不是目标主机。
arp绑定ip和MAC命令:
arp -s ip地址 mac地址 查看缓存: arp -a 清除缓存: 点击本地连接 修复就能清除掉2、IP协议(所有让路由器学习到路由表的协议统称为IP协议)
负责把数据包从一个网段转发到另外一个网段
数据包选择路径的协议都属于IP协议,后面讲的动态路由协议KIP、ospf都属于IP协议。静态路由和动态路由
在转发的时候是怎么知道怎么走的呢,根据什么选择路径的呢?
- 通过路由表,路由表怎么有的呢,一种是通过管理员告诉, 这叫静态路由,还有一种是路由器通过某种协议相互学到到各个网段怎么走,比如RIP等,这叫动态路由。
静态路由适合小的网络,不能够自动调整路由。
RIP协议
周期性广播路由表给其他路由器,选择最佳路由的标准是跳数少,30秒更新一次。
最大跳数15跳,超过15跳就认定为不可到达,不适合网络规模大的公司企业等。OSPF
选择最佳路径的依据是带宽,而不是过了几个路由。
网络畅通的条件
数据包有去有回,这就要求计算机要配网关,路由器要知道下一跳给谁了(不管去还是回来)。
3、ICMP(网际控制报文协议)
测试网络是否畅通、网络是否有故障。
ping命令底层就是ICMP协议使用ICMP协议的命令
ping命令:
- time可以查看延时 TTL 生命周期,初始有初始值,每经过一个路由器就减去1,减到0的时候数据就丢失,用于防止数据在网上循环。
- TTL初始值可以用于判断对方是什么系统。因为Linux初始64,Windows初始128,Unix初始255。
- -i 表示设置初始的TTL,写1如果不够 那么第一个路由器会传回来数据说明TTL不够,同理…,可以通过不断的增加TTL来判断经过了哪几个路由器。换句话说就是通过更改数据包TTL时间,就能够跟踪数据包途径的路由器。
- -t表示一直ping下去
QQ能上网,网页打不开,可能是DNS解析不正确,可以多配几个DNS解析服务器。
pathping命令:
- 跟踪数据包路径,计算丢包情况。
(windows上)tracert命令:
- 跟踪路径 不计算丢包情况
- Unix上是traceroute命令,比如traceroute www.baidu.com。
4、IGMP(Internet组播管理协议)
点到点
广播:比如机房前面的电脑放东西,下面的电脑都能看到,数据发一份,所有计算机全接收。 组播=多播 (可以跨多个网段)IGMP配置在路由器接口上,路由器周期性扫描本网段中哪些计算机绑定了多播地址。
四、IP数据包结构
1行32位 4个字节,所以前面5有行是固定的。- 版本:用来表示TCP/IP是哪个版本的,如v4、v6。
- 首部长度:首部一共多大。
- 区分服务:控制数据包先发还是后发。
- 标识:标识相同的最后到了之后重组。
- 标志:用来标记收到的数据包是一个分片还是一个完整的数据包。
- 片偏移:
- 生存时间TTL:每过一个路由器就会减去1
- 协议:标志IP数据包里面的数据部分是什么数据,是UDP还是TCP、OSPF…,指明了数据交给谁处理。ICMP协议号1;ICMP:2;UDP:17;IPv6:41;OSPF:89。TCP:6
- 首部检验和用于检验数据是否正确。
在前面讲的数据链路层最大是1500字节,IP数据包最大为2^16-1=65535字节,所以发现了IP数据包反倒比帧大,这样的话就要分片传送。
从上图可以看出数据包最大为1500字节,包含20字节头部,所以数据部分最大为1480字节,所以如果不分片,数据包数据最大不超过1480字节。数据包分片
分片加IP、MAC地址,到了目的地之后,重组。
转载地址:https://blog.csdn.net/weixin_38367817/article/details/104206436 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!