IP 回顾

在进入正题之前,先了解一下TCP/IP的四种不同的中继系统:
1)物理层中继系统:中继器,集线器
2)数据链路层中继系统:网桥或者交换机
3)网络层中继系统:路由器
4)网络层以上中继系统:网桥

IP协议

现在的网络是基于IP协议,通过IP协议可以是性能各异的网络在网络层上看起来好像是一个统一的网络。使用这种IP协议的虚拟互联网络也可简称IP网络。

开头已经介绍网络层的中间设备是路由器,IP数据包都是通过路由器进行转发。路由器主要完成两个功能:一个是路由选择,一个是分组转发。两者的区别是前者是根据特定的路由选择协议构造路由表,同时经常或者定期地和相邻路由器交换路由信息而不断地更新和维护路由表。后者则是处理通过路由器的数据流,核心是转发表查询,转发以及相关队列的管理和任务调度。

路由算法简介

路由算法可分为两大类:
1)静态路由算法:因为是网络管理人员手动配置,并且一旦配置完成不能更改,在实际中很少用到,就不说了。
2)动态路由算法:这个才是关键,路由器的路由表通过相互连接的路由器之间彼此交换信息,按照一定的算法优化出来,而这些路由信息在一定的时间间隔里不断更新,以适应不断变化的网络。

RIP

距离-向量路由算法:
每一个路由表都有三个关键字<目的网络,距离,下一跳路由器>算法步骤:
当收到相邻路由器(其地址为X)的一个RIP报文时

(1)先修改此RIP报文中的所有项目:将下一跳字段中的地址都改为X,并将所有的距离字段值加1;

(2)对修改后的RIP报文中的每一个项目重复如下步骤:
若项目中的目的网络不在路由表中,则将该项目加到路由表中。
否则,若下一跳字段给出的路由器地址相同,则将收到的项目替换原路由表中的项目。
否则,若收到的项目中的距离小于路由表中的距离,则进行更新。否则,什么都不做;

(3)若3分钟还没有收到相邻路由器的更新路由表,则将此相邻路由器记为不可达的路由器,即将距离置为16(距离为16表示不可达);

(4)返回

RIP让互联网中所有的路由器都和各自的相邻路由器不断交换并更新路由信息,最终可以使得每个路由器到到每个目的网络的距离最短。 总之,RIP的优点是算法简单,但是RIP不适应大网络,也不适应变化剧烈的网络环境。从RIP算法的分析中可以发现其特点是“好消息传得快,坏消息传的慢”,这意味着当网络出现故障时,信息要经过较长时间才能通知到网内所有的路由器。

RIP是应用层协议,使用UDP传送数据(端口520)。RIP协议选择的路径不一定是时间最短的,但一定是具有最少路由器的路径。依据最少的跳数进行路径选择。

OSPF

  (1)所有的路由器都维持一个链路状态数据库,只有可达邻站的链路状态信息才存入链路状态数据库,这个数据库实际上就是整个互连网的拓扑结构图。而使用RIP协议的路由器只各自知道到所有目的网络的下一站路由器,但却不知道全网的拓扑结构。

  (2)OSPF让每一个链路状态都带上一个32bit的序号(增长的速率不得超过每5秒1次),序号越大状态越新。每一个路由器用链路状态数据库中的数据,算出自己的路由表。

  (3)要网络拓扑发生任何变化,链路状态数据库就能很快地进行更新,使各个路由器能够重新计算出新的路由表。

  (4)OSPF依靠各路由器之间的频繁交换信息来建立链路状态数据库,并维持这数据库在全网范围内的一致性(链路状态数据库的同步)。

  (5)OSPF不像RIP使用运输层的用户数据报UDP进行传送,而是直接用IP数据报传送,并且数据报很短。

OSPF五种分组类型:
1)问候分组:用来发现和维持临站的可达性
2)数据库描述分组:向临站发出自己的链路状态数据库中的所有链路状态项目的摘要信息。
3)链路状态请求分组:向对方请求发送某些链路状态项目的详细信息。
4)链路状态更新分组:用洪泛对全网更新链路状态。
5)链路状态确认分组:对链路更新分组的确认。

对一个自治系统,内部网关协议(IGP)采用的大多数是RIP或者OSPF。

AS(自治系统):在单一的技术管理下的一组路由器,这些路由器使用一种AS内部的路由选择协议和共同度量的以确定分组在该AS内的路由,同时还是用一种AS之间的路由选择协议用以确定分组在AS之间的路由。

而外部网关协议(EGP)一般采用BGP-4,但是也有采用RIP和OSPF的、

BGP

BGP将传输控制协议(TCP)用作其传输协议。是可靠传输,运行在TCP的179端口上(目的端口)
1) 由于传输是可靠的,所以BGP0使用增量更新,在可靠的链路上不需要使用定期更新,所以BGP使用触发更新。

2) 类似于OSPF和ISIS路由协议的Hello报文,BGP使用keepalive周期性地发送存活消息(60s)(维持邻居关系)。

3) BGP在接收更新分组的时候,TCP使用滑动窗口,接收方在发送方窗口达到一半的时候进行确定,不同于OSPF等路由协议使用1-to-1窗口。 ? 丰富的属性值

4) 可以组建可扩展的巨大的网络

5)BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀,吓一跳路由器,以及到大概目的网络索要经过的各个自治系统序列。

