TCP/IP笔记 二.网络层(2)——ICMP,RIP,OSPF,BGP
1. ICMP
ICMP (Internet Control Message Protocol) 作用:提高 IP 数据报交付成功的机会。
1.1 特点
ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
ICMP 不是高层协议,而是 IP 层的协议。
ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。
1.2 格式
1.3 报文类型
种类 | 值 | 类型 |
差错报文 | 3 | 终点不可达 |
4 | 源站抑制 | |
11 | 时间超过 | |
12 | 参数问题 | |
5 | 改变路由(重定向) | |
询问报文 | 8或0 | 会送请求或回答 |
13或14 | 时间戳请求或回答 |
1.4 应用
(1)Ping(Packet InterNet Groper)
ping可以说是ICMP的最著名的应用,当我们某一个网站上不去的时候。通常会ping一下这个网站。ping会回显出一些有用的信息。一般的信息如下:
Reply from 10.4.24.1: bytes=32 time<1ms TTL=255
Reply from 10.4.24.1: bytes=32 time<1ms TTL=255
Reply from 10.4.24.1: bytes=32 time<1ms TTL=255
Ping statistics for 10.4.24.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
ping这个单词源自声纳定位,而这个程序的作用也确实如此,它利用ICMP协议包来侦测另一个主机是否可达。原理是用类型码为0的ICMP发请 求,受到请求的主机则用类型码为8的ICMP回应。ping程序来计算间隔时间,并计算有多少个包被送达。用户就可以判断网络大致的情况。我们可以看到, ping给出来了传送的时间和TTL的数据。我给的例子不太好,因为走的路由少,有兴趣地可以ping一下国外的网站比如sf.net,就可以观察到一些 丢包的现象,而程序运行的时间也会更加的长。
ping还给我们一个看主机到目的主机的路由的机会。这是因为,ICMP的ping请求数据报在每经过一个路由器的时候,路由器都会把自己的ip放到该数 据报中。而目的主机则会把这个ip列表复制到回应icmp数据包中发回给主机。但是,无论如何,ip头所能纪录的路由列表是非常的有限。如果要观察路由, 我们还是需要使用更好的工具,就是要讲到的Traceroute(windows下面的名字叫做tracert)。
2. Router 选择协议
(1)内部网关协议 IGP (Interior Gateway Protocol) 即在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。
(2)外部网关协议EGP (External Gateway Protocol) 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。在外部网关协议中目前使用最多的是 BGP-4。
2.1 RIP(Routing Information Protocol)
2.1.1 工作原理
RIP 是内部网关协议 IGP中最先得到广泛使用的协议,是一种分布式的基于距离向量的路由选择协议,要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
(1)给每一个已知的路由器发送rip请求报文,要求其他路由器给出完整的路由表。这种报文的命令字段为1,地址字段为0,度量地段为16(相当于无穷大)。
(2)接受请求,如果接收到刚才的那个请求,就把自己的完整的路由表交给请求者。如果没有,就处理IP请求表项,把表项中自己有的部分添上跳数,没有的部分添上16。然后发给请求者。
(3)接受回应。更新自己的路由表。使用hop数小的规则。
(4)定期更新路由表,一般是30s(真频繁)给相邻的路有启发一次自己的路由表。这种形式可以使广播形式的。
距离:RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。
RIP 允许一条路径最多只能包含 15 个路由器,RIP 只适用于小型互联网
2.1.2 优缺点
(1)RIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。
(2)RIP 协议最大的优点就是实现简单,开销较小。
(3)RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
(4)路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加.
缺点:好消息传播得快,而坏消息传播得慢。网络出故障的传播时间往往需要较长的时间(例如数分钟)。这是 RIP 的一个主要缺点。
2.1.3 RIP2报文格式
2.2 内部网关协议 OSPF
OSPF (Open Shortest Path First)
2.2.1 基本特点
(1)“开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。
(2)“最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法SPF
(3)OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。
(4)分布式的链路状态协议。
2.2.2 三要点
(1)向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。
(2)发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。
(3)只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
注意与RIP协议的区别
2.2.3 区域
OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域
好处:
(1)将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。
(2)在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况,这样就减少了link-state database
2.2.4 OSPF 直接用 IP 数据报传送
(1)OSPF 不用 UDP 而是直接用 IP 数据报传送,可见 OSPF 的位置在网络层。
(2)OSPF 构成的数据报很短。这样做可减少路由信息的通信量。
(3)数据报很短的另一好处是可以不必将长的数据报分片传送。分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。
2.3 外部网关协议 BGP
BGP 是不同自治系统的路由器之间交换路由信息的协议。
2.3.1 发言人
每一个AS(自治系统)的管理员要选择至少一个路由器作为该自治系统的“BGP 发言人” 。
不同AS之间的通信是靠“发言人”交换信息完成的(通过TCP链接通信)。
2.3.2 BGP-4 报文
(1) 打开(Open)报文,用来与相邻的另一个BGP发言人建立关系。
(2) 更新(Update)报文,用来发送某一路由的信息,以及列出要撤消的多条路由。
(3) 保活(Keepalive)报文,用来确认打开报文和周期性地证实邻站关系。
(3) 通知(Notificaton)报文,用来发送检测到的差错。
TCP/IP笔记 二.网络层(2)——ICMP,RIP,OSPF,BGP的更多相关文章
- TCP/IP笔记 二.网络层(1)
1. IP 1.1 配套协议 IP 是 TCP/IP 体系中两个最主要的协议之一 . 与 IP 协议配套使用的还有四个协议: (1)ARP (Address Resolution Protocol ...
- TCP/IP笔记(二)TCP/IP简介
上回,主要介绍了下协议和OSI参考模型,并简单了解下网络构成要素,这回该说说TCP/IP了 互联网与TCP/IP的关系 互联网进行通信时,需要相应的网络协议,TCP/IP原本就是为使用互联网而开发 ...
- <再看TCP/IP第一卷>关于网络层及协议细节---ICMP协议几个要注意的地方
在TCP/IP协议族中,ICMP协议是一个介于网络层和传输层中间的一个协议,许多材料都会认为ICMP是网络层的一个部分,但是ICMP协议的报头是被包裹在IP协议之中的,而UDP协议又可以被ICMP协议 ...
- TCP/IP入门(2) --网络层
/** 本篇博客由 126(127不可用) 2^24 -2 B 2^14 -1 128.1 191.255 2^16 -2 C 2^21 -1 192.0.1 223.255.255 2^8 -2 D ...
- TCP/IP协议<二>
一.TCP/IP的标准化 1.TCP/IP的含义 一般来说,TCP/IP是利用IP进行通信时所必须用到的协议群的统称. 具体点,IP或ICMP.TCP或UDP.TELENT或FTP.以及HTTP等都属 ...
- TCP/IP笔记(四)IP协议
前言 IP相当于OSI参考模型的第3层--网络层:主要作用是"实现终端节点之间的通信"又称"点对点通信". IP作为整个TCP/IP中至关重要的协议,主要负责将 ...
- TCP/IP笔记(五)IP协议相关技术
IP旨在让最终目标主机收到数据包,但是在这一过程中仅仅有IP时无法实现通信的.必须还要又能够解析主机名称和MACdivide功能,以技术包在发送过程中异常情况处理的功能. 这篇主要介绍下DNS.ARP ...
- TCP/IP(二)物理层详解
前言 在前面说了一下,计算机网络的大概内容,没有去深刻的去了解它,这篇文章给大家分享一下物理层! 我们知道ISO模型是七层,TCP/IP模型是五层,而tcp/ip协议只将七层概括为4层,我们将学习其中 ...
- <TCP/IP原理> (二) OSI模型和TCP/IP协议族
1.OSI参考模型 1)作用 2)各层的名称和功能 2.对分层网络协议体系的理解 1)不同节点:层次组成不同,作用不同 2)横向理解:虚通信.对等实体.协议.PDU 3)纵向理解:封装与解封.服务.接 ...
随机推荐
- Codeforces Round #198 (Div. 2) C. Tourist Problem
C. Tourist Problem time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- uart串口协议
uart串口协议 /* USART Word Length ---------------------------------------------------------*/ US ...
- ZOJ 3594 年份水题 【注意:没有0年】
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #i ...
- 11-UIKit(Storyboard、View的基本概念、绘制图形、UIBezierPath)
目录: 1. Storyboard 2. Views 3. View的基本概念介绍 4. 绘制图形 5. UIBezierPath 回到顶部 1. Storyboard 1.1 静态表视图 1)Sec ...
- C/C++取出变量的每一位的值(第一次知道还有QBitArray)
前写程序最多也只是字节级别操作,用char和memcpy进行一系列内存操作.此次一个sdk,其状态值直接是每位一个标示,所以需要取出每位进行操作.当然CPP也有丰富的位运算操作,但是虽然也学过,知道意 ...
- Jquery学习笔记:操作form表单元素之一(文本框和下拉框)
一.概述 在web页面开发中,经常需要获取和设置表单元素的值(如文本框中的内容),特别是在ajax应用中,更是常态.本文系统的介绍下如何操作. 同操作其它html元素一样,操作的过程差不多. 第一步, ...
- 基于visual Studio2013解决C语言竞赛题之0802图书信息查询
题目 解决代码及点评 /* 功能:有一批图书,每本书有:书名(name),作者(author) , 编号(num),出版日期(date)四个数据, 希望输入后按书名的字母顺序将各书的记录排列好, ...
- Silk Icons —— 再来 700 个免费小图标
http://mp.weixin.qq.com/mp/appmsg/show?__biz=MjM5NzM0MjcyMQ==&appmsgid=10000977&itemidx=2&am ...
- AT&T汇编
AT&T汇编和8086汇编语言虽然两者很相似,但是还是不能根据8086的语法规则来读AT&T汇编的吧,所以还是要看看AT&T汇编的语法规则,因为在读内核代码时,跟硬件打交道的部 ...
- Flexigrid的编辑功能
editCells:function(){ if(!isEditing){ isEditing = true; $('tbody tr',$(t)).each(function () { for(va ...