网络层:负责地址管理与路由转换
IP协议
首部校验和的计算:
将首部中每两个字节作为一个数,用反码运算对这些数字求和,将和的反码存放在检验
和字段,被称为因特网检验和。如果数据报首部中携带的检验和与计算所得不一致,则
认为检测出现差错。
地址划分:
相邻的网络不能使用相同的网络号
子网掩码的作用:
①由连续的二进制1组成的数字与IP相与得到网络号
②自身取反网络中主机号返回
两种特殊的IP
主机号全为0——网络号,表示网络 主机号全为1——udp广播地址
解决IP地址不够用的方法:
①DHCP动态地址分配技术
②NAT网络地址转换技术(实现方式:静态转换、动态转换、端口多路复用)
③ipv6技术(由于不能向前兼容ipv4所以未能广泛使用),实现ipv4到ipv6的两种技术隧道技术和双栈技术
IP地址与MAC地址
IP地址描述的是路途总体的 起点 和 终点;
MAC地址描述的是路途上的每一个区间的起点和终点
ICMP(网际控制报文)协议
作用:ICMP协议是对ip协议的进一步补充,主要用与IP层的差错报告、拥塞控制、路径控制以及路由器或主机信息的获取。
ICMP的分类:分为ICMP差错报告报文和ICMP查询报告报文
ICMP中的ping命令
ping命令可以验证网络的连通性, 同时也会统计响应时间和TTL(IP包中的Time To Live, 生存周期).
注意:ping命令基于ICMP, 是在网络层. 而端口号, 是传输层的内容. 在ICMP中根本就不关注端口号这样的信息.
因特网的路由选择
概念:路由选择是当分组从发送方到接收方时,网络层选取的整个的分组移动路径
在选择分组从源到目的地主机的路径时,会依据某些路由选择算法
作用:在众多路由路径中为数据的传输选择一条最优路径
路由选择流程:
路由选择流程:首先从发送主机获取目的ip(下一跳的地址),将目的ip与路由表中获取的子网掩码进行相与得到目的网络地址,判断是否为特定的主机/目的网络地址,如果是的话就按照路由表发送数据;如果是默认路由的话就将数据发送到默认路由器;否则的话循环处理路由表,然后丢弃数据包,产生ICMP出错报文返回给发送端
路由选择算法:为了能及时的更新路由器上的路由表信息,是路由器能正确的反应不断变化的网络拓补结构
分类:
**静态路由:**一般用于与自己有物理连接的网络或小型系统网络
静态路由算法:由网络管理员手动配置路由信息,常用命令route,通过该命令可以对路由表的表项进行增删改查,由于静态路由简单、易于实现的特性,所以一般适用于比较简单的网络环境
动态路由:一般用于大型网络
距离向量路由算法:通过判断举例来查找到达远程网络的最佳路径,虽然易于实现,但是对好消息反应迅速,对坏消息反应迟钝(限定最大跳数,水平分割技术、反向抑制的水平分割技术)
链路状态路由算法:最短路径优先算法(收敛速度快,可有效避免路由回路的出现,但是需要占用更多的CPU处理时间和系统资源)
链路层:负责相邻设备之间的数据转发
MTU:最大传输单元
MTU对ip协议的影响:由于数据链路层对MTU的限制,所以过大的ip数据包需要用户进行分包
MTU对udp的影响:当udp携带的多个ip数据包大于1472(1500-20-8),就需要在网络层进行分包,容易造成数据包丢失
MTU对tcp的影响:tcp一次性携带的数据不超过MSS(最大消息长度受限于MTU),tcp在建立连接时,通信双方会进行协商选择一个较小的MSS,保证数据包不会被分片,这也是tcp可靠传输的一种体现。
ARP协议:建立了IP地址与MAC地址之间的映射关系
ARP的工作流程:源主机发出ARP请求,询问指定ip地址的主机硬件地址,并将这个请求广播给网段内所有主机上,由于每个主机上都存在一个虚拟的ARP表,当其中某台主机发现指定ip与自己的MAC地址匹配,则向源主机发送一个ARP应答包(包含自己的硬件地址)。
注:主机上arp表为了便于下次查询时节约时间,这个表每隔一段时间都会更新的,因为ip地址是动态分配,每当用户下线ip地址就会更新.
ARP攻击:由于ARP协议存在很多漏洞和不足,给计算机网络造成很大的隐患。首先ARP协议是以广播方式发送ARP请求的,只要是同一个网段内主机都可以收到,这就为攻击者以可乘之机,攻击者可以发送大量的ARP请求包,阻塞正常网络宽带,使局域网中有限的网络资源被无用的广播信息所占用,造成网络拥堵;其次ARP协议没有安全认证机制,因为局域网内主机是建立在信任的基础上的,所以只要主机接收到ARP应答包,都会缓存在ARP表中,这就为ARP欺骗提供了可能。攻击者可以发送错误的IP地址MAC地址的映射关系。
注:arp地址解析是一个位于tcp/ip协议栈中的网络层中,负责将某个ip地址解析为对应的MAC地址。
其他协议
DNS域名解析协议:
功能:建立了主机与ip之间的映射关系,当输入一个域名,浏览器就会通过DNS协议到本地的hosts文件中进行域名解析,查找对应域名的ip