ip 协议
ip协议处理了什么内容??
输入输出
- 收
ip_input 的内容
1/
校验字节
2/
是否本地包
是:
2.1 是否分片
是: 组包(ip_reass),组包完成,发送到上一层
否: 直接发到上一层(udp,tcp,icmp,igmp)//(如果没有上一层协议标识,地址不可达)
否:
转发
- 发
ip_output的内容
1/
填充报文
2/
用 ip_route 选择合适的网络接口
3/
用 ip_output_if 发送出去
ip_output_if
etharp_out // arp 协议函数
etharp_send_ip
low_level_output // 网络接口层
// 如果网络包太大,会调用 ip_frag 分片并发送
api
- 输入
ip_input
- 输出
ip_output
ip_route
ip_output_if
ip_route