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

下载本文档

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

文档简介

1、windows网络通信程序设计参考书参考书 王艳平主编王艳平主编 WindowsWindows网络与通信程序设计网络与通信程序设计(第二版)人民邮电出版社第二版)人民邮电出版社 任泰明任泰明 TCP/IPTCP/IP协议与网络编程协议与网络编程 西安电西安电子科技大学出版社子科技大学出版社 谢希仁谢希仁 计算机网络教程计算机网络教程 第一章计算网络基础 内容提要1、网络基本概念2、计算网络参考模型3、网络程序寻址4、网络程序体系结构1 网络的定义n网络是连接在一起的可以互相通信的设备的集合。 1.1 网络基本概念 自主计算机(Autonomous computers) 互联/互连(Interc

2、onnected) 通信物理:通信线路/网络;逻辑:交换信息。两台计算机通过网络进行通信AB网络网络180协议协议协议协议端端口口号号端端口口号号用户因特网ISP1ISP2因特网服务提供者用户通过用户通过 ISP 上网上网1.2 计算机网络参考模型 1. OSI模型OSI/RM(Open System Interconnection/Reference Model,开放系统互连参考模型)将计算机网络通信定义为一个七层框架模型,如图1.1所示。 信息流同层间对等通信7.应用层6.表示层5.会话层4.传输层3.网络层2.数据链路层1.物理层7.应用层6.

3、表示层5.会话层4.传输层3.网络层2.数据链路层1.物理层源主机目标主机信息流信息流图1.1 OSI模型与通信流程 对等通信示例“你好你好”“Hello”“Hello”传真传真中国中国教师教师翻译翻译秘书秘书“Hallo”“Hallo”“Hello”“Hello”传真传真德国德国教师教师翻译翻译秘书秘书对交谈内容的共识对交谈内容的共识用英语对话用英语对话使用传真通信使用传真通信P3P3P2P2P1P1物理通信线路物理通信线路表1.1 OSI模型中各个层的功能 名称 层次 功 能 物理层 1 提供比特流传输 数据链路层 2 进行数据打包与解包,形成信息帧 网络层 3 提供数据通过的路由 传输层

4、 4 提供传输顺序与相应信息 会话层 5 建立和中止连接 表示层 6 数据转换,确认数据格式 应用层 7 提供用户程序接口 OSI模型的数据传输PHSHTHNHDHDTAH物理传输媒体数据数据数据AH数据PHAH数据PHSHAH数据PHSHTHAH数据PHSHTHNHAH比特流2. TCP/IP参考模型参考模型TCP/IP的架构的架构OSI参考模参考模型层次描述型层次描述OSI层次层次号号应用层应用层7表示层表示层6会话层会话层5传输层传输层4网络层网络层3数据链路层数据链路层2物理层物理层1TCP/IP参考模型参考模型应用层应用层传输层传输层网络层网络层网络接口层网络接口层TCP/IP中每一

5、层负责不同的功能:中每一层负责不同的功能:应用层,负责处理特定的应用程序细节。各种不同的TCP/IP实现都会提供下面这些通用的应用程序: Telnet 远程登录。 FTP 文件传输协议。 SMTP 简单邮件传送协议。 SNMP 简单网络管理协议。 HTTP 超文本传输协议。 TFTP 简单文件传输协议。传输层,主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。UDP 用户数据报的首部格式用户数据报的首部格式 伪首部源端口目的端口长 度检验和数 据首 部UDP长度源 IP 地址目的 IP 地址017IP 数据报字

6、节44112122222字节发送在前数 据首 部UDP 用户数据报TCP首部20 字节的固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FIN32 位SYNRSTPSHACKURG位 0 8 16 24 31填 充TCP 数据部分TCP 首部TCP 报文段IP 数据部分IP 首部发送在前TCP传输控制协议的首部格式传输控制协议的首部格式 网络层网络层,有时也称作互联网层,处理分组在网络中,有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。的活动,例如分组的选路。网络层协议包括网络层协议包括:IP协议(网际协议),协

