【王道·计算机网络】第六章 应用层

news2024/11/25 3:06:36

在这里插入图片描述

一、基本概念

1.1 应用层概述

  • 应用层对应用程序的通信提供服务
  • 应用层协议定义:
    1. 应用进程交换的报文类型,请求还是响应?
    2. 各种报文类型的语法,如报文中的各个字段及其详细描述
    3. 字段的语义,即包含在字段中的信息的含义
    4. 进程何时、如何发送报文,以及对报文进行响应的规则
  • 应用层的功能:文件传输、访问和管理,电子邮件,虚拟终端,查询服务和远程作业登录
  • 应用层的重要协议:FTP、SMTP、POP3、HTTP、DNS

1.2 网络应用模型

  • 网络应用模型:客户/服务器模型Client/Server、P2P模型Peer-to-peer
  • 客户/服务器c/s模型:
    1. 服务器:提供计算服务的设备;永久提供服务、永久性访问地址/域名
    2. 客户机:请求计算服务的主机;与服务器通信,使用服务器提供的服务;间歇性接入网络;可能使用动态IP地址;不与其他客户机直接通信
  • P2P模型:
    1. 不存在永远在线的服务器
    2. 每个主机即可以提供服务,也可以请求服务
    3. 任意端系统/节点之间可以直接通讯
    4. 节点间歇性接入网络
    5. 节点可能改变IP地址
    6. 可拓展性好
    7. 网络健壮性强

二、 应用程序相关

2.1 域名解析系统DNS

在这里插入图片描述

  • 根:.之前的称为顶级域名
  • 顶级域名:
    1. 国家顶级域名:cn,us,uk
    2. 通用顶级域名:com,net,org,gov,int国际组织,areo航空类,museum,travel…
    3. 基础结构域名/反向域名(ip → 域名):arpa
  • 二级域名
    1. 类别域名:ac科研,com工商金融,edu,gov,mil中国国防机构,net,org
    2. 行政区域名:用于我国各省、自治区、直辖市,bj
    3. 注册域名

2.1.1 域名服务器

  • 域名服务器:根域名服务器、顶级域名服务器、权限域名服务器
  • 本地(默认)域名服务器:当一个主机发出一个DNS查询请求的时候,首先会发给本地域名服务器(因为它离主机的距离非常近),可以立刻将所查询的主机名转换为IP地址;使DNS查询的过程变得更简单、快速
    在这里插入图片描述

2.1.2 域名解析过程

  • 域名解析:递归查询、迭代查询
  • 高速缓存:用来存放最近查过的域名、从哪里获得这个域名映射信息的记录
    在这里插入图片描述

2.2 文件传输FTP

  • 文件传送协议:文件传送协议FTP (File Transfer Protocol)、简单文件传送协议TFTP (Trivial File Transfer Protocol)
  • 简单文件传送协议TFTP:
    1. TFTP的代码块所占的内存比较小,较容易实现、是面向小文件的一种文件传送协议
    2. 非常适用于UDP环境、程序或者是文件同时向许多机器下载、适用于较小的计算机或者某些特殊用途的设备
  • 文件传送协议FTP
    1. 提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力
    2. FTP是一种拷贝:上传、下载

2.2.1 FTP服务器和用户端

  • FTP是基于客户/服务器c/s的协议
  • 用户通过一个客户机程序连接至在远程计算机上运行的服务器程序
  • 依照FTP 协议提供服务,进行文件传送的计算机就是 FTP 服务器
  • 连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端

2.2.2 FTP工作原理

登陆:ftp地址

  • 用户名&密码
  • 匿名登陆
    1. 互连网中有很大一部分FTP服务器被称为“匿名”(Anonymous)FTP服务器,这类服务器的目的是向公众提供文件拷贝服务,不要求用户事先在该服务器进行登记注册,也不用取得FTP服务器的授权。
    2. Anonymous(匿名文件传输):使用户与远程机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特登录FTP服务,就可访问远程主机上公开的文件殊的用户名“anonymous"登录FTP服务,就可访问远程主机上公开的文件。
  • FTP使用TCP实现可靠传输
  • FTP服务器进程:1个主进程、n个从属进程
  • FTP传输模式:
    1. 文本模式:ASCII模式,以文本序列传输数据
    2. 二进制模式:Binary模式,以二进制序列传输数据
      在这里插入图片描述

