计算机网络原理梳理丨应用层

目录

  1. 计算机网络应用体系结构
  2. 网络应用通信基本原理
  3. 域名系统
  4. 万维网应用
  5. Internet电子邮件
  6. FTP
  7. P2P应用
  8. Socket编程

计算机网络应用体系结构

C/S (客户/服务器)结构

通信只在客户与服务器之间进行,客户与客户之间不进行直接通信。

P2P (Peer to Peer)结构

每个对等端都同时兼备C/S应用的客户与服务器的特征,是一个服务器与客户的结合体,对等端之间直接通信。

混合结构

既有服务器的存在,又有对等端(客户)间的直接通信。


网络应用通信基本原理

C/S通信原理

服务器运行的是服务器进程,被动的等待客户端请求服务;客户端运行的是客户进程,主动发起通信,请求服务器提供服务。应用进程间遵循应用层协议交换应用层报文。


域名系统(DNS)

层次树状结构命名方法:

  1. 国家顶级域名 nTLD
  2. 通用顶级域名 gTLD
  3. 基础结构域名

域名服务器

  • 域名解析:将域名映射为 IP 地址的过程

  • 域名服务器:为了实现域名解析,需要建立分布式数据库,存储网络中域名与 IP 地址的映射关系,这些数据库存储在域名服务器上,域名服务器根据用户的请求提供域名解析服务。域名服务器的分类:
    1.根域名服务器(全球13套)
    2.顶级域名服务器
    3.权威域名服务器
    4.本地域名服务器

域名解析过程
  • 迭代查询:只是将下一步要查询的的服务器告知查询主机或服务器。
  • 递归查询:代替查询主机或其它域名服务器,进行进一步的域名查询,并将最终解释结果发送给查询主机或服务器。(缺点:多查询请求情况下影响域名服务器的性能,资源占用高)

万维网应用

万维网的数据传输采用 TCP 连接,保证传输的可靠性以获得可靠地数据。

工作过程
1.客户端 Web 浏览器根据域名向域名服务器查询目标服务器的 IP 地址
2.根据查询出来的 IP 地址建立 TCP 连接
3.建立连接后发送 HTTP 请求报文 (携带 URL)
4.目标服务器根据 HTTP 请求报文中的 URL 信息找到对应的网页资源(HTML)作为 HTTP 响应资源返回客户端
5.浏览器解析 HTML 并展示
6.访问结束。

HTTP 请求方式
  • 非持久连接:建立一个 TCP 连接,传输一个对象就断开连接
    1.串行方式请求每个对象,且每次都要新建 TCP 连接,但不会同时建立多条连接
    2.并行方式请求每个对象,每个请求建立一个 TCP 连接,会同时产生多条连接

  • 持久连接:建立一个 TCP 连接,传输多个对象
    1.非流水方式:建立一个 TCP 连接后,依次顺序传输所有对象,获取完毕后断开
    2.流水方式:建立一个 TCP 连接后,同时请求所有包含对象,获取完毕后断开

HTTP 报文
  • 请求报文

1.请求行:包含 方法、URL、版本号、回车符(结束标记)
2.首部行:包含所有需要上传的参数 及 回车符(结束标记)。参数以 Key:Value 形式存储,是明文 ASCII 字符,需要加密以提高安全性
3.实体主体:通常不用

请求行方法列举:
GET:通过请求URI得到资源
POST:用于添加新的内容
PUT:用于修改某个内容
DELETE:删除某个内容
CONNECT:用于代理进行传输,如使用SSL
OPTIONS:询问可以执行哪些方法
PATCH:部分文档更改
PROPFIND,(wedav):查看属性
PROPPATCH, (wedav):设置属性
MKCOL, (wedav):创建集合(文件夹)
COPY, (wedav):拷贝
MOVE, (wedav):移动
LOCK, (wedav):加锁
UNLOCK (wedav):解锁
TRACE:用于远程诊断服务器
HEAD:类似于GET, 但是不返回body信息,用于检查对象是否存在,以及得到对象的元数据

  • 响应报文

1.状态行:版本、状态码、短语、回车符(结束标记)
2.首部行:包含所有需要返回的参数 及 回车符(结束标记)。参数以 Key:Value 形式存储,是明文 ASCII 字符,需要加密以提高安全性

状态行状态码列举:


Internet电子邮件

电子邮件系统结构

包括邮件服务器、简单邮件传输协议(SMTP)、用户代理、邮件读取协议(POP3 / IMAP)

SMTP

SMTP 是 Internet 电子邮件中信心应用层协议,实现邮件服务器之间或用户代理到服务器之间的邮件传输。