6)刚开始运行BGP交换的是整个BGP的路由表,以后只要需要在发生变化时有更新有变化的部分。这样做可以节省网络带宽,减少路由器的处理开销。

BGP-4四种报文:
1)打开报文:与相邻的另一个BGP发言人建立联系。
2)更新报文:发送某一路由信息,以及列出要撤销的多条路由
3)保活报文:用来确认打开和周期性的正式邻站关系
4)通知报文:用来发送检测到的差错

IP协议数据报

这里写图片描述
计算机网络还有很多博客对IP每个字段讲解的都很详细,还是简单说一下吧:

1)版本:占4位,指IP协议的版本.通信双方使用的IP协议版本必须一致.日前广泛使用的 IP协议版本号为 4 (即 IPv4).IPv6 目前还处于起步阶段.

2)首部长度:占 4 位,可表示的最大十进制数值是15.请注意,这个字段所表示数的单位是32位字 (1个32位字长是4 字节),因此,当 IP 的首部长度为 1111 时 (即十进制的 15),首部长度就达到 60字节.当 IP 分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充.因此数据部分永远在 4字节的整数倍开始,这样在实现 IP协议时较为方便.首部长度限制为 60字节的缺点是有时可能不够用.这样做的目的是希望用户尽量减少开销.最常用的首部长度就是 20 字节 (即首部长度为 0101),这时不使用任何选项.

3)服务:占 8 位,用来获得更好的服务.这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过.1998年IETF把这个字段改名为区分服务 DS(Differentiated Services).只有在使用区分服务时,这个字段才起作用.

4)总长度:总长度指首都及数据之和的长度,单位为字节.因为总长度字段为 16位,所以数据报的最大长度为 216-1=65 535字节.在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,即最大传送单元 MTU (Maximum Transfer Unit).当一个数据报封装成链路层的帧时,此数据报的总长度 (即首部加上数据部分)一定不能超过下面的数据链路层的MTU值,否则要分片.

5)标识 (Identification):占 16位.IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段.但这个”标识”并不是序号,因为 IP是无连接的服务,数据报不存在按序接收的问题.当数据报由于长度超过网络的 MTU 而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中.相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报.

6)标志 (Flag):占3 位,但目前只有2位有意义. 标志字段中的最低位记为 MF(More Fragment).MF=1即表示后面”还有分片”的数据报.MF=0表示这已是若干数据报片中的最后一个.标志字段中间的一位记为DF(Don’t Fragment),意思是”不能分片”,只有当 DF=0时才允许分片.

7)片偏移:占 13位.较长的分组在分片后,某片在原分组中的相对位置.也就是说,相对用户数据字段的起点,该片从何处开始.片偏移以 8个字节为偏移单位,这就是说,每个分片的长度一定是 8字节(64位)的整数倍.

8)生存时间:占 8位,生存时间字段常用的英文缩写是TTL(Time To Live),其表明数据报在网络中的寿命.由发出数据报的源点设置这个字段.其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源.最初的设计是以秒作为 TTL的单位.每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间.若数据报在路由器消耗的时间小于 1 秒,就把TTL值减 1.当 TTL值为 0时,就丢弃这个数据报.

9)协议:占 8 位.协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程.详细资料请看文章最后的注释.

10)首部检验和:占 16位.这个字段只检验数据报的首部,但不包括数据部分.这是因为数据报每经过一个路由器,都要重新计算一下首都检验和 (一些字段,如生存时间,标志,片偏移等都可能发生变化),不检验数据部分可减少计算的工作量.

11)源地址:占32位.

12)目的地址:占 32位.

13)IP数据报首部的可变部分
IP首部的可变部分就是一个可选字段.选项字段用来支持排错,测量以及安全等措施,内容很丰富.此字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目.某些选项项目只需要1个字节,它只包括1个字节的选项代码.但还有些选项需要多个字节,这些选项一个个拼接起来,中间不需要有分隔符,最后用全0的填充字段补齐成为4字节的整数倍.

增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的.这就增加了每一个路由器处理数据报的开销,实际上这些选项很少被使用.新的IP版本IPv6就将IP数据报的首部长度做成固定的.

接下来简单说一下网络层转发分组的流程:

1)从数据报的首部提取目的主机的IP地址D,得出目的网络地址N

2)若网络N与此路由器直接项链,则把数据报交付给目的主机D,也就是所谓的直接交付。否则3)

3)若路由表中有目的地址D的特定主机路由,则吧数据报传送给路由表中所指明的下一跳路由器,否则4)

4)若路由表中有达到网络N的路由,则把数据报传送给路由表指明的下一跳路由否则5)

5)若路由表中又一个默认路由,则把数据报传送给路由表中所指明的默认路由,否则6)

6)报告转发分组出错

IP协议还涉及到分类地址:A,B,C,D,E五类
这里写图片描述

还有子网划分,子网掩码,CIDR等,感兴趣的可以看计算机网络或者牛人博客哦!

NAT

网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术。通过将专用网络地址转换为公用地址,从而对外隐藏了内部管理的IP地址。是的整个专用网只需要一个全球IP地址就可以与因特网连通,由于专用网本地IP地址可重用,所以NAT节省了IP地址消耗,同时隐藏了内部网络结构,从而降低了内部网络受到攻击风险。

这里写图片描述

1、资源项目源码均已通过严格测试验证,保证能够正常运行;、 2项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行;、 2项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值