计算机网络——第2章-应用层

计算机网络——第2章-应用层如图所示 有两个 DHCP 服务器和一个 DHCP 客户 DHCP 是 TCP IP 协议体系应用层中的协议 使用运输层中 UDP 提供的服务 会被封装成 UDP 用户数据报 DHCP 服务器的 UDP 端口为 67 DHCP 客户的 UDP 端口号为 68

大家好,欢迎来到IT知识分享网。

2.1 应用层概述

计算机网络——第2章-应用层

计算机网络——第2章-应用层

2.2 客户-服务器方式和对等方式

计算机网络——第2章-应用层

2.2.1 客户-服务器方式(c/s方式)

计算机网络——第2章-应用层

计算机网络——第2章-应用层

2.2.2 对等方式(P2P方式)

计算机网络——第2章-应用层

计算机网络——第2章-应用层

2.3 动态主机配置协议DHCP

2.3.1 工作流程

  • 如图所示,有两个DHCP服务器和一个DHCP客户,DHCP是TCP/IP协议体系应用层中的协议,使用运输层中UDP提供的服务,会被封装成UDP用户数据报,DHCP服务器的UDP端口为67,DHCP客户的UDP端口号为68。
  • 主机DHCP启用后,DHCP客户广播发送DHCP发现报文,该报文中主要的信息有事务ID和DHCP客户端的MAC地址,封装该报文的IP数据报的源IP地址为0.0.0.0,因为主机目前还未分配IP地址,目的地址为广播地址255.255.255.255,因为目前主机不知道有多少个DHCP服务器,所以要广播。
  • DHCP服务器接受DHCP发现报文并做出相应,根据DHCP客户端的MAC地址获取配置信息,最终发送DHCP提供报文,该报文的源IP地址为DHCP服务器的IP地址,目的地址为广播地址,因为主机目前还未配置IP地址,为了主机可以收到,只能发送广播地址。
  • DHCP客户解析DHCP提供报文,如果DHCP提供报文中的事务ID与自己之前发送的DHCP发现报文中的事务ID相同,则接受该报文。DHCP提供报文中还包含配置信息(IP地址、子网掩码、地址租期、默认网关、DNS服务器,其中IP地址会使用ARP确保所选的IP地址未被占用)。
  • 在图中DHCP客户会收到两个DHCP服务器发来的报文,一般选择先到达的报文所对应的服务器,然后向所选择的DHCP服务器发送DHCP请求报文,源地址为0.0.0.0,目的地址为广播地址,报文中封装了事务ID、DHCP客户端的MAC地址、接受的租约中的IP地址、提供此租约的DHCP服务器端的IP地址等信息。
  • 假设DHCP客户选择DHCP服务器1发送请求,并且该服务器接受了该请求,于是DHCP服务器1发送DHCP确认报文,报文的源IP地址为DHCP服务器1的IP,目的地址为广播地址。
  • 此时主机会使用ARP检测所分配的IP是否已经被占用,如果被占用则会给DHCP服务器发送DHCP谢绝报文,并重新广播DHCP发现报文,否则就可以使用该IP进行通信了。
  • 当租用期过了一半时,DHCP客户会向DHCP服务器发送DHCP请求报文来请求更新租期,该报文的源IP地址为租用到的地址,目的地址为DHCP服务器1的地址。
  • 此时有三种情况:
    • 如果DHCP服务器同意则发回DHCP确认报文,DHCP客户得到了新的租用期。
    • 如果DHCP服务器拒绝,则发送DHCP否认报文,DHCP客户必须立即停止使用之前租用到的IP,并重新发送DHCP发现报文来重新申请IP地址。
    • 若DHCP服务器没有做出响应,则在过了0.875倍的租用期后DHCP客户重新发送DHCP请求报文,继续等待DHCP服务器做出反应,如果在租用期到之前还未反应,则DHCP客户停止使用租用的IP地址,并重新发送DHCP请求报文。
  • DHCP服务器也可以提前终止提供给DHCP客户的租用期,只要发送DHCP释放报文即可。
计算机网络——第2章-应用层

2.3.2 DHCP中继代理

如下图所示,右边橙色的主机是无法自动获取到IP地址的,因为当主机发送DHCP请求报文时,中间的路由器是不会转发该报文的,而是直接丢弃。解决办法是在路由器中配置DHCP服务器的IP地址使得该路由器成为DHCP的中继代理。

计算机网络——第2章-应用层

2.4 域名系统DNS(Domain Name System)

2.4.1 域名系统DNS的作用

当用户在web浏览器中输入域名时,首先主机会在自己的DNS缓存中查找该域名对应的IP地址,如果找不到则去DNS服务器查找,DNS服务器中存储了域名和IP地址的数据库,之后将查询结果返回给主机。

计算机网络——第2章-应用层

2.4.2 层次树状结构的域名系统

计算机网络——第2章-应用层

计算机网络——第2章-应用层

计算机网络——第2章-应用层

2.4.3 域名服务器

计算机网络——第2章-应用层

2.4.4 域名解析的过程

计算机网络——第2章-应用层

2.4.5 高速缓存

计算机网络——第2章-应用层

2.5 文件传送协议FTP

2.5.1 概述

计算机网络——第2章-应用层

计算机网络——第2章-应用层

2.5.2 工作原理

计算机网络——第2章-应用层

计算机网络——第2章-应用层

计算机网络——第2章-应用层

计算机网络——第2章-应用层

2.6 电子邮件

2.6.1 概述

计算机网络——第2章-应用层

计算机网络——第2章-应用层

计算机网络——第2章-应用层

2.6.2 SMTP工作原理

计算机网络——第2章-应用层

2.6.3 电子邮件格式

计算机网络——第2章-应用层

计算机网络——第2章-应用层

2.6.4 邮件读取协议

计算机网络——第2章-应用层

计算机网络——第2章-应用层

2.7 万维网WWW

2.7.1 概述

计算机网络——第2章-应用层

计算机网络——第2章-应用层

计算机网络——第2章-应用层

计算机网络——第2章-应用层

计算机网络——第2章-应用层

2.7.2 超文本传输协议HTTP

计算机网络——第2章-应用层

计算机网络——第2章-应用层

计算机网络——第2章-应用层

计算机网络——第2章-应用层

计算机网络——第2章-应用层

计算机网络——第2章-应用层

2.7.3 Cookie

计算机网络——第2章-应用层

计算机网络——第2章-应用层

2.7.4 万维网缓存与代理服务器

计算机网络——第2章-应用层

2.7.5 习题

计算机网络——第2章-应用层

计算机网络——第2章-应用层

2.8 Socket编程

2.8.1 TCP套接字编程

计算机网络——第2章-应用层

计算机网络——第2章-应用层

socketaddr_in

IP地址和port捆绑关系的数据结构(指示进程的端节点)

struct sockaddr_in { short sin_family; // AF_INET 地址簇 u_short sin_port; // port struct in_addr sin_addr ; // IP address, unsigned long char sin_zero[8]; // align 对齐 };

hostent

域名和IP地址的数据结构

struct hostent{ char *h_name; // 主机域名 char h_aliases; // 别名 int h_addrtype; int h_length; // 地址长度 char h_addr_list; #define h_addr h_addr_list[0]; };

2.8.2 UDP套接字编程

计算机网络——第2章-应用层

计算机网络——第2章-应用层

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/169446.html

(0)
上一篇 2025-02-07 11:00
下一篇 2025-02-07 11:05

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信