20145306《信息安全系统设计基础》第十三周学习总结
教材学习内容总结
第十一章 网络编程
客户端-服务器模型:
每个网络应用都基于客户端-服务器模型。一个应用是由一个服务器进程和一个或者多个客户端进程组成。服务器管理某种资源,并通过操作资源来为客户端提供某种服务。客户端和服务器都是进程。
客户端服务器的事物由四步组成:
客户端需要服务时,向服务器发送请求(事务);服务器收到请求后,解释它,并以适当的方式操作它的资源;服务器给客户端发送一个响应,并等待下一个请求;客户端收到响应并处理。
网络
对主机而言,网络是一种I/O设备:从网络上接收到的数据从适配器经过I/O和存储器总线拷贝到存储器。在物理上,网络是一个按照地理远近组成的层次系统:最低层是LAN(局域网),最流行的局域网技术是以太网。
以太网段:包括一些电缆和集线器。每根电缆都有相同的最大位带宽,集线器将一个端口上收到的每个位复制到所有的端口,因此每台主机都能看到每个位。 每个以太网适配器都有一个全球唯一的48位地址,存储在适配器的非易失性存储器上。 一台主机可以发送一段位(帧)到这个网段内其它任何主机。每个帧包括一些固定数量的头部位(标识此帧的源和目的地址及帧长)和数据位。每个主机都能看到这个帧,但是只有目的主机读取这个帧。 多个以太网段可以连接成较大的局域网,称为桥接以太网。这些电缆的带宽可以是不同的。多个不兼容的局域网可以通过叫做路由器的特殊计算机连接起来,组成一个internet互联网络。
互联网重要特性:采用不同技术,互不兼容的局域网和广域网组成互联网,并且能实现相互通信。其中不同网络相互通信的解决办法是一层运行在每台主机和路由器上的协议软件,消除不同网络的差异。协议提供唯一的标示一台主机传送机制,定义一种把数据位捆扎成不连续的片的同一方式。
全球IP因特网
每台因特网主机都运行实现TCP/IP协议的软件。因特网的客户端和服务器混合使用套接字接口函数和Unix I/O函数来进行通信。把因特网看做一个世界范围的主机集合,满足以下特性: 主机集合被映射为一组32位的IP,这组IP地址被映射为因特网域名,因特网主机上的进程能够连接其他主机上的进程。
因特网域名:对于IP地址人性化的命名。
因特网链接
因特网客户端和服务器通过在连接上发送和接收字节流来通信。
在Unix机器上,文件/etc/services包含一张这台机器提供的服务以及它们端口号的综合列表。
一个链接是由它两端的 套接字地址 唯一确定的,称为套接字对。
套接字接口
函数:
- socket函数
- connect函数
- open_clientfd函数
- bind函数
- listen函数
- open_listenfd函数
- accept函数
sockaddr_in的16字节结构:in_family成员是AF_INET sin_port成员是一个16位的端口号 sin_addr成员是一个32位的IP地址。IP地址和端口号总时以网络字节顺序(大端法)存放的。_in是互联网络的缩写,不是输入input的缩写。
Web服务器
Web服务器使用HTTP协议(Hypertext Transfer Protocol,超文本传输协议)和它们的客户端(浏览器等)彼此通信。 一个 Web 客户端(即浏览器) 打开一个到服务器的因特网连接,并且发出请求内容(浏览器向服务器请求静态或者动态的内容)后服务器响应所请求的内容,然后关闭连接。浏览器读取这些内容,并把它显示在屏幕上。对静态内容的请求是通过从服务器磁盘取得文件并把它返回给客户端来服务的;对动态内容的请求是通过在服务器上一个子进程的上下文中运行一个程序并将它的输出返回给客户端来服务的。
CGI标准提供了一组规则,来管理客户端如何将程序参数传递给服务器。服务器如何将这些参数以及其他信息传递给子进程,以及子进程如何将它的输出发送回客户端。
Web内容可以用一种叫做 HTML(Hypertext Markup Language,超文本标记语言)的语言来编写。一个 HTML 程序(页)包含指令(标记),它们告诉浏览器如何显示这页中的各种文本和图形对象。
第十二章 并发程
并发:逻辑控制流在时间上重叠。
并发程序:使用应用级并发的应用程序称为并发程序。
三种基本的构造并发程序的方法:
进程,用内核来调用和维护,有独立的虚拟地址空间,显式的进程间通信机制。
I/O多路复用,应用程序在一个进程的上下文中显式的调度控制流。逻辑流被模型化为状态机。
线程,运行在一个单一进程上下文中的逻辑流。由内核进行调度,共享同一个虚拟地址空间。