网络协议栈是操作系统根据网络模型的具体实现。
用户层可以借助于操作系统提供的功能进行与其他的主机进行网络通信
交互主要分为以下几个步骤:
1 创建套接字
什么是套接字
套接字指的实体是通信控制信息,控制信息里面包含了通信对象的IP地址,端口号和通信操作进行状态。
在linux中,套接字的实体所指的是套接字缓冲区域。
一个套接字缓冲区代表了一个网络封包,套接字缓冲区可以代表不同的网络封包。
linux里面执行如下命令可以看到有多少个套接字:
netstat
上面就是所有的套接字以及它所包含的信息。
创建套接字指的是在内存中开辟一个存储空间,并向这个空间内写入初始化的信息。
如下所示就是python 创建socket的代码,可以看到在进行初始化的时候,传入了
绑定地址和端口信息。这些都会存储到控制信息中(linux中对应套接字缓冲区)。
另外可以看到每一个套接字包含了不同的状态。