协议栈的内部结构
套接字的实体就是通信控制信息
- 套接字是一个概念,并不存在实体
套接字
:是协议栈内部一块用于存放控制信息的内存空间,记录了用于控制通信操作的控制消息(通信对象的IP地址、端口号、通信操作的进行状态等)- 套接字中还记录了是否已经收到响应,以及发送数据后经过了多长时间,才能根据这些信息按照需要执行重发操作
- 协议栈是根据套接字中记录的控制信息来工作的。
查看套接字
- 命令:
netstat
- 当创建套接字时,就会在这里增加一行新的控制信息,赋予“即将开始通信”的状态,并进行通信的准备工作,如分配用于临时存放收发数据的缓冲区空间
调用socket时的操作
- 浏览器委托协议栈使用TCP协议来收发数据
- 协议栈首先会分配用于存放一个套接字所需的内存空间
- 套接字刚刚创建时,数据收发操作还没有开始,因此需要在套接字的内存空间中写入表示这一初始状态的控制信息
- 将表示这个套接字的描述符告知应用程序。描述符相当于用来区分协议栈中的多个套接字的号码牌