当前位置: 首页 > news >正文

贵阳网站建设哪家好企业网站建设制作设计哪家最专业

贵阳网站建设哪家好,企业网站建设制作设计哪家最专业,百度网盟推广 网站,怎么弄一个公司网站文章目录 基础信息建链 3次握手断链4次挥手建联状态active端passive端 报文结构函数关系其他后记 基础信息 CM: Communication Management 通信管理 连接管理SIDR: Service ID Resolution Protocol. 作用: enables users of Unreliable Datagram service to locate …

文章目录

  • 基础信息
  • 建链 3次握手
  • 断链4次挥手
  • 建联状态
    • active端
    • passive端
  • 报文结构
  • 函数关系
  • 其他
  • 后记

基础信息

在这里插入图片描述

  • CM: Communication Management 通信管理 连接管理
  • SIDR: Service ID Resolution Protocol. 作用: enables users of Unreliable Datagram service to locate Queue Pairs supporting their desired service.
  • MAD: Management Datagrams 管理报文
  • GSI:General Services Interface 通用服务接口
  • QP1:专用与rdma cm建链
  • 分为server端和client端,在RDMA中server端叫passive端(被动)、client端叫active端(主动)

建链 3次握手

在这里插入图片描述

  • req包、rep包、RTU包,rdma中叫做msg
  • Request (REQ) message,
  • Response (REP) message,
  • RTU:Ready To Use。 在内核消息处理中收到该msg之后,会将qp attribute设置RTS和RTR。 read to send ;read to receive
  • Queue Pair Number (QPN): QP数字
  • EEC: End to End Context 端到端上下文
  • req中告诉对端cid、qkey、qpn、guid以及udp的sport
  • rep中同样告诉对端cid(communication id 通信id,相当于session回话的id,每次建联有一个id)、qkey、qpn。(相当于也是对req的一个ack,同时携带自己的信息)
  • rtu包含了lcid和rcid表示本地和远端的cid,算是以此确认。
  • 同样的后面讲的dreq中也会携带lcid和rcid

断链4次挥手

双端都需要发送所以累计四次
在这里插入图片描述

建联状态

active端

在这里插入图片描述

passive端

在这里插入图片描述

报文结构

  • 报文结构:BTH | DETH | MAD header| MAD payload | CRC
  • 其中MAD payload,根据消息不同,是不同的消息内容:req、rep、mra、rtu等
  • BTH:Base Transport Header:基础传输头,主要是opcode(比如write 0x10、send 0x4、ack 0x17)、Partition key和目标QP(cm的目标QP都是1),以及报序号
  • DETH:Datagram Extended Transport Header:数据报文扩展传输头。主要是query key和source QP。(BTH中是dst qp,deth中是src qp,有点类似以太的smac和dmac。
  • MAD:Management Datagrams 管理报文。主要包含Method(是send recv等)、Attribute ID(属性ID,比如req 0x10、rep 0x13、mra 0x11、rtu 0x14、dreq 0x15、drep 0x16)
  • 管理路线:BEM结构 E表示extend,E可以是DETH(数据)、AETH(ack)、RETH(rdma)
  • 数据路线:BD结构:BTH头部和Data的数据比如rdma send数据
  • BTH找QP与optype、DETH找sq和key、MAD找attid(比如cm req)、MAD payload找具体的cm msg信息(比如cmd id 等)

函数关系

  • 内核中处理msg的发包函数都是ib_send_cm_xxx开头,比如ib_send_cm_req、ib_send_cm_rep、ib_send_cm_mra、ib_send_cm_rtu…
  • 收包函数都是cm_xxx_handler,比如cm_req_handler、cm_rep_handler、cm_rtu_handler、cm_mar_handler、cm_dreq_handler…
  • 内核收包处理流程,是ib_cm.ko中调用ib_register_mad_agent注册cm_recv_handler到mad层进行收包,cm_recv_handler中收到后会启动一个work,然后通过work event发给内核work上下文进行处理,也就是cm_req_xxx这些函数会在work上下文处理,work的入口函数是cm_work_handler。然后cm_work_handler根据event是req、rep等调用到对应的cm_xxx_handler.
  • rdma对应的API调用底层关系是 rdma api -> rdma cm文件(infiniband/rdma_cm) -> 发送write dev函数 -> 内核态ucma处理 -> 内核态rdma接口处理 -> 内核态cma(代理)处理 -> 内核态cm处理 -> 内核态mlnx处理 -> 网卡硬件处理
  • 比如rdma_acccpt接口实现就是 打开infiniband/rdma_cm文件,封装wirte数据命令 CM_CMD_ACCEPT,通过write发送给内核,内核根据cmd的值在ucma_cmd_table中进行match,匹配后调用对应函数ucma_accept函数,然后调用[k] rdma层的rdma_accept、然后调用cm代理cma层的cma_accept,然后继续往后调用
  • rdma_connect会发送req 报文
  • rdma_listen会监听,进入rdma_accept后会发送rep报文或者mra,其他报文类似
  • ib_send_cm_xxx最后都会调用ib_post_send_mad发送给mad层,然后mad层调用ib_send_mad调用ib_post_send,然后调用到mlx5_ib_post_send异步发送

其他

  • 所有的RoCE v2的报文都会经过UDP,可以通过tcp抓包,但是tcp抓包需要指定端口是mlx5的端口,而不是eth口。

后记

更多细节以后逐渐补充。

http://www.yayakq.cn/news/993505/

相关文章:

  • 清河网站建设js做音乐网站
  • 太原做网站效果怎么样成都网络推广哪家好
  • 晋中住房与城乡建设厅网站石家庄网站建设工作室
  • 自己如何做棋牌网站wordpress 调用文章
  • 天津企悦在线网站建设做网站注册哪些商标
  • 网页设计好的网站单页式网站
  • 广东华迪工程建设监理公司网站中国100强排名企业名单
  • 开发网站如何选需要注意什么ug编程培训
  • 英文网站怎么做外贸推广室内设计方案讲解思路
  • 德国设计网站大全湖北科技职业学院
  • ui中国设计网站页面手机网站根目录
  • 东莞网站建设制作山西网站备案
  • 在线一键建站系统app搭建要多少钱
  • 个人宽带 架设网站需备案wordpress 响应速度慢
  • 做网站月薪资多少钱wordpress category 404
  • 企业门户网站制作周期建站能赚钱吗
  • 知名网站有哪些郑州发布今天最新通告
  • 宁波seo网站建设费用九江建设网站
  • asp服装网站模板亚马逊上卖得最好的中国产品
  • 广州建设工程造价管理站网站安徽企业网站建设公司
  • 如何建设线报网站除了昵图网还有什么做图网站
  • 网站建设招标无锡外网加速
  • 茶叶网站模板免费下载石家庄免费网站制作
  • 网站建设规划书河北注册一个做网站的公司
  • 保定网站建设冀icp手机建立网站的软件
  • 关于1-6月网站建设工作通报网站字体大小合适
  • php网站 怎么取得后台管理权限wordpress国外简约主题
  • 个人网站备案要多久软件开发知识
  • asp 网站开发西安官网seo诊断
  • 建设银行 产品管理中心网站寿光建设银行网站