zoukankan      html  css  js  c++  java
  • 什么是ip协议一

    前言

    两节结束,为网络底层系列做铺垫。

    首先来看一张图:

    IOS有七层,但是我们可以简化层4层,ip属于传输层,可以说是非常重要,下面简单的做一个介绍。

    正文

    ip的介绍:

    1.ip是tcp/ip 协议族中最为核心的协议。所以的TCP、UDP、ICMP及ICMP数据都用ip数据报传输。

    2.ip提供不可靠、无连接的数据包传输服务。

    两个特征:

    1.不可靠

    2.无连接

    不可靠就是说它不能保证ip包一定到目的地,比如在某个路由就丢了,这中可能性还是挺大的,但是会通知源目的地址,ICMP告诉它这个ip数据包是怎么丢的,至于后面怎么处理就看自己了。

    无连接很好理解,是这样子的,无连接表示它不维护任何状态,每个数据包都是独立的,他们的到达顺序和发送顺序不一定一致。比如说源地址发送了10个包,它的目的就是到达目的地,目的地都不知道源地址要不要来,啥时候来。

    同样源地址发完后也不知道啥情况。

    来看下ip头部吧。

    首先看下红框这个:

    ip版本号,这个现在有4和6,一般现在是ip4。

    这个是首部长度,4位,最大为1111,也就是15,但是这里的1表示1个字节的,所以最大为60个字节,所以可选项最大为40个字节。

    TOS是什么呢?

    来看下这8位是啥?

    前面3个位是ip优先级。

    看下后面4位是啥。

    分别代表了最小延迟、最大吞吐量、最高可靠性、和最小费用。

    其实设置了也没啥用,因为经过这么多路由,有些路由器不搭理是设置的,一般是自定义路由来用。

    最后一位是用来补差的,没啥用。

    然后看一下16位总长度,这个是啥意思呢?

    也很好理解,就是指这个ip的总长度呗,16位代表最大为65535,所以一个ip包最大为65535,当然了会经过分片的。

    这个16位的标识位是这样子的,比如说操作系统发一个包把这个包标识为1,下一个ip包标识为2,每次加1作为标识。

    这个有什么作用呢?因为ip会分片,这个ip不管分为多少片,这个标识都是1这样就好组装。

    这个显示是3个位,其实用到的就两个位。分别是df和mf。

    这两个代表什么意思呢?比如ip包为2000,一个路由分片规则是1500,这时候一个路由器要分包。

    如果设置df为1,那么是什么意思呢?就是告诉这个路由器不能分包,如果分包的话,就把这个包丢了吧,然后用Icmp进行通知。

    mf如果设置为1的话,代表的意思是这样子的,比如一个包分了10个,那么最后一个标识为mf表示分包结束。

    再来看下13位偏移量,这个是啥子呢?

    我们常常说吧ip包分为1、2、3、4包,但是呢ip包那样这些啊。

    是这样来的,比如一个包5000分为5个包,第一个包偏移为0、第二个包偏移1000。。。。是这样来的。

    看下这个TTL,是这样子的,假设设置为20,每经过一个路由就减一如果到0就丢弃,这个作用是怕出现环形。

    8位协议位,这个是什么呢?就是这些TCP、UDP、ICMP的标识。1是ICMP、TCP是6。

    16位是检验位,就是用来检验的包是否完整的。

    32位源地址和目的地址没啥好说的。

  • 相关阅读:
    安装 kubenetes-dashboard
    使用kubeadm在Centos7上部署kubernetes1.21.1
    批量重命名
    is_valid重写。返回数据格式统一
    django-序列化参数为空报错问题
    单文件日志测试
    文本、目录 空间清理问题
    数仓数据
    滑动验证码(无原图片处理)
    鸟哥私房菜基础篇
  • 原文地址:https://www.cnblogs.com/aoximin/p/13333898.html
Copyright © 2011-2022 走看看