趣谈网络协议笔记-二(第七,八,九讲)
趣谈网络协议笔记-二(第七,八,九讲)
勉励
- 人生而自由,却无往不在枷锁(牢笼)之中。 ——————卢梭@《社会契约论》
- 为那些有形的牢笼感到庆幸吧。
- 为自己出生于这个时代感到庆幸吧,因为知识的获取基本不需要获取任何成本。但是,过滤知识的开销就成为了成本,因此,感谢你周围那些乐于奉献的人们吧。
前言
第七讲和第八讲的内容关联性比较大,另外如果单单归纳第七章,那整理的内容就很少了。
感觉看完路由这一部分之后,整体的逻辑瞬间清晰起来了,为什么大学期间的知识总是不能落地呢?我真的感觉很怀疑。是不是给大学教师的钱太少了,大学教师光靠讲课的收入可能太低了,所以大多数大学教师不会特地去细心准备。真的感觉好可惜啊,真的,不能说教师是一项神圣的职业就让他们吃不饱穿不好吧。
好了,看完第七-九讲还是花了我比较长的时间,然后猛然感觉,想大概地归纳一下的话,可能真的需要花费比想象中更长的时间。
我还是希望从解决问题的角度来进行自己所学所得的归纳。
我真的很菜,甚至菜到很多个夜晚都睡不着的程度,但是我希望终有一天,我能成为别人心中的英雄。
为什么写这种可能对别人不怎么有用的博客呢,仅仅是因为我想证明自己还依然在努力,还依然没有放弃吧。
正文
这三篇按照我的理解主要是解决了如下三个问题:
- ping和ICMP是如何探测网络情况的?
- 网关和路由的工作原理
- 路由协议
解答1
ping和traceroute都是基于ICMP协议进行的。pin查询报文的操作,通过直接ping ip
或者ping 域名
的方式,计算机会一直发送ICMP请求,目标收到了信息会回复ICMP信息,头部类型8和0分别表示了发送和接收信息。查询报文是属于按照正常思路使用ICMP协议的操作。
于此相对的,就是差错报文,差错报文是利用tracerouter发送UDP包到目标计算机的不常用端口(30000以上)的方式来可以让目标计算机返回错误信息。如果成功访问到了目标的UDP层,也会因为端口问题返回ICMP请求,这反而说明了当前计算机和目标计算机是相通的!另外,也可以通过设置TTL(time to live)的方式来进行中间路由的校验。
ICMP首部TYPE和CODE对应表_Noooooorth的专栏-****博客_icmp code
解答2
网关和路由器一般是黏在一起的,网关往往分为两种,转发网关和NAT(network address translate)网关。
转发网关在转发请求的时候只会改变mac头部,但是NAT网关在转发请求的时候会同时改变ip地址。
转发网关仅仅是起到一个过路财神的作用,就是为了进行数据信息的传递工作。
但是NAT网关的作用就相对有趣了,是为了进行内外网的衔接而存在的。外网ip地址很稀有,因此就相对很贵,基本不可能对于内网中的每台设备都专门配备一个外网的ip,所以通过路由器时都会被伪装为同一个外网的ip,不同的是端口,NAPT(network address-port protocol)就是为此而存在的,该协议维护了一张表,用以表达两个网络间ip-端口对的互相映射关系。比如192.168.0.1就映射为外网的10086端口,192.168.0.2就映射为外网的10087端口,这样从内网发送出去的数据就可以互相区分彼此了,发送出去的数据也可以找回返回的路了。
终于到第三个问题了,也已经很晚了,这个问题整理完再看会视频就睡觉吧,我对于动漫= =
解答3
路由之间需要进行沟通从而知道你到底帮助我些什么?路由器会维护一张路由表来记录如下问题:
- 目的网络:你的目的地是哪里?
- 出口设备:将包从哪个口扔出去?
- 下一跳网关:下一个路由器的地址?
路由之间通过两种算法来构建路由器之间的网状关系,以及相互的最短路径。
第一种:距离矢量路由
这种方式通过TCP协议来每隔几秒向邻近的路由器发送自己的路由信息,从而整个网络每个路由器都会通过这种方式逐渐丰富自己的路由信息,最后所有路由器都会知道自己与其他路由器的连接情况。
这种方式的优先是新装入路由快,但是路由一旦不行了,刷新路由就很慢,必须要不断试探直到距离超过阈值,才会判定路由之间不通。另外一个缺点就是需要发送整个全部路由表。网络太大就吃不消了。
基于该算法的协议为BGP(border gateway protocol),为了避免该算法的在网络过大下产生的问题,就分为iBGP和eBGP用以分别对付内网和外网。
第二种:链路状态路由算法
这种方式通过DUP协议来每隔一段时间来广播传递信息,常常用于数据中心。他发送的是路由状态的改变信息,因此发送的数据量会明显小于第一种。每当一台新的路由器启动时,会向邻居发送信息以确定自己和邻居之间的距离,然后将该信息广播出去,以让整个网络中的所有路由器都能知道他已经横空出世了!
同理,当邻居发送他怎么停机了时也会发送改动信息,以告诉整个网络,他好像暂时不行了。
基于该算法的协议为IGP(Interior Gateway Protocol),主要用于数据中心,因为他可能快速地对路由变化进行响应所以更加便于进行负载均衡
的操作。