




已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
windows网络通信程序设计 参考书 王艳平主编 Windows网络与通信程序设计 第二版 人民邮电出版社任泰明 TCP IP协议与网络编程 西安电子科技大学出版社谢希仁 计算机网络教程 第一章 计算网络基础 内容提要 1 网络基本概念2 计算网络参考模型3 网络程序寻址4 网络程序体系结构 1网络的定义网络是连接在一起的可以互相通信的设备的集合 1 1网络基本概念 自主计算机 Autonomouscomputers 互联 互连 Interconnected 通信物理 通信线路 网络 逻辑 交换信息 两台计算机通过网络进行通信 A B 192 168 0 118 192 168 0 10 协议 协议 端口号 端口号 用户 因特网 ISP1 ISP2 因特网服务提供者 用户通过ISP上网 1 2计算机网络参考模型 1 OSI模型OSI RM OpenSystemInterconnection ReferenceModel 开放系统互连参考模型 将计算机网络通信定义为一个七层框架模型 如图1 1所示 图1 1OSI模型与通信流程 对等通信示例 表1 1OSI模型中各个层的功能 OSI模型的数据传输 PH SH TH NH DH DT AH 应用层 表示层 会话层 传输层 网络层 链路层 物理层 应用层 表示层 会话层 传输层 网络层 链路层 物理层 发送进程 接收进程 物理传输媒体 2 TCP IP参考模型 TCP IP的架构 TCP IP中每一层负责不同的功能 应用层 负责处理特定的应用程序细节 各种不同的TCP IP实现都会提供下面这些通用的应用程序 Telnet远程登录 FTP文件传输协议 SMTP简单邮件传送协议 SNMP简单网络管理协议 HTTP超文本传输协议 TFTP简单文件传输协议 传输层 主要为两台主机上的应用程序提供端到端的通信 在TCP IP协议族中 有两个传输协议 TCP 传输控制协议 和UDP 用户数据报协议 UDP用户数据报的首部格式 伪首部 源端口 目的端口 长度 检验和 数据 首部 UDP长度 源IP地址 目的IP地址 0 17 IP数据报 字节 4 4 1 1 2 12 2 2 2 2 字节 发送在前 数据 首部 UDP用户数据报 TCP首部 20字节的固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN 32位 SYN RST PSH ACK URG 位08162431 填充 TCP数据部分 TCP首部 TCP报文段 IP数据部分 IP首部 发送在前 TCP传输控制协议的首部格式 网络层 有时也称作互联网层 处理分组在网络中的活动 例如分组的选路 网络层协议包括 IP协议 网际协议 ARP协议 地址解析协议 RARP 逆地址解析协议 ICMP协议 Internet互联网控制报文协议 IGMP协议 Internet组管理协议 固定部分 可变部分 0 4 8 16 19 24 31 版本 标志 生存时间 协议 标识 服务类型 总长度 片偏移 填充 首部检验和 源地址 目的地址 可选字段 长度可变 位 首部长度 数据部分 数据部分 首部 传送 IP数据报 发送在前 网络接口层 通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡 它们一起处理与电缆 或其他任何传输媒介 的物理接口细节 采用五层结构计算机1向计算机2发送数据 5 4 3 2 1 5 4 3 2 1 计算机1 AP2 AP1 计算机2 应用程序数据 10100110100101比特流110101110101 注意观察加入或剥去首部 尾部 的层次 应用程序数据 计算机1向计算机2发送数据 5 4 3 2 1 5 4 3 2 1 计算机1 AP2 AP1 计算机2 10100110100101比特流110101110101 计算机2的物理层收到比特流后交给数据链路层 计算机1向计算机2发送数据 5 4 3 2 1 5 4 3 2 1 计算机1 AP2 AP1 计算机2 数据链路层剥去帧首部和帧尾部后把帧的数据部分交给网络层 H2 T2 计算机1向计算机2发送数据 H3 5 4 3 2 1 5 4 3 2 1 计算机1 AP2 AP1 计算机2 网络层剥去分组首部后把分组的数据部分交给运输层 计算机1向计算机2发送数据 H4 5 4 3 2 1 5 4 3 2 1 计算机1 AP2 AP1 计算机2 运输层剥去报文首部后把报文的数据部分交给应用层 计算机1向计算机2发送数据 应用程序数据 H5 应用程序数据 5 4 3 2 1 5 4 3 2 1 计算机1 AP2 AP1 计算机2 应用层剥去应用层首部后把应用程序数据交给应用进程 计算机1向计算机2发送数据 5 4 3 2 1 5 4 3 2 1 计算机1 AP2 AP1 计算机2 收到了AP1发来的应用程序数据 TCP IP协议族 HTTP SMTP FTP TELNET SNMP TFTP 应用层 Port 23 21 25 80 161 69 网络接口1 网络接口2 网络接口3 局域网 广域网 主机H1 主机H2 路由器R1 路由器R2 路由器R3 电话网 局域网 主机H1向H2发送数据 从层次上来看数据的流动 Windows操作系统的总体架构 应用程序 EXE 动态链接库 DLL 应用程序 EXE 驱动程序 VXD SYS 硬件 应用层 核心层 EXE是一个独立且能直接执行的模块 DLL是一个共享的函数库 它提供标准的接口供其它应用程序调用 本身不能单独运行 被应用程序调用时就成为程序的一部分 应用层是可以直接接触到的 各种用户界面都是应用层程序执行的结果 文件扩展名是 exe或 dll 在应用层下面是核心层 kernel Windows95 98下核心层程序扩展名是 vxd WindowsNT 2000下核心层扩展名是 sys 核心层的程序叫驱动程序 驱动程序为上层应用程序提供底层的支持 TCP IP协议 Windows程序 User exe WS2 32 DLL Tcpip sys Tcpip sys Ne2000 sys 网卡 应用层 核心层 网卡驱动程序 TCP IP协议在Windows中的实现 1 3网络程序寻址方式 IP地址MAC地址端口NAT 使用TCP IP协议的互连网使用3个等级的地址 即物理 硬件 地址 互连网 IP 地址 端口地址 每一种地址都与TCP IP体系结构中的特定层相对应 物理地址 IP地址 端口地址 地址分类 1 IP地址 IPV4 IP地址就是给每个连接在因特网上的主机 或路由器 分配一个在全世界范围是唯一的32位的标识符 目前IP地址是一个32位地址 IPv4 可以用来标识连接在因特网上的每一个主机 在因特网上没有两个主机具有同样的IP地址 下一代的IP为IPv6 IP地址采用点分十进制记法 IP地址的编址方法 分类的IP地址 这是最基本的编址方法 划分子网 这是对最基本的编址方法的改进 无分类编址 CIDR 这是比较新的无分类编址方法 net id24位 host id24位 net id16位 net id8位 IP地址中的网络号字段和主机号字段 0 A类地址 host id16位 B类地址 C类地址 0 1 1 D类地址 1110 多播地址 E类地址 保留为今后使用 1111 0 1 特殊的IP地址 网络地址 IP中主机地址为0的地址表示网络地址 如128 211 0 0 广播地址 网络号后跟一个所有位全是1的后缀 就是广播地址 环回地址 127 用于测试 TCP报文 IP数据报 MAC帧 应用层数据 首部 首部 尾部 首部 划分子网纯属一个单位内部的事情 这个单位对外仍然表现为没有划分子网的网络 从主机号借用若干个位作为子网号subnet id 而主机号host id也就相应减少了若干个位 IP地址 三级的IP地址 划分子网 CIDR消除了传统的A类 B类和C类地址以及划分子网的概念 因而可以更加有效地分配IPv4的地址空间 CIDR使用各种长度的 网络前缀 network prefix 来代替分类地址中的网络号和子网号 IP地址从三级编址 使用子网掩码 又回到了两级编址 无分类编址 CIDR最主要的特点 无分类的两级编址的记法是 IP地址 掩码 无分类的两级编址 2 MAC地址硬件地址又称为物理地址或MAC地址 这一地址被固化在每个网卡的ROM中 每个网卡在出厂时都赋于了一个全世界范围内唯一的地址编号 地址为6字节 即48位 MAC地址与网络无关 也即无论将带有这个地址的硬件 如网卡 集线器 路由器等 接入到网络的何处 都有相同的MAC地址 MAC地址6字节 48比特 地址解析地址解析 AddressResolution 就是将计算机中的协议地址翻译成物理地址 或称MAC地址 即媒体映射地址 地址解析只能在本地网内进行 A Y X B Z 主机B向A发送ARP响应分组 主机A广播发送ARP请求分组 ARP请求 ARP请求 ARP请求 209 0 0 5 209 0 0 6 00 00 C0 15 AD 18 08 00 2B 00 EE 0A 我是209 0 0 5 硬件地址是00 00 C0 15 AD 18我想知道主机209 0 0 6的硬件地址 我是209 0 0 6硬件地址是08 00 2B 00 EE 0A A Y X B Z 209 0 0 5 209 0 0 6 00 00 C0 15 AD 18 HA1 HA5 HA4 HA3 HA6 主机H1 主机H2 路由器R1 硬件地址 路由器R2 HA2 IP1 IP2 局域网 局域网 局域网 IP1 HA1 HA5 HA4 HA3 HA6 HA2 IP6 主机H1 主机H2 路由器R1 IP层上的互联网 MAC帧 IP2 IP4 IP3 IP5 路由器R2 MAC帧 MAC帧 IP数据报 从协议栈的层次上看数据的流动 3 端口网络中可以被命名和寻址的通信端口是操作系统可分配的一种资源 按照OSI协议的描述 传输层与网络层在功能上的最大区别是传输层提供进程通信 从这个意义上讲 网络通信的最终地址不仅仅是主机地址 还包括可以描述进程的某种标识符 TCP IP协议提出协议端口 protocolport 简称端口 的概念 用于标识通信的进程 端口是一种抽象的软件结构 包括一些数据结构和I O缓冲区 应用程序 进程 通过系统调用与某端口建立连接 binding 后 传输层传给该端口的数据都被相应进程所接收 相应进程发给传输层的数据都通过该端口输出 端口是用来标志应用层的进程 TCP IP中的端口地址是16位 端口号的两种基本分配方式全局分配全局分配是一种集中控制方式 由一个公认的中央机构根据用户需要进行统一分配 并将结果公布于众 本地分配本地分配又称动态分配 即进程需要访问传输层服务时 向本地操作系统提出申请 操作系统返回一个本地唯一的端口号 进程再通过合适的系统调用 将自己与该端口号联系起来 TCP IP中端口号的分配综合了上述两种方式 TCP IP将端口号分为两部分 少量的作为保留端口 以全局方式分配给服务进程 因此每个标准服务器都拥有一个全局公认的端口即周知端口 well knownport 例如 服务器提供的服务一般都是通过通用端口号来识别的 对于TCP IP实现来说 FTP服务器的TCP端口号都是21 Telnet服务器的TCP端口号都是23 TFTP 简单文件传送协议 服务器的UDP端口号都是69 任何TCP IP实现所提供的服务都使用通用端口号1 1023 这些通用端口号由Internet号分配机构 InternetAssignedNumbersAuthority IANA 来管理 4 网络地址转换NAT NetworkAddressTranslation 网络地址转换NAT方法于1994年提出 缓解IPv4地址危机 专用地址只能用于结构内部通信 不用用于和因特网的主机通信 需要在专用网连接到因特网的路由器上安装NAT软件 装有NAT软件的路由器叫做NAT路由器 它至少有一个有效的外部全球地址IPG 所有使用本地地址的主机在和外界通信时都要在NAT路由器上将其本地地址转换成IPG才能和因特网连接 51 内部地址 是指在内部网络中分配给节点的私有IP地址 这个地址只能在内部网络中使用 如果不通过路由器它是不能被外部不同的IP网段访问到的 内部地址也称私有地址 它是可以随机挑选 但是通常使用的是RFC1918中定义的NAT专用地址 10 0 0 0 10 255 255 255 172 16 0 0 172 16 255 255 192 168 0 0 192 168 255 255 其中10 X X X地址最常用也是NAT推荐的一种地址 全局地址 是指合法的IP地址 它是由NIC 国际IP授权机构 或者网络服务提供商分配的地址 对外代表一个或多个内部地址 是全球统一的可寻址的地址即可路由地址 NAT概念 52 NAT的工作原理 53 NAT的工作原理 1 客户机将数据包发给运行NAT的计算机 2 NAT将数据包中的端口号和专用的IP地址换成它自己的端口号和公用的IP地址 然后将数据包发给外部网络的目的主机 同时记录一个跟踪信息在映像表中 NAT转换表 以便向客户机发送回答信息 3 外部网络发送回答信息给NAT 4 NAT将所收到的数据包的端口号和公用IP地址转换为客户机的端口号和内部网络使用的专用IP地址并转发给客户机 NAT类型 NAT有三种类型 静态NAT staticNAT NAT池 pooledNAT 和端口NAT PAT 静态NAT设置简单 内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址 多用于服务器 NAT池则是在外部网络中定义了一系列的合法地址 采用动态分配的方法映射到内部网络 多用于网络中的工作站 PAT则是把内部地址映射到外部网络的一个IP地址的不同端口上 在TCP IP网络应用中 通信的两个进程间相互作用的主要模式是客户机 服务器模式 Client ServerModel 客户机 服务器模式的建立基于以下两点 首先 建立网络的起因是网络中软 硬件资源 运算能力和信息不均等 需要共享 从而形成拥有众多资源的主机提供服务 资源较少的客户请求服务这一非对称的情况 其次 网间进程通信完全是异步的 相互通信的进程间既不存在父子关系 又不共享内存缓冲区 因此需要一种机制为希望通信的进程间建立联系 为二者的数据交换提供同步 这就是基于客户机 服务器模式的TCP IP 4 网络程序体系结构 客户机 服务器结构 网络应用程序一般是以客户机 服务器结构工作的 在这种工作方式中 一个服务器程序通常事先已经启动 并在一个众所周知的端口监听对服务的请求 客户应用程序需要服务时 便向提供该服务的服务器发出请求 服务器在接收到请求后 就响应客户提出的请求 客户机 服务器结构的特点 客户机程序之间并不直接交流信息 它们仅与服务器通信 客户机之间可以通过服务器中转通信 服务器方有一个固定的 公开的地址 包括IP地址和端口号码 IP地址唯一地标识主机 端口号标识主机上运行的某个服务进程 网络程序中通信双方的标识 为了唯一地标识网络中通信的某一方 就要使用一个如下的三元组 本地协议 本地IP地址 本地端口号 因此通信的双方可以使用如下六元组 本地协议 本地IP地址 本地端口号 远程协议 远程IP地址 远程端口号 由于通信的双方在端到端的传输层只能使用相同的协议 因此一个完整的网间通信可简化为一个五元组 协议 本地IP地址 本地端口号 远程IP地址 远程端口号 这里的协议主要是TCP UDP 传统客户 服务器模式的不足 瓶颈问题 服务器的带宽 存储 计算等资源受限 容易成为网络瓶颈单点失效问题 服务器是整个网络的中心 失效将会导致服务无法访问 网络边缘闲置资源利用的需求
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家政服务合同协议书
- Unit 2 单元整体说课稿 2023-2024学年人教版八年级英语下册
- 关于读书活动总结(集合15篇)
- 2025山东菏泽高新城市建设投资有限公司招聘考试12人笔试题库及答案详解
- 抵押物品抵押管理与风险控制合同
- 建设用地地勘合同示范文本(工业用地)
- 出差人员安全保障及费用报销合同范本
- 文化创意担保借款合同示范文本
- 事业单位合同签订风险评估与防范措施合同
- 《国有企业改革中员工转岗劳务派遣专项合同》
- 农村处理矛盾纠纷课件
- 厂房搬迁管理办法
- 保险学考试题(附答案)
- 中药处方点评管理办法
- 国企纪法教育实施路径
- 药品发放登记管理制度
- 临床科室科研管理制度
- 铁艺围栏采购合同
- 中国皮肤基底细胞癌诊疗指南2023
- 卫星通信技术在电力行业中的应用场景分析
- 黄旭华人物介绍
评论
0/150
提交评论