【问题标题】:Is reciepient's MAC address necessary for TCP connections?TCP 连接是否需要收件人的 MAC 地址?
【发布时间】:2014-02-10 09:40:55
【问题描述】:

我想在位于不同本地网络 (wifi) 中的两台计算机之间通过 Internet 建立 TCP 连接。 我一直在寻找 TCP 协议的描述,尤其是 TCP 标头的结构:http://en.wikipedia.org/wiki/Transmission_Control_Protocol#Checksum_computation

我从该数据中假设只需要:源地址(全局 ip)、目标地址(全局 ip)、源端口、目标端口。

但是收件人本地网络中的路由器如何知道该网络中的哪台计算机是没有MAC地址或本地IP地址的收件人?

那么问题来了:建立连接是否需要 MAC 地址?

【问题讨论】:

  • 请询问服务器故障。无论如何,你的问题有点奇怪,因为你问的是如果没有 2 级协议(例如以太网)的功能(MAC),ISO/OSI 3+ 级连接是否可行。
  • MAC 地址是由 TCP 等协议抽象出来的,它停留在传输层。 TCP 不应该关心它,即使它被较低级别的协议用来路由数据包。

标签: networking tcp ip mac-address


【解决方案1】:

不,不需要 MAC 地址。
您要问的是所谓的端口转发:
服务器端的路由器必须这样配置
端口 x 上的传入连接连接到本地 PC y。
(这可以通过 UPNP 自动完成,取决于路由器等)

在客户端,客户端发送东西到服务器后,
路由器“记住”将传入答案转发到哪里

【讨论】:

  • 谢谢。如果同一个网络中有两台电脑在同一个端口上监听怎么办。据我所知,所有电脑都使用 80 端口作为使用 tcp 的 http。例如,如果我们在该网络浏览中有 4 台计算机,为什么没有冲突?
  • @WojciechKetrzynski StackOverflow 是关于 编程 问题的。请在超级用户或 ServerFault 上询问!这不是适合提问的地方!
  • 如果服务器和客户端在同一个本地网络中,只需使用本地服务器 ip 连接(这是本地唯一的,即 4 台计算机中的每台计算机都有自己的本地 IP)。根本不需要全局 ip 和端口转发。
  • @Uli Köhler:嗯,他已经问过了,人们说已经……等人搬家吧。
  • @deviantfan 他们不在同一个网络上。我的意思是,当我们浏览网页时(比如同一个本地网络中的 2 个人),如果两者都使用相同的 http 端口 80,路由器如何知道将来自网站的传入消息转发给谁。
猜你喜欢
  • 2016-09-06
  • 2023-03-15
  • 2018-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-21
  • 2020-08-23
  • 2014-05-01
相关资源
最近更新 更多