Linux高性能服务器编程笔记(二)

第二章 IP协议详解

Linux高性能服务器编程笔记(二)_第1张图片

2.1 IP服务的特点

无状态:指IP通信双方不同步传输数据的状态信息,所有IP数据包的发送、传输和接受都是相互独立。只要接受端收到完整的IP数据包,就将数据部分上交给上层协议。(重新排序的工作交给上层协议)
无连接:不长久地维持对方的任何信息
不可靠:不能保证数据报能准确地到达接收端

2.2 IPv4头部结构

Linux高性能服务器编程笔记(二)_第2张图片
其中,
16位总长度指整个IP数据包的长度,超过MTU(最大传输单元)的数据包都将被分片传输,所以实际传输的每个数据包都远没有达到最大值。
32位源端IP地址与32位目的端IP地址在传输的过程中一般保持不变,不论经过多少个中转路由器。(因为改变的是在数据链路层包装的MAC地址)

2.4 IP路由

IP模块基本工作流程:
Linux高性能服务器编程笔记(二)_第3张图片

  1. 根据IP头部选项来调用数据报转发子模块处理该数据报,(松散源路由选择:经过指定的的所有路由,也就是可以经过更多的路由;严格源路由选择:只能经过指定的路由器
  2. 本机的就分派给上层协议
  3. 不是本机的就先检查是否允许转发,不允许就丢弃;允许就进行转发
  4. 将等待转发的IP数据包放入IP输出队列

你可能感兴趣的:(Linux高性能服务器编程,服务器,linux,网络)