zoukankan      html  css  js  c++  java
  • Unix/Linux系统编程第十三章学习笔记

    Unix/Linux系统编程第十三章学习笔记

    作者:20191322wyl

    知识点总结

    本章论述了TCP/IP和网络编程,分为两个部分。第一部分论述了TCP/IP协议及其应用,具体包括TCP/IP栈、IP地址、主机名、DNS、IP数据包和路由器;介绍了TCP/IP网络中的UDP和TCP协议、端口号和数据流;闸述了服务器-客户机计算模型和套接字编程接口;通过使用UDP和TCP套接字的示例演示了网络编程。第一个编程项目可实现一对通过互联网执行文件操作的TCP服务器-客户机,可让用户定义其他通信协议来可靠地传输文件内容。
    本章的第二部分介绍了Web和CGI编程,解释了HTTP编程模型、Web页面和Web浏览器;展示了如何配置LinuxHTTPD服务器来支持用户Web页面、PHP和CGI编程:闸释了客户机和服务器端动态Web页面;演示了如何使用PHP和CGI创建服务器端动态Web页面。第二个编程项目可让读者在LinuxHTTPD服务器上通过CGI编程实现服务器端动态Web页面。

    TCP/IP协议

    TCP/IP(Comer1988,2001;RFC11801991)是互联网的基础。TCP代表传输控制协议。IP代表互联网协议。目前有两个版本的IP,即IPv4和IPv6。IPv4使用32位地址,IPV6则使用128位地址。本节围绕IPv4进行讨论,它仍然是目前使用最多的IP版本。TCP/IP的组织结构分为几个层级,通常称为TCP/IP堆栈。图13.1所示为TCP/IP的各个层级以及每一层级的代表性组件及其功能。

    顶层是使用TCPIP的应用程序。用于登录到远程主机的ssh、用于交换电子邮件的mail、用于Web页面的htp等应用程序需要可靠的数据传输。通常,这类应用程序在传输层使用TCP。另一方面,有些应用程序,例如用于查询其他主机的ping命令,则不需要可靠性。这类应用程序可以在传输层使用UDP来提高效率(RFC7681980;Comer1988)。传输层负责以包的形式向IP主机发送/接收来自IP主机的应用程序数据。进程与主机之间的传输层或其上方的数据传输只是逻辑传输。实际数据传输发生在互联网(IP)和链路层,这些层将数据包分成数据,以便在物理网络之间传输。图13.2所示为TCP/IP网络中的数据流路径。

    IP主机和IP地址

    • ip地址是32位的
    • 32位的IP地址通常用点记法表示
    • 应用程序通常使用主机名
    • DNS可以将ip地址转换为主机名
    • IP数据包由IP头、发送方IP 地址和接收方IP 地址以及数据组成
    • UDP(用户数据报协议)在IP上运行,用于发送/接收数据报
    • TCP(传输控制协议)是一种面向连接的协议,用于发送/接收数据流。

    网络编程

    服务器-客户机计算模型

    大多数网络编程任务都基于服务器-客户机计算模型。在服务器-客户机计算模型中。我们首先在服务器主机上运行服务器进程。然后,我们从客户机主机运行客户机。在UDP中,服务器等待来自客户机的数据报,处理数据报并生成对客户机的响应。在TCP中,服务器等待客户机连接。客户机首先连接到服务器,在客户机和服务器之间建立一个虚拟电路。建立连接后,服务器和客户机可以交换连续的数据流。下面,我们将展示如何使用UDP和TCP进行网络编程。

    套接字编程

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

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

    主机名和IP地址

    如果在不同的主机上运行服务器和客户机,服务器端口号由操作系统内核分配,则需要知道服务器的主机名或IP地址及其端口号。如果某台计算机运行TCP/IP,它的主机名通常记录在/etc/hosts文件中。库函数gethostname(char *name, sizeof(name))在name数组中返回计算机的主机名字符串。struct hostent *gethostbyname(void *addr, socklen_t len, int typo)可以用来获取计算机的全名及其IP地址。

  • 相关阅读:
    6、深入理解计算机系统笔记:存储器层次结构,存储技术(1)
    流程图【占无内容】
    程序的三种基本控制架构【只有提纲】
    Console算法[for]穷举法:百钱买百鸡
    Logic算法(狼羊白菜)
    Console算法continue与break的区别?
    Console算法[for]简单画图
    Console算法[for]输出等腰三角形
    Console算法[for]国王与老人的六十四格
    Console算法[for]素数
  • 原文地址:https://www.cnblogs.com/BillGreen/p/15616433.html
Copyright © 2011-2022 走看看