计算机网络5-IP

喜欢这篇文章吗?喜欢的话去看博主的置顶博客,即可依据分类找到此文章的原版得到更好的体验,

图片及代码显示的问题,笔者深感抱歉,想要更好的体验去原博文即可。


title: 计算机网络5 - IP
mathjax: true
date: 2020-03-19 17:26:40
categories: [计算机网络]
tags: [计算机网络]
keywords: [计算机网络]


IPv4与IPv6

   IPv4使用32位地址,IPv6使用128位地址

早期的地址

   前八位为网络地址,后24位为主机地址,人们认为256个网络就足够了

类地址

   接下来人们设计了ABCDE类的地址

类别 IP
A类 0******* ******** ******** ********
B类 10****** ******** ******** ********
C类 110***** ******** ******** ********
D类 1110**** ******** ******** ********
E类 11110*** ******** ******** ********

   其中的E是不使用的,D是多播的
   C类地址太多了,路由器存不下

现在的路由表

  • CIDR = 无类别域间路由
  • 网络和主机地址间的划分是可变的
  • 为了辨认这两个,提出了掩码,IP按位与掩码就是网络
perfix Next Hop
192.24.0.0/19 D
192.24.12.0/22 B

如何寻路?

   匹配LCP(最长公共前缀),常用X快速前缀树这个数据结构,链接在这{% post_link X快速前缀树 %}, 通过最佳匹配项,找到应该走的路径即可。

碰到环路

   为每一个IP包设置TTL,每一次寻路就让其减少1,减少到0的时候就丢掉这个包。

Traceroute

   发送TTL从1开始的包,可以用于网络检测

包太大怎么办

   又的路由器low一点,只能收小包,但是到底多大的包才是最合适的?分包会增加丢包率
   发现路径的最大传输单位,主机先发一个大包,路由器传输,若出错,返回最大支持的包大小。

ICMP

   是IP的伴侣协议,提供转发时发生的错误信息,当路由器遇到错误,就发送一个ICMP给IP源地址

发送拥塞信号

   为包打标记,告知主机发生拥塞

如何获得IP地址

   过去手动配置,现在使用DHCP

DHCP

   向其他节点发放IP地址,提供网络前缀,提供本地路由器地址,提供DNS服务器、时间服务器等
   节点只需要在网络上广播,DHCP服务器便会回应。

IPV6

   从根本上而言,IPv6不与IPv4兼容,那我们怎么在IPv4网络中发送IPv6的包呢?我们在其包外封装一层IPv4头即可。

NAT

   本质上就是将内网地址+端口映射到外网地址+端口

Internal IP:port External IP: port
192.168.1.12:5523 44.25.80.3:1500
192.168.1.13:5523 44.25.80.3:1502
192.168.1.20:5523 44.25.80.3:1505
  • 缺点: 外网无法直接访问内网,需要内网先与外网建立链接
  • 优点: 缓解IP地址压力,易于部署,私密

解决路由器环路

flood

   泛洪,由一个节点开始,向四周扩散,flood包最终会发给每个其他节点,于是大家都知道了如何到达第一个节点的路径

学习型交换机

   当包到达,查看源ID,已经进入的端口,将其存入路由表,并设置着一项的存活时间,如果不知道要怎么走,就发给所有相邻路由器

解决最短路径问题

 &esmp;分布式bellman-ford算法,记录一个矩阵,D(X,Y,Z)代表从X到Y经过Z的最佳距离,然后跑bellman-ford算法就可以了

毒性逆转

   有点复杂了,溜溜球

多径路由

   保存最短路dag,转发的时候就能选择多个后继节点发送,进行负载均衡

层次路由

   路由到一个区域而不是单个节点,先路由到区域,然后到区域内的IP前缀

策略路由

   ISP为客户提供路由服务,客户为ISP付费,ISP内的客户互相路由不付费

猜你喜欢

转载自blog.csdn.net/qq_41157212/article/details/105088598