10级—网络工程复习

上传人:ni****g 文档编号:548957132 上传时间:2023-09-20 格式:DOC 页数:33 大小:218KB
返回 下载 相关 举报
10级—网络工程复习_第1页
第1页 / 共33页
10级—网络工程复习_第2页
第2页 / 共33页
10级—网络工程复习_第3页
第3页 / 共33页
10级—网络工程复习_第4页
第4页 / 共33页
10级—网络工程复习_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《10级—网络工程复习》由会员分享,可在线阅读,更多相关《10级—网络工程复习(33页珍藏版)》请在金锄头文库上搜索。

1、 网络应用程序设计包括:通信客户端的设计通信服务器端的设计(*)网络编程模型 C/S模型 网络应用的标准模型是C/S模型 C/S模型是非对称模型,主要体现在软件结构和工作过程上。 B/S模型 随着Internet技术的兴起,B/S模型是对C/S模型的一种变化或者改进。 B/S模型的特点:“瘦客户端、胖服务器端”。 C/S与B/S模式主要区别包括:硬件环境不同、安全要求不同、程序架构不同、软件重用不同、系统维护不同等方面。 服务器模型 循环服务器 任一时刻只处理一个客户机请求,处理请求过程中下一请求等待 节省服务器资源,响应时间长,适合处理非耗时请求 并发服务器 并发执行,每收到一个连接请求创建

2、一个进程处理该连接,服务器继续等待下一连接 响应速度快,占用系统资源多 典型C/S程序模型框架 简单C/S模型程序示例 client.c server.c网络协议 基于TCP/IP的4层协议 Internet协议(IP) 功能 完成数据包发送和接收 特点 非面向连接、不保证数据包可靠到达 IP协议数据包格式(IPv4)网络协议 用户数据报协议( UDP ) 功能 在IP协议基础上传送数据包 特点 非面向连接,不可靠到达 UDP数据包格式 应用场合 交易型应用,不要求可靠传输网络协议 传输控制协议( TCP ) 功能 在IP协议基础上传送数据包 特点 面向连接,数据包可靠有序到达 具有流量控制能

3、力 全双工通道 应用场合 大部分需要可靠数据传输的应用 TCP数据包格式 SYN位请求建立连接 ACK位应答标志 FIN位请求关闭连接 RST位请求复位连接 传输控制协议( TCP ) 建立TCP连接(“三次握手”) 传输控制协议( TCP ) 关闭TCP连接(“四次握手”) 传输控制协议( TCP ) 标识一条TCP连接的4个信息(“四位一体”) 本地IP 本地端口 对方IP 对方端口网络协议 消息控制协议( ICMP ) 功能 通常由路由器产生,报告网络传输错误 特点 封装在IP数据包的数据部分传输 ICMP数据包格式(P8,表1-1) ICMP数据包的应用 网络探测命令ping网络协议

4、标准Internet服务 ftp http pop3 smtp作业(P28) 3简述OSI七层模型和TCP/IP模型的异同。 4简述客户机/服务器的运行模式。 5服务器可以分为哪两个类型? 7简述Client/Server和Browser/Server的区别。 8在计算机网络中的服务类型有哪些? 10名词解释:地址;连接;相关;带外数据;缓存;分组交换。 11TCP连接的特点和基本流程是什么?何谓“三次握手”?网络应用程序设计unit02 基本socket函数 基于TCP编程模型网络编程模型 基于有连接网络程序的执行过程 服务程序启动 客户程序启动 客户端与服务器建立连接 客户端发送请求 服务

5、器处理请求,返回响应 服务器断开连接,等待下一个请求 套接字是一种网络API,程序员可以用之开发网络程序。套接字类型 套接字支持多种通信协议: Unix:Unix系统内部协议 INET:IP版本4 INET6:IP版本6 Linux支持多种套接字类型,即应用程序希望的通信服务类型 SOCKET_STREAM:双向可靠数据流,对应TCP SOCKET_DGRAM:双向不可靠数据报,对应UDP SOCKET_RAW:是低于传输层的低级协议或物理网络提供的套接字类型,可以访问内部网络接口。例如接收和发送ICMP报字节排序函数 为保证”大端“和”小端“字节序的机器之间能相互通信,需在发送多字节整数时,

