TCP的欢迎端口与连接端口以及三次握手的目的

时间:2018-04-30 01:08:59

标签: sockets networking tcp tcp-ip

这是教科书James F. Kurose,Keith W. Ross的图片:计算机网络:自上而下的方法, ISBN-13:978-0-13-285620-1。 ISBN-10:0-13-285620-4。

enter image description here

根据图片,欢迎端口与实际连接端口不同(因为不同的套接字被分配了不同的端口号。 那么假设客户端正在初始化HTTP请求,因此Web服务器上的欢迎端口是80,然后实际的连接端口不同于80?

第二个问题是,TCP握手的目的是什么?我只被告知为什么TCP的握手是,但实际上并不知道为什么握手是必不可少的。如果我们摆脱TCP的握手,我们仍然可以使TCP成为可靠的数据传输协议,不是吗?

2 个答案:

答案 0 :(得分:1)

在最低级别,“欢迎套接字”是表示特定端口上的侦听套接字的文件描述符。当另一台计算机连接到该端口并且服务器调用accept时,将生成一个表示该特定连接的新文件描述符。这是图中的“连接套接字”。

三次握手是建立TCP / IP会话参数所必需的。 TCP / IP是一个相当小的协议,没有太多的大惊小怪或仪式。 SYN,SYN-ACK,ACK过程确保在数据传输开始之前连接的两端都是同步的。

这个同步过程非常熟悉:

enter image description here

如果没有最终的ACK,发送SYN-ACK的一方不知道他们的响应是否被接收。第三个数据包是提供确认所必需的。

答案 1 :(得分:0)

  

根据图片,欢迎端口与实际连接端口不同。

不,不是。图中没有任何内容表明这一点。它表示侦听和连接的套接字是不同的。不一样。

  

(因为为不同的套接字分配了不同的端口号)。

不,不是。接受的套接字具有与其接受的侦听套接字相同的本地端口号。我不知道你在哪里得到了“欢迎港口”这个词。来自,或者作者得到了“欢迎插座”这个术语。从。正确的术语是“监听端口”。

  

所以让我们说Client正在初始化一个HTTP请求,所以Web服务器上的欢迎端口是80,然后实际的连接端口不是80?

没有。现在是80岁。

  

第二个问题是,TCP握手的目的是什么?我只被告知为什么TCP的握手是,但实际上并不知道为什么握手是必不可少的。如果我们摆脱TCP的握手,我们仍然可以使TCP成为可靠的数据传输协议,我们可以吗?

没有。它有几个目的,其中一个目的是确定双方都知道连接存在,另一个目的是在每个方向建立一个初始序列号,这使攻击者更难注入数据。