1. 基本概念

image.png

  • 每个应用层协议是为了解决某一类应用问题,需要通过位于不同主机的多个应用进程之间的通信和协同工作来完成的。
  • 应用层的具体内容就是规定应用进程在通信时所遵循的协议
  • 应用层的许多协议都是基于C/S方式。客户client和服务器server都是指通信中所涉及的两个应用进程。客户服务器方式所描述的是两个进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方

常见协议

  • 域名系统DNS
  • 万维网和HTTP
  • 文件传送
  • 电子邮件
  • DHCP
  • 系统调用和应用编程接口Socket

    2. 域名系统DNS

    2.1 基本概念

  • 互联网采用了层次树状结构的命名方法

  • 一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名
  • 域名的结构由标点序列组成,各标号之间用点隔开

image.png

  • 各标号分别代表不同级别的域名

image.png

2.2 顶级域名TLD(Top Level Domain)的分类

  • 国家顶级域名 nTLD
    • .cn代表中国,.us代表美国,.uk代表英国
  • 通用顶级域名 gTLD
    • .com .net .org .edu .gov .mil .int
  • 基础结构域名 infrasructrure domain

    • 只有一个即,arpa,用于反向域名解析,又称为反向域名

      2.3 域名服务器

      image.png

      2.3.1 根域名服务器

  • 所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址

  • 不管是哪一个本地域名服务器,若要对互联网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。
  • 互联网上一共有13个不同IP地址的根域名服务器,它们的名字是由一个英文字母命名,由a到m

image.png

  • 根域名服务器共有13套装置,而非13个机器
  • 根域名服务器遍布全球,世界上大部分DNS域名服务器都能就近找到一个根域名服务器

image.png

2.3.2 域名服务器

  • 顶级域名服务器TLD负责管理在该顶级域名服务器注册的所有二级域名
  • 权限域名服务器用来保存该区中所有主机的域名到IP地址的映射

    • 区zone
    • 域domain

      2.3.3 本地域名服务器

  • 本地域名服务器十分重要

  • 当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器
  • 每一个互联网服务提供者ISP,或一个大学,甚至大学的系,都可以拥有一个本地域名服务器
  • 这种域名服务器有时也称为默认域名服务器

  • 本地域名服务器采用迭代查询

image.png

  • 本地域名服务器采用递归查询,少用

image.png

2.4 DNS原理

  • DNS基于UDP,默认端口为53

image.png

  • 资源记录RR

    • 在DNS的数据库中用资源记录表示主机和子域名的信息,当应用程序进行域名解析时,得到的便是域名所对应的资源记录
    • 资源记录是一个五元式
      • Domain_name Time_to_live Type Class Value
      • image.png
    • 使用dig或nslookup工具可以进行DNS解析,查看资源记录
      • image.png
      • image.png

        2.5 DNS安全问题

        2.5.1 DNS劫持

  • DNS请求复制

    • 监听网络设备,重复应答DNS请求

image.png

  • DNS请求代答
    • 通过劫持网络设备代替了真正的DNS服务器

image.png

3. 万维网和HTTP

3.1 基本概念

  • 万维网是分布式超媒体系统,它是超文本系统的扩充
  • 一个超文本由多个信息源链接成。
    • 利用一个链接可使用户找到另外一个文档。这些文档可以位于世界上任何一个接在互联网的超文本系统中
    • 超文本是万维网的基础
  • 超媒体和超文本的区别是文档内容不同。
    • 超文本文档仅包含文本信息
    • 超谋体文档还包含其他表示方式的信息,如图形、图像、声音、动画、视频等
  • 万维网需要解决的问题

    • 怎么标识分布在整个互联网上的万维网文档
    • 用何协议实现万维网上各种超链的链接
    • 怎样使得各种万维网文档都能在互联网上的各种计算机上显示出来,同时使得用户清楚地找到在什么地方存在超链接

      3.2 统一资源定位符URL

  • 由以冒号隔开的两大部分组成,并且在URl中的字符对大写或小写没有要求

  • URL的一般形式

image.png

  • 路径:若省略文件对<路径>项,则URL就指向互联网上的某个主页,经常是index.html

    3.3 万维网的工作过程

    image.png

    3.4 HTTP报文

    3.4.1 请求报文

    image.png
    image.png

  • 方法

