第九章 应用层

作者:xuan97916

协议的主要内容:语法、语义、同步

9.1DNSDomian Name System)协议:计算机将域名解析成Ip地址

    域名的一般原则:好记有意义,简短

    9.1.1 DNS协议资源

    baidu.com 是域名      (全球唯一)

    www.baidu.com是域名下的一个主机(www主机名)

smtp.baidu.com 邮件服务器

ftp.baidu.com  FTP服务器

主机名(FTP,WWW,SMTP…+域名=完全限定域名(FQDN Fully Qualified Domain Name

不同的域名可以指向同一个IP地址

一个域名也可对应多个ip地址(构成镜像web站点实现网站的负载均衡)

使用nslookup来查看一个域名对应的ip地址数量(可以进入交互式或者非交互模式(只进行一次))

出现unknownhost ->DNS解析问题

9.1.2 域名的层次结构

  . 根所有域名都是以点开始的

顶级域名Cn us un (国家顶级域名)    org commil edu gov net(通用顶级域名)

二级域名 net com edu(国家二级域名)  sohu inhe csdn(个人或企业注册)

三级域名 ibm asus sina (个人或企业注册)

四级域名 news blog ent (个人或企业管理)

 

个人或者企业申请域名后,可以在该域名下添加多个主机,也可以添加多个主机

在子域名下也可以添加多个主机(DNS集群,实现负载均衡,并进行DNS轮循)

在平时的ping或者域名输入中,域名的根(.)一般不写

9.1.3域名解析的过程

    互联网上的域名解析是多个服务器完成的

    DNS服务器负责储存下级DNS对应的IP地址

    下级DNS负责分担不同部分(.net .com .edu)的域名解析

   委派:一个服务器把解析任务分配给其他服务器(所有的DNS服务器均知道根服务器,但是不知道除根以外的上级服务器)

   权威应答:DNS服务器直接在本地找到解析结果并返回给目标主机

   非权威应答:DNS服务器上解析不到,在其他服务器上找到并返回给客户机

   如果ip地址不再本DNS服务器上,则其根据根提示找到其他服务器,其向其他服务器询问结果后,先缓存在本机中,然后再给客户机应答,客户机也缓存一份解析的地址

  无线路由器可以做DNS服务器,只存储了根提示

9.1.4查看域名解析结果

   Cmd命令  ipconfig /displaydns 来查看缓存在本机的DNS

                  Ipconfig /flushdns 清除域名解析缓存

             Nslookup 可以看到解析到的所有的地址与域名

                  Set type=mx 查找邮件服务器

     CNAME是别名

9.1.5安装内网的DNS服务器

   使用场景:(1)内网有私有域名需要解析

            2)降低DNS流量,节省带宽,提高解析速度

 搭建步骤:(1)在服务器的本地连接上将自己的DNS服务器设置成自己的

                 (内网服务器起到两个角色,即时DNS客户端,又是DNS服务器,DNS服务器在本地有根提示)

          2)服务器上开启DNS服务

             3)测试DNS服务:简单查询(直接查询递归查询),递归查询(间接查询迭代查询),如果失败要重新安装DNS服务

创建正向查找区:从域名解析到ip地址

1)创建区域(域名而非主机名)

                    2)可以新建主机名(A),别名(CNAME,镜像站点,

                 邮件交换器(MX):查找域下的邮件服务器

创建反向查找区:从ip地址解析到域名

                      1)新建PTR指针

    逆向解析域名防止用户使用ip地址访问网站

      控制访问可以在DNS服务器上添加被控制地址的空地址,因为该DNS是服务的权威,所以计算机不会向外网查找ip地址

9.1.6客户机域名解析

缓存->host->DNS

C:\Windows\System32\drivers\etc\hosts修改host文件×××

9.1.7  DNS的数据包格式

