当我们向服务器发送 HTTP 请求时A
,它如何知道将响应发送到哪里?在路由过程中,数据包会经过多个路由器 - 每个路由器都会以自己的 IP 作为源将其传输到下一个路由器。因此,源 IP(原始请求发起者的 IP)会丢失。
我猜我上面的理解是错误的,但是那里出了什么问题呢?
也许来自网络层的数据包是嵌套的?我的意思是原始 IP 数据包是数据包中的数据字段,它将数据包传输到下一个路由器?
怎么运行的?
答案1
路由器不会转发以自己的 IP 地址为源的 IP 数据包。它会保留原始的源 IP 地址,因此不会丢失。
一个极端情况是具有网络地址转换 (NAT) 的路由器。它们确实会用自己的 IP 地址替换原始源 IP 地址。它们必须注册双向映射(原始源 IP 地址、原始源端口)<->(重写源 IP 地址、重写源端口),以便它们可以重写响应数据包和后续数据包。