网络层

网络层提供的服务

路由器在不同网络之间尽力转发数据包;(路由器根据网络层的地址选择路径)
不负责丢失重传,也不负责传输顺序;

数据包在互联网中的传送

网关 路由器

	网络层考虑所选路径是不是最优的;
	不过路由器这样的网路设备就是一个网络是一个网段;
	同一个网段的网络部分是相同的
	10.0.0.0    255.0.0.0(子网掩码用来分辨IP何处是网络部分,同一个网段上子网掩码相同)
	计算机必须配网关,通常是第一个能用的地址(路由器)
	一个接口有一个IP地址
	10.0.0.2 ping 12.0.0.3不可通,需添加路由
	路由器是根据 路由表 来选择路径的,路由表是由管理员给的 或者 自己学习的;

在这里插入图片描述

配置路由器的命令,配置路由表,配置RIP协议

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

网络设备和OSI参考模型关系

1、应用层:应用程序准备要传输的文件
2、传输层:将文件分段,并编号                                    {段}
3、网络层:添加目标IP地址源IP地址                                {包}
4、数据链路层:添加源MAC地址和目标MAC地址和FCS(帧校验序列)       {帧}
	使用自己的子网掩码判断自己在哪个网段(目标IP与自己的子网掩码进行 与 运算)
	使用自己的子网掩码判断目标地址在哪个网段
		若在同一个网段通过ARP协议广播解析目标IP地址的MAC地址
		若不在通过ARP协议广播解析网关的MAC地址,然后传给路由器
5、物理层:转换为数字信号                                      {比特流}

集线器可以加强信号,起到传输信号(比特流)作用
交换机接受比特流,存储,然后根据MAC地址转发信号(交换机工作在第二层(二层设备))
路由器接受比特流,将帧检验序列,物理地址去掉,根据数据包IP选择路径

在这里插入图片描述

网络层协议

ARP协议:通过广播(目标MAC地址是FF-FF-FF-FF-FF)解析目标IP地址的MAC(同一网段的),存入缓存。跨网段通信解析网关的MAC。    
ARP欺骗:覆盖掉目标IP的MAC地址,从而截获或者破坏两个计算机间的通信。
ARP绑定命令:{arp -s 192.168.80.1 00-0C-29-53-48-C3}
ARP缓存查看:{arp -a}
清除ARP缓存:{arp -d}
	
IP协议:负责不同网段之间转发数据,给数据包选择路径。(静态路由为人工添加,动态路由为自动学习的)
	静态路由:
		需要管理员告诉路由器所有没有直连的网络下一跳给谁(设置路由表)
		适合于小规模网络,不能自动调整路由
	动态路由:
		RIP 协议:周期性(每30S)广播路由表,跳数为选择最佳路径的指标 ,最大跳数为15跳,若为16跳则认为不可到达。
		OSPF协议:根据带宽高来选择最佳路径。
	一系列自动学习路由表的协议均为IP协议。

国际控制报文协议 ICMP:
使用ICMP协议的命令:
	PING:因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。
	ping time 查看延迟
	ping 10.7.1.53 -t	       不间断的ping
	ping  -l 200  10.7.1.53        明确数据包大小
	ping  8.8.8.8  -i  2           设置TTL的值,跟踪数据包途径的路由器
	pathping  10.7.1.53:跟踪数据包路径,计算丢包情况。
	tracert  10.7.1.53:Windows上跟踪数据包路径的命令。
	traceroute  10.7.1.53:路由器上跟踪数据包路径的命令。
	
Internet组播管理协议 IGMP(配置在路由器接口上):周期性扫描本网段上绑定多播地址的计算机,然后决定是否接受上个路由器传来的多播数据。
	点到点  建立会话(可调整进度)
	广播(目标IP为255  MAC为FF)
	组播 = 多播 (可跨网段传输,省带宽):将数据包传输到所有绑定多播地址(IP)的计算机。

IP数据包结构

一个IP数据包由首部和数据两部分组成。
	首部的前一部分是固定长度,共20个字节,是所有IP数据包必须具有的。
	在首部的固定部分的后面是一些可选字段,其长度是可变的。
	具体首部构成:
                  版本:用来表示 TCP/IP 协议的版本  v4  v6 (四位)
                  首部长度:规定IP数据包首部的大小。(一般为20字节)
     	          区分服务:规定那些数据先传输。
     	          总长度:表示整个数据包的长度。
     	          标识:数据包的编号。(分片时不同片段标识一致)
     	          标志:占三位,目前只有前两位有意义。标志字段的最低位是MF。MF=1表示后面还有分片。MF=0表示最后一个分片。标志字段中间的一位是DF。只有当DF=0时是分片。
     	          片偏移:指明这个分片是数据包(不算首部长度)的第几个字节。
     	          	 网络层   数据包   最大65535字节   (若数据包过大,分片传输)
			 数据链路层   数据帧最大1500字节   最大传输单元  MTU
			 数据包   如果不分片,最大数据为1480字节(20个字节的首部)
     	          生存时间:TTL 数据包每过一个路由器减一,值为0时 数据包耗尽,当前路由器响应。(防止数据包在网络中循环)  
		 	 各类操作系统默认的TTL初始值:
				 Linux  64  Windows 128  Unix 255
		  协议:指明数据由那个协议处理。
		  	         ICMP:协议号 1;
		  	         IGMP:协议号 2;
		  	         TCP: 协议号 6;
		  	         UDP: 协议号 17;
		  	         IPv6:协议号 41;
		  	         OSPF:协议号 89;
		  首部检验和:接收端收到数据包后用此部分判断数据包是否有错误。
		  源地址:32位。
		  目标地址:32位。
		  IPv6取消了下面两部分:
			  可选字段:长度可变
			  填充

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值