网络编程ppt课件.ppt
《网络编程ppt课件.ppt》由会员分享,可在线阅读,更多相关《网络编程ppt课件.ppt(77页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、网络编程ppt课件 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望OSI模型OSI参考模型(OSI/RM)全称是开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM)它是由国际标准化组织(International Standard Organization,ISO)提出的一个网络系统互连模型。Tel:0571-88394222 QQ;OSI模型在这个OSI七层模型中,每一层都为其上一层提供服务
2、、并为其上一层提供一个访问接口或界面。Tel:0571-88394222 QQ;物理层 与传输媒体的接口与传输媒体的接口,完成传输媒体上的信号和二进制完成传输媒体上的信号和二进制数据间的转换数据间的转换.物理层的传输单位为比特(bit)。物理层定义了接口的机械特性,电气特性,功能和过程特性等.例如插头,插座的几何尺寸,每根引脚的功能定义,逻辑0的1的电平定义,信号宽带定义等.属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等。Tel:0571-88394222 QQ;数据链路层 该层的作用包括:物理地址寻址、数据的成帧、流量控制
3、、数据的检错、重发,链路管理等。在这一层,数据的单位称为帧(frame)。数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继等。Tel:0571-88394222 QQ;网络层提供主机到主机的通信,其间可能存在多条能路,网络层将实现的功能包括:选择路由 流量控制 协议的转换 分段和重组 对用户的分组,字符等计数 等等在这一层,数据的单位称为数据(packet).网络层协议的代表包括:IP、IPX、RIP、OSPF等。低三层的通信对象通常是路由器.Tel:0571-88394222 QQ;传输层提供端到端,应用到应用的通路.传输层将把高层要求传输的数据分成若干个报文,报文和帧不
4、一样,帧只有帧标记(开始标记和结果标记),而报文有信源和信宿的地址及端口.报文的顺序号,确定号等。传输层协议的代表包括:TCP、UDP、SPX等。Tel:0571-88394222 QQ;会话层l会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。l建立有关会话的机制,或双向对话,或以向对话时要有切换等.l会话层协议的代表包括:NetBIOS、ZIP(AppleTalk区域信息协议)等。Tel:0571-88394222 QQ;表示层l表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。l表示层
5、协议的代表包括:ASCII、ASN.1、JPEG、MPEG等。Tel:0571-88394222 QQ;应用层l应用层为操作系统或网络应用程序提供访问网络服务的接口。l应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。Tel:0571-88394222 QQ;数据封装过程l当一台主机需要传送用户的数据(DATA)时,数据首先通过应用层的接口进入应用层。在应用层,用户的数据被加上应用层的报头(Application Header,AH),形成应用层协议数据单元(Protocol Data Unit,PDU),然后被递交到下一层-表示层。l表示层并不关心上层-应用层的数据格式而是把
6、整个应用层递交的数据包看成是一个整体进行封装,即加上表示层的报头(Presentation Header,PH)。然后,递交到下层-会话层。Tel:0571-88394222 QQ;数据封装过程l同样,会话层、传输层、网络层、数据链路层也都要分别给上层递交下来的数据加上自己的报头。它们是:会话层报头(Session Header,SH)、传输层报头(Transport Header,TH)、网络层报头(Network Header,NH)和数据链路层报头(Data link Header,DH)。其中,数据链路层还要给网络层递交的数据加上数据链路层报尾(Data link Terminatio
7、n,DT)形成最终的一帧数据。Tel:0571-88394222 QQ;数据封装过程l当一帧数据通过物理层传送到目标主机的物理层时,该主机的物理层把它递交到上层-数据链路层。数据链路层负责去掉数据帧的帧头部DH和尾部DT(同时还进行数据校验)。如果数据没有出错,则递交到上层-网络层。l同样,网络层、传输层、会话层、表示层、应用层也要做类似的工作。最终,原始数据被递交到目标主机的具体应用程序中。Tel:0571-88394222 QQ; Tel:0571-88394222 QQ;TCP/IP模型lISO制定的OSI参考模型的过于庞大、复杂招致了许多批评。与此对照,由技术人员自己开发的TCP/IP
8、协议栈获得了更为广泛的应用。Tel:0571-88394222 QQ;TCP/IP 层次结构lTCP/IP协议栈是美国国防部高级研究计划局计算机网(Advanced Research Projects Agency Network,ARPANET)和其后继因特网使用的参考模型。ARPANET是由美国国防部(U.SDepartment of Defense,DoD)赞助的研究网络。最初,它只连接了美国境内的四所大学。随后的几年中,它通过租用的电话线连接了数百所大学和政府部门。最终ARPANET发展成为全球规模最大的互连网络-因特网。最初的ARPANET于1990年永久性地关闭。TCP/IP参考模
9、型分为四个层次:应用层、传输层、网络互连层和主机到网络层。Tel:0571-88394222 QQ;TCP/IPTel:0571-88394222 QQ;层次结构l在TCP/IP参考模型中,去掉了OSI参考模型中的会话层和表示层(这两层的功能被合并到应用层实现)。同时将OSI参考模型中的数据链路层和物理层合并为主机到网络层。Tel:0571-88394222 QQ;链路层l链路层,有时也称作数据链路层或网络接口层,l通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。l负责数据帧的发送和接收,帧是独立的网络信息传输单元。网络接口层
10、将帧放在网上,或从网上把帧取下来。Tel:0571-88394222 QQ;网络互连层l网络互连层是整个TCP/IP协议栈的核心。它的功能是把分组发往目标网络或主机。同时,为了尽快地发送分组,可能需要沿不同的路径同时进行分组传递。因此,分组到达的顺序和发送的顺序可能不同,这就需要上层必须对分组进行排序。网络互连层定义了分组格式和协议,即IP协议(Internet Protocol)。网络互连层除了需要完成路由的功能外,也可以完成将不同类型的网络(异构网)互连的任务。除此之外,网络互连层还需要完成拥塞控制的功能。Tel:0571-88394222 QQ;传输层l在TCP/IP模型中,传输层的功能
11、是使源端主机和目标端主机上的对等实体可以进行会话。在传输层定义了两种服务质量不同的协议。即:传输控制协议TCP(transmission control protocol)和用户数据报协议UDP(user datagram protocol)。TCP协议是一个面向连接的、可靠的.全双工协议。它将一台主机发出的字节流无差错地发往互联网上的其他主机。在发送端,它负责把上层传送下来的字节流分成报文段并传递给下层。在接收端,它负责把收到的报文进行重组后递交给上层。TCP协议还要处理端到端的流量控制,以避免缓慢接收的接收方没有足够的缓冲区接收发送方发送的大量数据。UDP协议是一个不可靠的、无连接协议,主
12、要适用于不需要对报文进行排序和流量控制的场合。Tel:0571-88394222 QQ;应用层lTCP/IP模型将OSI参考模型中的会话层和表示层的功能合并到应用层实现。应用层面向不同的网络应用引入了不同的应用层协议。l有基于TCP协议的,l文件传输协议(File Transfer Protocol,FTP)l虚拟终端协议(TELNET)l超文本链接协议(Hyper Text Transfer Protocol,HTTP),l也有基于UDP协议的,l简单网络管理协议(Simple Network Management Protocol,SNMP)l简单文件传输协议(Trivial File T
13、ransfer Protocol,TFTP)l网络时间协议(Network Time Protocol,NTP)Tel:0571-88394222 QQ;TCP/IP协议栈lT C P/I P协议族是一组不同的协议组合在一起构成的协议族。尽管通常称该协议族为T C P/I P,但T C P和I P只是其中的两种协议而已(该协议族的另一个名字是I n t e r n e t协议族(Internet Protocol Suite))。Tel:0571-88394222 QQ;网络层和传输层l在8 0年代,网络不断增长的原因之一是大家都意识到只有一台孤立的计算机构成的“孤岛”没有太大意义,于是就把这
14、些孤立的系统组在一起形成网络。随着这样的发展l到了9 0年代,我们又逐渐认识到这种由单个网络构成的新的更大的“岛屿”同样没有太大的意义。于是,人们又把多个网络连在一起形成一个网络的网络,或称作互连网(i n t e r n e t)。一个互连网就是一组通过相同协议族互连在一起的网络。Tel:0571-88394222 QQ;通过路由器互联Tel:0571-88394222 QQ;网络互联l连接网络的另一个途径是使用网桥。网桥是在链路层上对网络进行互连,而路由器则是在网络层上对网络进行互连。网桥使得多个局域网(L A N)组合在一起,这样对上层来说就好像是一个局域网。lTCP/IP倾向于使用路由
15、器而不是网桥来连接网络.Tel:0571-88394222 QQ;域名系统l尽管通过I P地址可以识别主机上的网络接口,进而访问主机,但是人们最喜欢使用的还是主机名。在T C P/I P领域中,域名系统(D N S)是一个分布的数据库,由它来提供I P地址和主机名之间的映射信息。l现在,我们必须理解,任何应用程序都可以调用一个标准的库函数来查看给定名字名字的主机的I P地址。类似地,系统还提供一个逆函数给定主机的I P地址,查看它所对应的主机名。nslookupl大多数使用主机名作为参数的应用程序也可以把I P地址作为参数。Tel:0571-88394222 QQ; ARP协议是“Addres
16、s Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。如何查看如何查看ARP缓存表缓存表:arp-aTel:0571-88394222 QQ;Ip地址MAC地址192.168.1.1 192.16
17、8.1.2192.168.1.3.00-aa-00-62-c6-0900-aa-00-62-c5-0303-aa-01-75-c3-06Tel:0571-88394222 QQ;IP 包Tel:0571-88394222 QQ;TCP/IPl在T C P/I P协议族中,网络层I P提供的是一种不可靠的服务。也就是说,它只是尽可能快地把分组从源结点送到目的结点,但是并不提供任何可靠性保证。Tel:0571-88394222 QQ;lTCP是一个可靠的、面向连接的协议。它可以保证数据从连接的一方传递到另一方,并且发送数据的顺序和所接收数据的顺序一致。当应用程序需要一个可靠的、点对点的连接时,可以
18、使用TCP。l为了提供这种可靠的服务,T C P采用了超时重传、发送和接收端到端的确认分组等机制。TCP协议Tel:0571-88394222 QQ;TCP协议Tel:0571-88394222 QQ; 用户数据报协议UDP是一种不可靠的通信协议,没有检测错误的机制,也不重发丢失的数据。接收到的数据包的顺序可能与发送的数据包的顺序不一致。采用UDP进行通信时,事先不需要建立连接。而采用TCP进行通信时,首先要建立一个连接。TCP的通信质量比UDP高,UDP的开销比TCP小。Tel:0571-88394222 QQ;l在网络上可以用IP地址来唯一的标识一台计算机。IP地址(IPv4)是四个用点隔
19、开的数字,总共32位,每个数字8位(表示范围:0255),例如:192.168.10.22。(IPv6地址有128位,地址范围更大)l端口port与IP地址一起可以为网络的应用程序之间提供一种地址标识功能。同一台计算机上可能有多个服务程序,每个服务程序在相应的port提供服务。Tel:0571-88394222 QQ; 客户端程序要和服务程序交互,首先要找到服务程序所在的机器(可以通过IP地址),然后在这台机器上找到服务程序(通过port)。在一台服务器上,可能有很多服务程序,每个服务程序对应与一个不与其他服务冲突的port。Tel:0571-88394222 QQ;l客户端程序必须事先知道它
20、所请求的服务程序对应的端口号。lport通常称为握手点handshake point,它被客户用来定位服务器计算机上的服务应用程序。l端口号范围:065535。可以是范围中的任何一个数字。通常,OS将1024以下的端口号保留给系统服务用。Tel:0571-88394222 QQ;l建立连接服务程序在相应的port监听是否有连接Connection。客户端程序尝试与服务程序。连接建立以后,可以通过连接传输数据,在处理数据时,可以使用与IO处理相同的Java编程模型。Tel:0571-88394222 QQ; 当我们使用java编写网络程序时,不用关心TCP和UDP的细节。使用包中的类就可以编写出
21、平台无关的网络程序。Tel:0571-88394222 QQ;网络编程l网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。l网络编程中有两个主要的问题.l一个是如何准确的定位网络上一台或多台主机,l另一个就是找到主机后如何可靠高效的进行数据传输。l在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。Tel:0571-88394222 QQ;TCP/UDPl尽管TCP/IP协议的名称中只有TCP这
22、个协议名,但是在TCP/IP的传输层同时存在TCP和UDP两个协议。lTCP是Tranfer Control Protocol的简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或接收操作。lUDP是User Datagram Protocol的简称,是一种无连接的协议,每个数
23、据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。Tel:0571-88394222 QQ;TCP/UDPl使用UDP时,每个数据报中都给出了完整的地址信息,因此无需要建立发送方和接收方的连接。对于TCP协议,由于它是一个面向连接的协议,在socket之间进行数据传输之前必然要建立连接,所以在TCP中多了一个连接建立的时间。l使用UDP传输数据时是有大小限制的,每个被传输的数据报必须限定在64KB之内。而TCP没有这方面的限制,一旦连接建立起来,双方的socket就可以按统一的格式传输
24、大量的数据。UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方。而TCP是一个可靠的协议,它确保接收方完全正确地获取发送方所发送的全部数据。Tel:0571-88394222 QQ;TCP/UDPl总之,TCP在网络通信上有极强的生命力,例如远程连接(Telnet)和文件传输(FTP)都需要不定长度的数据被可靠地传输。相比之下UDP操作简单,而且仅需要较少的监护,因此通常用于局域网高可靠性的分散系统中client/server应用程序。l既然有了保证可靠传输的TCP协议,为什么还要非可靠传输的UDP协议呢?主要的原因有两个。l一是可靠的传输是要付出代价的,对数据内容正
25、确性的检验必然占用计算机的处理时间和网络的带宽,因此TCP传输的效率不如UDP高。l二是在许多应用中并不需要保证严格的传输可靠性,比如视频会议系统,并不要求音频视频数据绝对的正确,只要保证连贯性就可以了,这种情况下显然使用UDP会更合理一些。Tel:0571-88394222 QQ;Socket简述lsocket是进程之间通信的抽象连接点。客户程序和服务程序通过一个双向的通信连接实现数据交换,这个双向通路的每一端就是一个socket。l现实生活中,人们可以通过电话进行交流。我们可以把打电话的双方看作客户程序和服务程序,电话之间的连线是一个双向的通信链路,链路每一端的电话机可以看成是一个sock
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 编程 ppt 课件
限制150内