传输控制协议套接字

时间:2015-06-29 20:45:24

标签: sockets tcp

当我用服务器打开TCP(在7层OSI上)时,第5层创建带有端口号和IP的套接字。
我想知道这个套接字是否包含我的IP /服务器IP,以及我的(随机)端口或服务器端口(例如80为HTTP)

当我用服务器打开TCP时,我们一起打开TCP 所以这意味着我们有共同的套接字?

2 个答案:

答案 0 :(得分:0)

  

当我用服务器打开TCP时(在7层OSI上)

忘记OSI。它已过时,TCP / IP不遵循它。它有自己的图层模型。

  

第5层创建带端口号和IP

的套接字

TCP在TCP层创建它。

  

我想知道这个套接字是否包含我的IP /服务器IP,以及我的(随机)端口或服务器端口(例如,80表示HTTP)。

以上所有。

  

当我用服务器打开TCP时,我们一起打开TCP所以这意味着我们有共同的套接字?

没有。套接字是连接的端点。有两个端点和两个插座。

答案 1 :(得分:0)

TCP被称为第4层 - 或传输层,因此暂时忽略OSI模型。

通常 - '套接字'只是一个没有任何身份的终点。当您bind到地址或connect到地址时,套接字会获得它的身份。

当您bind到某个地址时 - 您只能获得本地端口和本地IP地址,而不是远程IP和端口地址。因此,除非你listen,否则这样的套接字不是很有用。这通常在服务器上完成。另请注意,您可以绑定到“机器上的所有地址”,然后您实际上没有任何一个端点本身。

当您connect到服务器(TCP服务器@端口80说)时,您的OS TCP / IP堆栈使用本地IP地址并选择一个随机端口连接到服务器套接字(比如说)一个listen以上)。这是所有4个地址进入画面的时候。此套接字是一个连接的套接字,将显示所有4个值。

相关问题