从客户的角度来看TCP的工作原理

时间:2016-04-26 11:52:48

标签: networking tcp protocols

从服务器的角度来看,我知道TCP协议是如何工作的。 NAT用于知道哪个本地机器是端口号xx保留。

当我与服务器建立连接时,它会打开一个非保留端口。例如,我的livebox如何知道我保留了我的端口而不是其他计算机?

其他问题: - 对于客户端/服务器,每个插槽是否有一个端口?每个进程一个?每个线程一个? - 在服务器上,有一个套接字监听端口,一旦接受连接,它是否打开一个新端口?

1 个答案:

答案 0 :(得分:0)

  

例如,我的livebox如何知道我保留了我的端口,而不是   其他电脑?

如果客户端在NAT后面,我假设您正在谈论。

是客户端是否与服务器联系。因此,当客户端通过您的路由器(为您提供NAT)将第一个数据包发送到服务器时。路由器保存到NAT表是客户端的地址和端口,所以当我得到答案时,他知道谁是客户端。

enter image description here

  

其他问题: - 对于客户端/服务器,每个端口是否有一个端口   插座?每个进程一个?每个线程一个? - 在服务器上,有   一个端口监听端口,一旦接受连接就行了   打开一个新港口?

我认为你混淆了一些概念。

在OSI协议和TCP / IP协议中,存在不同类型的层。

enter image description here

正如您所见,TCP(传输控制协议)位于应用层之下。

当你谈论 socket 时,你进入了应用层。所有决定: "使用相同的端口,为每个传入的请求绑定新端口"是通过特定的应用程序制作的。

  

网络套接字是计算机上连接的端点   网络。今天,计算机之间的大多数通信都是基于   互联网协议;因此大多数网络套接字都是Internet   插座。更准确地说,套接字是一个句柄(抽象引用)   本地程序可以传递给网络应用程序   编程接口(API)使用连接,例如"发送   关于此套接字的这些数据"。套接字内部通常很简单   整数,用于标识要使用的连接。

有关NAT读取here的更多信息。 有关Port Forwarding的更多信息,请阅读here