9.2动态主机配置协议(DHCP

      9.2.1 使用场景

  静态地址使用场景:ip地址不变的设备(服务器、不移动的台式机等位置不变化的设备)

  动态地址使用场景:移动设备无线设备ADSL拨号

      9.2.2 DHCP的租约

             DHCPIP地址有时间限制,当过期之后,DHCP释放IP地址

             租期过50%:原电脑向服务器续约

             租期过75%:原电脑如果还没有收到DHCP的响应,则发广播数据包请求IP地址(不一定向DHCP请求)

             租期过100%IP地址释放,使用本地环回地址(169.254.0.0网段)

    计算机刚开机、重启时,先检查租约是否到期,如果没有到期,则ping网关,如果ping网关不通,发广播请求新的ip地址

       人工手动更新租约Cmd命令: ipconfig /renew 更新ip地址,重新续约

                                  Ipconfig /release释放IP地址

          Services.msc 打开windows服务管理器(DHCPclient 服务是自动获得地址的关键服务)

       9.2.3 租约的生成过程(DHCP在传输层使用UDPse

          1DHCPDISCOVER客户机发广播寻找DHCP服务器,目标MAC地址全1,目标ip地址255.255.255.255,原ip地址0.0.0.0

          2DHCPOFFER 当网络中的DHCP服务器收到DHCP客户端的请求后,从地址池中选择一个未出租的ip地址,以广播的形式传送给DHCP客户端(多个DHCP谁响应快要谁)

          3DHCPREQUEST客户机收到DHCPOFFER后以广播的形式响应一个DHCPOFFER信息给DHCP服务器

          4DHCPPACK DHCP服务器收到DHCP客户端要求ip地址的DHCPREQUEST信息后,利用广播的方式送出确认信息给DHCP客户端

    9.2.4 安装和配置DHCP服务

          1DHCP的地址池必须和要分配的客户端在同一个网段,且DHCP服务器的地址必须是静态地址。

       2DHCP的原则:尽量给一个计算机同一个地址

          3DHCP数据包使用UDP协议

   9.2.5 DHCP服务器给其他网段的计算机分配地址

          请求地址的广播包通过路由器的作用(DHCP中继代理ip helper address)会将其变成定向的数据包,DHCP产生不同的作用域

       如果排除地址只有一个,则开始地址和结束地址写成一个

9.3telnet协议

          1telnet是简单远程终端协议,用户使用telnet客户端可以连接到远程运行telnet的设备(路由器、交换机、操作系统)进行远程管理

2telnet能将用户的键盘指令传递到主机,同时也能将远程的主机输出通过TCP链接返回到用户主机。这种服务是透明的,用户感觉好像键盘和显示器直接链接到主机。telnet又称为终端仿真协议

3telnet 不复杂,现在的linux服务器和网络设备需要telnet来远程管理和配置

4telnet可以适应不同操作系统的差异

5telnet的密码和账户名使用明文传输,并不安全

 9.3.2 telnet的工作方式
  
使用客户端服务端方式在本地运行
   telnet
定义了数据和命令怎样通过网络。这就是网络虚拟终端NVT

 远程命令: shutdown -s 远程关机

           Shutdown -a 取消远程关机

9.4 远程桌面协议RDP
     TCP3389
端口
      Windows Server
是多用户操作系统,可以多用户同时登陆,也可以一个用户在多台计算机上登录
      xp
是单用户操作系统(只允许单用户同时登陆)
    
在运行输入mstsc进入远程桌面

9.5 超文本传输协议 http
    
创建网站设计网页安装web服务
    
统一资源定位符URL 
     
协议://主机(IP地址):端口/路径/文件名

   访问共享资源:UNC路径  e.g. \\10.7.1.53\china

 9.5.1 绝对路径相对路径
 
绝对路径 
http://www.baidu.com
 
相对路径 news/default.html。同一个网站的子页面要使用相对路径
 
根路径/webside/news/default.html

9.5.2 创建web站点

  一个web服务器上可以搭建多个网站,其实现方法主要有以下几种:

   1)在服务器的网卡上绑定多个IP地址(网站可以使用ip地址来绑定)

   2)可以使用一个ip地址,但是不同的网站用不同的端口进行区分(使用的较少,用户不习惯在地址后面加端口号)

   3)使用域名区分。客户机访问网站只能使用域名访问(域名被称为主机头)

