网络套接字(socket)。socket就是在不同计算机之间进行通信的一个抽象。他工作于TCP/IP协议中应用层和传输层之间的一个抽象。
socket保证了不同计算机之间的通信,也就是网络通信。对于网站,通信模型是客户端服务器之间的通信。两个端都建立一个socket对象,然后通过socket对象对数据进行传输。通常服务器处于一个无线循环,等待客户端连接。
TCP 三次握手的实现:
首先客户端发送一个syn,请求连接,
服务器收到之后确认,并发送一个 syn ack应答
客户端接收到服务器发来的应答之后再给服务器发送建立连接的确定。
客户端socket对象connect调用之后进行阻塞,此过程发送了一个syn。
服务器内核完成三次握手,即发送syn和ack应答。
客户端socket对象收到服务端发送的应答之后,再发送一个ack给服务器,并返回connect调用,建立连接。
服务器socket对象接受客户端最后一次握手确定ack建立连接。
此时服务端调用accept,则从连接队列中将之前建立的连接取出返回。
至此,客户端和服务器的socket通信连接建立完成,剩下的就是两个端的连接对象收发数据,从而完成网络通信。