网络数据包收发流程

1. 计算机网络体系结构

1.1 OSI体系结构

OSI体系结构,意为开放式系统互联。这个模型把网络通信的工作分为7层,从下往上分别是物理层,数据链路层,网络层,运输层,会话层,表示层和应用层。1至4层被认为是低层,这些层与数据移动密切相关。5至7层是高层,包含应用程序级的数据。每一层负责一项具体的工作,然后把数据传送到下一层。

1.2 TCP/IP体系结构

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)体系结构是指能够在多个不同网络间实现的协议簇。网络部分瘫痪时仍保持较强的工作能力和灵活性。这种应用环境导致了一系列协议的出现,从而使不同类型的终端和网络间能够进行有效通信。实际上,Internet已经成为全球计算机互联的主要体系结构,而TCP/IP协议是 Internet 的代名词,是将异种网络、不同设备互联起来,进行正常数据通信的格式和大家遵守的约定。

TCP/IP 协议包括两部分:传输控制协议和网际协议。TCP/IP 的通信任务组织成 5个相对独立的层次:应用层、传输层、网际层、数据链路和物理层,其中网络接口层和物理层常称为物理网层。

1.3 两者间对应关系

2. 数据包收发流程

2.1 应用层读取数据包

image-20230828175545131

2.2 物理层接收数据包上报到传输层

image-20230828175614727

2.3 应用层发送数据包

image-20230828175702641

2.4 传输层到物理层发送

image-20230828175803867

3. 路由

​ 数据到了网络层会先匹配路由表(默认有三张表local、main、default),先匹配loacl表,loacl表中匹配到的数据会上上层协议栈,匹配不到的走main表,匹配不到再走default表(default表一般为空);

根据能否随网络的开销或拓扑变化动态地进行调整变化,将路由算法分为两大类:静态路由、动态路由;

3.1 静态路由

静态路由是指由网络管理员手工配置的路由信息。当网络拓扑变化时,不会自动维护路由

信息。静态路由信息在缺省情况下是私有的,不会传递给其他的路由器,网络管理员可以通过路由器设置为共享。静态路由一般适用于比较简单的网络环境,在这样的环境中,网络管理员易于清楚地了解网络的拓扑结构,便于设置正确的路由信息;

3.1.1 配置指令

3.1.1.1查看路由

都可以加table 不加默认为操作main表

ip route list
ip route show
ip route      查看output/forward表
ip route show table local  查看input表
3.1.1.2 查看指定网段的路由
ip route show 网段/掩码长度
3.1.1.3 增加路由
ip route add 网段/掩码长度 via 下一跳地址
3.1.1.4 修改路由
ip route change 网段/掩码长度 via 下一跳地址
ip route replace 网段/掩码长度 via 下一跳地址
3.1.1.5 删除路由
ip route del 网段/掩码长度 via 下一跳地址
3.1.1.6 清空指定网络的路由
ip route flush 网段/掩码长度
3.1.1.7 指定路由metirc
ip route add 192.168.2.0/24 via 192.168.1.15 metric 10
3.1.1.8 添加默认路由
ip route add default via 下一跳地址
3.1.1.9 配置默认路由
ip route add default via 下一跳地址 dev 网卡名称

3.2 动态路由

动态路由是指路由器能够根据网络拓扑变化,动态维护自己的路由表。动态路由机制的
运作依赖路由器的两个基本功能:路由表的维护和路由信息交换;
常见的动态路由协议 RIP、OSPF、BGP等;

3.3 metric

路由开销,大都是在动态路由中用到,是路由算法用以确定到达目的地的最佳路径的计量标准,如路径长度、带宽大小、可靠性等。

路由算法使用了许多不同的metric以确定最佳路径。复杂的路由算法可以基于多个metric选择路由,并把它们结合成一个复合的metric。常用的metric如下:

3.3.1 路径长度

路径长度是最常用的路由metric。一些路由协议允许网管给每个网络链接人工赋以代价值,这种情况下,路由长度是所经过各个链接的代价总和。其它路由协议定义了跳数,即分组在从源到目的的路途中必须经过的网络产品,如路由器的个数。

3.3.2 可靠性

可靠性,在路由算法中指网络链接的可依赖性(通常以位误率描述),有些网络链接可能比其它的失效更多,网路失效后,一些网络链接可能比其它的更易或更快修复。任何可靠性因素都可以在给可靠率赋值时计算在内,通常是由网管给网络链接赋以metric值。

3.3.3 延迟

路由延迟指分组从源通过网络到达目的所花时间。很多因素影响到延迟,包括中间的网络链接的带宽、经过的每个路由器的端口队列、所有中间网络链接的拥塞程度以及物理距离。因为延迟是多个重要变量的混合体,它是个比较常用且有效的metric。

3.3.4 带宽

带宽指链接可用的流通容量。在其它所有条件都相等时,10Mbps的以太网链接比64kbps的专线更可取。虽然带宽是链接可获得的最大吞吐量,但是通过具有较大带宽的链接做路由不一定比经过较慢链接路由更好。例如,如果一条快速链路很忙,分组到达目的所花时间可能要更长。

3.3.5 负载

负载指网络资源,如路由器的繁忙程度。负载可以用很多方面计算,包括CPU使用情况和每秒处理分组数。持续地监视这些参数本身也是很耗费资源的。

3.3.6 通信代价

通信代价是另一种重要的metric,尤其是有一些公司可能关系运作费用甚于性能。即使线路延迟可能较长,他们也宁愿通过自己的线路发送数据而不采用昂贵的公用线路。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Linux操作系统中,XFRM(eXtensible Forwarding Information Base)是用于IPSec(Internet Protocol Security)实现的重要组件。它负责对网络数据包进行加密、解密和验证等操作。下面是Linux XFRM收发包的流程: 1. 发送方:当发送方要发送一个经过IPSec保护的数据包时,它将数据包通过网络协议栈发送给XFRM层。 2. XFRM层处理:XFRM层首先会根据策略数据库(SPD,Security Policy Database)中的规则,查找匹配的安全策略。找到匹配项后,会根据策略中的SA(Security Association,安全连接)信息对数据包进行封装。 3. 封装数据包:XFRM层将数据包封装为IPSec packet,并根据匹配的SA信息,添加AH(Authentication Header,认证头)和ESP(Encapsulating Security Payload,封装安全载荷)头部等,以确保数据包的完整性和机密性。 4. 发送封装的数据包:封装完成后的数据包被传递给传输层协议(如TCP或UDP),由传输层协议在网络上进行发送。 5. 接收方:当接收方收到经过IPSec保护的数据包时,它将数据包交给XFRM层进行解封。 6. 解封数据包:XFRM层在解封数据包时,根据接收到的数据包中的AH和ESP头部,查找匹配的SA信息,然后根据SA信息进行解密、验证和解封操作。 7. 解封完成后,数据包被传递给上层应用程序进行处理。 总之,Linux XFRM收发流程主要包括查找匹配的安全策略、封装数据包、发送封装的数据包接收数据包、解封数据包以及将解封后的数据包传递给应用程序处理。通过这样的流程,Linux操作系统能够为IPSec提供强大的网络安全功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

axk0909

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值