路由器是不是需要更改传入 IP 数据包中的任何字段,然后才能将其发送到传出链路上?为啥?

Posted

技术标签:

【中文标题】路由器是不是需要更改传入 IP 数据包中的任何字段,然后才能将其发送到传出链路上?为啥?【英文标题】:Does a router need to change any field(s) in an incoming IP packet before sending it out on an outgoing link? Why?路由器是否需要更改传入 IP 数据包中的任何字段,然后才能将其发送到传出链路上?为什么? 【发布时间】:2021-12-09 14:59:27 【问题描述】:

路由器是否需要更改传入 IP 数据包中的任何字段才能将其发送出去? 传出链接?为什么?

【问题讨论】:

【参考方案1】:

至少需要减少 TTL (IPv4) 和跃点限制 (IPv6) 以避免路由循环。在 NAT(即私有内部 IP、公共外部 IP)的情况下,源 IP 地址和端口需要更改以反映新的传出源 IP 地址,并可以将回复映射回原始内部 IP 和端口。在这种情况下,TCP 校验和当然也需要调整,因为它包含这些更改的信息。

【讨论】:

以上是关于路由器是不是需要更改传入 IP 数据包中的任何字段,然后才能将其发送到传出链路上?为啥?的主要内容,如果未能解决你的问题,请参考以下文章

TCP/IP详解卷一08

获取数据包中的所有层

win7怎么设置nat共享上网

更新分段数据包中的UDP校验和

路由器中同一网段或者不同网段的数据通信流程分析

Laravel 控制器和包中的路由?