1.tcp协议(一种面向连接的,可靠的传输协议)
三次握手建立连接,即在内核里面开辟socket队列空间,为接下来的服务做准备。所以连接并不是真正的建立了电路上的连接,只是为接下来的服务做好了准备。
四次分手断开连接,内核释放开辟的空间。
这里为什么服务器需要连续发送两个呢?比如说一对夫妻离婚,A对B说我想要离婚,B首先表示知道了,然后B也表示想要离婚,这个时候A表示知道了。然后就可以去签离婚协议了,也代表他们之间的关系结束了。
例:
对上面的过程进行抓包得到:
因为一次性最多接收1500字节,所以数据分了两次发送过来
2.Socket
在网络中,如何du标示一个主机?使用IP地址(在网络层,一台机器当然也可以由多个网络接口,即网卡,每个结构对应一个IP地址)
如何标示一个主机上的特定进程呢?使用IP:PORT,即IP地址和端口号,一般地说,每个进行网络通信的应用程序都要占用主机上的一个端口。
举个例子,使用TCP进行通信,需要建立连接,比如主机A上的进程a和主机B上的进程b进行通信,A、B之间的连接如何标示?使用四元组<A的IP,a所占用的端口,B的IP,b所占用的端口>
IP:PORT就确定了一个socket,在一个TCP连接中,她就像一个插口,注意,叫做插口,套接字也就是类似的意思。你把应用程序插入到这个插座,就可以和连接的另外一方对话了。
只要这个四元组唯一,我们建立的连接就是唯一的。我们理论上可以建立65535个连接到一个服务器的80端口。这时服务端只消耗一个端口。