小丑改造计划之五

我又来咯,改造改造!
(根据龙哥的博客)感谢龙哥
突然有个大胆的想法,今天24号,我这边准备29之前,把网络全整理好!
然后再去攻克Linux部分,最后C++的整理,chat GPT告诉我说可以。

1.请说说IP协议各个格式的作用
4位版本号是指用的是IPV4 还是IPV6
4位首部长度是指IP报头的长度
8位服务类型
分为3位优先优先权字段(已弃用),一位保留字段置为0,四位TOS字段,分别表示,最小延迟啊,最大吞吐量,最高可靠性,最小成本,四者冲突,只能选择一个,如果要传输的数据是直播会议这种,就应该把最小延迟标位1,其他的记为0,如果是文件的传输,则考虑把最大吞吐量记为1。
16位总长度是指整个IP报文的长度
16位标识就是指IP报文的唯一标识,相当于ID,要是IP报文分片了,那么这几块分片的IP报文的ID都是相同的,
三位标注是啥?第一位保留,第二位表示禁止分片,为1,标识IP报文不能分片,要是超过了传输最大报文长度(MTU差不多这个意思),就把它扬了哦,要是为0,表示可以分片,最后一位表示更多分片,要是没有分片则为0,要是分片了,除了最后一个IP分片报文,其余全是为1;
13位片偏移,分片报文离第一个分片报文的偏移量。
8位生存时间,数据报文最大的跳数,一般为64 ,每经过一个路由,就减减,减到0就把它扔了,放在出现报文在一个循环路由圈里打转。
8位协议是指,接收端取出这个位段,就知道应该把这个报文交给哪个上层协议是TCP,还是udp
16位首部检验和,只检验IP报文报头的数据是否正确,不检验数据部分
32位源IP和32位目的IP地址你还要我说,6666,把你扬了!
选项,看4位首部长度要是取出来的长度超过了20字节,剩下的就是选项长度了
数据不多说。
在这里插入图片描述
2.小伙子,说说,IP协议是如何把报头和有效载荷分离开来的呢?
so easy 当网络层的IP协议收到一个IP报文,先取出来报头中的四位首部长度,大于20,则说明有选项,用报头长度减去20字节剩下的就是选项长度了,再读出报头的16位总长度,取除去报头的数据就是其有效载荷了!!

3.再说怎么把有效载荷交付给上层?
IP报文里有个字段叫8位协议,可以根据这个来把数据交付给TCP还是其他的上层协议。

4.你知道IP层的分片和组装吗?
当然,要知道底层的数据链路层传输数据大小是有限制的,因为太长的数据传输会导致网络里的碰撞,不易太长,一般为1500字节,当IP协议准备向下给数据链路层,下面会说No,你给我分成几个小于1500字节的IP报文,然后IP协议就老老实实的把4500字节分成四个IP报文分片,第一个1500字节(1480数据 20报头) 第二个1500字节(1480数据 20报头)第三个1500字节(1480数据 20报头)第四个80字节(60数据,20报头)。这样就符合数据链路层的MTU(最大传输单元)的要求咯。
(在Linux下使用ifconfig命令可以查看对应的MTU)

5.你还能说出其他的要注意事项吗?
还有啊,第一,IP报文分片不是传输常态,双方在建立通信时,就已经协商好了最大传输单元,大家一起遵守。
第二,分片不好哇,然后增大丢包的几率
第三,IP报文的分片和组成都是在IP协议也就是网络层完成的,跟传输层和数据链路层没有关系
第四,不同的网络,他的MTU,也就是最大传输单元是不同的,所以可能在传输的过程发生,二次分片和组成,都是能理解的啦!
在这里插入图片描述
6.要是有个分片丢失了怎么办,接收端能知道吗?
能,而且非常的优雅,因为分片有几个特点,比如当丢失了第一个分片,那么组成时,就会发现少了个偏移量为0,且3位标志位中更多分片为1的分片,此时就知道了,要是丢失的是任意的一个分片也没有关系,因为有偏移量的存在,要是中间丢失了一个,那么找不到13位偏移量为特定值的分片(下一个分片的偏移量可以预测出来,要是下个分片的偏移量不是预测的值,则说明有个分片丢失了)

7.那怎么避免分片的情况呢?
MTU是最大传输单元(MAC帧最大有效载荷)
MSS是最大报文段长度(TCP最大有效载荷)
MTU和MSS关系 : MSS = MTU - 20 - 20 (TCP报头和IP报头),所以TCP发送数据最好不要超过1460,就能降低分片的概率。

8.主机号和网络号有什么关系吗?
一个局域网里的网络号都一样比如 192.168.128
但局域网里的主机号必须不同在这里插入图片描述

9.IP跨网络把数据传输给另一台主机是直接找目的IP的主机吗?
不是,这样效率太低,是先找到目的主机的网络号,再根据网络号找到对应的目的主机号。

10.把IP分为了哪几类?
五类
ABCDE
A类:0.0.0.0到127.255.255.255。
B类:128.0.0.0到191.255.255.255。
C类:192.0.0.0到223.255.255.255。
D类:224.0.0.0到239.255.255.255。
E类:240.0.0.0到247.255.255.255。
在这里插入图片描述

11.什么是DHCP协议?
它的作用是动态为主机分配和回收IP地址。
DHCP协议是基于UDP应用层协议,一般的路由器带有DHCP协议,也可以把路由器看做一台DHCP服务器。

