CH8

应用层基础

应用层: 规定应用进程之间在通信时所遵循的协议

目标

  1. 掌握应用进程通信方式以及服务进程工作模式

  2. 掌握域名系统DNS基本原理和工作机制

  3. 掌握电子邮件系统体系结构及基本工作原理

  4. 掌握万维网WWW系统结构和HTTP协议工作原理

我的理解

应用

“应用”通常是指用户级别的软件程序,而“进程”是操作系统级别的概念。一个应用可以由一个或多个进程组成,而一个进程通常是一个应用的执行实例。

进程与端口

应用的进程和网络端口之间的对应关系可以是多对多的。

  • 一个进程可以使用多个端口:例如,一个Web服务器可能在一个端口(如80)上监听HTTP请求,同时在另一个端口(如443)上监听HTTPS请求。此外,某些应用程序可能同时监听多个端口以提供不同类型的服务。

  • 多个进程可以共享同一个端口:这在使用UDP协议时比较常见,因为UDP不同于TCP,没有所谓的“连接”。在使用TCP时,通常不同的进程不会共享同一个端口,因为端口被用来区分不同的连接。但是,还是存在例外,比如在某些情况下,通过使用SO_REUSEPORT套接字选项,多个进程可以共享同一个TCP端口。

  • 单个进程单个端口:这是非常常见的情况,比如一个简单的Web服务器可能只监听一个端口(例如80)。

套接字socket

套接字(socket)可以类比为一个门或者说是一个通信端点,允许来自应用程序的进程将信息发送到网络,或者从网络接收信息。从家里(主机,进程)打开门进入网络.

应用进程通信方式

应用进程: 两台主机通信实际是其上对应的两个应用进程(process)在通信,以下所有的C,B,S,P实际上指的都是应用进程

  • C/S, Client/Server 方式

  • B/S, Browser/Server方式

    优点:界面统一, 使用简单 易于维护 可扩展性好 信息共享度高(HTML兼容性好)

  • P2P, Peer to Peer 方式

服务器进程通信方式

从服务器角度看应用层

  • 循环方式:阻塞方式,无连接的

  • 并发方式:非阻塞方式,有连接的

实际上对应了两种socket

  • 流套接字(Stream Sockets):也称为TCP套接字,它们使用传输控制协议(TCP)进行通信。流套接字提供一种可靠的、双向的、基于连接的字节流。这意味着在发送数据之前,必须先建立一个连接,然后通过这个连接发送数据。流套接字常用于需要可靠传输的应用程序,如Web服务器和数据库应用。

    建立连接

    父服务进程接受到请求时创建子服务进程,子服务进程与客户进程建立连接

  • 数据报套接字(Datagram Sockets):也称为UDP套接字,它们使用用户数据报协议(UDP)进行通信。与流套接字不同,数据报套接字是无连接的,这意味着不需要在发送数据之前建立一个连接。数据报套接字通常用于不需要可靠性或顺序的应用程序,如流媒体、在线游戏或VoIP。

域名系统(DNS,Domain Name System)

向所有需要域名解析的应用提供服务,将域名映射成IP

**DNS下层使用什么协议?**UDP数据报, 端口号为53

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

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

域名服务器(名字服务器)

分为两大类

  • 权威名字服务器(authoritative name server)

    根据本地知识知道本DNSzone内容的服务器,无需查询其他服务器

    根据对应zone的层次进一步分为

    • 根名字服务器(root name server) /根服务器(root server)

    • 顶级域名字服务器(TLD name server)

    • 二级域名字服务器(second level domain name server)

    • 三级域名字服务器(third level domain name server)

    • 本地域名服务器:

      三级域及以下的名字服务器(例如tsinghua.edu.cn)通常在用户本地区域 因此三级域及以下的名字服务器也统称为本地域名服务器

  • 递归解析器(recursive resolver)/递归服务器

域名解析过程