6、将主机字节序转换成网络字节序,或反之。字节排序函数(续)#include uint16_t htons(uint16_t hostshort)uint32_t htonl(uint32_t hostlong) 均返回:网络字节序值uint16_t ntohs(uint16_t netshort)uint32_t ntohl(uint32_t netlong) 均返回:主机字节序值h:主机 n:网络 s:短整数 l:长整数字节操纵函数 #include void bzero(void *dest, size_t nbytes);void bcopy(const void *src, void *

7、dest, size_t nbytes);int bcmp(const void *src, void *dest, size_t nbytes); /*返回0则相同,非0不相同*/ 上述三个函数源自BSDvoid *memset(void *dest, int c, size_t len);void *memcpy(void *dest, const void *src, size_t nbytes);int memcmp(const void *ptr1, const void *ptr2, size_t nbytes) 上述三个函数属于ANSI C地址转换函数将点分十进制数串转换成32位

8、网络字节序二进制值。int inet_aton(const char *cp, struct in_addr *inp); 返回:1-串有效,0-串有错in_addr_t inet_addr(const char *cp); 返回:若成功,返回32位二进制的网络字节序地址,若有错,则返回一个 常值INADDR_NONE(32位均为1). 过时函数 inet_aton函数将cp所指的字符串(点分十进制数串,如192.168.0.1)转换成32位的网络字节序二进制,并通过指针inp来存储。这个函数需要对字符串所指的地址进行有效性验证。但如果cp为空,函数仍然成功,但不存储任何结果。 inet_ad

9、dr进行相同的转换,但不进行有效性验证,也就是说,所有232种可能的二进制值对inet_addr函数都是有效的。地址转换函数(续)#include char *inet_ntoa(struct in_addr inaddr); 返回:指向点分十进制数串的指针 函数inet_ntoa将32位的网络字节序二进制IPv4地址转换成相应的点分十进制数串。但由于返回值所指向的串留在静态内存中,这意味着函数是不可重入的。 需要注意的是这个函数是以结构为参数的,而不是指针。 上述三个地址转换函数都只能处理IPv4协议,而不能处理IPv6地址。地址转换函数(续)int inet_pton(int family

10、, const char *strptr, void *addrptr); 返回:1-成功,0输入无效,-1:出错const char *inet_ntop(int family, const void *addrptr, char *strptr, size_t len); 返回:指向结果的指针成功,NULL出错字母p和n分别代表presentation(地址的表达格式)和numeric(数值格式)。 family参数可以是AF_INET,也可以是AF_INET6。 长度参数len是目标的大小,如果太小无法容纳表达格式结果,则返回一个空指针。另外,目标指针调用前必须先由调用者分配空间。 so

11、cket(套接字) 网络传输的端节点 支持多种协议 UNIX、INET、IPX 支持多种类型 流式(STREAM) 数据报(DGRAM) 原始(RAW)创建网络端点socket int socket (int family, int type, int protocol) 功能:创建socket描述符 参数:(P34表2-1描述了可能的参数值) family(协议簇):AF_INET、AF_UNIX type(类型):SOCK_STREAM、SOCK_DGRAM、SOCK_RAW protocol(协议):默认为0 返回值:0socket描述符, -1失败, 系统全局变量errno为错误代码创

12、建网络端点socket(),其返回值赋值给监/侦听套接字。 socket数据结构socket地址 socket地址 Linux采用通用socket地址兼容各种协议 UNIX INET socket地址 TCP/IP协议的socket地址socket地址 TCP/IP协议的socket地址 常用地址形式(字符串):“127.0.0.1” 地址转换函数 inet_aton(const char *cp,struct in_addr *inp); char* inet_ntoa(struct in_addr in);字节顺序 主机字节顺序(以16位整数0xA130为例) little-endian顺

13、序 低字节在前 Intel处理器使用little-endian big-endian顺序 高字节在前 sun工作站使用big-endian顺序字节顺序 网络字节顺序 统一表示方式 采用big-endian顺序 主机字节顺序和网络字节顺序的转换 unsigned short int htons(unsigned short int hostshort) unsigned long int htonl(unsigned long int hostlong) unsigned short int ntohs(unsigned short int netshort) unsigned long int ntohl(unsigned long int netlong)socket地址基于TCP编程模型绑定服务器地址和端口 int bind(int sockfd,struct sockaddr *myaddr,int addrlen); 功能:绑定本地地址和端口 参数: sockfdsocket描述符 myaddr自己的地址 addrlen地址结构长度 返回值: 0成功,-1失败,errno为

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号