信息安全系统设计与实现 学习笔记11

发布时间 2023-11-25 15:23:08作者: 20211412赖加奕

《Unix/Linux系统编程》13章学习笔记

网络编程简介

TCP/IP协议、UDP和TCP协议、服务器—客户机计算、HTTP和Web页面、动态Web页面的PHP和CGI编程

TCP/IP协议

TCP/IP是互联网的基础,TCP代表传输控制协议,IP代表互联网协议。

TCP/IP的组织结构分为几个层级,通常称为TCP/IP堆栈。

顶层时使用TCP/IP的应用程序

IP主机和IP地址

每个主机由一个32位的IP地址来标识,主机也可以用主机名表示

IP地址分为两部分:NetworkID和HostID

IP协议

IP协议用于在IP主机之间发送/接收数据包

IP数据包格式

IP数据包由IP头、发送方IP地址和接收方IP地址以及数据组成

路由器

路由器是接收和转发数据包的特殊IP主机

UDP

UDP在IP上运行,用于发送/接收数据报

用户可以使用ping命令探测目标主机

TCP

是一种面向连接的协议,用于发送/接收数据流

端口编号

每个应用程序有三个组成部分唯一标识

应用程序=(主机IP,协议,端口号)

协议是TCP/IP,端口号是分配给应用程序的唯一无符号短整数

网络和主机字节序

大端/小端

TCP/IP网络中的数据流

网络编程

所有Unix/Linux系统都为网络编程提供TCP/IP支持

网络编程平台

  1. 服务器上的用户账户
  2. 单独PC或笔记本电脑

服务器—客户机计算模型

大多数网络编程任务基于此

套接字编程

TCP/IP的用户界面是通过一系列C语言库函数和系统调用来实现的,这些函数和系统调用统称为套接字API

套接字地址

  • TCP/IP网络的sin_family时钟设置为AF_INET
  • sim_port包含按网络字节顺序排列的端口号
  • sin_addr是按网络字节顺序排列的主机IP地址

套接字API

  1. int
  2. int bind
  3. UDP
  4. TCP
  5. send()/read()或recv/write()

UDP回显服务器—客户机程序

TCP回显服务器—客户机程序

web和CGI编程

万维网或Web是互联网上的资源和用户组合,它使用超文本传输协议进行信息交换

HTTP编程模型

http://hostname[/filename]

web页面

Web页面使用HTML标记语言编写的文件

托管Web页面

  1. 与商业Web托管服务提供商签约
  2. 机构或部门服务器上的用户账户
  3. 独立PC或笔记本电脑

为Web页面配置HTTPD

动态Web页面

标准HTML:静态

JavaScript:动态

PHP

一种用于创建服务器端动态Web页面的脚本语言

CGI编程

CGI代表通用网关接口

配置CGI的HTTPD

在HTTPD中,CGI程序的默认目录是/srv/httpd/cgi-bin