[CSAPP笔记][第十一章网络编程]

第十一章 网络编程

我们需要理解基本的客户端-服务端编程模型,以及如何编写使用因特网提供的服务的客户端-服务端程序。

最后,我们将把所有这些概念结合起来,开发一个小的但功能齐全的Web服务器,能够为真实的Web浏览器提供静态的和动态的文本和图形内容。

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

每个网络应用程序都是基于客户端 - 服务器模型

  • 采用这种模型,一个应用是由一个服务器进程
    和一个或多个客户端进程组成。

    • 服务器管理某种资源,并且通过操作这种资源为它的客户端提供某种服务。

      • WEB服务器,代表客户端检索,执行磁盘内容。
      • FTP服务器,为客户端进行存储和检索。
      • 电子邮件服务器,为客户端进行读和更新。
    • 客户端-服务器模型中的基本操作是事务(transaction).

      • 一个客户端-服务器事务由四步组成
        • 客户端需要服务的时候,向服务器发送请求,发送一个事务
        • 服务器收到请求后,解释它,并以适当方式操作它的资源。
        • 服务器给客户端发送一个响应,并等待下一个请求。
        • 客户端收到响应并处理它。

11.2 网络

客户端服务端通常运行在不同的主机上,并且通过计算机网络的硬件和软件资源来通信。

  • 对于一个主机而言,网络只是又一种I/O设备,作为数据源数据接收方

  • 对于物理上而言,网络是一个按照地理远近组成的层次系统。

    • 最低层是LAN(Local Area Network,局域网):在一个建筑或校园范围内。

      • 迄今为止,最流行的LAN技术是以太网(Ethernet).

        • Xerox PARC公司在20世纪70年代中期提出。

          • 以太网被证明是适应力极强的,从3 MB/s10 GB/s
        • 一个以太网段(Ethernet segment)

          • 包括一些电缆(通常是双绞线)和一个叫做集线器的小盒子。

            • 每根电缆都有相同的最大位带宽
              • 典型的是100MB/s或者1GB/S.
              • 一端连接在主机的适配器,一端连接到集线器的一个端口
            • 集线器不加分辨地将从一个端口收到的每个位复制到其他所有端口上。
              • 因此每台主机都能看到每个位。
          • 以太网段通常跨越一些小的区域。

            • 例如某建筑物的一个房间或一个楼层。

扩展介绍以太网

每个以太网适配器(网卡)都有一个全球唯一的48位地址,它存储在这个适配器的ROM上(MAC)。

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

    • 每个包括

      • 一些固定数量的头部(header)
        • 用于表示此的源,和目的地址以及此的长度。
      • 此后就是数据位的有效载荷
    • 每个主机适配器都能看到这个,但是只有目的主机实际读取它。

使用一些电缆和叫做网桥(bridge)的小盒子,多个以太网段可以连接称较大的局域网,称为桥接以太网(bridged Ethernet)

  • 一些电缆连接网桥与网桥,或者 网桥与集线器。
    • 这些电缆的带宽可以是不同的。


在层次的更高级别,多个不兼容的局域网可以通过叫做路由器(router)的特殊计算机连接起来,组成一个internet(互联网络)

Internet和internet

我们总是用小写字母的internet表示一般概念,大写的Internet表示一种具体实现,如全球IP因特网。

  • WAN(Wide-Area Network,广域网)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值