应用进程将域名放在DNS报文中(UDP数据报, 端口号为53),发送给域名服务器

  • 递归查询

    本地域名字服务器 向根请求,域名服务器负责递归向下

  • 迭代查询

    域名服务器将下一步应查找的域名服务器ip告知本地域名字服务器,本地负责继续向下查询

为了减小根的压力,一般采用迭代.根服务器共有13套(不是13台机器) ,每套又有多个镜像,更改根服务器数据只在a.rootservers.net上进行 然后同步.

为了提高查询效率,采取高速缓存

DNS报文格式

资源记录RR格式:

1
2
3
4
5
6
Name: example.com.
Type: A #AAAA(ipv6),CNAME
Class: IN #通常是IN,表示internet
TTL: 86400
RDLENGTH: 4
RDATA: 93.184.216.34

电子邮件???学什么???

掌握电子邮件系统体系结构及基本工作原理

SMTP(simple), POP3, IMAP, Webmail;推/拉的模式

组成

  • 用户代理(user agent) ——邮件客户端

  • 传输代理(message transfer agent) ——邮件服务器

分类

  • SMTP:负责发件人的推,端口25

  • POP3,IMAP,Webmail(http)负责收件人的拉

  • POP3:收取/删除,端口110

    客户:user,pass.服务器:OK,ERR.

  • IMAP:改进,邮件与文件夹关联;允许用户代理获取邮件某些部分

  • webmail:基于web&http,用户代理就是普通的浏览器

WWW与HTTP

  • 静态web

  • 动态web

    1. 通用网关接口CGI:程序在服务器端处理

      Web服务器接收来自客户端(通常是Web浏览器)的请求,并将请求传递给后端的应用程序进行处理,然后将应用程序的响应返回给客户端。

    2. 脚本语言+数据库技术 (*.php, *.asp, *.aspx) :服务器返回脚本程序,在客户端浏览器内执行

HTTP

  • http1.0

    1. 建连:TCP三次握手连接建立–>所有的资源都需要完整的一次HTTP交互过程
    2. 请求:Request (Get /index.html)
    3. 响应:Respone
    4. 关闭:关闭TCP连接
  • http1.1

    1. 相比于1.0,提供持久连接,响应后保持连接.
    2. 支持流水线机制,按序相应(同时请求一堆,经历较少的慢启动过程,减少往返时间)
  • https

    增加ssl,在tcp之上提供安全机制

  • http2.0

代理服务器 proxy server

  • 又称为万维网高速缓存(Web cache),它代表浏览器发出 HTTP 请求

  • 万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中

  • 当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按 URL 的地址再去互联网访问该资源

所有缓存的问题:缓存一致性

解决方案:询问式策略

客户端:在发送的HTTP请求中指定缓存的时间,请求头包含If-modified-since:
服务器:如果缓存的对象是最新的,响应头包含HTTP/1.1 304 NotModified,否则服务器响应HTTP/1.1 200 OK

web安全与隐私🍪cookie

讲了什么?感觉没什么新东西

流媒体

分类:点播,直播,交互式(如腾讯会议)

MPEG

图像组(GOP)一组连续的ipb画面

  • 帧内编码帧(I帧)关键帧

  • 预测帧(P帧)

  • 双向帧(B帧)

点播流程

  • web服务器返回的http内容指向一个元文件(有音/视频文件的统一资源定位符 URL)

  • 客户浏览器将元文件交给媒体播放器

  • 媒体播放器使用元文件url,向媒体服务器发送http请求

  • 媒体播放器边下载,边压缩,边播放

缓存:

为了消除抖动客户端播放的是本地缓冲区的内容,而不是立即播放来自网络的实时内容

协议:

  • RTSP(Real-Time Streaming Protocol),控制传输(如缓存),不包含数据

  • RTP(Real-time Transport Protocol),传输数据

  • RTCP (RTP Control Protocol),控制RTP,带有发送端和接收端对服务质量的统计信息报告

  • DASH,自适应码率ABR(Adaptive bitrate)

CDN,内容分发网络

