网络层:网关协议

一. 网关

所谓的网管即就是之前路由器的名字, 即路由器和网关是一个东西

二. 内部网关协议

1. RIP协议

路由信息协议 RIP 是内部网关协议 IGP中最先得到的广泛使用的协议. 同时 RIP 是一种分布式基于距离向量的路由选择协议. RIP 协议要求网络中的每一个路由都必须维护自己到其他目的网络的距离记录. 其中的距离指的是从一个路由器到直接连接的网络的距离定义为1. 即直接交付条件下距离是1. 间接交付条件下就是这条路由中间经过的路由器的数量. RIP 协议中的距离就是跳数, 因此每经过一个路由器, 跳数就会加1.
它的最佳路由选择目标是距离最短, 报文首部中生存时间是 15, 如果经过 15 跳路由还没有到达, 此时就说明两个路由之间不可达, 报文控制协议会给发送方发送一个出错信息. 说明 RIP 协议只使用与小型互联网. 同时路由器中只存在一条路由, 当主机 A 和主机 B 之间有多条路由的时候, RIP 协议会从这三条记录中选择一条最短的路径, 它不会记录三条路由, 之后记录最短的一条路由.

2. RIP 协议的三个要点

从自己开始和隔壁进行路由交换, 我把我的路由信息给我的隔壁, 我的隔壁又把它的路由信息给我, 同时我的隔壁又把它的路由给它自己的隔壁, 这样就可已通过一步一步的交换, 就可以获得这个网络中的路由信息. 其中交换的是路由表的所有信息. 同时按照固定的时间进行一次路由交换, 一般是 30 秒左右.

3. 路由表的定义和收敛过程

路由表中除了目的路由和下一条网络之外会多一个最短距离. 每次查询 RIP 协议的时候由于它在路由表中定义了最短距离, 因此在查询路由信息的时候, 会以最短的时间查询出最短距离, 这就叫做收敛过程

4. 距离向量法路由算法

这里写图片描述

5. RIP 协议缺陷

只适用于小的网络, 同时由于追求最短距离, 可能会在发送过程中由于网络拥塞等原因造成传输效率降低. 同时适用运输层的数据包 UDP 作为报文信息. 同时 RIP 报文中包括了地址协议, (用的是构成超网, 划分超网地址等标志), 路由标记即就是路由属于哪个自治系统, 目的网络地址, 子网掩码, 下一跳的路由地址.路由出现故障时需要经过很长的时间才会认定该路由信息是断开的. 但实现简单, 收敛速度较快. 由于交换的是整个路由表, 因此随着网络的增加, 开销也会增加.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/383962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UVa1152

题意很好理解,就是从四个集合里面取出四个数字的和为0,问有多少种取法。 直接枚举肯定是会超时的,所以得想办法优化一下。我们可以将两个集合的所有的和都放在一个数组里面,这样得到两个数组,然后排序,对第…

Linux函数--inet_pton / inet_ntop

http://blog.csdn.net/lindyl/article/details/10427925 inet_pton 和 inet_ntop Linux下这2个IP地址转换函数,可以在将IP地址在“点分十进制”和“整数”之间转换而且,inet_pton和inet_ntop这2个函数能够处理ipv4和ipv6。算是比较新的函数了。 inet_pto…

网络基础: 浅析应用层一

应用层 1. http协议 在 http 中协议分为了协议方案名, 登录信息名, 服务器地址, 服务器端口号(http协议绑定的端口号), 文件类型, 查询的字符串, 片段标识位 2. http 请求协议格式 httpp 总共分为三大部分, 其中首行即就是第一部分, 分为三个区域, 第一去个区域是请方法, 第…

socket 编程篇六之IPO多路复用-select poll epoll

http://blog.csdn.net/woxiaohahaa/article/details/51498951 文章参考自:http://blog.csdn.net/tennysonsky/article/details/45745887(秋叶原 — Mike VS 麦克《Linux系统编程——I/O多路复用select、poll、epoll的区别使用》) 此外&#x…

UVa11054