2.3 电子邮件

  • 电子邮件信息:信封;内容:首部、主体
    在这里插入图片描述
  • 电子邮件组成结构:用户代理、(发送方和接收方)邮件服务器、相关协议
    1. 用户代理的功能:撰写、显示、处理、通信
    2. 邮件服务器的功能c/s:发送&接收邮件;向发件人报告邮件传送结果
    3. 协议:发SMTP;收POP3、IMAP
      在这里插入图片描述

2.3.1 简单邮件传送协议SMTP

  • SMTP规定了在两个相互通信的SMTP进程之间如何交换信息
  • SMTP进程:负责发送邮件的是SMTP客户;负责接收邮件的是SMTP服务器
  • SMTP规定了14条命令、21种应答信息
  • TCP连接,端口号25,C/S
  • SMTP通信三个阶段:连接建立 → 邮件传送 → 连接释放
    在这里插入图片描述
  • SMTP缺点:
    1. SMTP不能传送可执行文件或者其他二进制对象
    2. SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字
    3. SMTP服务器会拒绝超过一定长度的邮件

2.3.2 通用因特网邮件扩充MIME

在这里插入图片描述

2.3.3 邮局协议POP3

  • POP3:TCP连接,端口号110,c用户代理/s接收端邮件服务器
  • POP3工作方式:下载并保留(在服务器)、下载并删除

2.3.4 网际报文存取协议IMAP

  • IMAP协议比POP协议复杂
  • 当用户PC上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,- 若用户需要打开某个邮件,该邮件才上传到用户的计算机上
  • IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件,还允许只读取邮件中的某一个部分(先看正文,有WiFi的时候再下载附件)

2.3.5 基于万维网的电子邮件

  • 特点:方便
  • 不同点:邮件服务器:xx公司的服务器;协议使用上,从用户代理到发送方邮件、读取邮件是HTTP协议
    在这里插入图片描述

2.4 万维网和HTTP协议

  • 万维网WWW(World Wide Web)是一个大规模的、联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合
  • 统一资源定位符URL唯一标识:资源(文字、视频、音频)
  • URL一般形式:<协议>【http/ftp】😕/<主机>【域名/IP地址】:<端口>/<路径>
  • 用户通过点击超链接获取资源,这些资源通过超文本传输协议HTTP传送给使用者
  • 万维网以客户/服务器方式工作,用户使用的浏览器是万维网客户程序,万维网文档所驻留的主机运行服务器程序
  • 万维网使用超文本标记语言HTML,使得万维网页面设计者可以很方便地从一个界面的链接转到另一个界面,并能够在自己的屏幕上显示出来

2.4.1 超文本传输协议HTTP

  • HTTP协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器
    在这里插入图片描述
  • HTTP协议的特点
    1. HTTP协议是无状态的
    2. cookie:存储在用户主机中的文本文件,记录一段时间内某用户的访问记录 → 提供个性化服务
    3. HTTP采用TCP作为传输层协议,但HTTP本身协议无连接,即通信双方在交换HTTP报文之前不需要先建立HTTP连接
    4. HTTP的连接方式:持久连接keep-alive(非流水线、流水线)、非持久连接close
  • 持久连接:短时间内保持连接状态,请求新的元素或发送报文不需要再建立连接
  • 非流水线:发送一个请求收到响应后,才能再发送一个新请求;流水线:持续发送
  • HTTP报文是面向文本的,每一个字段都是一些ASCII码;分为:请求报文、响应报文
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/548996.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PathWise开发(1) 将增加节点的功能移动到鼠标右键 d3.js/vue.js

