参考帖子地址:https://blog.csdn.net/djl806943371/article/details/89391128

Switching与Forwarding是两个不同的概念。Switching是指端对端之间的数据交换,而Forwarding是指一个路由对收到的数据包进行转发。例如,同一个局域网内,client之间交换数据是Switching;而不同网络下需要穿过路由发送数据时,路由则是Forwarding数据包。

一般性包交换(packet switch)

  1. 寻找地址,通过forwarding table找到egress link
  2. 更新header,比如减少TTL,更新checksum
  3. 对packet进行排队操作

packet switch中要介绍下面两种类型 ethernet switching 和 internet router forwarding

Ethernet Switching过程:

  1. 检查每个到达的帧的首部
  2. 如果DA(Destination Address)能在转发表中找到,则直接转发到相应端口
  3. 如果DA不能再转发表中找到,则将这一帧广播给除发送者外的所有端口
  4. 当任意一个client收到来自其他client的数据包时都会将发送者的SA存储或更新到转发表

Internet Router Forwarding:

  1. 如果到达的帧的 Ethernet DA与自己MAC一致,则接收该帧,否则丢弃
  2. 取出IPdatagram,检查IP版本和datagram长度
  3. TTL减1,并更新校验和
  4. 检查TTL是否为0
  5. 如果IP DA能够在转发表找到,获取下一站的IP
  6. 将下一站IP转为Ethernet DA
  7. 创建一个新的帧并发送

查找可以采用二叉字典树或Ternary Content Addressable Memory (TCAM),后者常用,同时比对表中所有IP DA查找最长匹配的一个。

Introduction to Computer Networking学习笔记(十七):Switching and Forwarding 交换与转发相关推荐

  1. Introduction to Computer Networking学习笔记(十五):Queue Model 包交换中的缓冲模型

    本章知识点比较零散,因此一篇文章进行总结,并且不具有连贯性,仅记录自己认为有价值的内容. 将较大的包拆分为小包进行传输,可以减小端对端延迟,原因如下图: 数据传输时,突发大量的数据包会增加延迟,简单周 ...

  2. windows内核开发学习笔记十七:IRP 和 IO_STACK_LOCATION 的交互

    windows内核开发学习笔记十七:IRP 和 IO_STACK_LOCATION 的交互 前面两篇学习笔记分别介绍了IRP和IO_STACK_LOCATION,整个设备栈来处理这个IRP,但是每个设 ...

  3. Polyworks脚本开发学习笔记(十七)-制作宏脚本自定义工具条

    Polyworks脚本开发学习笔记(十七)-制作宏脚本自定义工具条 做好的宏脚本程序,每次打开脚本加载程序太多麻烦,为了方便的调用脚本做各种操作,可以使用系统的自定义工具条功能将脚本加载到工具条上. ...

  4. OpenCV学习笔记(十七)——K均值聚类

    当我们要预测的是一个离散值时,做的工作就是"分类".机器学习模型还可以将训练集中的数据划分为若干个组,每个组被称为一个"簇(cluster)".它的重要特点是在 ...

  5. kvm虚拟化学习笔记(十七)之KVM到KVM之v2v迁移

    1.源KVM虚拟主机node1 (1).查看源KVM虚拟主机上的虚拟机列表,本文计划将CentOS6.5-01虚拟机迁移到其它KVM虚拟主机中. [root@node1 ~]# virsh list ...

  6. 【theano-windows】学习笔记十七——梯度中的consider_constant

    前言 主要是在写玻尔兹曼机相关的theano时, 在计算梯度grad的时候发现一个参数名字叫做consider_constant,来看看这个到底做了什么事情 参考博客: using consider_ ...

  7. Mr.J-- jQuery学习笔记(十七)--动画淡入淡出弹窗广告

    之前写过动画的隐藏与显示:Mr.J-- jQuery学习笔记(十四)--动画显示隐藏 动画隐藏与显示的一个小demo--对联广告:Mr.J-- jQuery学习笔记(十五)--实现页面的对联广告 展开 ...

  8. Java学习笔记十七——集合类详细总结各自对比

    Java编程基础倒数第三篇,感谢没有放弃的自己. 学习笔记参考书籍<Java编程基础>主编 张焕生.本书内容比较适合没有什么基础的入门小白,学完一章还有习题,比较适合初学者. 自律.积极. ...

  9. CS269I:Incentives in Computer Science 学习笔记 Lecture 13:Introduction to Auctions(拍卖简介)

    Lecture 13 Introduction to Auctions(拍卖简介) 1 Preamble(前言) 为什么计算机科学家要关心拍卖?直到最近(甚至可能仍然),提到拍卖,我们脑海中联想到的图 ...

  10. 概率导论(Introduction to Probability, 2E)学习笔记 Part Ⅰ

    笔记内容基于Introduction to Probablity, Second Edition 因笔者为初学者,故内容不会面面俱到 若有表述错误还望直接指出 --2022.1 样本空间与概率 本书的 ...

最新文章

  1. hibernate中的hql查询语句list查询所有与iterate查询所有的区别
  2. RHEL5系统X桌面中文乱码解决办法
  3. MYSQL查询数据中通讯最多的两个人
  4. hashmap为什么用红黑树_全网最全,面试常问的HashMap知识点
  5. 红帽子linux安装ftp,Linux 安装 vsftpd ftp软件包
  6. 首届大湾区 DevOps/微服务秋季分享会圆满落幕!
  7. javabean连接mysql数据库,jsp+javabean 链接 mysql 数据库
  8. (一)使用MLOps自动训练、测试和部署AI:概述
  9. php session的一些理解
  10. 物流配送管理系统(ssm,mysql)
  11. 共同富裕、乡村振兴专题:基尼系数、恩格尔系数、泰尔指数-数据大全整理
  12. 解码器常见故障及解决方法
  13. 操作系统引导详细过程
  14. kafka-eagle 使用配置及远程jmx端口设置遇到的问题
  15. wifi大师分销多开v3.1.5安装教程附带源码
  16. 基于ROS设计一款机械臂控制系统 [转发]
  17. [ODBC Driver 18 for SQL Server]SSL 提供程序: 证书链是由不受信任的颁发机构颁发的
  18. SprintBoot:Post请求的参数多一个逗号的解决方法
  19. 彻底解决 Windows 下 PHP 响应异常缓慢的问题
  20. 如何在Power BI Desktop中创建词云生成器

热门文章

  1. 由一次NoHttpResponseException异常,追究到Http长连接和短连接
  2. MyBatis源码阅读(八) --- Executor执行器
  3. 【Shiro第一篇】 Shiro权限框架简介
  4. 【Hoxton.SR1版本】Spring Cloud Eureka服务注册中心集群搭建
  5. Java创建多线程的方法总结
  6. springmvc应用-自定义参数解析器
  7. zuul业务检查相关模块
  8. 【12.2新特性】Oracle Sharding分片级别的高可用实现
  9. AIX下内存泄漏的监控
  10. KeyShot中该怎么添加反射地平面