码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【网络层】DHCP协议(应用层)、ICMP、IPv6详解


    注:最后有面试挑战,看看自己掌握了吗

    文章目录

    • DHCP------DHCP服务器来动态分配IP--------应用层协议----允许地址重用
    • ICMP字段----差错报文、询问报文
      • 差错报文-----终点不可达无法交付--------源点抑制、拥塞丢数据(现在废弃)-------时间超过--------参数问题首部字段出问题------改变路由重定向、
      • ICMP差错报告报文数据字段-----把IP数据报的前面部分截出来-----然后加上ICMP的前八字节-------装个IP的首部-----变成IP数据报去传输
      • 不发送ICMP差错报文----不对ICMP的差错报告--------对第一个分片报告-----对组播的数据包不发------特殊地址不发
      • ICMP询问报文------回送请求和回答报文--PING----时间戳请求和回答报文-------Traceroute-----跟踪一个分组从源点到终点的路径-------使用了ICMP时间超过差错报告报文-----用不断增加的TTL来做
      • 桥梁作用------差错报告、网络探寻
    • IPv6----CIDR、NAT治标不治本-----根本上解决地址耗尽----改进首部格式------支持QoS解决延迟和阻塞问题--快速处理转发数据报
    • IPv6数据报格式-----基本首部40B+(扩展首部+数据)------源地址目的地址都是128位------版本6-----流标签---一组数据报就是一个流的------一系列数据报有相同流标签------有效载荷长度------下一个首部-扩展首部在哪------像个链表指向下一个首部位置---------条数限制TTL
    • IPV6特点详解-----表示形式、冒号16进制记法------压缩形式有连续0、前面的0都可以删掉------零压缩------连续的0一对冒号取代
    • IPv6基本地址类型-------单播1:1------多播1:N---------任播1:多中的一个
    • IPV6过度向IPV4策略
      • 双栈协议------同时启用两者-------如果是路由器,就可以实现V6和V4地址转换---------主机,可同时用
      • 隧道技术--------不同协议数据帧、包---------重新封装通过隧道发送


    🌸I could be bounded in a nutshell and count myself a king of infinite space.
     特别鸣谢:木芯工作室
    特别鸣谢:木芯工作室 、Ivan from Russia


    DHCP------DHCP服务器来动态分配IP--------应用层协议----允许地址重用

    获得IP的方法------静态配置、动态配置-----------DHCP服务器

    即插即用联网服务-------允许地址重用----------支持移动用户加入网络-----------支持在用地址续租

    主机发送DHCP发现报文----------DHCP服务器广播DHCP提供报文----------------主机广播DHCP请求报文-----------DHCP服务器广播确认报文

    要广播------------同时告知其他服务器

    在这里插入图片描述

    ICMP字段----差错报文、询问报文

    在这里插入图片描述

    差错报文-----终点不可达无法交付--------源点抑制、拥塞丢数据(现在废弃)-------时间超过--------参数问题首部字段出问题------改变路由重定向、

    在这里插入图片描述

    ICMP差错报告报文数据字段-----把IP数据报的前面部分截出来-----然后加上ICMP的前八字节-------装个IP的首部-----变成IP数据报去传输

    在这里插入图片描述

    不发送ICMP差错报文----不对ICMP的差错报告--------对第一个分片报告-----对组播的数据包不发------特殊地址不发

    在这里插入图片描述

    ICMP询问报文------回送请求和回答报文–PING----时间戳请求和回答报文-------Traceroute-----跟踪一个分组从源点到终点的路径-------使用了ICMP时间超过差错报告报文-----用不断增加的TTL来做

    在这里插入图片描述

    在这里插入图片描述

    traceroute工作原理及详细过程
    traceroute是用来侦测主机到目的主机之间所经路由情况的重要工具,也是最便利的工具。尽管ping工具也可以进行侦测,但是,因为ip头的限制,ping不能完全的记录下所经过的路由器,所以traceroute正好就填补了这个缺憾。traceroute的原理是非常非常的有意思,它收到目的主机的IP后,首先给目的主机发送一个TTL=1的UDP数据包,而经过的第一个路由器收到这个数据包以后,就自动把TTL减1,而TTL变为0以后,路由器就把这个包给抛弃了,并同时产生
    一个主机不可达的ICMP数据报给主机。主机收到这个数据报以后再发一个TTL=2的UDP数据报给目的主机,然后刺激第二个路由器给主机发ICMP数据报。如此往复直到到达目的主机。这样,traceroute就拿到了所有的路由器ip。从而避开了ip头只能记录有限路由IP的问题。有人要问,我怎么知道UDP到没到达目的主机呢?这就涉及一个技巧的问题,TCP和UDP协议有一个端口号定义,而普通的网络程序只监控少数的几个号码较小的端口,比如说80,比如说23,等等。而traceroute发送的是端口号大于30000(真变态)的UDP报,所以到达目的主机的时候,目的主机只能发送一个端口不可达的ICMP数据报给主机。主机接到这个报告以后就知道,主机到了,所以,说traceroute是一个骗子一点也不为过😃。其详细过程如下:
    将传递到目的IP地址的ICMP Echo消息的TTL值被设置为1,该消息报经过第一个路由器时,其TTL值减去1,此时新产生的TTL值为0。
    由于TTL值被设置为0,路由器判断此时不应该尝试继续转发数据报,而是直接抛弃该数据报。由于数据报的生存周期(TTL值)已经到期,这个路由器会发送一个一个ICMP时间超时,即TTL值过期信息返回到客户端计算机。
    此时,发出traceroute命令的客户端计算机将显示该路由器的名称,之后可以再发送一个ICMP Echo消息并把TTL值设置为2。
    第1个路由器仍然对这个TTL值减1,然后,如果可能的话,将这个数据报转发到传输路径上的下一跳。当数据报抵达第2个路由器,TTL值会再被减去1,成为0值。
    第2个路由器会像第1个路由器一样,抛弃这个数据包,并像第1个路由器那样返回一个ICMP消息。
    该过程会一直持续,traceroute命令不停递增TTL值,而传输路径上的路由器不断递减该值,直到数据报最终抵达预期的目的地。
    当目的计算机接收到ICMP Echo消息时,会回传一个ICMP Echo Reply消息。 ————————————————
    版权声明:本文为CSDN博主「ghostwritten」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/xixihahalelehehe/article/details/104407443

    桥梁作用------差错报告、网络探寻

    在这里插入图片描述

    IPv6----CIDR、NAT治标不治本-----根本上解决地址耗尽----改进首部格式------支持QoS解决延迟和阻塞问题–快速处理转发数据报

    在这里插入图片描述

    IPv6数据报格式-----基本首部40B+(扩展首部+数据)------源地址目的地址都是128位------版本6-----流标签—一组数据报就是一个流的------一系列数据报有相同流标签------有效载荷长度------下一个首部-扩展首部在哪------像个链表指向下一个首部位置---------条数限制TTL

    在这里插入图片描述

    IPV6特点详解-----表示形式、冒号16进制记法------压缩形式有连续0、前面的0都可以删掉------零压缩------连续的0一对冒号取代

    地址16B

    移除校验和---------------减少每一跳处理时间

    即插即用-------------不用DHCP

    首部长度必须是8B整数倍----------IPV4是4B整数倍

    IPv6只能在主机处分片---------IPV4可以在路由器和主机处分片

    附加报文类型-----------分组过大

    支持资源与分配---------支持实时影像等要求--------保证一定的带宽和时延

    取消了协议字段----------改成下一个首部字段---------放到数据部分

    取消总长度字段---------只有有效载荷字段

    取消了服务类型字段

    在这里插入图片描述
    在这里插入图片描述

    IPv6基本地址类型-------单播1:1------多播1:N---------任播1:多中的一个

    在这里插入图片描述

    IPV6过度向IPV4策略

    双栈协议------同时启用两者-------如果是路由器,就可以实现V6和V4地址转换---------主机,可同时用

    隧道技术--------不同协议数据帧、包---------重新封装通过隧道发送

    在这里插入图片描述

  • 相关阅读:
    【佳学基因检测】如何在WINDOWS中安装E-utilities?
    【雷达信号处理基础】第1讲 -- 雷达系统概述
    python显示神经网络训练时的1batch数据
    判断字符串是否唯一
    51Sim核心参编!《中国智能网联汽车自动驾驶仿真测试白皮书》发布(附资源)
    【Linux 源码阅读记录】设备树解析 of 相关代码
    MySQL高阶语句(一)
    restful请求风格的增删改查-----查询and添加
    Pytorch——查找、替换module相关操作
    分布式配置中心Apollo
  • 原文地址:https://blog.csdn.net/weixin_43796670/article/details/128169062
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号