网络通信程序设计 -计算机网络基础_第1页
网络通信程序设计 -计算机网络基础_第2页
网络通信程序设计 -计算机网络基础_第3页
网络通信程序设计 -计算机网络基础_第4页
网络通信程序设计 -计算机网络基础_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、windows网络通信程序设计,参考书,王艳平主编 Windows网络与通信程序设计(第二版)人民邮电出版社 任泰明 TCP/IP协议与网络编程 西安电子科技大学出版社 谢希仁 计算机网络教程,第一章,计算网络基础,内容提要,1、网络基本概念 2、计算网络参考模型 3、网络程序寻址 4、网络程序体系结构,1 网络的定义 网络是连接在一起的可以互相通信的设备的集合。,1.1 网络基本概念,自主计算机(Autonomous computers) 互联/互连(Interconnected) 通信 物理:通信线路/网络; 逻辑:交换信息。,两台计算机通过网络进行通信,A,B,18

2、,0,协议,协议,端口号,端口号,用户,因特网,ISP1,ISP2,因特网 服务提供者,用户通过 ISP 上网,1.2 计算机网络参考模型,1. OSI模型 OSI/RM(Open System Interconnection/Reference Model,开放系统互连参考模型)将计算机网络通信定义为一个七层框架模型,如图1.1所示。,图1.1 OSI模型与通信流程,对等通信示例,表1.1 OSI模型中各个层的功能,OSI模型的数据传输,PH,SH,TH,NH,DH,DT,AH,应用层,表示层,会话层,传输层,网络层,链路层,物理层,应用层,表示层,会话层,传输层,网络

3、层,链路层,物理层,发送进程,接收进程,物理传输媒体,2. TCP/IP参考模型,TCP/IP的架构,TCP/IP中每一层负责不同的功能:,应用层,负责处理特定的应用程序细节。各种不同的TCP/IP实现都会提供下面这些通用的应用程序: Telnet 远程登录。 FTP 文件传输协议。 SMTP 简单邮件传送协议。 SNMP 简单网络管理协议。 HTTP 超文本传输协议。 TFTP 简单文件传输协议。 传输层,主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。,UDP 用户数据报的首部格式,伪首部,源端口,目的端

4、口,长 度,检验和,数 据,首 部,UDP长度,源 IP 地址,目的 IP 地址,0,17,IP 数据报,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,数 据,首 部,UDP 用户数据报,TCP 首部,20 字节的 固定首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,32 位,S Y N,R S T,P S H,A C K,U R G,位 0 8 16 24 31,填 充,TCP 数据部分,TCP 首部,TCP 报文段,IP 数据部分,IP 首部,发送在前,TCP传输控制协议

5、的首部格式,网络层,有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。网络层协议包括:IP协议(网际协议),ARP协议(地址解析协议),RARP(逆地址解析协议),ICMP协议(Internet互联网控制报文协议), IGMP协议( Internet组管理协议)。,固 定 部 分,可变 部分,0,4,8,16,19,24,31,版 本,标志,生 存 时 间,协 议,标 识,服务类型,总 长 度,片 偏 移,填 充,首 部 检 验 和,源 地 址,目 的 地 址,可 选 字 段 (长 度 可 变),位,首部长度,数 据 部 分,数 据 部 分,首 部,传送,IP 数据报,发送在前,网络

6、接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。,采用五层结构 计算机 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,计算机

7、 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

8、发送数据,应 用 程 序 数 据,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,路由器

9、 R2,路由器 R3,电话网,局域网,主机 H1 向 H2 发送数据,从层次上来看数据的流动,Windows操作系统的总体架构,应用程序(EXE),动态链接库(DLL),应用程序 (EXE),驱动程序(VXD, SYS),硬件,应 用 层,核 心 层,EXE是一个独立且能直接执行的模块。DLL是一个共享的函数库,它提供标准的接口供其它应用程序调用,本身不能单独运行,被应用程序调用时就成为程序的一部分。,应用层是可以直接接触到的,各种用户界面都是应用层程序执行的结果。文件扩展名是.exe或.dll。,在应用层下面是核心层(kernel)。Windows95/98下核心层程序扩展名是.vxd;Wi