一种Web缓存系统, 靠近边缘(用户) 提供内容服务

HTTP重定向请求内容,网站所有者可以重写网页:通过CDN与内容链接的页面

其它典型应用层协议

Telnet:

服务器端,23端口(客户端任意)

FTP:

服务器端,21端口控制,20端口传输(客户端同样任意)

SNMP:简单网络管理协议

用于管理和监控网络设备的标准协议。

SNMP消息使用一种叫做管理信息库(Management Information Base,MIB)的数据结构来组织和描述设备的信息。MIB是一个层次化的树状结构,其中包含了设备的各种参数和状态。管理员可以使用SNMP的操作(如GET、SET、TRAP等)来访问和操作MIB中的数据。

  • get检测状态

  • set修改状态

  • trap代理不经检测就发送某些信息

节点的表示
• 标识符:iso.org.dod.internet
• 标号: 1.3.6.1

无线局域网WLAN

基础架构模式

  • DS

    • AP

      • STA
      • STA

      AP-STAs组成基本服务集BSS

    • AP

自组织模式

站点(STA),IBSS,站点之间直接通信

  1. DS(Distribution System):DS是指分布式系统,它是由多个无线接入点(Access Point,AP)组成的网络。DS用于连接不同的AP,使它们能够互相通信和协调工作。DS负责传输数据、管理移动设备的漫游和提供无线网络的覆盖范围扩展等功能。在一个DS中,AP之间通过无线连接或有线连接(如以太网)进行通信。

  2. AP(Access Point):AP是无线局域网中的无线接入点,也被称为基站或无线路由器。它是无线网络的中心设备,用于提供无线连接和网络接入。AP接收来自无线设备(如笔记本电脑、智能手机)的数据,并将其转发到有线网络或其他无线设备。AP负责无线信号的传播和接收,同时还提供安全认证、数据加密等功能。

  3. 无线局域网(WLAN):无线局域网是一种使用无线通信技术连接设备的局域网。它允许用户通过无线方式连接到网络,而无需使用传统的有线连接。

  4. Wi-Fi:Wi-Fi是一种基于无线局域网技术的标准,用于在设备之间进行无线通信。Wi-Fi技术基于IEEE 802.11标准,提供了高速数据传输和广泛的设备兼容性。

  5. 无线访问点(Access Point,AP):无线访问点是无线局域网的中心设备,用于提供无线连接和网络接入。它接收来自无线设备的数据,并将其转发到有线网络或其他无线设备。

  6. SSID:SSID代表无线局域网的服务集标识(Service Set Identifier),它是用于唯一标识一个无线网络的名称。用户通过选择特定的SSID来连接到所需的无线网络。

IEEE 802.11帧格式

  • 帧控制:具有多种用途

  • 持续时间:下一个要发送帧可能持续的时间(NAV)或关联ID(AID)

  • 地址1~地址4:每个地址的含义基于“去往DS”和“来自DS”域段确定

  • 顺序控制:通过序号过滤掉重复帧,或用于分片组合

  • QoS控制域段:存放数据流的QoS信息(802.11e中扩展)

  • 数据:包含任意长度的数据(0-2312字节)

  • CRC校验: 802.11采用4个字节的校验码

说明 去往DS Distribution System 来自DS Distribution System 地址1 (物理[实际]接收者) 地址2 (物理发送者) 地址3 (逻辑[最终]收发者) 地址4 (逻辑收发者)
自组织模式 0 0 DA SA IBSSID
接收自AP 0 1 DA BSSID SA
发送至AP 1 0 BSSID SA DA
AP到AP 1 1 接收AP 发送AP DA SA

CSMA/CA

带冲突避免的载波侦听多路访问

当线路忙时,每次准备发送时先退后

差错检测与确认重传

停等机制,服务器发送Ack.服务器的IFS比客户端小

终端暴露问题

• 目的:通过信道预约,避免数据帧(长帧)冲突
• 发送端发送RTS(request to send)
• 接收端回送CTS(clear to send)




本文总阅读量