(计算机网络)第 6 章:应用层

本篇博客将讲解我在计算机网络课程上学到的相关概念以及总结理解,今天将介绍应用层方面的知识,希望能帮助大家理解计算机网络中的一些概念

首先看一下我们第一章讲过的五层协议体系结构,想了解第一章的博客可以戳这里 ,本系列的博客也将按照这五层的顺序进行介绍

1. 域名系统DNS

  • 许多应用层软件经常直接使用域名系统 DNS
  • 互联网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS。
  • 名字到 IP 地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。

互联网的域名结构

域名的结构由标号序列组成,各标号之间用点隔开,各标号分别代表不同级别的域名。:

... . 三级域名 . 二级域名 . 顶级域名

需要特别注意的是域名只是个逻辑概念,并不代表计算机所在的物理地点。 域名是便于人们来使用的,所以有变长的域名和使用有助记忆的字符串 而 IP 地址是便于机器进行处理的,所以有定长的 32 位二进制数字。

顶级域名

国家顶级域名 nTLD

.cn 表示中国, .us 表示美国, .uk 表示英国...

通用顶级域名 gTLD

.com(公司和企业) .net(网络服务机构) .org(非赢利性组织) .edu(美国专用的教育机构) .gov(美国专用的政府部门) .mil(美国专用的军事部门) .int(国际组织) .aero (航空运输企业) .biz (公司和企业) .ai (人工智能) .coop(合作团体) .info (各种情况) .jobs (人力资源管理者) .mobi(移动产品与服务的用户和提供者) .travel(旅游业)

域名空间示意图

域名服务器

每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到 IP 地址的映射。

域名服务器有四个类型:根域名服务器 顶级域名服务器 权限域名服务器 本地域名服务器

结构如下:

域名解析过程

  • 主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。

  • 本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:"你下一步应当向哪一个域名服务器进行查询"。然后让本地域名服务器进行后续的查询。

2. 文件传送协议 FTP 和远程终端协议 TELNET

FTP

文件传送协议 FTP (File Transfer Protocol) 是互联网上使用得最广泛的文件传送协议。协议提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限,FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。

FTP特点

  • 使用 TCP 可靠的运输服务。
  • FTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。
  • FTP 使用客户服务器 方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程 ,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。

示意图如下

TELNET

TELNET 是一个简单的远程终端协议,也是互联网的正式标准。用户用 TELNET 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)。

实现方式

TELNET 也使用客户服务器方式。在本地系统运行 TELNET 客户进程,而在远地主机则运行 TELNET 服务器进程。和 FTP 的情况相似,服务器中的主进程 等待新的请求,并产生从属进程来处理每一个连接。

3. 万维网 WWW 和电子邮件

万维网

万维网是一个大规模的、联机式的信息储藏所。用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。这种访问方式称为链接

工作方式

万维网以客户 - 服务器方式工作。

浏览器就是在用户计算机上的万维网客户程序 。万维网文档所驻留的计算机则运行服务器程序 ,因此这个计算机也称为万维网服务器。 客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。 在一个客户程序主窗口上显示出的万维网文档称为页面

解决的问题

  • 使用统一资源定位符 URL (Uniform Resource Locator) 来标志万维网上的各种文档。
  • 使用超文本传送协议 HTTP (HyperText Transfer Protocol)在万维网客户程序与万维网服务器程序之间进行交互
  • 超文本标记语言 HTML (HyperText Markup Language) 使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到互联网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。
  • 为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)。

HTTP

从层次的角度看,HTTP 是面向事务的应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。

主要特点

  • HTTP 使用了面向连接的 TCP 作为运输层协议,保证了数据的可靠传输。
  • HTTP 是面向事务的客户服务器协议。
  • HTTP 1.0 协议是无状态的 (stateless)------每次访问是一样的。

HTTP报文结构

HTTP 有两类报文:

  1. 请求报文------从客户向服务器发送请求报文。
  2. 响应报文------从服务器到客户的回答。

由于 HTTP 是面向正文的 (text-oriented),因此在报文中的每一个字段都是一些 ASCII 码串,因而每个字段的长度都是不确定的

请求报文结构
响应报文结构

电子邮件

简单邮件传送协议 SMTP

  • SMTP 是一个基于文本的 (即 ASCII 码) 的协议。
  • SMTP 规定了在两个相互通信的 SMTP 进程交换信息的方法。
  • SMTP 使用客户--服务器方式。
  • SMTP 基于 TCP 实现客户与服务器的通信。

SMTP 通信的三个阶段

  1. 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。
  2. 邮件传送
  3. 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。
相关推荐
小飞猪Jay7 小时前
C++面试速通宝典——13
jvm·c++·面试
GZ_TOGOGO8 小时前
【2024最新】华为HCIE认证考试流程
大数据·人工智能·网络协议·网络安全·华为
三金121388 小时前
SpringIoC容器的初识
网络·网络协议·rpc
SizeTheMoment10 小时前
初识HTTP协议
网络·网络协议·http
睡觉然后上课12 小时前
c基础面试题
c语言·开发语言·c++·面试
xgq12 小时前
使用File System Access API 直接读写本地文件
前端·javascript·面试
程序员-珍14 小时前
虚拟机ip突然看不了了
linux·网络·网络协议·tcp/ip·centos
邵泽明14 小时前
面试知识储备-多线程
java·面试·职场和发展
我是陈泽15 小时前
一行 Python 代码能实现什么丧心病狂的功能?圣诞树源代码
开发语言·python·程序员·编程·python教程·python学习·python教学
魏大橙15 小时前
linux RCE本地/公网测试
网络·网络协议·udp