zoukankan      html  css  js  c++  java
  • ICMP 概念

    前言

    打算从新整理网络这一块,那么我先把概念整理下来。

    正文

    ICMP是ip的一个组成。他传递差错报文以及其他需要注意的信息。主要用于反馈一些网络传输的问题。因为ip协议很容易丢包,那么icmp可以告诉我们的进程到底为什么丢。

    然后再细看一下icmp内部:

    8位类型表示什么类型的icmp。

    然后代码位是在前面类型的细分。

    判断是什么样的icmp,需要去查询icmp表。

    icmp 有两种报文,一种是查询类,比如说ping就是查询类,判断有没有通。

    那么icmp包括什么内容呢?icmp包括原来发送包的ip首部和ip首部后面的8个字节。

    ip首部是为了告诉到底是哪个包出现问题了,然后8个字节是因为tcp或者udp,他们的前面8个字节存放了他们应用程序端口的信息,这个时候操作系统才能给那个应用程序去处理。

    icmp什么时候不会产生差错报文?

    1.icmp报文如果出错了不会产生差错报文,所以不要完全指望icmp一定会给我们写的程序信息。

    2.目的地址是广播地址。

    3.作为链路层的广播的数据报。

    4.不能作为ip的第一分片。因为如果不是ip的第一分片,里面是没有端口号的,那么发给原主机没有用。

    5.源地址不能是本身主机。

    然后后面16位是验证icmp有没有损失,这个校验损失不仅校验头部,同样校验数据,和ip协议那个16位不同,ip协议只校验头部有没有丢。

    好的,看个例子吧。

    上面类型是3,代码类型是3。类型是3是不可达,代码类型是端口不可达,事实上你查表即可。

    看下icmp里面的内容是什么。

    上面包含了原来发送的ip头部和udp的端口号。

    icmp就是这么回事,在工作中我们多用用查查自然就明白了。

  • 相关阅读:
    3.消息队列和事件循环
    2.V8工作原理
    1.浏览器中的Javascript执行机制
    入前端之门半年的感想
    前端面试相关知识点整理记录
    Nginx报错——upstream timed out 10060
    浅谈偏向锁、轻量级锁、重量级锁
    Debug 的一点思路
    Shiro 之 HashedCredentialsMatcher 认证匹配
    计算机网络基础 之六:应用层
  • 原文地址:https://www.cnblogs.com/aoximin/p/13381644.html
Copyright © 2011-2022 走看看