SMTP 使用传输层 TCP 实现可靠数据传输,端口号为25

SMTP 通过3个阶段的应用层交互完成邮件传输,分别是握手阶段、邮件传输阶段、关闭阶段

SMTP 的基本交互方式是 SMTP 客户端发送命令,命令后面可能携带参数, SMTP 服务器对命令进行应答。

SMTP 通讯过程

具体过程:

c 发送 TCP 连接请求
s 响应 220 携带域名 表示接受连接
c 发送 hello 命令 携带握手参数
s 响应 250 表示能够接受握手
进入邮件传输阶段
c 发送 MAIN_FROM 命令 携带邮件来源
s 响应 250 表示接收成功
c 发送 RCPT_TO 命令 携带发送目标
s 响应 250 表示接收成功
c 发送 DATA 命令,表示即将发送邮件主体
s 响应 354 ,表示可以接受主体
c 开始逐行发送邮件主体内容
c 发送结束标记 “.” + “回车”
s 响应 250 表示接收成功
c 发送 QUIT 命令,表示退出指令
s 响应 221 邮件通讯全部完成

电子邮件格式与MIME

电子邮件格式:

电子邮件内容分为三个部分:首部、空白行、主体

首部关键词: TO 发送目标、 Subject 邮件主题、 Cc 抄送人、 From 发信人、 Date 发送日期、 Replay-To 回复地址

MIME(多用途互联网邮件扩展)

在邮件内容中支持多媒体文件的传输,比如图片、视频。它将非7位的ASCII码文本内容转换为7位ASCII码文本内容,然后再利用 SMTP 进行传输。

首部中会增加 MIME 首部行,说明主体内容原本的数据类型和采用的编码标准,接收方根据这些参数解码数据,得到原始数据。

邮件读取协议

POP3
第三版邮局协议(Post Office Protocol - Version 3,POP3):原理为相当于邮件下载

IMAP
互联网邮件访问协议(Internet Mail Access Protocol , IMAP ):直接维护邮件服务器内容

HTTP
产文本传输协议(Hyper Text Transfer Protocol,HTTP):通过浏览器即可访问邮件,不依赖客户端软件


FTP (文件传送协议)

可实现两个主机间文件互传的应用层协议,依赖传输层的 TCP 协议。

它与其它(SMTP、HTTP)服务不同的是,它需要两种连接:控制连接、数据连接

控制连接:负责传输控制命令,端口号 21
数据连接:负责传输文件内容,端口号 20


P2P 应用(对等模式)

充分利用了端系统的计算能力以及网络传输带宽,对服务器的依赖很小


Socket 编程基础

Socket 编程原理

网络应用进行通信时,需要通过 API 接口请求底层协议的服务。可以创建数据报类型套接字、流式套接字和原始套接字三种

数据报套接字:SOCK_DGRAM, 对应 UDP ,不可靠传输
流式套接字:SOCK_STREAM, 对应 TCP ,可靠传输
原始套接字:SOCK_RAW 对应, 对应 IP ,不具备传输层的服务

Socket 编程工作过程

基于TCP的Socket编程

基于UDP的Socket编程


本篇到此完结,计算机网络知识 系列文章已全部发布!

计算机网络原理梳理丨计算机网络的概念
计算机网络原理梳理丨应用层
计算机网络原理梳理丨传输层
计算机网络原理梳理丨网络层
计算机网络原理梳理丨链路层
计算机网络原理梳理丨物理层
计算机网络原理梳理丨无线与移动网络
计算机网络原理梳理丨网络安全
计算机网络原理梳理丨HTTP 请求全解

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容

  • 1. 基础知识 1.1 3种常见的计算机体系结构划分 OSI分层(7层):物理层、数据链路层、网络层、传输层、会话...
    Mr希灵阅读 19,868评论 6 120
  • 博主最近在复习HTTP,之前用书主要是《计算机网络》谢希仁版本,最近结合网上博客,进行复习和提纲式的总结。 一、概...
    stoneyang94阅读 4,144评论 1 8
  • 1.TCP报头格式 UDP报头格式 TCP报头格式 UDP报头格式 具体的各部分解释看 TCP报文格式详解 - ...
    杰伦哎呦哎呦阅读 2,448评论 0 5
  • 一、C/S结构:服务器 - 7*24小时提供服务;永久性访问地址/域名;利用大量服务器实现可扩展性客户机 - 与服...
    wing_yeah阅读 655评论 0 1
  • 大家都知道es6是ECMAScript的下一代js版本,随着浏览器的更新迭代,主流浏览器逐渐支持es6,那么今天就...
    coderYJ阅读 6,330评论 0 1