练习四:显式拥塞通知(ECN)的实现。
发送的数据报包含了网络中每个路由器的队列深度,实现拥塞通知
拓扑图

控制平面代码
{
"target": "bmv2",
"p4info": "build/ecn.p4info",
"bmv2_json": "build/ecn.json",
"table_entries": [
{
"table": "MyIngress.ipv4_lpm",
"match": {
"hdr.ipv4.dstAddr": ["10.0.1.1", 32]
},
"action_name": "MyIngress.ipv4_forward",
"action_params": {
"dstAddr": "00:00:00:00:01:01",
"port": 2
}
},
{
"table": "MyIngress.ipv4_lpm",
"match": {
"hdr.ipv4.dstAddr": ["10.0.1.11", 32]
},
"action_name": "MyIngress.ipv4_forward",
"action_params": {
"dstAddr": "00:00:00:00:01:0b",
"port": 1
}
},
{
"table": "MyIngress.ipv4_lpm",
"match": {
"hdr.ipv4.dstAddr": ["10.0.2.0", 24]
},
"action_name": "MyIngress.ipv4_forward",
"action_params": {
"dstAddr": "00:00:00:02:03:00",
"port": 3
}
},

这篇博客详细介绍了如何利用P4语言实现显式拥塞通知(ECN)机制。通过配置路由器的控制平面代码和数据平面逻辑,当网络中的队列深度超过特定阈值时,会触发ECN标志,从而通知发送方网络可能出现拥塞。拓扑图和具体的P4代码示例展示了如何在不同目的地IP地址上设置转发规则,并在拥塞发生时更新IP头的ECN字段。
最低0.47元/天 解锁文章
991

被折叠的 条评论
为什么被折叠?



