IP产品开发之TCPIP协议-伟博.ppt

上传人:牧羊曲112 文档编号:6508668 上传时间:2023-11-07 格式:PPT 页数:28 大小:1.07MB
返回 下载 相关 举报
IP产品开发之TCPIP协议-伟博.ppt_第1页
第1页 / 共28页
IP产品开发之TCPIP协议-伟博.ppt_第2页
第2页 / 共28页
IP产品开发之TCPIP协议-伟博.ppt_第3页
第3页 / 共28页
IP产品开发之TCPIP协议-伟博.ppt_第4页
第4页 / 共28页
IP产品开发之TCPIP协议-伟博.ppt_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《IP产品开发之TCPIP协议-伟博.ppt》由会员分享,可在线阅读,更多相关《IP产品开发之TCPIP协议-伟博.ppt(28页珍藏版)》请在三一办公上搜索。

1、IP类产品开发之TCP/IP协议,什么叫IP产品,IP是网络协议Internet Protocol 的意思缩写。IP产品就是和网络所相关的一些产品,层次上分为网络、业务、终端和网络的边缘层。,TCP/IP协议模型,TCP/IP网络协议分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。,TCP/IP通讯过程,TCP/IP数据包的封装,以太网(RFC894)帧格式,IP数据报格式,UDP协议,UDP协议,TCP协议,IP协议中服务端与客户端,UDP、TCP中主动发起连接请求的一般都是客户端,而服务端常常有固定的IP或域名,负责响应

2、客户端的资源请求并且不限定客户端IP(因为服务端在连接建立之前不知道客户端的IP),通过更上层的应用程序来对客户端进行登录或认证管理。,TCP/IP端口号,源IP地址和端口号和目的IP地址和端口号唯一确定了一个连接,上层应用程序提供一个双向通信接口。TCP与UDP段结构中端口地址都是16比特,可以有在0-65535范围内的端口号。对于这65536个端口号有以下的使用规定:(1)端口号小于256的定义为常用端口,服务器一般都是通过常用端口号来识别的。任何TCP/IP实现所提供的服务都用1-1023之间的端口号,是由IANA来管理的;(2)客户端只需保证该端口号在本机上是惟一的就可以了。客户端口号

3、因存在时间很短暂又称临时端口号;(3)大多数TCP/IP实现给临时端口号分配1024-5000之间的端口号。大于5000的端口号是为其他服务器预留的。知名端口:21(ftp)、23(telnet)、25(smtp 简单邮件传输协议)、69(tftp 小文件传输协议)、80(http 用于万维网服务的超文本传输协议)、161(snmp 简单网络管理协议)等,http协议简介,超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。H

4、TTP是一个客户端和服务器端请求和应答的标准(TCP)。通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如HTTP/1.1 200 OK,和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。HTTP使用TCP而不是UDP的原因在于(打开一个)一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正。通过HTTP或者HTTPS协议请求的资源由统一资源标示符(Uniform Resource Identifi

5、ers)(或者,更准确一些,URLs)来标识,http协议内容,1、HTTP请求消息 请求行=方法 空格 请求URI 空格 版本号 回车换行2、HTTP响应消息 状态行=版本号 空格 状态码 空格 原因 回车换行 3、常用的请求方式是GET和POST.GET方式:是以实体的方式得到由请求URI所指定资源的信息,如果请求URI只是一个数据产生过程,那么最终要在响应实体中返回的是处理过程的结果所指向的资源,而不是处理过程的描述。POST方式:用来向目的服务器发出请求,要求它接受被附在请求后的实体,并把它当作请求队列中请求URI所指定资源的附加新子项,http协议内容,4、请求头Accept:浏览器

6、可接受的MIME类型 Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到 Connection:表示是否需要持久连接。如果Servlet看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素时(例如Applet,图片),显著地减少下载所需要的时间。要实现这一点,Servlet需要在应答中发送一个Content-Length头,最简单的实现方法是:先把内容写入ByteArrayOutputStream,然后在正式写出内容之前计算它的大小 Con

