首页 > 其他 > 详细

网络协议

时间:2020-02-15 12:38:42      阅读:76      评论:0      收藏:0      [点我收藏+]

路由协议

  路由协议分为两种 链路路由协议和距离矢量协议

  距离矢量协议

      底层使用bellman_ford最短路径算法实现,利用每个路由表上面记录的信息,(源地址,目标地址,跳数),然后来更新节点之间的信息

      问题:如果中间有一台机器突然离线挂机了,那么其他想要从这台机器上得到距离就会想办法从其他机器上获取+偏移量,但是有可能另一台离得更远,这个时候就会得到错误的信息,然后两           个互相这样去获取信息然后就会错上加错,

      解决办法:设定一个值,如果有一台得路由表距离超过这个值之后就停止报错,就也就是常见的RIP协议使用的方法,设定得值是16,如果达到16跳得时候就会报错

      问题:如果是几台服务器形成环路,就会造成其他机器没有被访问得到,然后将错误信息一直传递

      解决方法:标记源传递在哪里,和dfs中得标记数组差不多,学名叫水平分割

  链路路由协议

      底层使用dijstra最短路径算法,每个节点都能掌握全局得距离路径,相对于前面更加直观,而且不会遇到前面所说的问题,不过相对于前面要消耗更多资源,难以处理,应用于比较大型网 ,      OSPF使用得就是该协议原理

 

 

传输协议

  分为UDP和TCP

  UDP

    面向无连接的,发送的数据比较直接,没有什么处理,利用广播发送,可以建立多链接,发送包比较简单,只要记录自身端口和到达端口即可接收,UDP适用于实时性较强的场景,需要建立多连   接,网络情况较好,不太丢包,要求处理速度快,可以容忍少数丢包等场景

  TCP

    相对于UDP有几大区别,发送的包有序,丢包处理,拥塞控制,流量控制,是连接的,所谓连接并不是对网络进行处理,而是在机器与机器 端到端这里进行处理

    包有序:TCP发送的包的包格式,里面也包含源端口和目标端口, 然后里面还有一个序号,代表包的先后次序,这样就解决了包来的时候的乱序问题

    丢包:丢包的话有个应答包,如果丢包7,那么就会发送三个ACK6,代表需要重新发送7包过来

    流量控制:TCP发送包底层是实现了一个窗口的,发送端分为四种(已确认,已发送未确认,将要发送,暂时不发),接收端分为三种(已确认,等待接收未确认,不能接收),流量控制的实质也就是控制发送的包的量的大小,因为如果发送的包迟迟不接收确认的话,发送端就会频繁申请扩充窗口大小的包申请,本来网络就这样了,还频繁申请这个时候更卡,所以一般接收端在可结收空间不大的时候不告诉发送端,有一定大小的时候再说。

    拥塞控制:差不多就是怕你发的包太多等下怕丢包和超时重传,也就是不要发的太多,太多都要等,等久了都要死又要重新发,不要发太少,明明可以发的更多,但是发个一点点,这个时候拥塞控制用的底层原理就是倍增算法,学名叫慢启动+快重传,也就是开始发一个,然后两个,四个,八个,一直倍增,到了不行的时候,假设当前512个发现不得行,就改成256,然后还是不得行,就128发现可以了。

  TCP 的三次握手四次挥手我在其他博客上有讲到,不再总结,TCP三次握手建立连接主要目的是为了告诉对方,序列号,窗口大小等

  这里主要讲一下TCP三次握手可能遇到的问题  SYN flood

  SYN flood:也就是DDos攻击里的一种,利用的是TCP/IP协议栈进行攻击,也就是利用大量SYN请求去申请连接,这个时候服务器如果回答ACK包的话,然后攻击方不再给予回复,然后让服务器一直处于这种半连接状态消耗服务器资源,虽然TCP的处理策略是等待一段时间如果没有回复就放弃这个连接,但是如果大量请求来的时候还是足以在这段时间把服务器资源给耗死

  应对策略:

    SYN cookie :利用发送方给的序列号端口之类的东西产生出一个cookie号给发送方,如果回复cookie+1,那么就连接,否则不连接,但是计算这个cookie也要消耗大量资源,所以不太给力

    SYN  proxy:就是利用防火墙,防火墙去代替服务器去承受这些连接,防火墙发送一个错误的序列号,如果回复RST异常位,那就标记可以进行连接,然后可以和服务器进行连接, 否则不行,但是这个其实也就是用防火墙的高性能代替承受,如果达到防火墙的峰值还是会出现一样的问题,好像还有个华为的   “首包丢弃+源地址识别”    第二个就和这个处理一样,首包丢弃也就是把第一个包扔了,等待发送端再发一次过来,没细看,不知道得不得行    

 

网络协议

原文:https://www.cnblogs.com/Lis-/p/12311024.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!