7、议(网际协议),ARP协议(地址解析协议),协议(地址解析协议),RARP(逆地址解析协议),(逆地址解析协议),ICMP协议(协议(Internet互联网控制报文协议),互联网控制报文协议), IGMP协议(协议( Internet组管理协议)。组管理协议)。固定部分可变部分04816192431版 本标志生 存 时 间协 议标 识服务类型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分数 据 部 分首 部传送IP 数据报首部发送在前网络接口层网络接口层,通常包括,通常包括操作系统中的设备驱动程序操作系统中的设备驱

8、动程序和计算机中对应的和计算机中对应的网络接口卡网络接口卡。它们一起处理与电。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。缆(或其他任何传输媒介)的物理接口细节。 采用五层结构 计算机 1 向计算机 2 发送数据5432154321计算机 1AP2AP1计算机 2应 用 程 序 数 据应用层首部H510100110100101 比 特 流 110101110101注意观察加入或剥去首部(尾部)的层次应 用 程 序 数 据H5应 用 程 序 数 据H4H5应 用 程 序 数 据H3H4H5应 用 程 序 数 据H4运输层首部H3网络层首部H2链路层首部T2链路层尾部计算机 1 向计算

9、机 2 发送数据5432154321计算机 1AP2AP1计算机 210100110100101 比 特 流 110101110101计算机 2 的物理层收到比特流后交给数据链路层H2T2H3H4H5应 用 程 序 数 据计算机 1 向计算机 2 发送数据H3H4H5应 用 程 序 数 据5432154321计算机 1AP2AP1计算机 2数据链路层剥去帧首部和帧尾部后把帧的数据部分交给网络层H2T2H3H4H5应 用 程 序 数 据计算机 1 向计算机 2 发送数据H4H5应 用 程 序 数 据H3H4H5应 用 程 序 数 据5432154321计算机 1AP2AP1计算机 2网络层剥去分

10、组首部后把分组的数据部分交给运输层计算机 1 向计算机 2 发送数据H5应 用 程 序 数 据H4H5应 用 程 序 数 据5432154321计算机 1AP2AP1计算机 2运输层剥去报文首部后把报文的数据部分交给应用层计算机 1 向计算机 2 发送数据应 用 程 序 数 据H5应 用 程 序 数 据5432154321计算机 1AP2AP1计算机 2应用层剥去应用层首部后把应用程序数据交给应用进程计算机 1 向计算机 2 发送数据5432154321计算机 1AP2AP1计算机 2收到了 AP1 发来的应用程序数据!TCP/IP 协议族协议族网络接口 1网络接口 2网络接口3局域网广域网主

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

12、ows95/98下核心层程序扩展名是.vxd;WindowsNT/2000下核心层扩展名是.sysq 核心层的程序叫驱动程序。驱动程序为上层应用程序提供底层的支持。应用层应用层传输层传输层网络层网络层网络接口层网络接口层TCP/IP协议Windows程序User.exeWS2_32.DLLftp.exeTcpip.sysTcpip.sysNe2000.sys网卡应用层核心层系统文件,主要提供了TCP、UDP、IP协议的实现网卡驱动程序 TCP/IP 协议在Windows中的实现1.3 网络程序寻址方式 IP地址 MAC地址 端口 NAT 使用使用TCP/IP协议的互连网使用协议的互连网使用3个

13、等级的地址:即个等级的地址:即物理(物理(硬件)地址硬件)地址、互连网(互连网(IP)地址)地址、端口地址端口地址。 每一种地址都与每一种地址都与TCP/IP体系结构中的特定层相对应。体系结构中的特定层相对应。底层物理网络IP协议TCP 进程UDP物理地址 IP地址端口地址 地址分类1. IP地址地址(IPV4) IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的围是唯一的 32 位的标识符。位的标识符。目前目前IP地址是一个地址是一个32位地址位地址(IPv4),可以用来标识连接在因特网上的每一个主

14、,可以用来标识连接在因特网上的每一个主机。机。在因特网上没有两个主机具有同样的在因特网上没有两个主机具有同样的IP地址。地址。下一代的下一代的IP为为IPv6。 IP地址采用点分十进制记法10000000000010110000001100011111 机器中存放的 IP 地址是 32 位二进制代码每隔 8 位插入一个空格能够提高可读性10000000 00001011 00000011 00011111 128 11 3 31 将每 8 位的二进制数转换为十进制数采用点分十进制记法则进一步提高可读性1 IP 地址的编址方法地址的编址方法 分类的分类的 IP 地址地址。这是