9.5.3 http版本

           http有四个版本分别是http0.9 http1.0 http1.1 http2.0

http1.0:一个网页有html文件还有图片文件,每一个文件都需要建立独立的TCP连接来完成(流水线方式)

http1.1:比1.0的改进之处在于使用持续连接的非流水线方式,建立一次连接就可以传输所有的文件(非流水线方式)

9.5.4 http的报文

   http有两类报文:

           (1)请求报文(GET\POST\DELELT….):从客户端向服务器发送请求报文                            

发送报文帧格式

由于HTTP包中具有主机头,所以可以根据域名来坊问网站

                请求报文的方法:

                            Post方法:登陆服务器提交账号密码,文本等信息

       (2)响应报文(200\404…):从服务器到客户端的应答


响应报文帧格式

响应报文的状态码:分为5大类,共33

 1xx表示通知信息,如请求收到或正在处理

 2xx表示成功,如接收或了解

 3xx表示重定向,如要完成请求还必须执行下一步操作

 4xx 表示客户端错误,如请求中有错误的语法或者不能完成

 5xx表示服务器的差错,如服务器失效无法完成请求

 

常见的响应报文如下:

   http/1.1 200success (成功)

  http/1.1 202 accepted(接受)

           400 bad requeset(错误的请求)

           404 not found(找不到)

错误页面是在服务器上己经定义好的Web页面,用户可以自行改变

     9.5.5 cookie技术

      Cookie是服务器在客户端上放置账户密码等信息的通行证,在第一次访问后就在客户端生成,再次访问时,网站就会从客户端中读取客户端的通行证,这样服务器就可以从通行证上读取并确认客户端身份,用户就不用再次输入账号和密码进行登录了。服务器存放在客户端的通行证就叫做cookie

     9.5.6 通过web代理服务器访问网站

     代理:客户端不直接访问网站,而使用一个代理服务器间接访问。代理服务器访问后,将数据传送给客户端。

     应用场景:(1)可以控制内网计算机对internet的访问(相当于高级防火墙)

                    软件:ccproxy  基于账号密码的控制基于ip地址的控制

                    控制:在路由器上只允许代理服务器出去而其他计算机只允许通过代理服务器才可以出去(网络层控制)

               2)通过web代理绕过防火墙的封锁i

                   内网:一台计算机可以访问internet而其他计算机ip封锁,可以在可以使用网络的计算机上添加web代理来共享网络从而绕过防火墙。

                   外网:连接国外代理服务器来达到×××的目的。

                     3)使用web代理节省内网上网带宽

                     Web代理服务器可以将相同的网页在本地缓存,以加快网页的访问和节省带宽(看距离)

              代理服务器资源:西刺代理    http://www.xicidaili.com/nn

       代理的分类:根据协议区分

FTP代理服务器

主要用于访问FTP服务器,一般有上传、下载以及缓存功能。端口一般为212121等。

HTTP代理服务器

主要用于访问网页,一般有内容过滤和缓存功能。端口一般为8080803128等。

SSL/TLS代理

主要用于访问加密网站,一般有SSLTLS加密功能(最高支持128位加密强度)。端口一般为443

RTSP代理

主要用于Realplayer访问Real流媒体服务器,一般有缓存功能。端口一般为554

Telnet代理

主要用于telnet远程控制(******计算机时常用于隐藏身份)。端口一般为23

POP3/SMTP代理

主要用于POP3/SMTP方式收发邮件,一般有缓存功能。端口一般为110/25

SOCKS代理

