/**
本篇博客由汗青ZJF整理并发布, 转载请注明出处:
http://blog.csdn.net/zjf280441589/article/category/1854365
*/
TCP/IP中的利用层
域名系统是基于描写名字-地址映照的散布式计算机系统的实现,其作用是提供主机名和IP 地址间的映照关系。
名字到IP地址的解析是由若干个域名Server组成的, 域名Server程序在专设的结点上运行, 运行这些程序的机器成为域名服务器(Domain Server);
1)层次域名空间
Internet采取了层次树状结构的命名方法, 任何1个连接在因特网上的主机或路由器都有1个唯1的层次结构的名字, 即域名;
域名的结构由标号序列组成, 各标号之间用点分隔开:
… . 3级域名 . 2级域名 . 顶级域名
各标号分别代表不同级别的域名;
域名只是个逻辑概念, 其实不代表计算机的物理位置, 变长的域名和使用有助于记忆的字符串来便于人们使用. 而IP地址是定长的32位2进制数字则非常便于计算机处理;
2)域名服务器
负责域名到IP地址的解析。使用TCP与UDP端口号都是53,主要使用UDP,服务器之间备份使用TCP。
域名服务器的4种类型
1)根域名服务器: 最高层次的域名服务器。记录着所有的顶级域名服务器的域名和IP地址。不论是哪个本地域名服务器,若要对因特网上任何1个域名进行解析,只要自己没法解析,就首先求助于根域名服务器。在因特网上共有13组根域名服务器;
2)顶级域名服务器: 负责管理在该顶级域名服务器注册的所有2级域名。当收到 DNS 查询要求时,就给出相应的回答(多是最后的结果,也多是下1步应当找的域名服务器的 IP 地址)。
3)权限域名服务器: 是负责1个区域的域名服务器。当1个权限域名服务器还不能给出最后的查询回答时,就会告知发出查询要求的DNS客户,下1步应当找哪个权限域名服务器。
4)本地域名服务器: 当1个主机发出 DNS查询要求时,这个查询要求报文就发送给本地域名服务器。每个因特网服务提供者ISP,或1个大学,乃至1个大学里的系,都可以具有1个本地域名服务器,这类域名服务器有时也称为默许域名服务器。
3)域名的解析进程
(1)客户利用程序调用客户端1个称为解析器的库函数,将目的主机的域名作为参数传给解析器;
(2)解析器通过网络向本地域名服务器53号端口发送1个以UDP数据报封装的 DNS 要求报文,询问与该域名对应的IP地址;
(3)本地域名服务器查找自己的域名数据库(映照文件),将域名对应的IP地址组成1个以 UDP 数据报封装的 DNS 响应报文,返回给解析器;若在本地域名数据库中查不到,则此域名服务器就暂时成为全球 DNS 中的1个客户,并向其它域名服务器发出查询要求,直至找到能回答要求的域名服务器为止,并将解析结果响应给本地域名服务器;本地域名服务器再将解析结果返回给客户端解析器;
(4)客户端解析器终究收到响应报文后,再将解析得到的IP地址返回给利用程序。
3种查询方式:
1)迭代查询
2)递归查询(少用)
3)递归与迭代相结合(经常使用)
4)域名高速缓存
每一个域名服务器都保护1个高速缓存,寄存最近用过的名字和从何处取得名字映照信息的记录。可大大减轻根域名服务器的负荷,使因特网上的 DNS 查询要求和回答报文的数量大为减少。
为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器,并处理超过公道时间的项。当权限域名服务器回答1个查询要求时,在响应报文中都指明绑定有效存在的时间值。
FTP(File Transfer Protocol,文件传输协议)使用客户/服务器模式。1个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部份组成:1个主进程,负责接受新的要求;另外有若干个从属进程,每一个从属进程负责为1个客户进行FTP服务。
FTP 使用两条TCP连接来完成文件传输,1条是控制连接,另外一条是数据连接。平时控制链接总在端口21等待客户的连接要求,当用户需要传输文件时,客户首先主动与服务器端口21建立1个控制连接,用来传送客户的命令和服务器的应对。客户还会告知服务器自己将用的数据端口号, 控制链接会1直保持到客户与服务器FTP全部通讯结束为止。
当客户发出文件下载、文件上传、列目录的数据传输要求时,服务器端口20主动与客户端告知的数据端口建立数据连接,并在其上传输数据,在该次数据传输终了后立即关闭数据传输连接。
使用两个连接1方面使协议更加简单和更容易实现;另外一方面在传输文件时还可以同时利用控制连接与服务器进行交互(如客户发送要求终止文件传输)。
关于FTP服务器的详细配置信息,请参考我的博客
http://blog.csdn.net/zjf280441589/article/details/18868343
TFTP
TFTP(Trivial File Transfer Protocol,简单文件传输协议)也是用于在远端服务器和本地主机之间传输文件的,相对FTP,TFTP没有复杂的交互存取接口和认证控制,适用于客户端和服务器之间不需要复杂交互的环境。TFTP协议的运行基于UDP协议,使用UDP端口69进行数据传输。
FTP与TFTP的不同 | |
传输协议不同 | FTP是基于TCP, TFTP是基于UDP |
端口号不同 | FTP是用21,20, TFTP是69 |
速度和安全 | FTP在速度慢但安全性好, TFTP速度快但是安全性不如FTP高 |
WWW以客户/服务器方式工作。使用端口80. 阅读器就是在用户计算机上的WWW客户程序。WWW文档所驻留的计算机则运行服务器程序,也称为WWW服务器。客户程序向服务器程序发出要求,服务器程序向客户程序送回客户所要的WWW文档。
在万维网客户程序与万维网服务器程序之间进行交互所使用的协议是超文本传送协议 HTTP (Hyper Text Transfer Protocol), HTTP使用TCP 连接进行可靠的传送。HTTP 是面向事务的利用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图象等各种多媒体文件)的重要基础。
WWW使用统1资源定位符 URL (Uniform Resource Locator)来标志万维网上的各种文档,使每个文档在全部因特网的范围内具有唯1的标识符 URL。URL的1般格式
<协议>://<主机>:<端口号>/<路径>
超文本标记语言 HTML (Hyper Text Markup Language)使得万维网页面的设计者可以很方便地用1个超链接从本页面的某处链接到因特网上的任何1个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。
万维网的工作进程:
<设 URL 为 http://www.tmtpost.com/99682.html>用户点击鼠标后所产生的事件:
(1) 阅读器分析超链指向页面的 URL。
(2) 阅读器向 DNS 要求解析 www.tmtpost.com 的 IP 地址。
(3) 域名系统 DNS 解析出钛媒体服务器的 IP 地址。
(4) 阅读器与服务器建立 TCP 连接
(5) 阅读器发出取文件命令: GET /99682.html
(6) 服务器给出响应,把文件 99682.html 发给阅读器。
(7) TCP 连接释放。
(8) 阅读器显示钛媒体相干网页文件 99682.html 中的所有文本。
HTTP主要特点
HTTP是面向事务的客户服务器协议。
HTTP 协议是无状态的(stateless),即不需要记忆交互确当前状态,由于进程简单。
HTTP 1.0协议是非延续连接。建立TCP连接后,1个HTTP要求过去,1个HTTP响应过来,然后就断开TCP连接。
HTTP 使用了面向连接的 TCP 向上提供的服务。但 HTTP 协议本身是无连接的。
延续连接
不同于HTTP/1.0,HTTP/1.1 协议使用延续连接。
万维网服务器在发送响应后依然在1段时间内保持这条连接,使同1个客户(阅读器)和该服务器可以继续在这条连接上传送后续的 HTTP 要求报文和响应报文。而且这其实不局限于传送同1个页面上链接的文档,而是只要这些文档都在同1个服务器上就行。
目前1些流行的阅读器(如IE 6.0)的默许设置就是使用 HTTP/1.1。
延续连接的两种工作方式
非流水线方式:客户在收到前1个响应后才能发出下1个要求。虽然这比非延续连接的两倍 RTT 的开消节省了建立 TCP 连接所需的1个 RTT 时间,但服务器在发送完1个对象后,其 TCP 连接就处于空闲状态,浪费了服务器资源。
流水线方式:客户在收到 HTTP 的响应报文之前就可以够接着发送新的要求报文。1个接1个的要求报文到达服务器后,服务器便可连续发回响应报文。使用流水线方式时,客户访问所有的对象只需花费1个 RTT时间,使 TCP 连接中的空闲时间减少,提高了下载文档效力
HTTP要求报文格式
所谓“方法”就是对所要求的对象进行的操作,因此这些方法实际上也就是1些命令。而且,要求报文的类型是由它所采取的方法决定的。
HTTP响应报文格式
响应报文的开始行是状态行, 状态行包括3项内容,即 HTTP 的版本,状态码,和解释状态码的简单短语.
注: 本系列博客的打包下载地址:http://download.csdn.net/download/hanqing280441589/8574157