• 9.3.3网络原理(网络层IP)


    一.报文:

    1.4位版本号:IPv4和IPv6(其它可能是实验室版本).

    2.4位首部长度:和TCP一样,可变长,带选项,单位是4字节. 

    3.8位服务类型 

    4.16位总长度:IP报头 + IP载荷

    传输层是不知道载荷长度的,需要网络层来计算.

    IP报文 - IP报头 = IP载荷 = TCP报文

    TCP载荷 = IP载荷(TCP报文) - TCP报头

    5.16位标识,3位标志位和13位偏移量共同表示IP数据报拆包组包的过程.

    16位标识:拆出的多个包,16位标识是相同的.

    13位偏移量:区分先后顺序,前一个包片偏移小,后一个大.

    3位标志位:一个不用,一个表示是否允许拆包,最后一个表示结束标记(为0表示最后一个包).

    6.8位生存时间(TTL)

    单位是次,

    有初始值(32/64/128),

    每经过一个路由转发TTL 减1,

    减到0(说明目标地址不存在)就丢弃

    7.8位协议: 传输层使用哪种协议(TCP/UDP/KCP......)

    8.16位首部校验和:只需校验IP首部即可,载荷部分有传输层自己的校验.

    二.IP地址

    1.IP地址:一个32位整数(4字节),使用点分十进制,使用三个点分出四段,每段表示一个字节(8个bit位)的大小(0~255)(无符号).

    2.IP地址不够用的三种处理方法:

    a.动态分配IP地址(DHCP):需要上网就分配IP,否则不分配.

    b.NAT机制(网络地址转换):把IP地址分为内网IP和外网IP两大类.

    1)内网IP:在一个局域网内不能重复.

    10.*

    172.16.* ~ 172.31.*

    192.168.*

    2)外网IP:不能重复.

    3)要想进行网络通信,就要有一个带有外网IP的设备进行中转,此时就涉及到NAT机制,当数据报到达路由器的时候,路由器会将自己的外网IP替换掉原IP(内网IP),服务器不知道具体是那个主机和自己通信,只知道发送数据报的路由器的外网IP(只知道大概的范围,不知道具体的设备).对于NAT设备(路由器),触发NAT的时候会维护一个映射表.

    4)NAT的缺点:

    a)效率不高.

    b)非常繁琐.

    c)不方便自己访问局域网内的设备.

    5)NAT的有点:纯软件实现.

    c.IPv6:

    1)IPv4:4字节,2^32(41亿9千万).

    2)IPv6:16字节,2^128.

    三.关于IP地址其它知识点:

    a.IP地址的组成:

    1)网络号:

    2)主机号:

    规定:同一个局域网内,网络号必须相同,主机号必须不同.不同的局域网,网络号必须不同.

    b.IP地址中网络号和主机号的区分:

    使用子网掩码来区分.

     

    c.特殊IP地址:

    1)将IP地址中的主机地址全部设为0,就成为了网络号,代表这个局域网.

    2)将IP地址中的主机地址全部设为1,就成为了广播地址,用于给同一个链路中相互连接的所有主机发送数据报(只能使用UDP,不能使用TCP).

    3)127.*的IP地址用于本机还回(loop back)测试,通常是127.0.0.1.

    4)本机还回主要用于本机到本机的网络通信(系统内部未来性能,不会择网络的方式传输),对于开发网络通信的程序而言,常见的开发方式都是本机到本机的网络通信.

    四.路由选择:

    每个路由器内部有一个数据结构,称为路由表,数据报到达路由器的时候,就需要查询路由表(问路),如果查到了,就可以直接按照这个方向继续转发,如果没查到路由器会给一个默认的方向(下一跳地址),沿着默认的方向,往往走到上级路由器.

     

  • 相关阅读:
    Linux——Linux指令2|more指令|less指令|head和tail指令|管道|时间相关的指令|date显示|Cal指令|find指令
    【Matlab函数分析】对二维或三维散点数据插值函数scatteredInterpolant
    实现点击开屏效果,类似于上下方向的开关门,
    生产者消费者模型(linux下c语言实现)
    Flink Watermark机制
    【scikit-learn基础】--『监督学习』之 均值聚类
    数字IC基础:有符号数和无符号数的加减运算
    Vue+el-image-viewer显示tiff图片,并能够切换图片中的帧
    系统架构设计:16 论软件开发过程RUP及其应用
    【无标题】
  • 原文地址:https://blog.csdn.net/m0_73345579/article/details/132273357