10、ndowsNT/2000下核心层扩展名是.sys,核心层的程序叫驱动程序。驱动程序为上层应用程序提供底层的支持。,TCP/IP协议,Windows程序,User.exe,WS2_32.DLL,ftp.exe,Tcpip.sys,Tcpip.sys,Ne2000.sys,网卡,应用层,核心层,网卡驱动程序,TCP/IP 协议在Windows中的实现,1.3 网络程序寻址方式,IP地址 MAC地址 端口 NAT,使用TCP/IP协议的互连网使用3个等级的地址:即物理(硬件)地址、互连网(IP)地址、端口地址。 每一种地址都与TCP/IP体系结构中的特定层相对应。,物理地址,IP地址,端口地址,地址

11、分类,1. IP地址(IPV4) IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。 目前IP地址是一个32位地址(IPv4),可以用来标识连接在因特网上的每一个主机。 在因特网上没有两个主机具有同样的IP地址。 下一代的IP为IPv6。,IP地址采用点分十进制记法,IP 地址的编址方法,分类的 IP 地址。这是最基本的编址方法。 划分子网。这是对最基本的编址方法的改进。 无分类编址(CIDR)。这是比较新的无分类编址方法。,net-id 24 位,host-id 24 位,net-id 16 位,net-id 8 位,IP 地址中的网络号字段

12、和主机号字段,0,A 类地址,host-id 16 位,B 类地址,C 类地址,0,1,1,D 类地址,1 1 1 0,多 播 地 址,E 类地址,保 留 为 今 后 使 用,1 1 1 1,0,1,特殊的IP地址: 网络地址:IP中主机地址为0的地址表示网络地址,如。 广播地址:网络号后跟一个所有位全是1的后缀,就是广播地址。 环回地址:127.*.*.*,用于测试。,TCP 报文,IP 数据报,MAC 帧,应用层数据,首部,首部,尾部,首部,划分子网纯属一个单位内部的事情。这个单位对外仍然表现为没有划分子网的网络。 从主机号借用若干个位作为子网号 subnet-id,

13、而主机号 host-id 也就相应减少了若干个位。 IP地址 := , , ,三级的 IP 地址-划分子网,CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。 CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。 IP 地址从三级编址(使用子网掩码)又回到了两级编址。,无分类编址-CIDR 最主要的特点,无分类的两级编址的记法是: IP地址 := , 掩码,无分类的两级编址,2. MAC地址 硬件地址又称为物理地址或MAC地址,这一地址被固化在每个网卡的ROM中,每个网卡在出厂时

14、都赋于了一个全世界范围内唯一的地址编号,地址为6字节(即48位)。 MAC地址与网络无关,也即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,都有相同的MAC地址。 MAC地址6字节(48比特)。,地址解析 地址解析(Address Resolution)就是将计算机中的协议地址翻译成物理地址(或称MAC地址,即媒体映射地址)。 地址解析只能在本地网内进行。,A,Y,X,B,Z,主机 B 向 A 发送 ARP 响应分组,主机 A 广播发送 ARP 请求分组,ARP 请求,ARP 请求,ARP 请求,,,00-00-C0-15-AD-18

15、,08-00-2B-00-EE-0A,我是 ,硬件地址是 00-00-C0-15-AD-18 我想知道主机 的硬件地址,我是 硬件地址是 08-00-2B-00-EE-0A,A,Y,X,B,Z,,,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 层上的互联网,

16、MAC 帧,IP2,IP4,IP3,IP5,路由器 R2,MAC 帧,MAC 帧,IP 数据报,从协议栈的层次上看数据的流动,3.端口 网络中可以被命名和寻址的通信端口是操作系统可分配的一种资源。 按照OSI协议的描述,传输层与网络层在功能上的最大区别是传输层提供进程通信,从这个意义上讲,网络通信的最终地址不仅仅是主机地址,还包括可以描述进程的某种标识符。 TCP/IP协议提出协议端口(protocol port,简称端口)的概念,用于标识通信的进程。,端口是一种抽象的软件结构(包括一些数据结构和I/O缓冲区)。 应用程序(进程)通过系统调用与某端口建立连接(binding)后,传输层传给该端

