zoukankan      html  css  js  c++  java
  • CCNA-Part 6

    应用层

    应用层工作在 TCP/IP 协议栈的最上层,日常中使用的软件都工作在这一层,如 QQ,微信等。该层主要是产生数据,保证和其他系统上的应用进行相互通信。

    常见的应用层协议如下图所示:

    可以看到,我们熟悉的 HTTP,HTTPS,SSH,FTP 处于数据的可靠性,全都采用了 TCP 作为传输层的协议。而 DNS 有些特殊,既有 TCP,又有 UDP 的协议。

    DNS

    域名的作用:

    为了方便人类记忆而设计,否则的话 IP 地址是无法容易记忆的。

    DNS 的作用:

    由于数据包在网络层传输时,是要通过 IP 进行转发的。所以需要将域名转化成 IP,这个过程就是由 DNS 服务器所提供的。

    DNS 的原理:

    在 DNS 服务器上会有一张表,记录域名和 IP 的映射关系。比如在浏览器上输入 www.baidu.com 后,会先产生一个 DNS 请求报文,通过运营商的路由器发给 DNS 服务器,然后 DNS 会查询所需域名的 IP 地址,然后进行 DNS 回复把对应 IP 告诉客户端。这时客户端拿到真的 IP 地址就可以和淘宝服务器进行交互了。

    这里我们请求下 www.sogou.com 的地址:

    紧接着后面就是建立 TCP 三次握手的过程,然后访问搜狗服务器。

    HTTP

    • HTTP 工作在应用层
    • 使用客户端和服务器的架构(C/S)
    • 无状态, 无连接的协议
    • 独立于物理层,没有限制

    DHCP

    想象一下,对于大型公司内的多台 PC 来说,如果需要访问互联网服务就需要手动配置 IP 地址,这时由于手工易错再加上配置过程较为重复。如果能将该过程自动进行就好了,动态主机配置协议(DHCP)就提供了这样的服务。当一台主机要接入因特网时,就会自动为其配置 IP 地址、子网掩码、默认网关和域名服务器。

    DHCP 的分配方式是:网络中至少有一台 DHCP 服务器在工作,它会通过端口 67 监听网络的 DHCP 请求,并与客户端协商配置客户机的 TCP/IP 环境。

    DHCP 协议使用 UDP 作为运输层协议,DHCP 服务器端口号是 67,客户端的端口号是 68. DHCP 服务器管理一个或多个 IP 地址域,称为地址池。当收到客户端的请求后,会从地址池中取出一个未用的地址分配给客户端,称为出租。

    DHCP 的原理

    DHCP Discover 和 Request 报文都是广播
    DHCP Offer 和 Ack 报文都是单播

    发现 DHCP 服务器

    客户端启动后,会向网络广播一个 DHCP Discover 报文,寻找 DHCP 服务器。此时由于客户端不知道服务器的地址,所以要发送广播。本地网络中的每个主机都会收到,但是只有 DHCP 服务才会响应。

    报文如下:

    提供 IP 租用地址

    DHCP 服务器收到 DHCP Discover 报文后,从还没出租的地址范围内,选择最前面的空白 IP 地址,向客户端发送 DHCP Offer 报文。

    注意这里的 DSP 是 10.1.1.11 ,原因在于请求的这台 PC 之前使用过该地址,而此时该 IP 也没有被其他的 PC 占用。所以 DSP 是 10.1.1.11. 有时可以看到这会是 255.255.255.255.

    报文如下:

    接收租用并确认

    客户端可能会收到一个或多个 DHCP Offer 报文(可能存在多个 DHCP 服务器),客户端从中选择一个 DHCP 服务器,并广播 DHCP Request 报文, 并在报文中必须指明选择的服务器
    报文如下:

    确认租约

    被选中的服务情收到 DHCP Request 后,回应 DHCP Ack 报文,地址分配完成
    报文如下:

    可以发现:

    对于 DHCP Discover 和 DHCP offer 的作用主要是为了确定 DHCP Server.

    而 DHCP Request 和 DHCP ACK 则是为了申请对应的 IP 地址。

    DHCP 在路由器上的配置

    Router>en
    Router#>conf t
    Router(config)#ho DHCP-SERVER
    DHCP-SERVER(config)#ip dhcp pool Central  
    DHCP-SERVER(dhcp-config)#network 10.1.1.0 255.255.255.0
    DHCP-SERVER(dhcp-config)#default-router 10.1.1.254
    DHCP-SERVER(dhcp-config)#dns-server 8.8.4.4
    DHCP-SERVER(dhcp-config)#lease 0 1 1
    r(config)#ip dhcp excluded-address 10.1.1.1 10.1.1.10
    
    DHCP-SERVER(config)int e 0/0 
    DHCP-SERVER(config)ip add 10.1.1.1 255.255.255.0
    DHCP-SERVER(config)no shu
    
  • 相关阅读:
    C++易错处总结
    Dev-C++debug使用方法
    IDEA使用心得
    记录零碎ACM小知识
    Div3 C good number easy version
    cin,scanf后使用getline() 函数的易错点
    while中同时使用scanf和break的易错点
    聚集表索引优化
    .net中不能在DropDownList中选中多个项的解决方法
    MVC3 带查询的分页Helper
  • 原文地址:https://www.cnblogs.com/michael9/p/13321583.html
Copyright © 2011-2022 走看看