FTP/DNS
FTP工作原理
主动模式(端口模式)
客户端开启一个大于1024的端口去连接服务器端的21号控制端口;
客户端开启另外一个大于1024的端口去告诉服务器端;
服务端通过20号数据端口把数据送到客户端告诉他的1024端口。
被动模式
被动模式:(linux默认)
客户端开启一个大于1024的端口去连接服务器的21号控制端口;
服务端开启一个大于1024的端口去告诉客户端;
客户端开启另外一个大于1024的端口去服务器端大于1024得到端口把数据取回来
DNS解析流程;
1.客户端查询自己的缓存,在查询本地hosts中的记录,如果没有将查询发送/etc/resolv.conf中的DNS服务器;
2.如果本地DNS服务器对于请求的信息具有权威性,会将权威答案发送到客户端;
3.否则不具有权威性,那么DNS服务器会在其缓存中查看是否有以前的请求信息留下的缓存,如果有有则将非权威答案发送到客户端;
4.否则缓存中没有查询该信息,DNS服务器从根域服务器开始,按照DNS层次结构向下搜索,一直查到对于信息具有权威的服务器,为客户端获取答案。
5.DNS服务器将信息传递给客户端,并在自己的缓存中保留一个副本,以备以后查找==>Caching only (仅缓存)
DNS面试题:
DNS域名系统: 用于命名组织到域层次结构中的计算机和网络服务。
在Internel上域名和IP地址一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,他们之间的转换工作称为域名解析,域名解析需要专门的域名解析服务器来完成。
DNS运行在UDP协议之上,使用端口号53.
在传输层TCP提供端到端可靠的服务,在UDP端提供尽力而为的服务。
1.我们都知道NDS既采用了TCP协议,又采用了UDP协议,什么时候采用TCP协议?什么时候采用UDP协议?为什么这样设计?
DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类,但很少有人知道DNS分别在什么情况下使用这两种协议。
1>. DNS进行区域传输的时候使用TCP协议,其他时候则使用UDP协议:
DNS的规范规定了2中类型的DNS服务器,一个叫主DNS服务器,一个叫辅助DNS服务器,在一个区中主DNS服务器从自己本机的数据文件中读取该区的NDS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息。当一个辅助DNS服务器启动时候,他需要与主DNS服务器通信,并加载数据信息,这就叫做区传送。
2>.为什么即使用TCP又使用UDP?
首先了解一下TCP与UDP传送字节的长度限制:
UDP报文的最大长度为512字节,而TCP则允许报文长度超过512字节,当DNS查询超过512字节时,协议的TC标志出现删除标志,这时则使用TCP发送。通常传统的UDP报文一般不会大于512字节。
3>.区域传送时使用TCP,主要有以下两点考虑:
1.辅域名服务器会定时(一般3小时)向主域名服务器进行查询以便了解数据是否有变动,如有变动,则会执行一次区域传送,进行数据同步。区域传送将使用TCP而不是UDP,因为数据同步传送的数据量比一个请求和应答的数据量要多的多
2.TCP是一种可靠的连接,保证了数据的准确性
域名解析时候使用UDP协议:
客户端向DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。不用经过TCP三次握手,这样DNS服务器负载更低,响应更快,虽然从理论上说,客户端也可以指定向DNS服务器,查询的时候使用TCP,但事实上,很多DNS服务器进行配置的时候,仅支持UDP查询包。