computer-network-note-6

computer-network-note-6

Charles Lv7

应用层

应用层协议特点

  • 应用层协议是为了解决某一类应用问题
    • 由于网络应用的多样性,应用层的协议也种类繁多
  • 应用层的许多协议都是基于客户/服务器方式
    • 客户(client)和服务器(server)都是指通信中所涉及的两个应用进程
    • 客户/服务器方式所描述的是进程之间服务和被服务的关系
    • 客户是服务请求方,服务器是服务提供方

套接字编程接口

  • 网络子系统作为操作系统的一部分,以应用编程接口(API—Application Programming Interface)的形式向应用程序提供调用接口
  • 套接字(socket)是最常用的应用层编程接口
    • 名称起源于Berkeley UNIX操作系统
  • 经典的socket编程接口采用同步调用方式(又称阻塞式)
  • Windows这种基于事件驱动的系统中,程序的执行由事件驱动,需要异步事件驱动方式的套接字编程接口
    • Microsoft推出WinSock编程接口,在阻塞式调用基础上,增加了异步调用方式
    • 在阻塞式调用模式下,WinSock与经典的socket兼容

域名系统 DNS

域名系统概述

  • 域名系统DNS(Domain Name System)是Internet使用的命名系统
    • RFC 1034:Domain Names - Concepts and Facilities
    • RFC 1035:Domain Names – Implementation and Specification
  • Internet采用层次结构的命名树作为主机的名字,并使用分布式的域名系统DNS
  • 多个域名服务器上运行专门的域名服务器程序,完成域名IP地址的解析(resolve)
  • DNS基于UDP协议实现
    • 应用进程需要进行域名解析时,就调用域名解析程序(resolver),它成为DNS的一个客户
    • 向本地域名服务器发送域名解析请求(UDP报文),其中包含待解析的域名
    • 本地域名服务器在查找域名后,返回应答报文,其中包含对应的IP地址

Internet的域名结构

  • Internet采用层次树状结构的命名方法

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

  • 顶级域名TLD(Top Level Domain)

    • 国家顶级域名:如: .cn 表示中国,.us 表示美国,.uk 表示英国,等等

    • 通用顶级域名:

      域名 含义
      .com 公司和企业
      .net 网络服务机构
      .org 非赢利性组织
      .edu 美国专用的教育机构
      .gov 美国专用的政府部门
      .mil 美国专用的军事部门
      .int 国际组织

域名服务器

  • 域名服务器分为四类

    • 根域名服务器
      • 根域名服务器知道所有的顶级域名服务器的域名和IP地址
      • 当本地域名服务器无法解析域名时,就求助于根域名服务器
    • 顶级域名服务器
      • 负责管理在该顶级域名服务器注册的所有二级域名
    • 权限域名服务器
      • 负责一个区(zone)的域名服务器
    • 本地域名服务器
      • 有时也称为默认域名服务器
  • 域名服务器定期把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器

  • 树状结构的 DNS 域名服务器

image-20240221171830980

  • 主机向本地域名服务器的查询一般采用递归查询

    • 如果本地域名服务器不知道被查询域名的IP地址,那么它就以DNS客户的身份,向根域名服务器继续发出查询请求报文
  • 本地域名服务器向根域名服务器的查询通常是采用迭代查询

    • 当根域名服务器收到本地域名服务器的迭代查询请求报文时
      • 要么给出所要查询的 IP 地址
      • 要么告诉本地域名服务器下一步应向哪一个域名服务器查询
    • 本地域名服务器进行后续的查询

文件传送协议

  • RFC 959:File Transfer Protocol (FTP)
  • FTP使用客户/服务器方式
    • 一个FTP服务器进程可同时为多个客户进程提供服务
    • FTP的服务器进程由两大部分组成
      • 一个主进程,负责接受新的请求
      • 若干个从属进程,负责处理单个请求
  • 主进程的工作步骤
    • 打开熟知端口(端口号为21),使客户进程能够连接上
    • 等待客户进程发出连接请求
    • 启动从属进程处理客户进程发来的请求
      • 从属进程对客户进程的请求处理完毕后即终止
      • 从属进程在运行期间根据需要还可能创建其他一些子进程
    • 回到等待状态,继续接受其他客户进程发来的请求
    • 主进程与从属进程的处理是并发地进行
  • FTP使用2 个TCP连接:控制连接和数据连接
  • 控制连接
    • 在整个会话期间一直保持打开
    • FTP客户发出的传送请求通过控制连接发送给服务器端的控制进程,但 控制连接不用来传送文件
  • 数据连接
    • 收到FTP客户发送来的文件传输请求后,服务器端的控制进程创建“数据传送进程”和“数据连接”
    • 数据传送进程实际完成文件的传送,传送完毕后关闭“数据传送连接”并结束运行

万维网WWW

万维网概述

  • WWW—World Wide Web
  • 1989年,欧洲核子研究中心提出WWW
  • 1993年,第一个浏览器Mosaic
  • 1995年,Netscape Navagitor上市
  • 万维网是分布式超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充
  • 要解决的几个问题
    • 怎样标识分布在Internet上的万维网文档? ------URL
    • 用什么协议实现万维网上各种超链的链接?------HTTP
    • 如何存储和表示万维网文档?------HTML

