计算机网络--网络层笔记
4.1网络层提供的两种服务
网络层,如何将异构的网络连接起来。
网络层实现可靠传输:由网络负责,虚电路,预留资源;
可靠服务网络层的上层实现:端系统负责,网络层之上已经可以找到主机。
TCP/IP网络层,灵活、无连接、不可靠、尽最大努力的数据报服务,每个分组独立不编号。
4.2 IP网际协议Internet Protocol
借助路由器间接交付,只有最后一步才是直接交付。
首部校验和,不可靠传输只校验首部,起始0填充,十六位一组,反码算数运算求和
;
版本,IPV4、IPV6;如 (0100)2 为IPV4;
首部长度,单位4B,最长15*4B=60B,一般20B;
区分服务,目前没有使用;
总长度,最大理论值216-1=65535B,单位B,但数据链路层MTU限制,需要将分组切片;
标识,同一IP分组分片的标识相同;
标志,|保留|DF|MF|, don't fragment=0则分片;
片偏移,8B单位,距离原数据部分起始位置距离;
生存时间TTL time to live,数据报在网络中能够经过的跳数,防止数据在网络不停传输;
协议,运输层使用协议;
IP地址,32位,标识网络接口;
记忆:一种八片首饰。
ICANN分配IP,Internet Corporation For Assigned Names And Number;
两级地址:<网络号,主机号>;
间接交付路由器根据网络号转发到对应网络,提高路由器效率;且方便管理;
点分十进制,八位一组;
A类,
网络号全0本网络,网络号01111111即127换回测试;
主机号全0本机所在网络地址,主机号全1广播,所有主机。
子网划分subnetting,从主机号中切割子网号;
子网掩码subnetMask,与ip与运算得到子网的网络地址。
无类域间路由 CIDR,classlessInterDomainRouting,
<网络前缀,主机号>,分配地址块;
斜线记法,如200.1.0.0/20 表示网络前缀20位;
路由聚合,构成超网,由多个小的连续的地址块构成一个更大的地址块;
可以减少路由器的路由条目。
4.3 IP分组的转发
基于终点转发,一跳一跳转发;
逐行查找转发表寻找前缀匹配,<目的网络地址,网络掩码,下一条地址>;
将目的IP地址与路由表中掩码与运算,再检测是否和网络号一致;
最长前缀匹配,通常前缀长的排在路由表靠前;
默认路由,0.0.0.0 ;
受限广播地址 255.255.255.255,路由器不转发;
如2.255.255.255/8 直接广播路由器能转发;
ARP地址解析协议,
ARP广播请求 我的ip地址是xxxx,硬件地址是x-x-x-x,我想找到ip地址为xxxx的mac地址
目的主机收到后单播,
ARP高速缓存,MAC地址映射表,<IP , MAC , 生存时间>;
特定主机路由,管理员规定下一跳必须经管此路由转发;
默认路由,找不到目的地则借助默认路由转发。
外部网关协议使用BGP,
找到到达目的地址比较好的路劲,不一定是最好的路劲;
BGP发言人,BGP边缘路由器,与邻站bgp发言人建立TCP连接,会话传信息。
4.4 网际控制报文协议 ICMP
主机或者路由器报告差错,提供异常报告,最大努力交付;
差错报告,重点不可达、超时、参数问题、重定向改变路由;
询问报文,回送请求和应答测试两点是否可达、时间戳请求应答;
一般丢弃一个分组就发送ICMP报告
<ICMP前八个字节,丢弃的分组的IP数据报首部,丢弃的分组的前8B> 作IP的数据部分
可以设置不同TTL利用ICMP检测哪个路由器出错:C:\Users\001125>tracert www.baidu.com
不发送ICMP:ICMP出错、多播、分片除了第一片之外的报文;
询问报文,ping baidu.com,不同os定义的ttl不同,可利用获取对方os类型
4.5 IPV6
拓展首部,基本首部40B
版本,4位;
通信量类别,8位,优先级;
流标号,20位;下一个首部,上一层协议;跳数限制;
源地址,128bit;目的地址 128bit;
单播、广播、任播,终点不确定,一组中任意的一个,可以用来DNS域名解析;
冒号十六进制表示,四位用一个十六进制,四个一段;
零压缩,连续的0用:: ,每段起始的0可以省略,但一个IPV6只能出现一次::
可以将IPV4作为IPV6地址的一部分,如 128.10.2.1用::128.10.2.1
邻居发现协议,得到网络前缀,再加上MAC地址,得到IPV6地址
过度策略,双协议栈、隧道技术将整个IPV6数据报当IPV4的数据部分
4.6 路由选择协议
自治系统AS;
层次路由,简化,与AS外部通信只需要知道通过哪个路由器转发到外部及其内部路由路径;
内部网关协议Interior Gateway Protocls,IGP,包括OSPF、RIP等;
外部网关协议EGP。
RIP,路由信息协议,rounting information protocol,
距离向量法,每个路由维护到每个目的网络的最短距离,跳数最大15,≥16不可达;
直接相连的路由器固定时间间隔交换路由表的全部信息,30s, <目的网络,距离,下一跳>
应用层进程实现,但实现网络层功能,故属于网络层协议,封装在UDP数据报;
好消息传的快,坏消息慢,一旦线路不可达不能没有比他短的依旧一直存在直到时间片结束。
OSPF,最短开放路劲优先,
迪杰斯特拉,每次迭代得到一个结点的最短路径;
链路状态路由算法,每个路由器构造链路状态分组,并广播出去, 邻居路由器、链路费用;
封装在IP数据报,且收到的OSPF需要验证,使用多条费用相同的路劲;
交换链路变化时的信息,不再只根据跳数判断 ,且能设置不同的度量,如通信量 。
初始化,集合N={V};
for(结点V的所有结点U):
if(V和U直接相连) D(U)=0;else D(U)=无穷大;
循环,找到不在N中所有结点中W,满足D(W)最小,将W加入N;
更新W所有不在N中邻居节点的D(V);
循环直到所有结点都在集合N;
4.7 多播
源主机只给网络中一部分没目标用户发送数据报,一对多;
如 网络直播转发给观看直播的主机;
网际管理协议IGMP,Internet Group Management Protocol,多播组,
4.8 虚拟专用网VPN和网络地址转换NAT
VPN (virtual private network)背景,IP紧缺、互连网不安全;
在公共的互联网实现专用网;
隧道技术实现私有地址和公共IP转换,进入隧道需要安全验证等;
NAT网络地址转换, 主机与外部通讯需要NAT服务器实现私有公有地址转换;
NAT转换表,<私有地址,全球IP地址>;
多个用户轮流使用公有IP,
或者端口号标识哪个主机使用的全球IP,NAPT表;
4.9 DHCP动态主机配置协议 dynastic host configuration protocol
硬编码,静态配置IP地址、从DHCP服务器动态获取;
主机广播DHCP发现报文,服务器广播提供报文,主机向某服务器发请求报文,
服务器发送确认报文。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构