CSAPP--12章-- 网络编程

所有的网络应用都是基于相同的基本编程模型有相似的整体逻辑结构,并且依赖相同的编程接口

模型,逻辑结构,编程接口。

  • 客户端-服务器编程模型

由一个服务器进程和多个客户端进程组成。

服务器管理某种资源(resource),并通过操作这种资源来为它的客户端提供某种服务(service)

例子

Web服务器,resource:一组磁盘文件,service:检索和执行

FTP服务器,resource:一组磁盘文件,service:存储和检索

电子邮件服务器,resource:一个spool文件,service:读和更新

模型中的基本操作:事务(transaction)

四步:

1、当客户端需要一个服务时,它向服务器发送一个请求(request),发起一个事务。如,当Web浏览器需要一个文件时,它就发送一个请求给Web服务器

2 服务器解析请求,以适当的方式操作它的资源。如,Web服务器收到浏览器发出的请求后,就读取一个磁盘文件

3 服务器给客户端发送一个响应(response),并等待一下请求。如,Web服务器将文件发送给客户端浏览器

4 客户端收到响应并处理它。如,当Web浏览器收到响应后,就在屏幕上显示此页面。

  • 网络(程序员角度的思考模型)

客户端和服务器通过网络相连。

对主机而言,网络是一种I/O设备。

网络---网络适配器---I/O总线---I/O桥接口

网络上的数据---网络适配器---I/O总线---存储器总线---存储器

存储器---存储器总线---I/O总线---网络适配器---网络

网络层次结构:最底层 LAN(局域网,如以太网 Ethernet)

以太网段(Ethernet segment):一些电缆(通常是双绞线)和一个叫做集线器(hub)的小盒子

以太网段通常服务于一个小区域,每根电缆都有相同的最大位带宽(如100Mb/s,1Gb/s),一段连接到主机的适配器,另一端连接到集线器的一个端口(port)上。集线器不加分辨的将从一个端口上收到的每个位复制到其他所有端口上。因此,每台主机都能看到每个位。

每个以太网适配器都有一个全球唯一的48位地址,它存储在这个适配器的永久性存储器上。

一台主机可以发送一段位(成为帧 frame)到这个网段内其他任何主机。

每个帧包括一些固定数量的头(header)位,用来标识此帧的源和目的地址以及此帧的长度,此后紧随的就是数据位的有效载荷(payload)。每个主机适配器都能看到这个帧,但是只有目的主机实际读取它。

一些电缆和叫做网桥(bridge),多个以太网段可以连成较大的局域网,成为桥接以太网(bridged Ethernet),一些电缆连接网桥和网桥,另一些连接网桥和集线器,这些电缆的带宽可以是不同的。

网桥比集线器更充分的利用了电缆的带宽。利用一种分配算法,它们随时间自动学习哪个主机可以通过哪个端口可达,然后在有必要时,有选择的将帧从一个端口拷贝到其他端口。

例如,如果主机A发送一个帧到同网段上的主机B,当该帧到达网桥X的输入端口时,它将丢弃该帧,因而节省了其他网段上的带宽。如果主机A发送一个帧到一个不同网段的主机C,那么网桥X只会把此帧copy到和网桥Y连接的端口上,网桥Y会只把此帧copy到与主机C的网段连接的端口上。

局域网简化:集线器,网桥,连接电缆 -------- 一根水平的线

多个不兼容的局域网通过路由器(router)的特殊计算机连接起来,组成一个internet(互联网络)

每台路由器对它所链接的每个网络都有一个适配器(端口)。它也能连接高速点到点电话连接,这是WAN(Wide-Area Network,广域网)的一种示例。

路由器可以用来有各种局域网和广域网构建internet(互联网络)

两个局域网和两个广域网由3个路由器连接起来。

internet(互联网络):它由采用完全不同和不兼容技术的各种局域网和广域网组成。

协议软件:运行在每台主机和路由器上的协议软件(protocol software)

命名方法:IP地址

传送机制:packet包---- 包头(header,包含原地址和目的地址)+有效载荷(payload)

 

  • 全球IP因特网

因特网 客户端-服务器 组织:基本硬件和软件

 

每台主机都实现TCP/IP协议软件,

客户端和服务器混合使用套接字接口(sockets interface)函数和Unix I/O函数进行通信

IP协议:命名方法和递送机制,数据报(datagram)

TCP协议:提供进程间可靠的全双工连接

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值