PathWise(1) 从零开始搭建知识图谱/个性化学习路径/d3.js/vue.js 2023年5月20日&#xff1a;将增加节点的功能移动到鼠标右键 跑起来先 思路&#xff1a; 将我们之前的MyTableAddNode.vue&#xff0c;删除其中的内容只留下下面的表单<template><!-- <div class…

【Linux Network】高级IO

目录 前言 五种IO模型 阻塞IO 非阻塞IO 信号驱动IO IO多路转接 异步IO 小结 同步通信 vs 异步通信 阻塞 vs 非阻塞 其他高级IO 非阻塞IO fcntl函数 代码测试 高级IO&#x1f337; 前言 IO&#xff1a;所谓的I便是 input&#xff0c;所谓的O便是 output&#xff0c;简单点来说&a…

VC++6.0掌握哈希表的基本操作和掌握几种内部排序的方法

问题描述 针对某个集体中人名设计一个哈希表&#xff0c;使得平均查找长度不超过R&#xff0c;并完成相应的建表和查表程序。 1.2基本要求 假设人名为中国人姓名的汉语拼音形式。待填入哈希表的人名共有30个&#xff0c;取平均查找长度的上限为2。哈希函数用除留余数法构造&…

【掌控安全】sql注入全集

掌控安全 &#x1f525;系列专栏&#xff1a;掌控安全 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4c6;首发时间&#xff1a;&#x1f334;2023年5月20日&#x1f334; &#x1f36d;作者水平很有限&#xff0c;如果发现错误&…

Linux---文件操作命令(touch、cat、more)

1. touch命令 可以通过touch命令创建文件 语法&#xff1a;touch [选项] Linux路径 touch命令&#xff0c;参数必填&#xff0c;表示要创建的文件路径&#xff0c;相对、绝对、特殊路径符均可以使用。 touch 命令不光可以用来创建文件&#xff08;当指定操作文件不存在时&a…

【Redis】聊一下缓存雪崩、击穿、穿透、预热

缓存的引入带来了数据读取性能的提升&#xff0c;但是因此也引入新的问题&#xff0c;一个是数据双写一致性&#xff0c;另一个就是雪崩、击穿、穿透&#xff0c;那么如何解决这些问题&#xff0c;我们来说下对应的问题和解决方案 雪崩 缓存雪崩&#xff1a;同一时间内大量请…

pg事务:事务相关元组结构

事务相关的元组结构 元组结构中包含很多pg的mvcc所必要的信息&#xff0c;下面的内容将梳理xmin,xmax,t_ctid,cmin,cmax,combo cid,tuple id的含义和关系 物理结构 HeapTupleHeaderData相当于tuple的header&#xff0c;其结构在src/include/access/htup_details.h中定义 typ…

【BIO、NIO、AIO、Netty】

什么是IO Java中I/O是以流为基础进行数据的输入输出的&#xff0c;所有数据被串行化(所谓串行化就是数据要按顺序进行输入输出)写入输出流。简单来说就是java通过io流方式和外部设备进行交互。在Java类库中&#xff0c;IO部分的内容是很庞大的&#xff0c;因为它涉及的领域很广…

win--C盘程序员常见应用内存空间处理

写在前面&#xff1a; 本篇用于记录我对于C盘各个应用内存处理的总结&#xff0c; 文章目录 前置知识vscode的.vscode文件迁移可以移动 软件推荐wsl和docker存储管理修改安装目录压缩磁盘 pip缓存清理JetBrains系列 前置知识 在win中有着这样一个命令mklink&#xff0c;可以…

Java飞行记录器

目录 JFR和JMC启动飞行记录用JFR对比不同GC器运行结果记录结果GC配置GC Summary垃圾收集 JFR和JMC JFR全称为Java Flight Recorder&#xff0c;即Java飞行记录器 JMC全称为JDK Mission Control&#xff0c;即JDK任务控制 先贴一段官网的简介&#xff1a; Java Flight Recorder…

基于鸿蒙系统的智能衣柜管理系统设计与实现_kaic