17、口的数据都被相应进程所接收,相应进程发给传输层的数据都通过该端口输出。 端口是用来标志应用层的进程。 TCP/IP中的端口地址是16位。,端口号的两种基本分配方式 全局分配 全局分配是一种集中控制方式,由一个公认的中央机构根据用户需要进行统一分配,并将结果公布于众。 本地分配 本地分配又称动态分配,即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返回一个本地唯一的端口号,进程再通过合适的系统调用,将自己与该端口号联系起来。,TCP/IP中端口号的分配综合了上述两种方式,TCP/IP将端口号分为两部分,少量的作为保留端口,以全局方式分配给服务进程,因此每个标准服务器都拥有一个全局公认

18、的端口即周知端口(well-known port) 。 例如,服务器提供的服务一般都是通过通用端口号来识别的,对于TCP/IP实现来说,FTP服务器的TCP端口号都是21,Telnet服务器的TCP端口号都是23,TFTP(简单文件传送协议)服务器的UDP端口号都是69。任何TCP/IP实现所提供的服务都使用通用端口号1-1023。这些通用端口号由Internet号分配机构(Internet Assigned Numbers Authority, IANA)来管理。,4. 网络地址转换 NAT (Network Address Translation),网络地址转换 NAT 方法于1994 年

19、提出。 缓解IPv4地址危机:专用地址只能用于结构内部通信 ,不用用于和因特网的主机通信. 需要在专用网连接到因特网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球地址 IPG。 所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IPG 才能和因特网连接。,51,内部地址 :是指在内部网络中分配给节点的私有IP地址,这个地址只能在内部网络中使用,如果不通过路由器它是不能被外部不同的IP网段访问到的。 内部地址也称私有地址,它是可以随机挑选。但是通常使用的是RFC 1918中定义的NAT专用地址:

20、-55;-55;-55。其中10.X.X.X地址最常用也是NAT推荐的一种地址。 全局地址,是指合法的IP地址,它是由NIC(国际IP授权机构)或者网络服务提供商分配的地址,对外代表一个或多个内部地址,是全球统一的可寻址的地址即可路由地址。,NAT概念,52,NAT的工作原理,53,NAT的工作原理,(1)客户机将数据包发给运行NAT的计算机。 (2)NAT将数据包中的端口号和专用的IP地址换成它自己的端口号和公用的IP地址,然后将数据包发给外部网络的目的主机,同时记录一个跟踪信

21、息在映像表中(NAT 转换表),以便向客户机发送回答信息。 (3)外部网络发送回答信息给NAT。 (4)NAT将所收到的数据包的端口号和公用IP地址转换为客户机的端口号和内部网络使用的专用IP地址并转发给客户机。,NAT类型,NAT有三种类型:静态NAT(static NAT)、NAT池(pooled NAT)和端口NAT(PAT)。 静态NAT设置简单,内部网络中的每个主机都被永久映射成 外部网络中的某个合法的地址,多用于服务器。 NAT池则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。多用于网络中的工作站。 PAT则是把内部地址映射到外部网络的一个IP地址的不同端

22、口上。,在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户机/服务器模式(Client/Server Model)。 客户机/服务器模式的建立基于以下两点: 首先,建立网络的起因是网络中软/硬件资源、运算能力和信息不均等,需要共享,从而形成拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对称的情况。 其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步,这就是基于客户机/服务器模式的TCP/IP。,4 .网络程序体系结构,客户机服务器结构,网络应用程序一般是以客户机服务

23、器结构工作的。在这种工作方式中,一个服务器程序通常事先已经启动,并在一个众所周知的端口监听对服务的请求。客户应用程序需要服务时,便向提供该服务的服务器发出请求,服务器在接收到请求后,就响应客户提出的请求。,客户机服务器结构的特点,客户机程序之间并不直接交流信息,它们仅与服务器通信。客户机之间可以通过服务器中转通信。,服务器方有一个固定的、公开的地址,包括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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论