网络编程技术(西电课件)第1章.ppt
《网络编程技术(西电课件)第1章.ppt》由会员分享,可在线阅读,更多相关《网络编程技术(西电课件)第1章.ppt(105页珍藏版)》请在三一办公上搜索。
1、网络编程技术,网络编程基础,第1章 网络编程基础,本章介绍网络编程相关的基本概念,包括网络协议分层进程、线程、进程间通信的概念因特网中网间进程的标识方法网络协议的特征TCP/IP中用户数据报协议UDP和传输控制协议TCP的特点 目前的网络编程现状网络应用程序的交互模式,网络协议分层,网络协议分层的原因OSI七层模型TCP/IP四层模型,一个问题,放假回家前,你是怎么通知家人、亲朋好友的?,思考题:简单信息的传送,放假前,远方的儿子想给老爸发信息:我大概x月x日到家,只有导线、电源、电表、灯泡等工具,思考题:简单信息的传送,西安,北海,山高路远,只有一套导线,思考题:简单信息的传送,西安,北海,
2、北京,西藏,家大业大,经不起铺张浪费,郑州,网络协议分层的原因,网络通信中,要考虑的因素很多,比如说组成和分解数据包、数据包寻址、流量控制、信道编码、码字向电信号的转换等等。如果在同一层里面完全实现,是很困难的,因此设计者考虑用化繁为简的方式来处理,将复杂的系统,分成多个层次来处理,每一个层次只需要按照设计要求完成自己的功能,向上层提供服务接口即可。,OSI七层模型,应用层,表示层,会话层,传输层,网络层,数据链路层,物理层,OSI七层模型,应用层,表示层,会话层,传输层,网络层,数据链路层,物理层,怎么样在物理媒介上传输信号,即0/1数字信号用什么样的电脉冲、光脉冲、无线波形来表示,OSI七
3、层模型,应用层,表示层,会话层,传输层,网络层,数据链路层,物理层,在共享物理媒介上,控制物理寻址、数据装帧。即管理数据何时开始、何时结束,该数据帧该谁接收,多个 节点都想发送数据时该如何处理,A,B,C,D,OSI七层模型,应用层,表示层,会话层,传输层,网络层,数据链路层,物理层,下两层解决了同一物理媒介上的寻址和数据传输问题,跨媒介的通信怎么处理呢?网络层定义了一种跨媒介的复杂网络中使用的地址,并解决数据包路由选择、跨网传递的问题。,OSI七层模型,应用层,表示层,会话层,传输层,网络层,数据链路层,物理层,跨网传递出现了许多问题。比如说对于可靠性要求高的传输,就要考虑数据包分割和排序、
4、错误重传、网络拥塞等等处理;对于可靠性要求不高、但要求快速传递的,该如何处理。这些问题由传输层解决,OSI七层模型,应用层,表示层,会话层,传输层,网络层,数据链路层,物理层,控制会话的过程。比如说A从B下载一个文件,这就算一个会话。是使用可靠传输呢,还是使用不可靠传输呢?是作为一个文件从头到尾逐段数据传输呢,还是分成几个部分多线程同时传输呢?,OSI七层模型,应用层,表示层,会话层,传输层,网络层,数据链路层,物理层,人能够识别的数据、机器能识别的数据相互之间的转换。比如我们的汉字、英文、图片、电影该怎么编码才方便存储和传输,收到一段编码后该翻译成什么。ASCII、UNICODE编码转换、J
5、PEG图像显示等等此类工作在表示层完成,OSI七层模型,应用层,表示层,会话层,传输层,网络层,数据链路层,物理层,满足用户需求的各种应用协议。比如说想看Internet上的某个网页、某一首歌、某个电影,该怎么请求、怎么应答等等,OSI七层模型和TCP/IP四层模型,应用层,表示层,会话层,传输层,网络层,数据链路层,物理层,应用层,传输层,网络层,网络接口层,思考题,双极性NRZ码是一种不归零编码方法,以某个数值E为门限,大于+E表示为0,小于-E表示为1。请问这种编码能用在哪一层?楷体_GB2312编码译码属于TCP/IP协议栈中的哪一层?,网络间进程通信,进程线程网络应用进程在网络结构中
6、的位置实现网间进程通信必须解决的问题,进程,概念 进程是处于运行过程中的程序实例,是操作系统调度和分配资源的基本单位。,QQ是一个程序,每运行一次就产生一个程序实例,可以运行多个,从而使用不同的帐号去跟不同的群体聊天。这些程序实体都是各自独立的进程。,进程,组成 一个进程实体由程序代码、数据和进程控制块三部分构成。,程序代码:规定了进程所做的计算。也就是进程要做什么 数据:计算的对象。比如说你的QQ帐号有哪些好友,聊了些什么 进程控制块:操作系统为了控制进程而建立的数据结构。比如说系统内怎么标识这个进程、进程处于什么状态、程序地址在哪里、数据在哪里等等,进程,进程与网络应用程序的关系各种计算机
7、应用程序在运行时,都以进程的形式存在。网络应用程序也不例外,只要运行就会产生相应的进程。,线程,概念 线程是运行中程序的调度单位,是进程中某个单一顺序的控制流。,进程是分配资源的单位,而线程是执行和调度的单位线程要处理些什么、怎么处理,都是定义好了的每一个进程至少有一个线程,供CPU调度从而执行进程的代码。没有线程,进程就失去了存在的意义。一个进程可能会有多个线程,这些线程表面上是“同时”执行进程的代码,多线程的例子,迅雷,可以开多个线程同时下载。,电影1,电影2,音乐3,多线程的例子,迅雷,可以开多个线程同时下载。,电影1,电影2,音乐3,多线程的例子,迅雷,可以开多个线程同时下载。游戏,必
8、杀技发出多个随机的闪电去长时间攻击周边的敌人,就可以开多个线程来“同时”管理这多个闪电的攻击情况。,电影1,电影2,音乐3,当创建一个进程时,系统会自动创建它的第一个线程,称为主线程。然后,该线程可以创建其他的线程,而这些线程又能创建更多的线程。,图1.1 单CPU分时地运行各个线程,多线程,多线程同时运行的条件,系统给每个线程安排一定的CPU时间片轮流运行,表面上它们都是“同时”运行的要真正做到同时运行,需要多CPU支持多线程的操作系统,网络应用进程的位置,网络应用进程 网络应用进程处于网络层次结构的最上层,它不需要关心底层的细节,比如只需要调用底层提供的服务,来实现网络间的通信,用什么CP
9、U、什么网卡通过光纤、网线、还是无线接入来上网,图1.2 网络应用程序在网络体系结构中的位置,IE浏览器,网络应用进程的位置,网间进程通信是指网络中不同主机中的应用进程之间的相互通信问题,网间进程通信必须解决以下问题:(1)网间进程的标识问题(2)如何与网络协议栈连接的问题(3)多重协议的识别问题(4)不同的通信服务问题,实现网间进程通信必须解决的问题,网间进程的标识问题,同一主机中,会用不同的进程号(ProcessID:大于等于0的数字)来标识不同的进程网络环境中,这种方法行不通。在网络环境中,进程号会有重复,比如说网络中的多台主机都可能存在进程号为5的进程。因此需要找到一种方法来区分网络环
10、境中的每一个进程。这是网间进程通信的前提,如何与网络协议栈连接的问题,网间进程的通信是通过网络协议栈来实现通过套接字网络编程接口来调用底层提供的服务,多重协议的识别问题,一个操作系统可能支持多种协议,如TCP/IP、IPX/SPX等等同一个进程可能也会支持多种协议,如安全扫描工具可同时进行ICMP扫描、TCP扫描、UDP扫描等等必须提供多重协议的识别方式,以便系统将不同的数据传递给不同的进程处理,不同的通信服务问题,网络应用程序多种多样,对服务的要求各不相同有的要求数据传递过程可靠、无差错、无乱序、无丢失有的只要求快速,对丢包不敏感TCP/IP协议中的传输层考虑了不同的服务问题,提供了TCP、
11、UDP两种。TCP是可靠的传输服务,UDP是不可靠的但快速的传输服务,Internet中网间进程的标识,传输层在网络通信中的地位传输层协议和端口端口号的分配机制进程在网络中的标识网络中进程通信的标识,图1.3说明了基于TCP/IP协议栈的进程之间的通信的情况。,图1.3 基于TCP/IP协议栈的进程间的通信,传输层在网络通信中的地位,SNMP,DNS,TFTP,SNMP客户,DNS客户,TFTP客户,SNMP,DNS,TFTP,SNMP服务器,DNS服务器,TFTP服务器,按照OSI七层协议的描述,传输层在网络层的基础上提供网络间进程通信的能力。TCP/IP协议提出了传输层协议端口(proto
12、col port,简称端口)的概念,成功地解决了网络间进程的标识问题。传输层支持端到端的进程通信,因为网络层的IP地址对应着网络上的主机,传输层的协议和端口号对应主机上的进程。,传输层在网络通信中的地位,端口的概念,端口是TCP/IP协议中,应用层进程与传输层协议实体间的通信接口。当一个应用层进程要通信时,必须申请一个传输层的端口。确定端口之后,端口与应用层进程是一一对应的。类似于文件描述符,每个端口都拥有一个叫作端口号(Port Number)的整数型标识符,从实现的角度讲,端口是一种抽象的软件机制,包括一些数据结构和I/O缓冲区。,图1.4 UDP与TCP的报文格式,TCP/IP协议采用了
13、全局分配(静态分配)和本地分配(动态分配)相结合的分配方法。对于TCP,或者UDP,将它们的全部65535个端口号分为保留端口号和自由端口号两部分。保留端口的范围是01023,又称为众所周知的端口或熟知端口(well-known port),只占少数,采用全局分配或集中控制的方式,由一个公认的中央机构根据需要进行统一分配,静态地分配给因特网上著名的服务器进程,并将结果公布于众。,端口号的分配机制,一些典型的应用层协议端口,其余的端口号,1024-65535,称为自由端口号,采用本地分配,又称为动态分配的方法。,端口0:不使用,或者作为特殊的使用;端口1-255:保留给特定的服务,TCP和UDP
14、均规定,小于256的端口号才能分配给网上著名的服务;端口256-1023:保留给其他的服务,如路由;端口1024-4999:可以用作任意客户的端口;端口5000-65535:可以用作用户的服务器端口。,TCP或UDP端口的分配规则,我们举个例子说明,在这样的端口分配机制下,客户进程C与服务器进程S第一次通信的情景。图1.5向我们展示了客户与服务器第一次通信的情况。,图1.5 客户与服务器的第一次通信,在Internet网络中,用一个三元组可以在全局中唯一地标识一个应用层进程:应用层进程地址=(主机的IP地址,传输层协议,传输层的端口号)这样一个三元组,叫做一个半相关(half-associat
15、ion),它标识了因特网中,进程间通信的一个端点,也把它称为进程的网络地址。,进程在网络中的标识,一个完整的网间通信需要一个五元组在全局中唯一地来标识:(传输层协议,本地IP地址,本地传输层端口,远端IP地址,远端传输层端口)这个五元组称为一个全相关(association)。即两个协议相同的半相关才能组合成一个合适的全相关,或完全指定一对网间通信的进程。,网络中进程通信的标识,思考题,下面几个半相关可以组成多少个全相关?,,88,,88,,188,,2088,网络协议的特征和分类,面向消息的协议与基于流的协议面向连接的服务和无连接的服务可靠性和次序性高效的用户数据包协议(UDP)可靠的传输控
16、制协议(TCP),(1)面向消息的协议 以消息为单位在网上传送数据,在发送端,消息一条一条地发送,在接收端,也只能一条一条地接收,每一条消息是独立的,消息之间存在着边界。,面向消息的协议与基于流的协议,图1.6 保护消息边界的数据报传输服务,(2)基于流的协议 基于流的协议不保护消息边界,将数据当作字节流连续地传输,不管实际消息边界是否存在。,面向消息的协议与基于流的协议,图1.7 无消息边界的流传输服务,一个协议可以提供面向连接的服务,或者提供无连接的服务。面向连接服务是电话系统服务模式的抽象,即每一次完整的数据传输都要经过建立连接,使用连接,终止连接的过程。无连接服务是邮政系统服务的抽象,
17、每个分组都携带完整的目的地址,各分组在系统中独立传送。,面向连接的服务和无连接的服务,可靠性保证了发送端发出的每个字节都能到达既定的接收端,不出错,不丢失,不重复,保证数据的完整性,称为保证投递。次序性是指对数据到达接收端的顺序进行控制。保护次序性的协议保证接收端收到数据的顺序就是数据的发送顺序,称为按序递交。,可靠性和次序性,传输层的用户数据报协议(User Datagram Protocol,UDP)是一种尽力传送的无连接的不保证可靠性的传输服务是一种保护消息边界的数据的传输 只是在网络层基础上,增加了65535个端口,以支持应用层进程通信适合交易性的应用程序(只有一来一往两次数据的通信,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 编程 技术 课件
链接地址:https://www.31ppt.com/p-6600076.html