标签:关闭 抽象 arp 通信模型 握手 操作 socket 能力 位置
Socket是在应用层和传输层之间的一个抽象层,是将TCP/IP层复杂的操作抽象为几个简单的接口。
Socket起源于UNIX
Unix的思想是:一切接文件
Socket是一种“打开--读/写--关闭”模式的实现。
Socket所在位置
对于网站,通信模型是服务器与客户端之间的通信。
两端都会建立一个Socket对象,通过Socket对象对数据进行传输。
通常服务器处于一个无限循环,等待客户端的连接。
面向连接的TCP时序图
创建Socket-->连接服务器-->将Socket与远程主机连接(Tips:只有TCP才有“连接”的概念,一些Socket如UDP、ICMP、ARP没有“连接”的概念)-->发送数据-->读取响应数据-->等待数据交换完毕-->关闭连接-->结束TCP对话。
初始化Socket-->建立流式套接字 --> 与本机地址及接口进行绑定 -->通知TCP -->准备接受连接 --> 调用accept()阻塞 --> 等待来自客户端的链接 --> (客户端与服务器建立链接后:客户端发送数据请求 --> 服务器接受请求并处理请求 --> 将响应数据发送给客户端 --> 客户端读取数据 --> 等待数据交换完毕) --> 关闭链接 --> 交互结束。
服务端的代码只有处理完一个客户端请求才会去处理下一个客户端请求,这样服务器的处理能力很弱,而实际中服务器都需要有并发处理能力,为了达到并发处理,服务器需要fork一个新的进程或线程去处理请求。
标签:关闭 抽象 arp 通信模型 握手 操作 socket 能力 位置
原文地址:https://www.cnblogs.com/yourGod/p/9154989.html