
网络层相关协议

在对计算机网络层有了初步
学习
了解之后
我们开始进一步学习网络层相关的各种协议

First of all
「IP协议」
不要小看它哦它可是TCP/IP体系中两个最主要的协议之一
也是最重要的互联网标准协议之一

IP协议里面最最最重要的!!
当属IP数据报
IP数据报=首部+数据
首部 =固定长度(20字节,是所有IP数据报必须具有的)+可选字段(长度可变)
在知道了IP数据报的格式说明后
IP协议都具有什么功能呢
下面我们来看看IP数据报这个大家庭都有哪些成员吧

上图

接下来
再让我们细细品品
在这庞大的大家庭里的“大BOSS”
固定部分(4字节×5行)

我们分行来康康
Line1
①版本:占4位,指IP协议的版本,目前广泛使用的IP协议版本号为4(即IPv4)
②首部长度占4位,指IP协议的首部长度
最大数值=15个单位=15×4=60字节
因此首部长度字段的大小范围:5~15(二进制表示:0101~1111)
③区分服务:占8位,只有在使用区分服务时起作用(一般的情况不使用这个字段)
④总长度占16位,指首部和数据之和的长度(单位为字节)
数据报的最大长度=2^16-1=65535字节
但实际情况下,总长度≤MTU(数据链路层的最大传送单元MTU=1500字节)
Line2
①标识:占16位,用来产生数据报标识的计数器
②标志占3位,只有后两位有意义!!
Ø 最低位:MF(MF=1即表示数据报后面“还有分片”;MF=0表示这已是若干数据报片中的最后一个!!)
Ø 中间位:DF(只有当DF=0时才允许分片!!)
③片偏移占12位,指出分片后某片在原分组中的相对位置(以8个字节为偏移单位)
*下面举个例子*

注:其中标志字段的值是任意给定的
通过分析,我们将各项数值展现在表格中

Line3
①生存时间(TTL)占8位,数据报在网络中的寿命
②协议:占8位,指出此数据报携带的数据是用何种协议(ICMP、IGMP....)

③首部校验和:占10位,只校验数据报的首部无校验数据部分,采用简单的计算方法(计算校验和)
Line4 & Line5
源地址 & 目的地址占32位
看到这

你是不是对IP数据报这个大家庭
有了更加深刻的了解了呢

Secondly
「路由选择协议」
在了解协议之前
我先来康康路由
顾名思义
路由=陆游=陆地上游泳
当然不是啦

路由 = 从源主机到目标主机的转发过程
它也有一个默认路由
在找不到目标网络的路由条目时
路由器把请求转发到默认路由接口
另外
它根据能否随网络的通信量
或拓扑自适应地进行调整变化来划分
分为静态路由
动态路由
Ø 静态:需管理员手动、单向、缺乏灵活性
Ø 动态:自适应性好、完整、公平、稳定、
but 实现复杂、开销较大
当然
静态路由和动态路由可以组合起来使用

接着
就是路由表
路由的亲戚
路由表 = 路由器中维护的路由条目的集合
路由表的形成
成就了
直连网段/非直连网段
Ø 直连网段:无配置、无协议,只要端口UP状态就形成直连路由
Ø 非直连网段:需要静态路由/动态路由,将网段添加到路由表中
下面
我们将重磅推出我们的
路由选择协议
看上去平平无奇的动态路由
实则暗藏玄机

它根据路由所执行的算法分类
分为距离矢量路由协议
和链路状态路由协议
Ø 距离矢量路由协议(RIP) = “路标”
Ø 链路状态路由协议(OSPF)=“地图”
RIP
❶概念
一种分布式的基于距离矢量的路由选择协议
距离 = 多远
矢量 = 方向
它使用跃点数作为路由度量
来查找源网络和目标网络之间的最佳路径
它具有AD值 = 120
适用于OSI模型的应用层
使用端口号 = 520
520哦!
撒狗粮、吃狗粮
再加上个RIP吧

❷特点
周期性广播
按固定的时间间隔
向邻居发送自己的全部路由信息
唯有
特殊情况触发更新
即当网络拓扑发生变化时
路由器也及时向相邻路由器通告
除此之外
路由器始终信任邻居
就是那种不过脑子的信任
称为“谣言路由”

❸启动和运行过程
① 路由器A启动RIP时,以广播形式向其相邻路由器发送请求报文
→相邻路由器收到请求报文后响应该请求,并回送包含本地路由器信息的响应报文
② 路由器A收到响应报文后,修改本地路由表,同时向相邻路由器发送触发修改报文
→相邻路由器收到触发修改报文后,又向其各自的相邻路由器发送触发修改报文
→在一连串的触发修改报文广播后,所有路由器都能得到并保持最新的路由信息
③ RIP每隔30 s向其相邻路由器广播本地路由表
→相邻路由器在收到报文后,对本地路由进行维护,选择一条最佳路由
→再向其各自相邻网络广播修改信息,使更新的路由最终达到全局有效
你给邻居发报文
邻居回你信
你来我往
RIP真是个“有礼貌”的协议!!
而且
送个路由更新报文还特别有条理哟

❹算法
设收到相邻路由器(其地址为 X)的一个路由更新报文
① 先修改此报文中的所有项目
→把“下一跳”字段中的地址都改为X,并把所有的“距离”字段的值加1
→每一个项目都有三个关键数据,即

① 若原路由表中没有目的网络N,则把该项目添加到路由表中
→否则,查看路由表中目的网络为N的表项,若其下一跳是X,则把收到的项目替换原项目
→否则,若收到的项目中的距离d小于路由表中的距离,则进行更新
→否则,什么也不更新
② 若路由表发生变化,向所有相邻路由器发送路由更新报文
→返回
❺更新距离———向量算法(DV)
根据距离(=经过的路由器的个数)和方向决定目标网络或目标主机位置

路由器之间可以互换目标网络的方向&
距离信息
并以这些信息为基础制作路由控制表
but
这个神奇的协议
还是存在着缺点的

它会限制网络的规模
最大距离=15 (16就表示不可到达了)
路由器之间交换的路由信息
是路由器中的完整路由表
随着网络规模的扩大
开销也就增加
“坏消息传播得慢”
使更新过程的收敛时间过长
不过
对于规模较小的网络
使用RIP协议的还是占大多数的


Finally
「ARP协议」
ARP(Address Resolution Protocol)
顾名思义
地址解析协议
IP地址→MAC地址

ARP报文封装
报文抓包
pc1给pc2发送ARP请求,使用Wireshark获取ARP抓包数据

ARP欺骗原理
欺骗??

哦
是的
就是你想的那个欺骗
ARP即会欺骗网关
还会欺骗主机
让我们来康康
这家伙的两幅面孔
它的作案过程
欺骗网关

欺骗主机

看在小编呕心沥血的整理下
大家可要牢牢记住哦
因为


1

图文编辑 I黄婷儿 姚静玲 黄佳雨
温梦婷 潘 苗 陈土玲
图文排版 | 宋 佳
图文审核 | 陈平平