15、最基本的编址方法。这是最基本的编址方法。 划分子网划分子网。这是对最基本的编址方法的改进。这是对最基本的编址方法的改进。 无分类编址(无分类编址(CIDR)。这是比较新的无分类编。这是比较新的无分类编址方法。址方法。net-id24 位host-id24 位net-id16 位net-id8 位IP 地址中的网络号字段和主机号字段 0A 类地址host-id16 位B 类地址C 类地址01 1host-id8 位D 类地址 1 1 1 0多 播 地 址E 类地址保 留 为 今 后 使 用1 1 1 101 特殊的IP地址:网络地址:IP中主机地址为0的地址表示网络地址,如

16、。广播地址:网络号后跟一个所有位全是1的后缀,就是广播地址。环回地址:127.*.*.*,用于测试。 TCP 报文IP 数据报MAC 帧应用层数据首部首部尾部首部链路层及以下使用硬件地址硬件地址网络层及以上 使用 IP 地址IP 地址 划分子网纯属一个单位内部的事情。这个单位对外仍然表现为没有划分子网的网络。 从主机号借用若干个位作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。IP地址 := , , 三级的 IP 地址-划分子网 CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。 CIDR使用

17、各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。 IP 地址从三级编址(使用子网掩码)又回到了两级编址。 无分类编址无分类编址-CIDR 最主要的特点 无分类的两级编址的记法是: IP地址 := , 掩码无分类的两级编址 2. MAC地址硬件地址又称为物理地址或MAC地址,这一地址被固化在每个网卡的ROM中,每个网卡在出厂时都赋于了一个全世界范围内唯一的地址编号,地址为6字节(即48位)。MAC地址与网络无关,也即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,都有相同的MAC地址。MAC地址6字节(48比特)。地址解析地址解析(A

18、ddress Resolution)就是将计算机中的协议地址翻译成物理地址(或称MAC地址,即媒体映射地址)。地址解析只能在本地网内进行。ARP 响应AYXBZ主机 B 向 A 发送ARP 响应分组 主机 A 广播发送ARP 请求分组 ARP 请求ARP 请求ARP 请求ARP 请求00-00-C0-15-AD-1808-00-2B-00-EE-0A我是 ,硬件地址是 00-00-C0-15-AD-18我想知道主机 的硬件地址我是 硬件地址是 08-00-2B-00-EE-0AAYXBZ209.0.0.

19、500-00-C0-15-AD-18HA1HA5HA4HA3HA6主机 H1主机 H2路由器 R1硬件地址路由器 R2HA2IP1IP2局域网局域网局域网IP1HA1HA5HA4HA3HA6HA2IP6主机 H1主机 H2路由器 R1IP 层上的互联网MAC 帧IP2IP4IP3IP5路由器 R2 IP1 IP2IP1 IP2IP1 IP2从 HA1 到 HA3从 HA4 到 HA5从 HA6 到 HA2MAC 帧MAC 帧IP 数据报从协议栈的层次上看数据的流动 3.端口网络中可以被命名和寻址的通信端口是操作系统可分配的一种资源。按照OSI协议的描述,传输层与网络层在功能上

20、的最大区别是传输层提供进程通信,从这个意义上讲,网络通信的最终地址不仅仅是主机地址,还包括可以描述进程的某种标识符。TCP/IP协议提出协议端口(protocol port,简称端口)的概念,用于标识通信的进程。 端口是一种抽象的软件结构(包括一些数据结构和I/O缓冲区)。应用程序(进程)通过系统调用与某端口建立连接(binding)后,传输层传给该端口的数据都被相应进程所接收,相应进程发给传输层的数据都通过该端口输出。 端口是用来标志应用层的进程端口是用来标志应用层的进程。 TCP/IP中的端口地址是中的端口地址是16位。位。端口号的两种基本分配方式全局分配全局分配是一种集中控制方式,由一个

21、公认的中央机构根据用户需要进行统一分配,并将结果公布于众。本地分配本地分配又称动态分配,即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返回一个本地唯一的端口号,进程再通过合适的系统调用,将自己与该端口号联系起来。 TCP/IP中端口号的分配综合了上述两种方式,TCP/IP将端口号分为两部分,少量的作为保留端口,以全局方式分配给服务进程,因此每个标准服务器都拥有一个全局公认的端口即周知端口(well-known port) 。 例如,服务器提供的服务一般都是通过通用端口号来识别的,对于TCP/IP实现来说,FTP服务器的TCP端口号都是21,Telnet服务器的TCP端口号都是23

22、,TFTP(简单文件传送协议)服务器的UDP端口号都是69。任何TCP/IP实现所提供的服务都使用通用端口号1-1023。这些通用端口号由Internet号分配机构(Internet Assigned Numbers Authority, IANA)来管理。4. 网络地址转换 NAT (Network Address Translation) 网络地址转换 NAT 方法于1994 年提出。 缓解IPv4地址危机:专用地址只能用于结构内部通信 ,不用用于和因特网的主机通信. 需要在专用网连接到因特网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部

23、全球地址 IPG。 所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IPG 才能和因特网连接。 51 内部地址 :是指在内部网络中分配给节点的私有IP地址,这个地址只能在内部网络中使用,如果不通过路由器它是不能被外部不同的IP网段访问到的。 内部地址也称私有地址,它是可以随机挑选。但是通常使用的是RFC 1918中定义的NAT专用地址:-55;-55;-55。其中10.X.X.X地址最常用也是NAT推荐的一种地址。 全局地址,是指合

24、法的IP地址,它是由NIC(国际IP授权机构)或者网络服务提供商分配的地址,对外代表一个或多个内部地址,是全球统一的可寻址的地址即可路由地址。 NAT概念52NAT的工作原理53NAT的工作原理(1)客户机将数据包发给运行NAT的计算机。(2)NAT将数据包中的端口号和专用的IP地址换成它自己的端口号和公用的IP地址,然后将数据包发给外部网络的目的主机,同时记录一个跟踪信息在映像表中(NAT 转换表),以便向客户机发送回答信息。(3)外部网络发送回答信息给NAT。(4)NAT将所收到的数据包的端口号和公用IP地址转换为客户机的端口号和内部网络使用的专用IP地址并转发给客户机。NAT类型NAT有

25、三种类型:静态NAT(static NAT)、NAT池(pooled NAT)和端口NAT(PAT)。 静态NAT设置简单,内部网络中的每个主机都被永久映射成 外部网络中的某个合法的地址,多用于服务器。 NAT池则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。多用于网络中的工作站。 PAT则是把内部地址映射到外部网络的一个IP地址的不同端口上。在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户机/服务器模式(Client/Server Model)。客户机/服务器模式的建立基于以下两点:首先,建立网络的起因是网络中软/硬件资源、运算能力和信息不均等,需

26、要共享,从而形成拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对称的情况。其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步,这就是基于客户机/服务器模式的TCP/IP。4 .网络程序体系结构 客户机服务器结构 网络应用程序一般是以客户机服务器结构工作的。在这种工作方式中,一个服务器程序通常事先已经启动,并在一个众所周知的端口监听对服务的请求。客户应用程序需要服务时,便向提供该服务的服务器发出请求,服务器在接收到请求后,就响应客户提出的请求。ClientServer 客户机服务器结构的特点 客户机程序之间并不直接交流信息,它们仅与服务器通信。客户机之间可以通过服务器中转通信。 服务器方有一个固定的、公开的地址,包括IP地址和端口号码。IP地址唯一地标识主机,端口号标识主机上运行的某个服务进程。 网络程序中通信双方的标识 为了唯一地标识网络中通信的某一方,就要使用一个如下的三元组:(本地协议,本地IP地址,本地端口号) 因此通信的双方可以使用如下六元组:(本地协议,本地IP地址,本地端口号,远程协议,远程IP地址,远程端口号) 由于通信的双方在端

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论