image.png

3.4.2 响应报文

image.png

3.4.3 HTTP 状态码

  • 1xx表示通知信息的,如请求收到了或正在进行处理
  • 2xx表示成功,如接受或知道啦
  • 3xx表示重定向,表示要完成请求还必须采取进一步的行动
  • 4xx表示客户的差错,如请求中有错误的语法或不能完成
  • 5xx表示服务器的差错,如服务器失效无法完成请求

    3.5 非持久连接和持久连接

  • 非持久连接

image.png

  • 持久连接

image.png

  • http 1.0中默认是非持久连接,需要在http头加入”Connection: Keep-Alive”,才能启用Keep-Alive
  • http 1.1中默认启用Keep-Alive,如果加入”Connection: close “,才关闭

3.6 User-Server interaction

3.6.1 Authentication

image.png

3.6.2 Cookies

image.png

  • Cookie能保持“状态”

image.png

  • Cookies主要用于三方面
    • 会话状态管理:如用户登录状态、购物车、游戏分数等需要记录的信息
    • 个性化设置:如用户自定义设置,主题等
    • 浏览器行为跟踪:如跟踪分析用户行为等
  • Cookie由于安全性差、性能开销大、已逐渐被淘汰
  • 保持会话状态的新技术:Session和Token

    3.7 超文本标记语言 HTML

  • 超文本标记语言HTML中的Markup的意思是“设置标记”

  • HTML定义了许多用于排版的命令,即标签
  • HTML把各种标签嵌入到万维网的页面中,这样就构成了所谓的HTML文档,HTMl文档是一种可以用任何文本编辑器创建的ASCII码文件

    3.8 HTTPS:安全的HTTP

    image.png

    3.9 HTTP的保护

    image.png
    image.png

    3.10 WebSocket

    image.png

    4. FTP

  • FTP:File Transfer Protocol,文件传送协议

  • FTP提供交互式的访问,允许客户端指明文件的类型与格式,并允许文件具有存取权限
  • FTP屏蔽了各计算机系统的细节,适合在异构网络中任意计算机之间传送文件

image.png

  • FTP分离控制连接和数据连接

image.png
image.png

  • FTP中控制连接和数据连接的关系

image.png

  • FTP:主动or被动

image.png

5. Electronic Mail

5.1 基本概念

  • 电子邮件由信封(envelope)和内容(content)两部分组成
  • 电子邮件的传输程序根据邮件信封上的信息来传送邮件,用户在从自己的信箱中读区邮件时才能见到邮件的内容
  • 在邮件的信封上,最重要的是收件人的地址
  • 邮件地址:收件人邮箱名@邮箱所在主机的域名

image.png

5.2 mail server

image.png

5.3 SMTP

image.png

  • 连接建立:连接是在发送主机的SMTP客户和接收主机的SMTP服务器之间建立的。SMTP不使用中间的邮件服务器

image.png

  • 邮件传送:

image.png

  • 连接释放:邮件发送完毕后,SMTP应释放TCP连接

image.png

5.4 消息格式

image.png
image.png

5.5 mail access protocol

image.png
image.png

5.6 电子邮件系统安全性

image.png

6. 动态主机配置协议 DHCP

  • 连接到互联网的计算机的协议软件需要配置的参数
    • IP地址
    • 子网掩码
    • 默认路由器的IP地址
    • 域名服务器的IP地址
  • DHCP协议提供了即插即用连网的机制
    • 该机制允许一台计算机加入新的网络后自动获取IP地址,而不用手工配置
    • DHCP给运行服务器软件、且为止固定的计算机指派一个永久地址,给运行客户端软件的计算机分配一个临时地址
    • DHCP协议称临时地址的有效期为租用期。租用期的数值由DHCP服务器决定,DHCP客户也能在自己发送的报文中提出对租用期的要求

image.png

  • 流程

image.png

7. Socket编程

  • 应用层的网络应用通过Socket进行通信
  • Socket打开了应用进程与传输层协议间的通道

image.png

  • 面向连接的Socket通讯过程

image.png
image.png

  • 面向无连接的Socket通讯过程

image.png