只是单纯传递数据包,不关心具体协议和用法,所以速度快很多。一般有缓存功能。端口一般为1080。(SOCKS代理协议又分为SOCKS4SOCKS5SOCKS4协议只支持TCP,而SOCKS5协议支持TCPUDP,还支持各种身份验证机制、服务器端域名解析等。简单来说:SOCK4能做到的SOCKS5都可以做到,但SOCKS5能做到的SOCK4不一定能做到)

根据匿名程度区分

高度匿名代理

高度匿名代理会将数据包原封不动的转发,在服务端看来就好像真的是一个普通客户端在访问,而记录的IP是代理服务器的IP

普通匿名代理

普通匿名代理会在数据包上做一些改动,服务端上有可能发现这是个代理服务器,也有一定几率追查到客户端的真实IP。代理服务器通常会加入的HTTP头有HTTP_VIAHTTP_X_FORWARDED_FOR

透明代理

透明代理不但改动了数据包,还会告诉服务器客户端的真实IP。这种代理除了能用缓存技术提高浏览速度,能用内容过滤提高安全性之外,并无其他显著作用。(最常见的例子是:内网中的硬件防火墙)

间谍代理

间谍代理指组织或个人建立的,用于记录使用者传输的数据,然后进行研究、监控等目的代理服务器。

   9.6 文件传输协议FTP(FileTransfer Protocol)

            用于Internet上的控制文件的双向传输。不同的系统有不同的应用程序,但是其使用的协议是相同的。支持FTP协议的服务器就是FTP服务器。(可以夸操作系统共享文件)

       特点:在进行传输时,服务器与客户端要建立2TCP连接,一个负责控制命令(TCP21)一个负责传输数据,进行数据的上传与下载(TCP 端口依赖于模式选择)

       9.6.1传输数据连接的建立方式有两种:选择主被动模式是由客户端决定的。

              1)主动模式:客户端向服务器发送连接请求后,服务器的TCP20端口主动连接客户端要求客户端的防火墙开一定端口的范围

 ·              2)被动模式:客户端向服务器发送请求,服务器向客户端发送端口号,客户端主动连接服务器刚才发送的端口号,进行数据传输(每建立一个主机与客户端的会话,服务器就会打开一个端口,这些端口的范围在防火墙上是可以定义的)

                               

        9.6.2 服务器FTP的配置

          选择隔离用户或者非隔离用户可以控制访问者时候可以看到其他人的文件(文件夹的名称和登陆的用户名登陆,在FTP根目录下中新建localuser文件夹,在localuser文件夹下新建各个用户名的文件夹)

      如果想在每个用户下添加一个公共分区,只需将其他的一个硬盘挂载到共享文件夹中(磁盘管理中更改盘符路径)

      不使用账号密码登陆(匿名登陆)可以看到公共的目录(在localuser下创建public文件夹)

        在浏览器的选项中可以选择使用主动模式或者被动模式连接FTP

   9.7 收发电子邮件的协议

  发送电子邮件的协议:SMTP14条命令,21种应答信息每条命令用4个字母组成,每一种应答信息只有一行,由3为数字代码组成)

  接收电子邮件的协议:POP3 IMAP HTTP

  1POP3协议在接收完电子邮件后,在原来的邮件服务器中消失,而IMAO协议在原来的邮件服务器上依然存在,只是和服务器上的同步

  2SMTP:发邮件时客户端将邮件先传送给服务器的发件箱(需要身份验证),然后发件箱再发送出去(投递)(不需要身份验证)

3)使用命令找到邮件服务器地址

    打开cmdnslookupsettype=mx, 再输入域名,就可以解析到邮件服务器域名

如果查询地址,输入set type=a,再输入域名就可解析到ip地址

4)使用telnet发送电子邮件

5pop3协议是脱机协议

     IMAP协议是网际报文存取协议,是联机协议,服务器上的垃圾箱,草稿箱均可看见。

6)部署企业内部的邮箱服务器