做展示型网站多少钱,开发app学什么编程语言,dw做音乐网站,网站建设课结课感受文章目录 1.入门了解2.认识报头3.认识网段4.路由跳转相关指令路由 该文诸多理解参考文章#xff1a;好文#xff01; 1.入门了解
用户需求#xff1a;将我的数据可靠的跨网络从A主机送到B主机 传输层TCP#xff1a;由各种方法#xff08;流量控制/超时重传/滑动窗口/拥塞… 文章目录 1.入门了解2.认识报头3.认识网段4.路由跳转相关指令路由 该文诸多理解参考文章好文 1.入门了解
用户需求将我的数据可靠的跨网络从A主机送到B主机 传输层TCP由各种方法流量控制/超时重传/滑动窗口/拥塞控制提供可靠性策略 网络层IP将数据跨网络从A主机送到B主机的能力。
主机: 配有IP地址, 但是不进行路由控制的设备; 路由器: 即配有IP地址, 又能进行路由控制; 节点: 主机和路由器的统称;
IP 协议是在网络协议栈中的网络层的数据包经过 TCP/UDP 传输层封装报头后传给下层网络层网络层负责在复杂的网络环境中确定一个合适的路径。 TCP 协议给 IP 协议提供可靠性如果发送失败了TCP 超时重传策略可以支持重新发送继续传给网络层发送。IP 协议的本质工作是提供一种能力将数据跨网络从主机A发送到主机B。
在公网中需要给所有的主机进行标识从主机A发送到主机B需要源 IP 地址和目的 IP 地址来标识源主机和目的主机。IP 地址在被设计的时候是经过精心设计的 IP 地址是由目标网络目标主机组合成的像学号一样区分一个学生是哪一个学院哪一个专业的。【我们的世界都是被精心设计的人类文明是岁月的沉淀智慧的精华】
交换机构建子网子网通过路由器连接成为较大的“子网”如果子网1中的主机A需要将数据发送给子网2中的主机B需要通过目标 IP 地址中的目标网络找到子网2》通过路由器的转发在公网中路由器是认识并可以通过路径找到某个子网的你捡到一个学生证怎么归还一个一个去问效率太慢直接问辅导员辅导员根据学号某些位发现不是本院联系对应学院辅导员x由x交与失主。相对于在公网中一个一个去找就大大提高了效率排除的效率高了或者说是寻找的范围缩小了把这多个局域网看成一个广域网每一个广域网与广域网之间也可以用路由器连接起来此时就可以进行各种跨网络传输了
2.认识报头 字段描述 IP报头也称为IP头部或IP报文头部是IP数据报即IP包的重要组成部分它包含了数据报在网络中传输所需的关键信息。以下是对IP报头字段的简要叙述
版本Version 位置与长度位于IP报头的第1个字节的前4位占4bit。 作用表示IP协议的版本号常见的版本号为4IPv4和6IPv6。首部长度Internet Header Length, IHL 位置与长度紧跟在版本字段之后占4bit。 作用表示IP头部的长度以32位4字节为单位。如果不包含选项字段其值通常为5即20字节。最大值为15意味着IP头部最大长度为60字节。整个报头的取值范围在 [20, 60] 字节之间。区分服务Type of Service, TOS或称为服务类型Differentiated Services, DS 位置与长度通常位于IHL字段之后占8bit。 作用用来指定IP包的服务类型如优先级、延迟等级等。但需要注意的是随着IP协议的发展TOS字段的某些部分已经被重新定义或忽略。 3位优先权字段(已经弃用), 4位TOS字段,和1位保留字段(必须置为0). 4位TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择一个. 对于ssh/telnet这样的应用程序, 最小延时比较重要; 对于ftp这样的程序, 最大吞吐量比较重要.总长度Total Length 位置与长度位于IP报头中较靠后的位置占16bit。 作用表示整个IP数据报的长度包括IP头部和数据部分单位为字节。最长可达65535字节但必须不超过最大传输单元MTU的限制。标识Identification 位置与长度占16bit。 作用用来唯一标识一个IP数据报主要用于数据报的分片和重组过程。主机每发送一个数据报其标识值就会加1。 唯一的标识主机发送的报文. 如果IP报文在数据链路层被分片了, 那么每一个片里面的这个id都是相同的.IP 报文的编号不同的 IP 报文编号是不一样的分片之后的报文编号是相同的。也就是唯一标识主机发送的报文。不到万不得已不建议分片数据包个数越多发生丢包概率越大局域网通信时碰撞概率也越大标志Flags 位置与长度占3bit。 作用包含分片控制信息主要有两个标志位“DF”Don’t Fragment不分片和“MF”More Fragment更多分片。DF0表示数据报可以分片DF1表示数据报不能分片MF1表示后面还有分片MF0表示这是最后一个分片。第一位保留(保留的意思是现在不用, 但是还没想好说不定以后要用到). 第二位置为1表示禁止分片, 如果DF1并且报文长度超过MTU, IP模块就会丢弃报文. 第三位表示更多分片, 如果分片了的话, 最后一个分片置为0, 其他是1. 类似于一个结束标记.片偏移Fragment Offset 位置与长度占13bit。 作用在分片过程中表示某个分片在原数据报中的相对位置以8字节为单位。分片相对于原始IP报文开始处的偏移. 其实就是在表示当前分片在原报文中处在哪个位置. 实际偏移的字节数是这个值 * 8 得到的. 因此, 除了最后一个报文之外, 其他报文的长度必须是8的整数倍(否则报文就不连续了)生存时间Time to Live, TTL 位置与长度占8bit。 作用指定IP包在网络中可以经过的最大路由器数目用于防止数据包在网络中无限循环。每经过一个路由器TTL值就会减1当TTL减至0时数据包将被丢弃。数据报到达目的地的最大报文跳数. 一般是64. 每次经过一个路由, TTL - 1, 一直减到0还没到达, 那么就丢弃了. 这个字段主要是用来防止出现路由循环协议Protocol 位置与长度占8bit。 作用标识IP数据报中所包含的上层协议类型如TCP6、UDP17等以便目的主机的IP层将数据部分上交给相应的进程处理。表示上层协议的类型即要把 IP 的有效载荷交付给上层的哪一个协议。首部校验和Header Checksum 位置与长度占16bit。 作用用于校验IP头部的正确性以保证数据包在传输过程中没有被篡改。该字段只检验数据包的首部不检验数据部分。使用CRC进行校验, 来鉴别头部是否损坏源IP地址Source Address 位置与长度位于IP报头的后半部分占32bitIPv4。 作用指定发送方的IP地址。目的IP地址Destination Address 位置与长度紧跟在源IP地址之后占32bitIPv4。 作用指定接收方的IP地址。根据这个进行路径选择。选项Options 位置与长度位于IP报头的最后部分长度可变。 作用提供额外的信息或功能如排错、测量以及安全等。但需要注意的是并非所有的IP数据报都会包含选项字段。
报头的长度是 20 个字节报头和有效载荷通过固定长度 自描述字段(4位首部长度16位总长度)进行分离。 通信时报文并没有通过网络层直接发出去而是继续交给下一层数据链路层。数据链路层不能一次发送过大的报文要求上层不能交付给数据链路层过大的报文倒逼 TCP 层就算对方接收缓冲区有很多空间也不能一次发送太多过来》滑动窗口控制发送的数据量。
数据链路层能发送的最大报文通过 ifconfig 查看所能转发的最大报文的字节数称为 mtu。mtu 1500 指数据链路层的报头 有效载荷实际上能够转发的 IP 报文是要 1500 减去数据链路层的报头大小。假设3000的数据包要分片每片1500第一个分片1500IP数据包的前1500包含20头1480数据 第二个新增20头IP包1480数据第三个2020.
如果 IP 报文非常大呢需要 IP 层进行分片转发到了目标主机还要在网络层进行组装。要求 IP 报头里涵盖分片和组装的相关信息所以 16 位标识、3 位标志、13 位片偏移 就是 IP 分片和组装的字段【如果上层传下来比较大的报文 就需要网络层进行分片转发】 分片完后如何组装 将分片聚集在一起通过相同的16 位标识将它们聚在一起。如果其中一个分片报文丢失了呢首先最简单的就是丢失第一个和最后一个。丢失第一个可以通过组装的时候发现没有一个片偏移是 0 的就能分辨出第一个丢失。丢失最后一个可以通过组装的时候发现没有一个片MF为 0就能分辨出最后一个丢失。如果中间的分片报文丢了呢丢失的分片报文的后一个分片报文的片偏移量是前面分片报文的和此时如果中间的报文丢了就能通过比较丢失报文的后一个片偏移量和前面报文的和不一致判断出来。根据片偏移进行排序即可进行组装。 对方网络层收到的IP 报文怎么判断该报文是被分片了 粗略通过收到任意一个分片报文的片偏移判断片偏移为 0 该报文没有被分片或是被分片的第一个分片报文。 细分“DF”Don’t Fragment不分片和“MF”More Fragment更多分片。DF0表示数据报可以分片DF1表示数据报不能分片MF1表示后面还有分片MF0表示这是最后一个分片。
一个分片都要带 IP 协议的报头的如果没有报头那么报头中的信息全部都没有了也就无法进行组装了假设报头是 20 字节的话分片时假设规定每片50实际该片“数据”为30。
实际上并不建议分片如果在组装的时候发现有其中一片丢失了整体上该报文就被全部丢弃了这就要求发送方的 TCP 层整体重新发送了如果是 UDP该报文也就丢失了。
3.认识网段
IP地址分为两个部分网络号和主机号
网络号保证相互连接的两个网段具有不同的标识 主机号同一网段内主机之间具有相同的网络号有不同的主机号
路由器本质是特定一个子网的主机要配置 IP 地址 路由器至少要连接两个子网路由器也就相当于同时在两个子网中》路由器必须要配置至少两个 IP 》路由器有多张网卡 路由器一般是一个子网中的第一台设备一般它的 IP 地址都是 xxx.xxx.xxx.1即网络号.1 路由器的功能1. IP 报文的转发 2. 构建子网(局域网) 不同的子网其实就是把网络号相同的主机放到一起 如果在子网中新增一台主机则这台主机的网络号和这个子网的网络号一致主机号不和子网中的其他主机重复 通过合理设置主机号和网络号, 就可以保证在相互连接的网络中, 每台主机的IP地址都不相同. 手动管理子网内的IP, 是一个相当麻烦的事情. 有一种技术叫做DHCP, 能够自动的给子网内新增主机节点分配IP地址, 避免了手动管理IP的不便。一般的路由器都带有DHCP功能. 因此路由器也可以看做一个DHCP服务器。
IP 地址是由 4 个字节组成32 位全球中的 IP 地址有 2^32 个 IP 地址是一种有限的资源。IP 地址不能乱用有一定的划分方式。 根据网络ID的不同 局限性大多数组织都申请B类网络地址导致B类地址很快就分配完了A类却浪费了大量地址。
申请了一个B类地址理论上一个子网内能允许6万5千多个主机。A类地址的子网内的主机数更多。实际网络架设中不会存在一个子网内有这么多的情况大量的 IP 地址都被浪费掉了。 新的划分方案CIDR(Classless Interdomain Routing) CIDRClassless Inter-Domain Routing无类别域间路由是IPv4地址分配和路由表选择的一种灵活且高效的方法。以下是关于CIDR的详细解释
一、CIDR的定义与背景 CIDR是在1993年引入的旨在改进IPv4地址的分配效率延缓IPv4地址的耗尽并减少路由表的大小提高路由效率。随着互联网的急速扩张传统的基于类Classful的IP地址划分方式变得不够灵活无法适应不断增长的网络需求。CIDR通过引入“无类别”的方式来表示网络地址和相应的子网掩码从而解决了这一问题。
二、CIDR的核心思想 CIDR的核心思想是将IP地址划分为前缀和后缀两部分其中前缀表示网络的标识而后缀表示主机的标识。CIDR使用斜线符号/后跟一个前缀长度来表示地址块。前缀长度指定了网络部分的位数即网络前缀的长度。这使得网络管理员可以根据需要划分和分配IP地址而不再受到固定类别的限制。
三、CIDR的表示方法 CIDR表示法使用一个斜杠/后跟一个数字来表示网络前缀的长度。例如192.168.1.0/24表示一个IP地址块其中192.168.1.0是网络的基本地址/24表示前缀长度为24位。这意味着前24位用于网络标识剩余的8位用于主机标识。通过这个CIDR表示法我们可以轻松理解这个地址块包含了从192.168.1.0到192.168.1.255的所有主机。
四、CIDR的优势 灵活性CIDR允许更灵活地分配IP地址不再受限于传统的A、B、C类地址划分。 地址空间利用率高通过更紧凑的路由表CIDR减少了地址空间的浪费提高了IP地址的利用率。 路由效率高CIDR允许更紧凑的路由表减少了路由表的大小提高了路由的效率。这对于全球互联的大规模互联网至关重要因为它降低了路由表的维护成本并提高了网络的性能。 支持路由聚合CIDR支持将多个连续的前缀聚合成超网从而进一步减少路由表的表项数目提高路由效率。 五、CIDR的应用 CIDR在网络编程、路由器配置、防火墙设置以及大型互联网架构设计中都有广泛应用。它不仅是IPv4地址分配和路由选择的重要工具也是IPv6地址分配和路由选择的重要参考。
六、CIDR与子网掩码 CIDR中的地址掩码依然称为子网掩码。在CIDR表示法中子网掩码的长度直接由前缀长度表示无需单独指定子网掩码的值。例如192.168.1.0/24的子网掩码就是255.255.255.0这个子网掩码在二进制中表示为11111111.11111111.11111111.00000000其中前面24位为1表示网络部分后面8位为0表示主机部分。
七、CIDR的未来发展 尽管CIDR在IPv4地址分配和路由选择中发挥了重要作用但随着IPv6的普及和应用CIDR的概念和原理仍然具有重要的参考价值。IPv6地址空间远大于IPv4但合理的地址分配和高效的路由选择仍然是网络设计和优化的重要课题。因此CIDR的思想和技术将继续在网络领域发挥重要作用。 子网掩码 引入一个额外的子网掩码(subnet mask)来区分网络号和主机号 子网掩码是一个 32 位的正整数通常用一串 “0” 来结尾 将 IP 地址和子网掩码进行 “按位与” 操作得到的结果就是网络号 网络号和主机号的划分与这个 IP 地址是A类、B类还是C类无关 引用图片优秀好文 子网掩码通常是由二进制的一串连续的 “1” 和一串连续的 “0” 组成其中如果 “1” 越多对应的 IP 地址与子网掩码按位与后得到的网络号的主机数就变得越少如果子网掩码中 “0” 越多也就是得到的网络号中主机变得越多网络也就越大。所以子网掩码就可以通过调整 “1” 的个数进而调整一个子网中的主机号的增多或者减少
子网掩码是在路由器中配置的当我们的报文每经过一个路由器路由器就会拿到我们报文中的目的 IP 地址和自己内部的子网掩码按位与就得到了网络号然后路由器就可以经过目的网络将我们的数据进行转发。 IP地址与子网掩码做与运算可以得到网络号, 主机号从全0到全1就是子网的地址范围; IP地址和子网掩码还有一种更简洁的表示方法,例如140.252.20.68/24,表示IP地址为140.252.20.68, 子网掩码的高24位是1,也就是255.255.255.0
通常子网掩码的书写方式为xxx.xxx.xxx.xxx/n其中 /n 表示该地址的前 n 位全部为 “1”后面的就为全 “0”.
子网掩码使得可以对32位IP地址进行任意划分网络号主机号32位 特殊IP 地址 将 IP 地址中的主机地址全部设为 0就成为了网络号代表这个局域网 将 IP 地址中的主机地址全部设为1就成为了广播地址用于给同一个链路中相互连接的所有主机发送数据包 127.* 的 IP 地址用于本机环回(loop back)测试通常是127.0.0.1 IP 地址的数量限制 IP 地址**(IPv4)**是一个 4字节32位 的正整数一共只有 2^32 个 IP 地址大概是 43亿左右而 TCP/IP 协议规定每个主机都需要有一个 IP 地址。一共只有 43 亿台主机能接入网络吗实际上由于一些特殊的 IP 地址的存在数量远不足 43 亿。 IP 地址并非是按照主机台数来配置的而是每一个网卡都需要配置一个或多个 IP 地址。
CIDR 在一定程度上缓解了 IP 地址不够用的问题(提高了利用率减少了浪费IP 地址的绝对上限没有增加)仍然不是很够用有三种方式来解决
动态分配 IP 地址只给接入网络的设备分配IP地址。因此同一个MAC地址的设备每次接入互联网中得到的IP地址不一定是相同的 NAT 技术 IPv6IPv6并不是IPv4的简单升级版。这是互不相干的两个协议彼此并不兼容IPv6用16字节128位来表示一个IP地址但是目前IPv6还没有普及 私有 IP 地址和公网 IP 地址 场景一个组织内部组建局域网IP 地址只用于局域网内的通信不直接连到 Internet 上理论上使用任意的 IP 地址都可以但是RFC 1918(网络标准文档)规定了用于组建局域网的私有 IP 地址
10.前8位是网络号共 16,777,216 个地址 172.16. 到 172.31.前 12 位是网络号共 1,048,576 个地址 192.168.前16位是网络号共 65,536 个地址 包含在这个范围中的都称为私有IP其余的则称为公网IP。所以 IP 地址被硬性的划分为公网IP和私有IP。 公网 IPv4 下IP 地址是有限的资源在全球中是通过各种综合指标给每个国家进行分配 IP 地址。
全球大概有两百个国家在 32 位的公网 IP 地址中假设需要前 8 位来划分每一个国家按照国家的不同有不同的编号假设中国的前 8 位为 0000 0001其它国家就类似这样划分就可以了。》 1.XXX.XXX.XXX.
每个国家有自己的国际路由器许多国家的国际路由器之间互相连接。假设China的子网掩码是 1.XXX.XXX.XXX/8. 假设China有 30 多个省需要公网 IP 的 6 个比特位给每个省进行划分以山东为例对于国内路由器来说子网掩码就应该是 1.8.xxx.xxx/14.
山东有非常多的市级需要一些比特位对这些市级进行 IP 地址划分假设需要 4 个比特位对应的子网掩码就应该是 1.8.128.xxx/18济南市的某一台主机假设主机序号为 6那么该主机的公网 IP 地址为 1.8.128.6.
巴铁访问这个 IP 地址需要对这个公网 IP 地址的前 8 位进行判断判断到不是本国的将这个 IP 地址放到国际广域网中当中国的国际路由器将该 IP 地址与自己的子网掩码按位与后如果匹配就说明该 IP 地址的目标网络就是中国国内的网络。到了国内网络后该 IP 地址进入到各省的广域网中当山东的国内路由器的子网掩码和该 IP 地址按位与后匹配该 IP 地址就进入到山东省内的网络就可以找到对应的主机。 私网 家里的路由器 网络中的路由器 交换机 其他功能。交换机构建内部网络路由器连接子网构成更大的子网。家里的路由器能够构建子网(局域网)子网内的每一台设备都有自己的 IP 地址该地址就是私网 IP 地址。该 IP 为什么不能是公网 IP 呢公网 IP 地址划分到市级之后剩下的位数已经严重不足了简单来说由于IPV4地址数有限人们设计了一种方法让他能够再被用完之前苟延残喘一下。即这样在大的范围如国家/省/市用公网IP唯一标识一台主机可以是路由器/计算机/等入网设备在小的范围如家庭/小学校小型子网使用私网IP不同的子网内私网IP可以不同通过这种方法延缓IP地址使用殆尽的处境。
当一个子网中的设备发起服务器请求时将数据包交给家用路由器家用路由器将数据包交给运营商路由器再进入公网访问服务器。
该数据包中的源 IP 地址就是对应设备的私网 IP 地址目标 IP 地址就是访问的服务器对应的 IP 地址。当数据包经过上面的流程到了服务器之后如果服务器需要将数据响应回来那么此时它的源 IP 地址就是服务器的 IP 地址目标 IP 地址就是发送设备的私网 IP 地址。但是这个目标 IP 地址是个私网 IP私网 IP 是不能出现在公网中的同一个私网 IP在不同的局域网中可能多次出现过所以这个数据响应就在公网中回不来了 怎么解决这个问题呢 由于在路由器中至少要有两个 IP 地址。 子网IP/LAN口IP当前子网的 IP 地址》子网IP构建子网xyz运营商路由器的子网IP是xyz的WAN口IPxyz还可以构建子网abc外围路由器的子网IP是abc的WAN口IP子网IP构建子网xx内主机的子网IP和该路由器子网IP网络号同主机号不同。 WAN口IP相对于当前子网来说对外的 IP如果这是一个家用路由器那么它的 WAN口IP 就是运营商路由器的 IP如果这是一个运营商路由器那么它的 WAN口IP 就是公网 IP
在数据包转发的过程中每转发一次会将源 IP 地址替换成每一个路由器的 WAN口IP 地址数据包的源 IP 地址首先是该设备的内网 IP 地址当数据包交给了家用路由器后源 IP 地址就变成了家用路由器的 WAN口IP 地址也就是运营商路由器的 子网IP 地址当数据包又经过家用路由器转发给运营商路由器后该数据包的源 IP 地址就变成了运营商的 WAN口IP 地址也就是该运营商路由器的入口公网 IP 地址到了公网之后该数据包的源 IP 地址就变成了公网 IP 地址所以在服务器进行响应的时候目标 IP 地址就是发送过来的运营商的公网入口 IP 地址然后就可以找到该运营商的路由器进而一步一步返回到私网的设备中源IP 地址不断被替换的过程称为 NAT技术》数据包通过很多中间设备到达目的地每到达一个中间结点源IP就被替换为该中间节点的WAN口IP。就是不再以最原来的私网IP作为源IP了而是到哪一个中间设备用哪个中间设备的WAN口IP。
一个路由器可以配置两个IP地址, 一个是WAN口IP, 一个是LAN口IP(子网IP). 路由器LAN口连接的主机, 都从属于当前这个路由器的子网中. 不同的路由器, 子网IP其实都是一样的(通常都是192.168.1.1). 子网内的主机IP地址不能重复. 但是子网之间的IP地址就可以重复了. 每一个家用路由器, 其实又作为运营商路由器的子网中的一个节点. 这样的运营商路由器可能会有很多级, 最外层的运营商路由器, WAN口IP就是一个公网IP了. 子网内的主机需要和外网进行通信时, 路由器将IP首部中的IP地址进行替换(替换成WAN口IP), 这样逐级替换, 最终数据包中的IP地址成为一个公网IP. 该技术称为NAT(Network Address Translation网络地址转换). 如果自己实现的服务器程序能够在公网上被访问到, 就需要把程序部署在一台具有外网IP的服务器上. 这样的服务器可以在阿里云/腾讯云上进行购买. 之前我们生活中用的都是私网IP首次接触公网IP是租的服务器的公网IP。 全球网络 使用公网 IP 构建全球网络以及国内网络到了市级之后就不能继续使用公网 IP 进行划分了所以就接入到私网中所现在整个主流的互联网世界采用的方案是公网私网 共同构成互联网在这套全球网络中大量的私网中出现同样的 IP 地址也不影响 NAT 主要是为了解决 IP 地址不足的问题的。 我们在家里如何上网 运营商把网线/光纤拉到我们家配置调制解调器猫家用路由器交换机路由器。模拟信号从光纤传给猫猫将其转换为数字信号传给家用路由器家用路由器会配置账号密码作为你们家可以接触网络的凭证。家用路由器构建子网可以设置路由器账号密码作为自己上网的入口不让别人使用你们家的网络而设置 理解世界 网络诞生 国家认识到网络发展也是国家发展的一大课题 只要网络发展了 等候其他技术如无人驾驶/无人飞机等等成熟了 只要一入网就可以投入使用 提升人民生活质量 节约资源等社会效益。怎么发展网络运营商首先得尽可能的把网线拉到全国各地让更多的人入网其次IP地址世界范围的划分并不是哪个国家的人多地址数就多而是入网设备越多分给你们国家的地址数越多当然还有其他分配依据综合各种指标分配。IP地址是一种资源其他国家会同意吗?IP地址的管理分配由各个国家的运营商开会决定只要合理能给世界带来积极效益他们当然会同意其次他们占用地址数却不使用–浪费做这些基础工作的运营商是花费很大力气的利润可能10-20年才能成本这就是为什么总有人打电话让你升级套餐—想法设法提高利润。国家其实也在下发政策让运营商大力搞网络设施建设原因网络发展了就有诸多互联网企业在这个时代下打造产品给用户使用从而给国家缴税-----人民生活方便提供了更多就业岗位企业和员工赚钱国家水平提高国家税收增多----一举多得
4.路由跳转
相关指令 查看私有IP Windowsipconfig Linuxifconfig 查看路由表 Linuxroute Windowsroute print
在Linux系统中route命令用于显示和操作IP路由表。随着Linux系统的发展ip route命令逐渐取代了传统的route命令它提供了更强大和灵活的功能。了解route命令的输出对理解Linux网络路由机制有帮助。
当你运行route不带任何参数时它通常会显示系统的IP路由表这些信息对于诊断网络问题非常有用。route命令的输出可能包含以下字段字段的数量和顺序可能会因不同的Linux发行版或版本而异
Destination目标这是路由的目的地网络或主机的IP地址。如果这一行是默认路由则此字段通常显示为default或0.0.0.0。 Gateway网关到达目标网络或主机所需的下一跳地址。如果目标网络直接连接到本地接口则此字段可能显示为*或0.0.0.0。 Genmask网络掩码用于指定目标网络地址中哪些位是网络部分哪些位是主机部分。对于点对点连接如PPP连接此字段可能显示为255.255.255.255。 Flags标志这是一系列标志表示路由条目的特性。常见的标志包括
UUp路由条目有效。U标志表示此条目有效(可以禁用某些 条目),GGateway路由需要通过另一个主机网关。 G标志表示此条目的下一跳地址是某个路由器的地址,没有G标志的条目表示目的网络地址是与本机接口直接相连的网络,不必经路由器转发HHost目标是一个主机而不是网络。RReinstate Route for dynamic routing这通常与动态路由协议相关。DDynamically installed by daemon or redirect路由是动态安装的。MModified from routing daemon or redirect路由被修改过。AInstalled byaddrconf路由是由地址配置过程如DHCP安装的。CCache路由是缓存条目用于快速查找。!Reject拒绝路由。
Metric跃点数到达目标所需的成本或跃点数。这个数字越小表示路由越优先。 Ref引用路由条目被其他路由条目引用的次数。 Use使用该路由条目被使用的次数。 Iface接口数据包离开本地系统时所使用的网络接口。 如果目的IP命中了路由表, 就直接转发即可; 路由表中的最后一行,主要由下一跳地址和发送接口两部分组成,当目的地址与路由表中其它行都不匹配时,就按缺省路由条目规定的接口发送到下一跳地址。 某主机上的网络接口配置和路由表如下: DestinationGatewayGenmaskFlagsMetricRefUse Iface192.168.10.0*255.255.255.0U000 eth0192.168.56.0*255.255.255.0U000 eth1127.0.0.0*255.0.0.0U000 1odefault192.168.10.10.0.0.0UG000 eth0
这台主机有两个网络接口,一个网络接口连到192.168.10.0/24网络,另一个连到192.168.56.0/24网络;
转发过程例1: 要发送的数据包的目的地址是192.168.56.3 跟第一行的子网掩码做与运算得 到192.168.56.0,与第一行的目的网络地址不符 跟第二行的子网掩码做与运算得 到192.168.56.0,是第二行的目的网络地址,从eth1接口发送出去; 由于192.168.56.0/24正 是与eth1 接口直接相连的网络没有G标志,因此可以直接发到目的主机,不需要经路由器转发;
转发过程例2: 如果要发送的数据包的目的地址是202.10.1.2 依次和路由表前几项进行对比, 发现都不匹配; 按缺省路由条目, 从eth0接口发出去, 发往192.168.10.1路由器; 由192.168.10.1路由器根据它的路由表决定下一跳地址; 查看数据链路层能够发送的最大报文 Linuxifconfig – mtu字段在数据链路层 报文有效载荷的大小
路由
路由在复杂的网络结构中找出一条通往终点的路线。路由的过程是一跳一跳(Hop by Hop) “问路” 的过程IP 数据包的传输过程即为这样。“一跳” 就是数据链路层中的一个区间. 具体在以太网中指从源MAC地址到目的MAC地址之间的帧传输区间。
IP 数据包到达路由器时路由器会查看该数据包的目的IP路由器决定这个数据包是能直接发送给目标主机还是需要发送给下一个路由器依次反复一直到达目标IP地址
一台主机向服务端发送数据时在 IP 层会有源 IP 地址和目的 IP 地址。本地主机是可以工作在网络层的在主机把报文下发的时候实际上是在本机内进行路由每一台主机都有自己的路由表。 其中每一列的含义Destination 表示目标网络地址也就是该路由器连接的网络Gateway 表示下一跳的路由器Genmask 表示子网掩码每一个目标网络都要配上子网掩码Flags 中U 表示正在使用G 表示该条目所对应的是路由器Iface 表示通往该网段的出口最终报文在进行转发时想把它发出去就通过这个接口发。 查路由表的过程 用目标主机的 IP 的地址按位与上 Genmask用结果与每一行的 Destination 做对比如果对比成功就通过 Iface 的接口发出去如果对比不成功也就是不相同直接对比下一个。 那么查路由表的结果 没有结果路由器设置的不好。需要改进。 给具体的下一跳 路由器不清楚转入默认路由默认路由一般指的是同网段的另一台路由器也就是出口路由器因为出口路由器一定还会级联其它不同的网络。 到达入口路由器 如何判定当前这个数据包该发送到哪里呢? 依靠每个节点内部维护一个路由表 路由表生成算法(选学) 路由表可以由网络管理员手动维护(静态路由), 也可以通过一些算法自动生成(动态路由). 请同学们课后自己调研一些相关的生成算法, 例如距离向量算法, LS算法, Dijkstra算法等.
路由表生成算法是网络通信中的关键部分它决定了数据包在网络中的传输路径。以下是路由表生成算法的简要概述
一、基本概念 路由器连接不同局域网或广域网的设备能够自动选择和设定路由以最佳路径发送信号。 路由表路由器或其他网络设备中存储的信息表包含到达特定网络终端的路径信息。 二、常见的路由表生成算法 向量-距离算法也称为Bellman-Ford算法 原理路由器周期性地向其相邻路由器广播自己知道的路由信息包括可以到达的网络以及到达该网络的距离。相邻路由器根据收到的路由信息修改和刷新自己的路由表。 优点算法简单易于实现。 缺点存在慢收敛问题即路由器的路径变化需要像波浪一样从相邻路由器传输出去过程缓慢。 链路-状态算法也称最短路径优先算法LS 原理 路由器向相邻路由器发送查询报文测试链路状态。 收到链路状态后向所有参加最短路径优先算法的路由器发送链路状态报文。 各路由器根据报文中的数据刷新网络拓扑结构图并使用Dijkstra算法生成新的最短路径优先数并刷新路由表。 优点收敛速度快不易产生路由循环。 缺点要求较强的CPU能力和较多的内存空间实现成本较高。 Dijkstra算法 原理 路由器建立网络图并确定源节点和目的节点。 建立邻接矩阵表示节点之间的链路权值。 为每个节点建立状态记录包括前序字段、长度字段和标号字段。 初始化状态记录集参数选择一个T节点源节点并更新与其直接相连的所有节点的状态记录。 重复选择权值最低的节点作为新的T节点直到找到目的节点。 回溯提取前序节点形成最佳路由。 三、路由表生成算法的应用与优化 应用路由表生成算法在网络通信中发挥着重要作用确保数据包能够高效、可靠地传输到目的节点。 优化 收敛速度通过改进算法逻辑提高路由表的收敛速度减少路径循环和网络中断的风险。 资源利用优化算法的内存和CPU使用降低实现成本。 安全性研究更加安全可靠的路由生成算法以应对网络攻击和数据泄露等风险。 综上所述路由表生成算法是网络通信中的核心技术之一它决定了数据包在网络中的传输路径。常见的算法包括向量-距离算法、链路-状态算法和Dijkstra算法等每种算法都有其独特的优点和适用场景。在实际应用中需要根据网络环境和需求选择合适的算法并进行相应的优化和调整。