摘 要 随着城市的扩大与科学技术的发展&#xff0c;人们逐渐开始关注衣柜功能的改进&#xff0c;存储效果的优化和智能使用的升级。个性化、功能化、智能化的衣柜将出现在人们的家庭生活中&#xff0c;并且起到重要作用。 为了满足当前人们对智能衣柜的需求&#xff0c;本设计…

面试真的被问麻了......

前几天组了一个软件测试面试的群&#xff0c;没想到效果直接拉满&#xff0c;看来大家对面试这块的需求还是挺迫切的。昨天我就看到群友们发的一些面经&#xff0c;感觉非常有参考价值&#xff0c;于是我就问他还有没有。 结果他给我整理了一份非常硬核的面筋&#xff0c;打开…

Java -并发(多线程)-Interview面试题收集

1、多线程并发 1&#xff09;多线程中 synchronized 锁升级的原理是什么&#xff1f; synchronized 锁升级原理&#xff1a;在锁对象的对象头里面有一个 threadid 字段&#xff0c;在第一次访问的时候 threadid 为空&#xff0c;jvm 让其持有偏向锁&#xff0c;并将 threadid…

Mabatis Plus 之ID生成策略控制(Auto、Input、assign_id、assign_uuid)

文章目录 知识点1&#xff1a;TableId1 环境构建2 代码演示AUTO策略步骤1:设置生成策略为AUTO步骤2:删除测试数据并修改自增值步骤3:运行新增方法 INPUT策略步骤1:设置生成策略为INPUT步骤2:添加数据手动设置ID步骤3:运行新增方法 ASSIGN_ID策略步骤1:设置生成策略为ASSIGN_ID步…

HTTPS的工作流程

hi,大家好,好久不见,今天为大家带来HTTPS协议的工作流程 认识HTTPS 加密是什么 HTTPS的工作流程 1.认识HTTPS HTTPS也是应用层协议,让我们再来回忆一下TCP/IP五层协议模型 HTTPS 也是一个应用层协议. 是在 HTTP 协议的基础上引入了一个加密层. HTTP协议在传输的时候是以…

2023河海大学838计算机学硕考研高分经验分享

大家好&#xff0c;我是陪你考研每一天的大巴学长。 大巴学长为大家邀请到了2023年838计算机学硕初试第二名的高分学长&#xff0c;为大家分享一下他的考研经验&#xff0c;经验里详细介绍了各科的复习方法&#xff0c;很有参考意义。 希望对大家有所借鉴和帮助&#xff0c;在…

C++13-STL模板-01向量(vector)

C13-STL模板 在线练习&#xff1a; http://noi.openjudge.cn/ https://www.luogu.com.cn/ 大纲要求 【 3 】算法模板库中的函数&#xff1a;min、max、swap、sort 【 4 】栈 (stack)、队列 (queue)、链表 (list)、 向量&#xff08;vector&#xff09;等容器 1.函数模板 泛…

HNU数据结构与算法分析-作业1-算法分析

1. (简答题) 1.&#xff08;教材3.4&#xff09;&#xff08;a&#xff09;假设某一个算法的时间代价为 &#xff0c;对于输入规模n&#xff0c;在某台计算机上实现并完成该算法的时间为t秒。现在另有一台计算机&#xff0c;运行速度为第一台的64倍&#xff0c;那么t秒内新机器…

FreeRTOS(5)----互斥量

一&#xff0c;互斥信号量 互斥信号量是一个具有优先级继承的二值信号量&#xff0c;在同步的应用中二值信号量最合适。互斥信号量适合互斥访问的那些应用。在互斥访问中互斥信号量相当于一个钥匙&#xff0c;当一个任务使用这个资源&#xff0c;资源就会被上锁&#xff0c;防…

[CTF/网络安全] 攻防世界 robots 解题详析

[CTF/网络安全] 攻防世界 robots 解题详析 robots.txt姿势总结 题目描述&#xff1a;X老师上课讲了Robots协议&#xff0c;小宁同学却上课打了瞌睡&#xff0c;赶紧来教教小宁Robots协议是什么吧。 进入靶机&#xff0c;页面空白。 查看页面源代码&#xff1a; 再次结合题目Rob…