UNIX网络编程 笔记:网络编程简介

1.协议的另一端的Web客户程序,如某种浏览器,与服务器进程的通信总是由客户进程发起。

-大多数网络应用就是按照划分成客户端和服务器来组织的。在设计网络应用时,确定总是由客户发起请求往往能够简化协议和程序本身。当然一些较为复杂的网络应用还需要异步回调通信,也就是由服务器向客户发起请求消息。然而坚持采纳下图所示的基本客户/服务器模型的网络应用要普遍的多。

UNIX网络编程 笔记:网络编程简介

-通常客户每次只与一个服务器通信,不过以实用Web浏览器为例,我们也许在10分钟内就可以与许多不同的Web服务器通信。从服务器的角度来看,一个服务器同时与多个客户通信并不稀奇。

-可以认为客户与服务器之间是通过某个网络协议通信,但实际上,这样的通信通常设计多个网络协议层。

-举例来说,Web客户与服务器之间使用TCP(Transmission Control Protocol,传输控制协议)通信。TCP转而使用IP(Internet Protocol,网络协议)通信,IP在通过某种形式的数据链路层通信。客户与服务器处于同一个以太网如下图

UNIX网络编程 笔记:网络编程简介

-尽管客户与服务器之间使用某个应用协议通信,传输层却使用TCP通信。

ps:客户与服务器之间的信息流在其中一端是向下通过协议栈的,则是向上通过协跨越网络后,在另一端议栈的;

ps:客户和服务器通常是用户进程,而TCP和IP协议通常是内核中协议栈的一部分。

2.有些客户和服务器改用UDP(User Datagram Protocol,用户数据报协议)而不是TCP。

-自20世纪80年代早期依赖一直在使用,其实正式名称是IPv4(IP versioin 4,IP版本4)。IPv4的一个新版本IPv6(IP version 6,IP版本6)是在20世纪90年代中期开发出来,将来会取代IPv4。

而处于不同局域网(local area network)中客户和服务器,是使用路由器连接到广域网(wide area network,WAN)的。

UNIX网络编程 笔记:网络编程简介

-路由器是广域网的架构设备。当今最大的广域网是因特网(Internet)。许多公司也构建自己的广域网,而这些私用的广域网既可以连接到因特网,也可以不连接到因特网。

如今讨论Unix时经常使用POSIX一词,它是一种被多数厂商采纳的标准。