-
面向连接
TCP所有的功能都是基于一个抽象的连接
。 -
TCP连接的端点
套接字(socket)
:端口号
拼接到IP地址
即构成了套接字
套接字的表示方法
:点分十进制的IP地址后面写上端口号,中间使用冒号或逗号隔开。
套接字socket = (IP地址:端口号)。如(192.3.4.5:80)
每一个TCP连接唯一地被通信两端的两个端点(两个套接字)
所确定。即:
TCP连接 = {socket1,socket2} = {(IP1:port1),(IP2:port2)} -
TCP连接的端点
是套接字
,一个套接字
只能和唯一的另一个远地套接字
相连。
但是:
同一个IP地址
可以有多个不同的TCP连接
,同一个端口号
也可以出现在多个不同的TCP连接中
。
但是多个客户端同时连接到服务器上的一个端口(比如80),服务器是否会新起另一个端口进行通信?
答:
服务器不会新起端口。服务器的80端口
一直负责监听客户端的请求。
如果有客户端请求,服务器始终使用相同的初始套接字
来响应(不需要分配另一个服务器端口);
接着创建新的套接字(根据五元组)
{SRC-IP, SRC-PORT, DEST-IP, DEST-PORT, PROTOCOL};
然后创建一个线程或一个协程 通过刚才新创建的套接字
来和客户端
通信。所以服务器从头到尾只占用了一个80端口进行监听和通信。
5.3.2 TCP的连接
最新推荐文章于 2022-12-06 18:09:07 发布