12.说说你认识的特殊IP地址把
把主机号全设置成0,则代表网络号
把主机号全部设置成1,代表广播地址
这两个IP地址都是不能作为主机的IP地址的。因此在某个局域网中最多能存在的主机个数是 2^主机号位数 - 2。

13.本机环回基本原理,说说把?
本机环回基本原理是不会把数据发送到网络里去,当IP协议准备把报文向下交给数据链路层,然后发现目的IP地址是环回地址,通常为127.0.0.1或者发现是广播和多播地址,就不发送了,而是放入IP输入队列里,等待IP输入函数的调用,如果发现都是,是正常的IP地址,就用ARP协议获取数据要到达的目的Mac地址,再进行后续的操作。

14。CIDR是什么?
CIDR的方案是对已经划分好的五类网络继续进行子网划分,其目的就是为了减少IP地址的浪费
CIDR虽然在一定程度上缓解了IP地址不够用的问题,因为CIDR提高了IP地址的利用率,减少了浪费,但IP地址的绝对上限并没有增加

15.怎么解决IP地址不足的问题?
第一种办法 动态分配,你要接入网络时,才给你分配IP地址,所以同一个Mac地址,每次接入互联网时,他们的IP地址可能都不一样
第二种办法 NAT技术,就是说让不同局域网可以存在相同的IP地址,比如我们都是192.168开头的地址,因为不在同一个局域网互不影响
第三种办法,推广ipv6,2^48个IP地址够你用的了,但IP地址是操作系统内部的东西,加上,二者又不兼容,加上,NAT技术的存在,所以推行起来很困难,当然咱们也有自己的手段,哥们我在不直接接入公网的子网里,用ipv6,然后到了某个节点的路由器,也就是这个路由器出去就是互联网时,我们把ipv6转化成ipv4,也能实现上网,真的66666。

16.当我们组建局域网时,这个局域网内部能直接通信,不能直接接入互联网,那么理论上,局域网可以使用的IP是任意的,
但我们规定了,几种私有IP,其他都是公网IP,常见的私有IP 10开头的,192.168开头的,172(16-31)开头的都是私有IP
(是私网IP,打错)

17.既然私网IP不能出现在公网里,那它怎么和公网里的主机去通信呢?
私网IP确实不能出现在公网里,它是通过路由器的转发,把IP报文里的源IP地址不断替换成该路由器的wan口IP地址,这样一经过一个个路由器的跳转,逐级替换,IP报文里的源IP地址就替换成了公网IP,然后就可以和其他主机进行通信啦!,这种技术就叫NAT技术,就是网络地址转化。

18.私网IP不能出现在公网里?
第一,私网IP是所以局域网共享的IP地址,在公网里不能唯一标识一台主机
第二,当我们的私网IP可以直接和公网里的主机通信,意味着我们不需要经过运营商的路由器,那么就是不用再交钱给运营商了,所以肯定不能。

19.什么叫NAT穿透?
实际生活中存在一些技术能够使数据包在发送过程中不进行公网IP的替换,而将数据正确送到目标主机,这种技术叫做内网穿透,也叫做NAT穿透。

20.能不能讲讲数据在路由的过程?
当数据遇上路由器,路由器会根据数据里面的目的IP地址,然后把数据转发到下一个路由器,
在这个过程中,路由器会查询路由表,有三种结果
第一种 发现有匹配的 把数据转发到下一个子网
第二种 发现没有匹配的,把数据转发到默认路由器中去
第三种 发现目的IP地址就在中间的子网里,不需要再转发给其他路由器,直接把数据传给自己子网里的目的主机

21.我们知道路由器的转发根据是Mac地址,而不是IP地址,请问一个主机并不知道他要通信的主机的Mac地址,只知道目的主机IP地址,那他还怎么完成通信呢?
这个工作是由路由器完成的,当路由器收到一个报文后,取出里面的目的IP地址,将其和自己的子网掩码按位与,得到网络号,将得到的结果和自己缓存的路由表进行对比,要是发现自己缓存了这个网络号,就把这个报文转发给对应的路由器。
要是发现自己没有缓存这个网络号,就把数据转发给默认路由器处理。
就这样,不断的通过路由器转发,最终可以到达目的主机的网络,此时不再通过将目的IP地址和子网掩码按位与得到网络号来进行查找,而是通过目的IP地址当中的主机号来进行路由,就可以找到这个目的主机,然后继续通信后续操作。
(非常重要!!!)

22.路由分为哪两种路由?
静态路由,由管理员手动配置路由信息
动态路由,由具体的算法来建立起自己的路由信息,并能根据实际情况来调整,常见路由表相关生成算法:距离向量算法,LS算法。
(粗略过程 建立路由信息过程 一个主机广播数据,数据里有目的地址和源地址,以及自己的Mac地址,然后经过路由器,这个路由器里所有的主机都收到了,然后只有目的地址的主机进行了答复,在答复的报文里,填入了自己Mac地址,经过路由器,回到了源主机里,这个主机就获取到了自己想要通信主机的Mac地址了,同时管理这片主机的路由器也收到了二者的Mac地址,进行了缓存,建立起了相关的路由信息啦!)

yes,终于整完了!,别偷懒,别逃避,以结果为导向,以掌握为导向,去努力!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值