7、tent-Length:表示请求消息正文的长度;Host:初始URL中的主机和端口;If-Modified-Since:只有当所请求的内容在指定的日期之后又经过修改才返回它,否则返回304“Not Modified”应答;Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面。,http协议内容,5、响应头Content-Length:表示内容长度。只有当浏览器使用持久HTTP连接时才需要这个数据。如果你想要利用持久连接的优势,可以把输出文档写入ByteArrayOutputStram,完成后查看其大小,然后把该值放入Content-Length头,最后通过byteAr

8、rayStream.writeTo(response.getOutputStream()发送内容;Content-Type:表示后面的文档属于什么MIME类型。Servlet默认为text/plain,但通常需要显式地指定为text/html。由于经常要设置Content-Type,因此HttpServletResponse提供了一个专用的方法setContentTyep。可在web.xml文件中配置扩展名和MIME类型的对应关系;Last-Modified:文档的最后改动时间。客户可以通过If-Modified-Since请求头提供一个日期,该请求将被视为一个条件GET,只有改动时间迟于指定

9、时间的文档才会返回,否则返回一个304(Not Modified)状态。Last-Modified也可用setDateHeader方法来设置;,http协议内容,6、实体头Allow:GET,POSTContent-Encoding:文档的编码(Encode)方法,例如:gzip,见“2.5 响应头;Content-Language:内容的语言类型,例如:zh-cn;Content-Length:表示内容长度,eg:80,可参考“2.5响应头”;Content-Location:表示客户应当到哪里去提取文档,例如:http:/www.dfdf.org/dfdf.html,可参考“2.5响应头”

10、;Content-MD5:MD5 实体的一种MD5摘要,用作校验和。发送方和接受方都计算MD5摘要,接受方将其计算的值与此头标中传递的值进行比较。Eg1:Content-MD5:。Eg2:dfdfdfdfdfdfdff=;Content-Range:随部分实体一同发送;标明被插入字节的低位与高位字节偏移,也标明此实体的总长度。Eg1:Content-Range:1001-2000/5000,eg2:bytes 2543-4532/7898Content-Type:标明发送或者接收的实体的MIME类型。Eg:text/html;charset=GB2312 主类型/子类型;Last-Modifi

11、ed:WEB 服务器认为对象的最后修改时间,比如文件的最后修改时间,动态页面的最后产生时间等等。例如:Last-Modified:Tue,06 May 2008 02:42:43 GMT.,telnet协议,telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议。应用Telnet协议能够把本地用户所使用的计算机变成远程主机系统的一个终端。1、telnet也是客户/服务器结构,服务端即受访的远程主机系统,监听其网络的23号端口,接受来自客户端即进行访问的本地终端的连接。通过服务端验证后,客户端就成为服务端的一个标准的显示终端,可进行命令下达和接收信息反馈,最终达到

12、类似超级终端的效果,不同的是一个通过网络连接建立通道,一个是往往通过串口建立通道。2、实现过程如下:当用Telnet登录进入远程计算机系统时,将启动两个程序,一个叫Telnet客户程序,它运行在用户的本地机上;另一个叫Telnet服务器程序,它运行在用户要登录的远程计算机上。,telnet协议,(a)本地机上的客户程序要完成如下的功能:建立与服务器的TCP连接;从键盘上接收输入的字符;把输入的字符串变成标准格式并送给远程服务器;从远程服务器接收输出的信息;把该信息显示在屏幕上。(b)远程Telnet服务器的Telnet服务程序监听客户端连接,一接到连接的请求,就马上活跃起来,并完成如下的功能:

13、通知计算机,远程计算机已经准备好了;等候输入命令;对输入的命令做出反应(如显示目录内容,或执行某个程序等);把执行命令的结果送回给用户的计算机;重新等候输入的命令。,telnet协议,3、telnet的选项协商:Telnet连接双方首先进行交互的信息是选项协商数据,选项协商是对称的任何一方都可以主动发送选项协商请求给对方。右上是TELNET选项协商的六种情况,右下是常用的选项代码。选项协商需要3个字节:IAC(255),然后是WILL(251)、DO、WONT或DONT;最后一个标识字节用来指明操作的选项。4、关于telnet的开发,主要的是做编辑显示与命令解释,达到最适宜的对远程系统控制。,

14、ftp协议,ftp,即File Transfer Protocol(文件传输协议)的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。同前面的http和telnet一样也是是客户/服务器结构,其监听的端口是21号,客户端可以通过浏览器、ftp客户端软件或应用程序如(WINDOWS下的资源管理器)登录服务器来获取文件服务。ftp原理模型如右图,用户PI(协议解释器)开启控制连接,并向服务端发送标准FTP命令。服务器一般有两个主要进程:一个进程为服务器PI,其与用户PI建立连接并接收其下达的命令予以解析和应答;另一个进程为服务器DTP,在适当时候与用户DT

15、P建立数据传输连接,提供数据传输服务。,ftp协议,文件传输功能1、实现过程 从用户PI到服务器的信道是建立在用户到标记服务器端口间的。用户协议解释器负责发送命令和解释接收的应答;服务器PI解释命令,发送应答,指导DTP建立数据连接并传送数据。如果数据传输的第二方是用户DTP,通过用户FTP主机的内部协议对它进行控制;如果第二方是服务器DTP,它由用户PI发来的命令经过自己的PI控制。2、FTP命令 一条ftp命令由命令字段(一般四个字符)和结尾CRLF(回车换行)构成如USER。ftp命令分为如下几类:(a)访问控制-用户名(USER)口令(PASS)ACCOUNT(ACCT)改变工作目录(

16、CWD)回到上一层目录(CDUP)结构加载(SMNT)重新初始化(REIN)退出登录(QUIT)(b)传输参数-数据端口(PORT)被动(PASV)表示类型(TYPE)文件结构(STRU)传输模式(MODE)(c)服务命令-获得文件(RETR)保存(STOR)附加(APPE)分配(ALLO)重新开始(REST)重命名(RNFR)重命名为(RNTO)放弃(ABOR)删除(DELE)删除目录(RMD)创建目录(MKD)打印工作目录(PWD)列表(LIST)名字列表(NLST)站点参数(SITE)系统(SYST)状态(STAT)帮助(HELP)等待(NOOP),ftp协议,3、ftp应答 FTP命令

17、的响应是为了对数据传输请求和过程进行同步,也是为了让用户了解服务器的状态。每个命令必须有最少一个响应,如果是多个,它们要易于区别。有些命令是有顺序性的,因此其中任何一个命令的失败会导致从头开始。FTP响应由三个数字构成,后面是一些文本。数字带有足够的信息命名用户PI不用检查文本就知道发生了什么。文本信息与服务器相关,用户可能得到不同的文本信息。文本和数字以间隔,文本后以Telnet行结束符结束。文本可能多于一行,这时文本必须在括号内,第一行内要有信息表示文本多于一行,最后一行也要有所标记。如果是多行,可以在数字代码后加上“-”,最后一行以数字开始,后面是,再加上Telnet的行结束符就可以了。

18、如200 Command OK,110重新启动标记应答。在这种情况下文本是确定的,它必须是:MARK yyyy=mmmm,其中yyyy是用户进程数据流标记,mmmm是服务器标记。120服务在nnn分钟内准备好125数据连接已打开,准备传送150文件状态良好,打开数据连接200命令成功202命令未实现211系统状态或系统帮助响应212目录状态213文件状态214帮助信息,信息仅对人类用户有用215名字系统类型220对新用户服务准备好221服务关闭控制连接,可以退出登录225数据连接打开,无传输正在进行226关闭数据连接,请求的文件操作成功227进入被动模式230用户登录250请求的文件操作完成2

19、57创建PATHNAME331用户名正确,需要口令332登录时需要帐户信息350请求的文件操作需要进一步命令421不能提供服务,关闭控制连接425不能打开数据连接426关闭连接,中止传输450请求的文件操作未执行451中止请求的操作:有本地错误452未执行请求的操作:系统存储空间不足500格式错误,命令不可识别501参数语法错误502命令未实现503命令顺序错误504此参数下的命令功能未实现530未登录532存储文件需要帐户信息550未执行请求的操作551请求操作中止:页类型未知552请求的文件操作中止,存储分配溢出553 未执行请求的操作:文件名不合法,ftp协议,FTP协议有两种工作方式:

20、主动模式(PORT)和被动模式(PASV);PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请 求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT 命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的 XXXX端口发送连接请求,建立一条数据链路来传送数据。PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请 求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV 命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服

21、务器的XXXX端口 发送连接请求,建立一条数据链路来传送数据。一般的ftp服务端都会支持这两种方式,对于局域网用户(没有公网IP)如果访问外网ftp应使用PASV方式,因为服务器PORT发起的连接中途会被路由截断(除非做了端口绑定)。,故事分享 梓人传,裴封叔之第,在光德里。有梓人款其门,愿佣隙宇而处焉。所职,寻、引、规、矩、绳、墨,家不居砻斫之器。问其能,曰:“吾善度材,视栋宇之制,高深圆方短长之宜,吾指使而群工役焉。舍我,众莫能就一宇。故食于官府,吾受禄三倍;作于私家,吾收其直太半焉。”他日,入其室,其床阙足而不能理,曰:“将求他工。”余甚笑之,谓其无能而贪禄嗜货者。其后京兆尹将饰官署,余

22、往过焉。委群材,会群工,或执斧斤,或执刀锯,皆环立向之梓人左持引,右执杖,而中处焉。量栋宇之任,视木之能举,挥其杖,曰“斧!”彼执斧者奔而右;顾而指曰:“锯!”彼执锯者趋而左。俄而,斤者斫,刀者削,皆视其色,俟其言,莫敢自断者。其不胜任者,怒而退之,亦莫敢愠焉。画宫于堵,盈尺而曲尽其制,计其毫厘而构大厦,无进退焉。既成,书于上栋曰:“某年、某月、某日、某建”。则其姓字也。凡执用之工不在列。余圜视大骇,然后知其术之工大矣。继而叹曰:彼将舍其手艺,专其心智,而能知体要者欤!吾闻劳心者役人,劳力者役于人。彼其劳心者欤!能者用而智者谋,彼其智者欤!是足为佐天子,相天下法矣。物莫近乎此也。彼为天下者本于

23、人。其执役者为徒隶,为乡师、里胥;其上为下士;又其上为中士,为上士;又其上为大夫,为卿,为公。离而为六职,判而为百役。外薄四海,有方伯、连率。郡有守,邑有宰,皆有佐政;其下有胥吏,又其下皆有啬夫、版尹以就役焉,犹众工之各有执伎以食力也。彼佐天子相天下者,举而加焉,指而使焉,条其纲纪而盈缩焉,齐其法制而整顿焉;犹梓人之有规、矩、绳、墨以定制也。择天下之士,使称其职;居天下之人,使安其业。视都知野,视野知国,视国知天下,其远迩细大,可手据其图而究焉,犹梓人画宫于堵,而绩于成也。能者进而由之,使无所德;不能者退而休之,亦莫敢愠。不炫能,不矜名,不亲小劳,不侵众官,日与天下之英才,讨论其大经,犹梓人之

24、善运众工而不伐艺也。夫然后相道得而万国理矣。相道既得,万国既理,天下举首而望曰:吾相之功也!后之人循迹而慕曰:彼相之才也!士或谈殷、周之理者,曰:伊、傅、周、召。其百执事之勤劳,而不得纪焉;犹梓人自名其功,而执用者不列也。大哉相乎!通是道者,所谓相而已矣。其不知体要者反此;以恪勤为公,以簿书为尊,炫能矜名,亲小劳,侵众官,窃取六职、百役之事,听听于府庭,而遗其大者远者焉,所谓不通是道者也。犹梓人而不知绳墨之曲直,规矩之方圆,寻引之短长,姑夺众工之斧斤刀锯以佐其艺,又不能备其工,以至败绩,用而无所成也,不亦谬欤!或曰:彼主为室者,傥或发其私智,牵制梓人之虑,夺其世守,而道谋是用。虽不能成功,岂其

25、罪耶?亦在任之而已!余曰:不然!夫绳墨诚陈,规矩诚设,高者不可抑而下也,狭者不可张而广也。由我则固,不由我则圮。彼将乐去固而就圮也,则卷其术,默其智,悠尔而去。不屈吾道,是诚良梓人耳!其或嗜其货利,忍而不能舍也,丧其制量,屈而不能守也,栋桡屋坏,则曰:非我罪也!可乎哉?可乎哉?余谓梓人之道类于相,故书而藏之。梓人,盖古之审曲面势者,今谓之都料匠云。余所遇者,杨氏,潜其名。,故事分享 梓人传,翡封叔的家宅在德里地方。有位木匠敲他的门,希望租间空屋子居住,用替屋主人服役来代替房租.他所执掌的是些度量长短,规划方圆和校正曲直的工具;家里不储备磨砺和砍削的器具。问他有什么能耐,他说:“我善于计算,测量

26、木材。观看房屋的式样和,高深,圆方,短长的适合不适合;我指挥驱使,而由众工匠去干。离了我,大家就不能建成一栋房子。所以被官府供养,我得到的奉禄比别人多三倍;在私人家里干活,我取全部报酬的一大半。”后来有一天,我进了他的住屋。他的床缺了腿却不修理,说:“将要请别的工匠来修理。”我很耻笑他,说他是没有才能却贪图俸禄,喜爱钱财的人。后来,京兆伊将要修饰官衙的房屋,我到过那里。(在那里)蓄积了大量木材,招集了许多工匠。有的拿着斧斤,有的拿着刀锯,都围成一圈站着,面朝着(那位)木匠。木匠左手拿着长尺,右手拿着木杖,站在中间。他衡量房屋的承担情况,察看木料的性能酌情选用。挥动他的木仗说:“用斧子砍!”那拿

27、斧子的就跑道右边去砍;回头指着木材说:“用锯锯!”那拿锯的就跑道左边去锯。不一会,拿斧子的砍,拿刀的削,全都看着他的脸色,等待他的发话,没有一个敢自做主张的。那些不能胜任的人,被他愤怒地斥退了,也不敢有一点怨恨。他在墙上绘了官署房子的图样,刚满一尺大小的图样却细致详尽地画出了它的建筑构造.计算图上微小的尺寸而建造起高楼大厦,没有一点误差的地方。已建成后,在上栋上写道:某年某月某日某某修建,原来是他的姓名,凡是被他役使的工匠都不在上面列名。我围绕着一看,感到非常惊讶,然后我才知道他技术的精湛和伟大啊!接着我就感叹地说:他大概是放弃了他的手艺,专门使用他的思想智慧,能知道全局要领的人吧?我听说“劳

28、心的人役使别人,劳力的人被别人役使”;他大概是劳心的人吧?有一般技艺的人出力劳动,有才智的人出谋划策,他大概是有才智的人吧?这满可以作为辅佐天子,作天下宰相的人所效法学习的呀!事情没有比这再相近似的了。那辅佐天子,作天下宰相的人,推荐人材,委任职责,发出命令,指派任务,整顿纲纪,进行增减,统一法治。这就好象梓人有正方圆和定曲直的工具而绘制出图样似的。选择天下的官吏,使他们适合自己的职务;安置天下的老百姓,使他们安居乐业。看了国都就了解了郊外,看了郊外就了解了诸侯国,看了诸侯国就了解了整个天下。全国远近,大小各方面的情况,可以根据手中的图本来研究,了解。这就好象梓人在墙上绘画官署房子的图样而完成

29、工程一样。把有才能的人提拔上来,并充分发挥他的本领,使他不必对任何人感恩戴德;把没有才能的人辞退,让他休息,他也不敢恼恨。不夸耀自己的才能,不自尊自大,虚图功名,不亲自去做那些微小琐碎的事情,不干涉众官的工作,每天和天下的杰出的人材一起讨论治理国家的根本道理。这就象梓人善于运用众工匠而不自夸手艺一样。这样以后,做宰相的道理才算懂得,各诸侯国才得到了治理。那些不知道全局要领的人却与此相反。(他们)以谨小慎微,忙忙碌碌为大事,以抄写官署中的文书,薄册为重责,夸耀自己的才能,自尊自大,亲自去做那些微小琐碎的事情,干涉众官的工作,侵夺部下官吏应做的事拿来自己做,并洋洋得意地在相府夸耀自己,却丢掉了那些重大的,长远的事情。这是所说的不懂得做宰相的道理的人。这就象梓人不懂得绳墨可正曲直,规矩可画方圆,寻引可量短长,暂且夺取工匠们的斧子刀锯来帮助他们发挥技艺,却又不能完成他们的工作,以至于事情失败,使用了(他们)却没有成功一样。这不也是错误的吗?,心得体会,麦子不只是可以做成馒头,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号