挺简单的小模拟。 还是要注意思维的方向,要有切入点,不能像无头苍蝇一样东想一下西想一下,而应该分析问题的性质,然后尝试思维的方向,从不同的方向思考(顺序,逆序,排序后&#xff0…

浅谈传输层

1. 传输层的作用 在传输层中有两个特别重要的协议 TCP/UDP . 以快递员送快递为例说明这个问题吧. 在进行包裹传输的过程中快递员需要根据快递上的目的地址(目的计算机)来投递包裹(IP数据报), 加入在快递单上只写了收件人的所在地, 所在单位, 而只写了收件人的姓没有写收件人的…

UVa10375

题目描述很简单,就是求两个组合数的商.可是数字范围很大,肯定不能直接计算. 因此要用到唯一分解定理,即将结果全部表示为素因子的幂的形式. #include<cstdio> #include<cstring> #include<algorithm> #include<climits> #include<cctype> #inc…

I/O复用的 select poll和epoll的简单实现

http://www.cnblogs.com/wj9012/p/3876734.html 一个tcp的客户端服务器程序 服务器端不变&#xff0c;客户端通过I/O复用轮询键盘输入与socket输入&#xff08;接收客户端的信息&#xff09; 服务器端&#xff1a; 1 /*服务器:2 1.客户端关闭后&#xff0c;服务器再向客户端发送…

netstat 相关命令解析

1.列出所有的端口 netstat -a 列出TCP协议的端口 netstat -at UDP协议的端口 netstat -au 2.列出处于监听状态的socket netstat -l 列出监听的TCP端口 netstat -lt 列出监听的UDP端口 netstat -lu 列出监听的UNIX端口 netstat -lx 3.列出协议的统计信息 nestat …

UVa10791

我们可以先用唯一分解定理将这个数字分解成素因子幂的乘积&#xff0c;为了得到最小的和&#xff0c;我们可以发现&#xff1a;每个 素因子的幂单独分开的和是最小的。 先说明每个素因子都是以出现的最大的次数出现。因为最小公倍数一定&#xff0c;因此至少有一个数字的这个素…

TCP相关代码

TCP 基础代码 //tcp_server.c #include<stdio.h> #include<error.h> #include<sys/types.h> #include<string.h> #include<unistd.h> #include<sys/socket.h> #include<netinet/in.h> #include <arpa/inet.h> #include<st…

UVa1635

我们很容易发现最后每一项的系数就是二项式展开&#xff0c;余数和m没有关系就意味着可以被m整除&#xff0c;因此我们就需要求出每一个二项式的系数。但是数据实在太大我们根据唯一分解定理将m和系数都进行分解&#xff0c;然后比较因子的幂。 二项式的计算我们可以根据杨辉三…

几种并发服务器模型的实现:多线程,多进程,select,poll,epoll

http://www.cnblogs.com/wj9012/p/3879605.html 客户端使用select模型&#xff1a; 1 #include <stdio.h>2 #include <stdlib.h>3 #include <string.h>4 #include <errno.h>5 #include <sys/types.h>6 #include <sys/socket.h>7 #include …

哈希表1

1. 初始化 void HashInit(HashTable* ht, HashFunc func) {if(ht NULL || func NULL){return;}ht -> size 0;ht -> func func;int i 0;for(; i < HashMaxSize; i){ht -> data[i].state Empty;} } 2. 哈希表的销毁 void HashDestroy(HashTable* ht) {if(ht…

UVa10820

实质上就是求欧拉函数值 书上有个板子挺好&#xff0c;也不难理解。 #include<cstdio> #include<cstring> #include<algorithm> #include<climits> #include<cctype> #include<queue> #include<set>using namespace std;typedef l…

linux socket 编程(C语言)

https://www.cnblogs.com/x_wukong/p/4541010.html 最近看了一些网络编程的书籍&#xff0c;一直以来总感觉网络编程神秘莫测&#xff0c;其实网络编程入门还是很容易学的&#xff0c;下面这些代码是我在linux下编写的&#xff0c;已经运行过了&#xff0c;编译之后就可以运行了…

哈希表2

哈希表的初始化 void HashInit(HashTable* ht, HashFunc func) {if(ht NULL){return;}ht -> size 0;ht -> func func;size_t i 0;for(; i < MaxSize; i){ht -> data[i] NULL;} } 哈希表的结点创建 HashElem* CreateHashElemNode(KeyType key, ValueType va…

位图

相关数据结构 typedef uint64_t BitmapType;#define BITMAPMAXSIZE 1000 //位图所能容纳的位数typedef struct Bitmap {uint64_t* data;uint64_t capacity; }Bitmap; 初始化 void BitmapInit(Bitmap* bm, uint64_t capacity) {if(bm NULL){return;}//当capacity 100, 2个元…

C++中的inline用法

https://www.cnblogs.com/fnlingnzb-learner/p/6423917.html 1. 引入inline关键字的原因 在c/c中&#xff0c;为了解决一些频繁调用的小函数大量消耗栈空间&#xff08;栈内存&#xff09;的问题&#xff0c;特别的引入了inline修饰符&#xff0c;表示为内联函数。 栈空间就是指…

UVa1262

算是一个模拟吧 #include<cstdio> #include<cstring> #include<algorithm> #include<climits> #include<cctype> #include<queue> #include<set> #include<vector>using namespace std;typedef long long ll; const int INF…