网络通信
文章平均质量分 70
香蕉割草机
这个作者很懒,什么都没留下
展开
-
TCP/IP协议栈socket实现浅析(上) 连接建立相关函数及连接建立过程分析
以陆运运送货物为例子,类比网络分层的作用,此处片面的描述作用范围。经过三层转发时,每次源目的mac全部会变更,而源目的ip是肯定不会变的。首先货物要包装好,然后发件人填写发件人的名字和收件人的名字(源目的端口号),填写收件人和发件人的地址(源目的ip),查看离自己最近的网点(比如某xx驿站)的地址把货物送出(默认路由和目的mac),货物会从网点出发,经过一个个中转站,最终把货物送达最后一个中转站,然后由中转站又到达了某某网点,快递员配送到收件人手中。//code。原创 2024-07-17 23:16:19 · 970 阅读 · 0 评论 -
路由转发相关下内核知识整理
netlink可以提供了接口可以向内核增加,删除,查找与接口、地址、路由、arp等相关信息。通过system函数直接下发net-tools或iproute2相关命令下内核。与路由相关的netlink协议族为NETLINK_ROUTE。第二个参数是设备相关的请求码。SIOCSIFVLAN 设置vlan虚接口。SIOCSIFFLAGS 设置接口标志。SIOCGIFFLAGS 获取接口标志。SIOCSIFADDR 设置接口地址。SIOCGIFADDR 获取接口地址。原创 2023-06-03 09:11:46 · 495 阅读 · 0 评论 -
FRRouting使用
当刚刚安装好后,启动FRR并不会做任何事情,这是因为守护进程必须在配置文件显式的使能才会运行。FRR的守护进程各自拥有自己的终端接口或VTY。可以通过每个守护进程的端口号去单独的连接他们。我的版本里面,这些端口号已经自动被加进/etc/services里面了systemctl status frr.service如果提示没找到,可以去git仓库拷贝服务文件。我这里是有的。像我在第一步里面已经把vrrp,rip,isis,ospf等全都使能了,所以在这里就能看到。vtysh是FRR的交互性shell:使用s原创 2022-07-09 16:05:28 · 1831 阅读 · 0 评论 -
netconf推模式数据上报
NETCONF event — 订阅模块上报事件文章目录1. 背景2. 组成部分3. 前后台通信图4. 异常情况5. 注意事项1. 背景配置该功能后,所订阅模块发生用户所订阅事件时,将主动上报NETCONF。2. 组成部分Xsd文件:订阅时校检下发stream和event是否正确,xsd中普通列的作用暂时未知。Tree文件:包含了需要上报的信息的xml结构。还包含了订阅时的回调函数。前台xml插件初始化/去初始化时初始化/去初始化事件通知用到的资源与被监控进程建立连原创 2021-02-24 21:52:17 · 357 阅读 · 0 评论 -
内部网关路由协议学习
工作以来,接触过的igp协议也有不少了,动态的路由选择协议中,大致分为两类:距离-矢量协议(如rip,eigrp等)及链路状态协议(如isis,ospf)。动态路由协议不仅执行路径决策和路由表更新功能,还要在最优路径不可用时决策下一条最优路径。动态路由协议比静态路由协议的最大优势就在于,动态路由协议能够缓解网络拓扑变化带来的影响。距离-矢量协议,是按照传闻进行路由选择。距离-矢量协议的路由是以矢量(距离,方向)的方式被通告出去的,其中距离是根据度量定义的,方向是根据下一台路由器定义的。比如“目标A在下一原创 2023-05-01 14:11:11 · 92 阅读 · 0 评论 -
eigrp协议基础
文章目录一、协议特性二、 EIGRP拓扑表三、报文格式四、EIGRP运行机制五、EIGRP路由的计算过程六、EIGRP SIA状态七、DUAL算法一、协议特性1.使用hello保文建立并维护邻居关系2.触发更新和部分更新3.运行DUAL算法,快速收敛,且无环4.支持路由聚合5.支持路由引入6.支持路由策略7.支持不等价负载分担8.适应较大范围网络二、 EIGRP拓扑表EIGRP将邻居通告的路径信息保存在拓扑表中,形成对全网的认知,并从中优选出最优路径。EIGRP拓扑表中包含了如下信息原创 2022-03-08 11:14:43 · 3380 阅读 · 0 评论 -
业务不间断重启-gr与nsr
Gr nsr在设备升级或故障时保证不断流,不影响业务转发。Gr和nsr区别是gr需要依赖对端系统Gr:前提:对端支持 (数据恢复期间保证邻居不down)本端转控分离(控制平面故障不影响转发平面工作)本端控制平面故障要有备份的控制平面或产生一个新的控制平面控制平面的配置数据有备份控制平面的运行数据有备份能够提供主备的感知和切换Nsr:前提:本端转控分离(控制平面故障不影响转发平面工作)切换时产生一个与原状态相同的控制平面控制平面的配置数据有备份控制平面的运行数据(邻居状态及对应的原创 2021-02-24 21:54:17 · 420 阅读 · 0 评论 -
报文转发流程简述
如果设备接收到的报文的目的MAC地址匹配三层接口的MAC地址,则通过设备的三层接口进行三层转发;否则通过设备的二层接口进行二层转发。二层转发根据报文的目的MAC地址查找MAC地址表,得到报文的出接口,然后将报文发送出去。三层转发根据通过路由表优选出的转发表获取下一跳及出接口信息,然后再根据下一跳出接口查邻接表,获取到该下一跳的链路层转发信息,如链路层协议(PPP、HDLC等)及介质类型(P2P、NBMA)、封装报文的链路层头信息等,然后根据此信息对报文进行封装后转发。若在网络层发现报文的目的地址是路由原创 2023-05-01 14:11:14 · 1845 阅读 · 1 评论 -
lfa概述
文章目录1 简述:1.1 Lfa1.2 Remote-lfa1.3 Ti-lfa2 TI-LFA计算流程2.1 计算bspf tree2.2 收集保护链路保护节点2.3 计算收敛后路径树2.4 节点保护tilfa2.5 链路保护tilfa2.6 LFA计算1 简述:1.1 Lfa遍历所有邻居,若满足N2D < N2S + S2D,则可以计算出lfa路径1.2 Remote-lfa计算PQ节点(扩展P空间和Q空间的交点),通过LDP隧道直接将报文送往PQ节点,进行后续转发。P空间:以保护链路原创 2021-02-24 21:46:19 · 5721 阅读 · 1 评论 -
spf算法概述
文章目录1. 算法概念2. Isis和ospf spf算法实现差异3. 具体计算方法4. spf算法能保证最短路径的原因5. 路由计算1. 算法概念Spf:最短路径优先 shortest path first有向权值图 求取某节点到任意其他节点的最短路径广度优先算法2. Isis和ospf spf算法实现差异Isis使用堆排序,ospf使用排序链表3. 具体计算方法拓扑计算根节点加入候选链表运行spf算法直到候选链表为空1.弹出候选链表中cost最小的节点2.遍历当前处理节点的所有l原创 2021-02-24 21:26:35 · 11516 阅读 · 0 评论 -
vrrp协议整理
文章目录一、 产生背景二、 基本概念三、 应用场景四、 VRRP功能五、 状态机六、 VRRP定时器七、 主备选举八、 报文特征九、 配置限制十、 问题分析一、 产生背景图 1通常,同一网段内的所有主机上都存在一个相同的默认网关,如图 1所示,处于同一网段的主机A B C的默认网关路由器为Gateway,主机发往其它网段的报文将通过默认网关进行转发,从而实现主机与外部网络的通信。当默认网关发生故障时,本网段内所有主机将无法与外部网络通信。如下图 2,若Gateway发生故障,主机A、B、C通往外界的原创 2021-02-24 21:25:12 · 1082 阅读 · 2 评论 -
ospfv2协议整理_incomplete
1. 报文类型1.1 OSPF报文类型OSPF协议报文直接封装为IP报文,协议号为89。OSPF有五种类型的协议报文:•Hello报文:周期性发送,用来发现和维持OSPF邻居关系,以及进行DR(Designated Router,指定路由器)/BDR(Backup Designated Router,备份指定路由器)的选举。•DD(Database Description,数据库描述)报文:描述了本地LSDB(Link State DataBase,链路状态数据库)中每一条LSA(Link Sta原创 2021-02-24 21:24:19 · 458 阅读 · 0 评论 -
isis基础
文章目录1. 区域划分与邻居建立2. 组网与各级路由器作用2.1 Level-1路由器2.2 Level-2路由器2.3 Level-1-2路由器2.4路由渗透3. 报文类型2.1 Hello报文2.2 LSP报文2.3 SNP报文2.4 TLV及PDU对应关系4. 一个典型的lsp1. 区域划分与邻居建立level-1只能和level-1(包含level-1-2)建立邻居,level-2只能和level-2(包含level-1-2)建立邻居,level-1-2作为同时属于level-1和level-2原创 2021-02-24 21:23:35 · 1339 阅读 · 0 评论 -
httpserver C实现
折腾的有点累,传输层用TCP解简单的http协议,然后实现了两个假的按钮233,这个是在别人的基础上完成的–>地址, 下面是源码:// HTTP1.1 与 1.0不同,默认是持续连接的(keep-alive)#include <Winsock2.h>#include <stdio.h>#include <string.h>_CRTIMP char* __cdecl __MINGW_NOTH原创 2017-10-27 21:29:54 · 3560 阅读 · 0 评论