统一资源定位符URL(Uniform Resource Locator)

  • URL是对Internet上资源位置和访问方法的一种简洁表示

  • URL的一般形式:

    image-20240221172445985

  • <主机>为存放资源的主机在Internet中的域名

  • <端口> 和 <路径>有时可省略。使用http协议时,如省略<端口> ,则使用熟知端口号80;如省略<路径>,则指主页(home page)

  • URL不区分大小写

超文本传送协议HTTP

  • HTTP—HyperText Transfer Protocol

  • 基于TCP协议,是万维网上可靠地交换文件的重要基础

  • HTTP是面向事务的客户/服务器协议

  • HTTP是无状态的(stateless)

    • 服务器不记录客户端的访问状态
  • 基本工作原理

    • Web服务的熟知端口号是80,服务器通常在该端口上监听
    • 客户端需要请求某个页面时,与服务器建立TCP链接,之后请求传送文件,并进行文件的传送,传送完毕后释放TCP连接
  • HTTP/1.1协议使用持续连接(persistent connection)

    • 服务器发送响应后,在一段时间内保持连接,使客户与服务器可以继续传送后续的HTTP请求报文和响应报文
    • 这并不局限于传送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行
    • 目前主流的浏览器都默认支持HTTP/1.1
  • HTTP的报文类型:两类报文

    • 请求报文——从客户向服务器发送请求报文
    • 响应报文——从服务器到客户的回答
    • HTTP是面向正文的(text-oriented),报文中的字段都是ASCII 码串,因而每个字段的长度都是不确定的
  • 报文由三个部分组成,即开始行、首部行和实体主体

  • 在请求报文中,开始行就是请求行

image-20240221172729253

image-20240221172743996

  • HTTP应答报文的开始行是状态行
  • 状态行包括三项内容:HTTP的版本、状态码、解释状 态码的简单短语

安全的HTTP协议:HTTPS

  • HTTPS:安全的HTTP协议,建立在SSL基础上
  • SSL/TLS已被浏览器广泛支持,很多Web应用利用HTTPS协议实现安全传输
  • HTTPS的熟知端口号为443,而不是80

电子邮件

概述

  • 发送邮件的协议:SMTP
    • RFC 2821(RFC 821):Simple Mail Transfer Protocol
    • RFC 2822(RFC 822):Internet Message Format
  • 早期邮件只支持7bit ASCII编码,1993年提出了MIME标准
    • RFC 2045 — 2049
    • 在邮件首部中说明了数据类型(如文本、声音、图像、视像等),可在邮件中多种类型的数据
  • 读取邮件的协议:POP3和IMAP
    • POP3—Post Office Protocol
    • IMAP—Internet Message Access Protocol
  • 电子邮件系统的两种实体:
    • 用户代理UA(User Agent)
      • 是用户与电子邮件系统的接口,即电子邮件客户端软件
      • 用户代理的功能:撰写、显示、处理和通信
    • 邮件服务器
      • 用于发送和接收邮件,并向发信人报告传送结果(已交付、被拒绝、丢失等)
      • 邮件服务器按照客户/服务器方式工作
      • 使用发送和读取两个不同的协议,即发送邮件的SMTP协议和客户端读取邮件的POP3协议
      • 一个邮件服务器既可以作为客户,也可以作为服务器

简单邮件传送协议 SMTP

  • 简介
    • SMTP规定了两个相互通信的SMTP进程之间应如何交换信息
    • SMTP使用客户/服务器方式
      • 负责发送邮件的SMTP进程就是SMTP 客户
      • 负责接收邮件的SMTP进程就是SMTP服务器
    • SMTP定义了14条命令和21种应答信息
      • 每条命令用4个字母组成
      • 每一种应答信息一般只有一行信息,由一个3位数字的代码开始,后面附上(也可不附上)简单的文字说明
  • SMTP通信的三个阶段
    • 连接建立:连接在发送主机的SMTP客户和接收主机的SMTP服务器之间建立,不使用中间邮件服务器
    • 邮件传送
    • 连接释放:邮件发送完毕后,SMTP释放TCP 连接

电子邮件的信息格式

  • RFC 2822(RFC 822):Internet Message Format
  • 一个电子邮件分为信封和内容两大部分
  • RFC 822只规定了邮件内容中的首部(header)格式,而对邮件的主体(body)部分则由用户自由撰写
  • 首部中的主要字段
    • To:后面填入一个或多个收件人的e-mail地址
    • Subject:邮件的主题,反映了邮件的主要内容
    • Cc:抄送(Carbon copy),表示给某人发送一个邮件副本
    • From:发信人的电子邮件地址
    • Date:发信日期
    • Reply-to:对方回信地址

MIME

  • MIME—Multi-purpose Internet Mail Extension
  • SMTP的问题
    • 只能传送7 位ASCII码
    • 不能传送二进制数据:程序、图片、音乐、东方语言、…
  • MIME的思路
    • 继续使用目前的[RFC 822]格式
    • 对二进制数据进行编码,将其转换为7 位ASCII码
    • 邮件首部中增加字段,定义数据类型和编码规则

image-20240221173424441

  • 传输编码规则:
    • base64: 又称为Radix-64 (基数64转换),原始二进制数据中的每6bit被映射为8bit(ASCII字符)
    • quoted-printable: 原始二进制数据的8bit表示为2 个16进制数,前加“=”
  • Title: computer-network-note-6
  • Author: Charles
  • Created at : 2024-02-21 17:05:24
  • Updated at : 2024-02-21 17:37:07
  • Link: https://charles2530.github.io/2024/02/21/computer-network-note-6/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments