C/S client/server结构
大多数网络应用就是按照划分客户(Client)和服务器(Server)来组织的,确定总是按照客户发起请求可以简化协议和程序本身.
套接字编程基本上是应用层进入传输层的接口,通过应用层绕过传输层直接使用IP4/IP6是可能的,这就是所谓的原始套接字(raw socket),甚至可以绕过IP层直接读取数据链路层的帧.
为什么套接字是从应用层进入传输层的接口?
1.应用层处理所有应用的细节,却对通信细节了解很少;而顶下四层对网络应用了解很少,却关注通信细节.
2.应用层构成用户进程,而顶下四层通常由操作系统内核提供.Unix等现代操作系统提供对用户和内核的分隔机制.