• Linux高性能服务器编程——ch2笔记


    第2章 IP 协议详解

    2.1 IP服务的特点

    无状态:IP通信双方不同步传输数据的状态信息。IP数据报相互独立,缺点是无法处理乱序和重复的IP数据报。上层协议如果是面向连接的协议(TCP),能够自己处理乱序和重复的报文段。IP数据报头部的标识字段是被用来处理IP分片和重组的,不是指接收顺序。优点是简单高效。UDP和HTTP也是无状态的。
    无连接:IP通信双方都不长久地维持对方的任何信息。
    不可靠:IP协议不能保证IP数据报准确地到达接收端。通知上层协议发送失败,但不重传,使用IP的上层协议需要自己实现数据确认、超时重传。

    2.2 IPv4头部结构

    image.png
    同一个数据报的所有分片都具有相同的标识值。
    实际偏移值:13位分片偏移*8,除最后一个分片外,每个分片数据部分长度必须是8的整数倍。
    数据报转发过程中,每经过1个路由,TTL减1。

    2.3 IP分片

    IP数据报超过MTU时,将被分片传输。发生在发送端或中转路由器上,最终在目标机器上组装。
    数据报标识、标志、片偏移。
    image.png
    以太网帧的MTU是1500字节。

    2.4 IP路由

    image.png
    接收到IP数据报首先对IP头部进行CRC校验。
    源站选路选项:松散源路由选择或严格源路由选择。
    IP路由机制(给定目标IP地址,如何匹配路由表)按顺序:
    1)完全匹配IP地址,就使用该路由项;
    2)具有相同网路ID的网络IP地址(如网关地址),就使用该路由项;(网路ID:连续255部分,主机ID:连续0部分)
    3)默认路由项,下一跳路由是网关。
    静态路由更新方式:route命令。
    动态路由更新方式:BGP协议、RIP协议、OSPF协议。

    2.5 IP转发

    主机和路由器都能进行IP转发。

    2.6 重定向

    ICMP 重定向报文也能用于更新路由表。
    image.png

    2.7 IPv6头部结构

    解决v4地址不够用问题,并做了改进。
    IPv6头部由40字节的固定头部和可变长的扩展头部组成。
    零压缩法只能用一次。
    IPv6协议并不是IPv4协议的简单扩展,而是完全独立的协议。用以太网帧封装IPv6数据报和IPv4数据报具有不同的类型值。第1章提到,IPv4数据报的以太网帧封装类型值是0x800, 而IPv6数据报的以太网帧封装类型值是 0x86dd。

  • 相关阅读:
    LINQ to SQL语句(24)之视图
    voc(xml)标签查询种类并打印
    Epoxy:跨不同数据存储的 ACID 事务
    ASP.NET Core - 日志记录系统(一)
    anime 动态线
    动态库、静态库的编译,以及使用
    图信号处理论文
    解析器模式(Parser Pattern)
    SpringBoot项目中使用缓存Cache的正确姿势!!!
    夏日小风扇(.html实现)——小太阳给她带去凉爽
  • 原文地址:https://blog.csdn.net/qq_43680965/article/details/133842164