通用的网络编程接口
unix系统中,网络应用编程界面
unix BSD的套接字(socket) unix system V 的TLI
bsd socket systemV tli(transport layer interface)是一个调用库和在stream环境上面的运行时(run time)模块streams和tli原来是AT&T为在unix环境中使用定义的socket tli网络编程应用接口类型由于sun公司采用了支持tcp/ip的unix bsd操作系统
开始使用套接字编程之前网间进程通信
网间通信概念最初源于单机,进程在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致,操作系统为进程通信提供了相应设施
unix bsd:管道pipe,命名管道named pipe,软中断信号signal
unix system v:消息message,共享存储区shared memory和信号量semaphore
网间进程通信要解决的是不同主机进程间的相互通信问题
解决网间进程标识,同一主机不同进程可用进程号process ID唯一标识网络环境下,各主机独立分配
端口网络中可以被命名和寻址的通信端口
网络中可被命名和寻址的通信端口,是操作系统可分配的一种资源
osi七层协议 传输层-网络层功能上最大区别是传输层提供进程通信能力传输层提供进程通信能力
进程通信能力,网络通信的最终地址不仅仅是主机地址,还包括可以描述进程的某种的某种标识符
协议端口,用于标识通信的进程
端口是一种抽象的软件结构-数据结构i/o缓冲区
应用程序-进程-通过调用与某端口建立连接binding,传输层传个该端口的数据都被相应进程接收 相应进程发给传输层数据都是通过端口输出
tcp/ip协议中,对端口的操作类似于一般的i/o操作,进程获取一个端口