IP协议可能遇到的问题
- 封包损坏
- 丢包
- 重发
- 乱序
网络层需要解决的问题
延迟、吞吐量、丢包率无法同时满足。允许设置Type Of Service字段,表示哪个优先。
IP协议工作原理
主要有下面五个过程:
分片
为了适配底层网络,有时候需要对IP数据段做分片处理。
协议头
- Type Of Service:服务的类型,是为了响应不同的用户诉求,用来选择延迟、吞吐量和丢包率之间的关系。
- IHL(Internet Header Length):IP协议头的大小。
- Total Length:报文(封包datagram)的长度
- Identification:报文的ID,发送方分配,代表顺序
- Fragment offset:描述是否要分包(拆分),和如何拆分。
- Time To Live:封包存活的时间。
- Protocol:描述上层的协议,比如TCP=6,UDP=17
- Options:可选项
- Checksum:检验封包的正确性
寻址
IP寻址会根据ip地址,从顶层网络开始,根据子网掩码一级一级往下找,直到找到最终主机。
比如顶层网络子网掩码255.0.0.0,下一级子网掩码为255.255.0.0.再下一级为255.255.255.0。ip协议会先根据255.0.0.0找到103号顶级网络,再根据255.255.0.0找到16号子网,再根据255.255.255.0找到3号子网,最终定位到17号主机设备。
路由
寻址的过程中,怎么知道下一个网络号或者设备号在哪呢?这是根据路由算法得到的。
- 寻找网络编号
- 查找路由表,找到对应网络
- 数据转发到目的网络