当前位置: 首页 > news >正文

计算机网络自定向下:第二章复习

目录

2.1应用层协议原理

2.2Web和Http

2.3文件传输协议(FTP)

2.4EMail

2.5DNS

2.6 P2P应用

2.7 CDN

2.7,2.8TCP,UDP套接字编程基本不考


2.1应用层协议原理

网络应用的体系结构

1.用户-服务器架构

2.对等模式

3.混合上面两种

注意,网络核心中没有应用层软件

  • 网络应用只会在端系统中存在

C/S体系结构

服务器

  • 一直运行
  • 端口ip固定

客户端

  • 主动和服务器通信
  • ip不固定,不直接和其他客户端通信

p2p体系结构

  • 没有一直运行的服务器
  • 任意端系统之间可以直接进行通信
  • 各个主机可以间隙链接并且ip是可以改变的

混合体系

集中部分

  • 用户上线时需要向中心的服务器注册ip地址
  • 用户和中心服务器联系获取想要的信息和资源

P2P部分

就是两个用户聊天的时候

进程通信

进程就是在主机上运行的应用程序

在同一个主机内,使用进程间通信机制通信,不同主机间使用报文来进行通信

需要解决的问题

  • 进程标识以及寻址问题
  • 传输层-应用层提供服务是如何
  • 如何使用传输层提供的服务实现应用进程之间的报文交换(毕竟传输层针对的是主机到主机而不是进程到进程)

问题1:对进程进行编制

每个进程给端口号,使用IP+port标识端节点即可

本质上,一对主机进程之间通信由两个端节点组成

问题2

但是每次传输信息都要带这么多信息不方便,于是就有了Socket(用代号来标识通信的双方或者单方)

TCP实现

TCP Socket:源ip,源端口,目标IP,目标端口,四元组标识唯一会话

应用可以直接使用这个标识来和远程的应用程序通信

不必在每一个报文的发送的时候都要指定这个四元组

UDPsocket
  • UDPsocket使用的只有本IP,本端口,并不需要标识对方的ip和端口(因为是无链接的)
  • 但是需要在传输报文的时候必须提供对方ip以及端口
  • 该套接字指定了应用程序所在的一个端节点

套接字(socket)用户进程就是通过这个发送报文或者接受报文

问题3:如何使用传输层提供的服务实现应用

 定义应用层协议:报文格式,解释,时序等

 编制程序,通过API调用网络基础设施提供通信 服务传报文,解析报文,实现应用时序等

应用层协议

  • 定义了运行在不同端系统上的应用程序应该如何交换报文
  • 定义了报文类型,请求和应答报文
  • 字段的语义等等

web应用组成:

HTTP协议,Web客户端,服务端,HTML

应用层需要传输层提供的服务有?

1.数据丢失率

2.延迟

3.吞吐

4.安全性,完整性,可认证性

UDP存在的必要性

1.能够区分进程,IP不能(只提供端到端的)

2.无需建立链接

3.不做可靠新工作

4.没有流量控制以及拥塞控制,应用能够按照设定的速度发送数据

TCP和UDP的安全性

2.2Web和Http

web

  • web页有对象组成
  • 对象可以是小程序,HTML文件,web页有一个基本的html文件,该文件含有其他若干对象的引用
  • 通过url对对象进行引用,具体格式如下

Http(超文本传输协议)

  • 属于应用层
  • 基于C/S模式(客户/服务器模式)
  • 使用的是TCP
  • 客户端发起和服务器的TCP链接(建立套接字,服务器的端口为80)
  • 浏览器和服务器之间交换HTTP报文
  • 无状态,服务器不维护用户任何信息

Http链接

  • 非持久性
    • 只能由一个对象在TCP链接上传输
  • 持久性
    • 多个对象可以在一个TCP链接上传输

响应时间模型

  • RTT:一个小分组从客户端到服务器,在回到客户端的时间。
  • 响应时间:一个RTT用来建立TCP链接,一个RTT用来HTTP请求并且等待响应,以及文件传输时间

HTTP请求报文(请求响应报文都是ASCII,人能直接阅读的(

其实可以用下面的理解,下面的就是各个部分对应的内容

HTTP1.0只有GET,POST,HEAD

HTTP1.1添加了PUT,DELETE

HTTP响应报文

状态响应码!!!


Cookie

很多的门户网站都使用cookie(可以看作是用户信息凭证)

能维护用户登录状态,可以指导很多用户的信息

主要组成部分和使用的情节如下

Web缓存(代理服务器)

  • 也就是不需要访问原始服务器就能直接满足客户的请求
  • 浏览器将所有的HTTP请求直接发送给缓存服务器,缓存服务器存有信息直接返回信息,没有就去原始服务器请求
  • 增加web缓存的代价可比增强链路带宽的代价廉价很多

条件GET

如果缓存器中的对象拷贝是最新的,就不要发送对象,否则向原始服务器请求最新对象

实现过程:在HTTP请求中指定缓存拷贝的日期,缓存的对象晚过这个日期那缓存服务器的响应不包含对象

2.3文件传输协议(FTP)

ftp服务器:端口号为21

该协议将TCP作为传输协议

FTP服务器维护用户的状态信息,用户账户等等,是有状态的

2.4EMail

主要组成部分

  • 用户代理(其实就是“邮件阅读器”,可以撰写,编辑,阅读邮件,输出,输入邮件都保存在服务器上)
  • 邮件服务器(管理和维护发送给用户的邮件,输出报文队列保持等待发送邮件报文,服务器之间使用SMTP协议发送email报文)
  • 简单邮件传输协议:SMTP

SMTP

基于端口25,使用TCP

传输的三个阶段

    • 握手
    • 传输内容
    • 关闭

命令是ASCII文本,响应是响应码和状态信息

报文必须是7位ASCII码

SMTP总结

  • 要求使用持久链接
  • SMTP要求报文时7位ASCII码
  • SMTP是推协议(相比HTTP的拉协议)
  • SMTP多个对象包含在一个报文中,HTTP:每个对象封装在各自的响应报文中

邮件访问协议(注意接收邮件的时候用的是什么协议)

  • pop(邮局访问协议),用户身份确认(代理《--》服务器并且下载)
  • imap:internet邮件访问协议,有更多特性,再服务器上处理存储的报文
  • HTTP方便

2.5DNS

工作:将域名转换为IP地址

分层的,基于域的命名机制

若干分布式的数据库完成转换工作

运行在UDP上的端口为53的应用服务

属于Internet的核心功能,但是以应用层协议实现

DNS主要目的:

1.实现主机名-ip的转换

2.主机别名到规范名字的转换

3.邮件服务器别名到邮件服务器正规名字的转换

4.负载均衡

域名

从本域往上,直到树根

中间使用.间隔不同的级别

注意DNS名字空间是互不相较的,每个区域都是树的一部分

每个区域都有一个名字服务器:维护着它管辖区域的权威信息

DNS是保存资源记录RR的分布式数据库

不同的服务器类型:

  • TLD服务器(顶级域服务器)
  • 权威DNS服务器
  • 根DNS服务器
  • 本地DNS服务器

具体查询过程(!!!)

向本地DNS服务器发送DNS请求,没有的话,(本地服务器一般缓存着根服务器)

向根服务器发送请求,根服务器不负责解析域名,负责告诉本地DNS解析器应该向哪个顶级域DNS查询

接着向顶级DNS查询,最后向DNS权威服务器查询,最后将ip地址获取并且返回

可以采用递归查询或者迭代查询(前者根服务器负担大)

DNS报文

查询和响应报文格式相同

  • 报文首部标识符为16字节,flag代表各种信息(查询/应答,递归,应答是不是权威)

2.6 P2P应用

下面是用户请求数量和最小响应时间关系图,对应C/S和P2P两种

P2P中所有对等方都是服务器(可扩展性好)

2.7 CDN

CDN 是什么?

CDN(Content Delivery Network,内容分发网络) 是一种分布式服务器系统,用于加速网站、视频、图片等静态或动态内容的全球访问速度。它的核心原理是通过将内容缓存到离用户更近的服务器节点,减少网络延迟,提升加载性能。

多媒体流化服务DASH(!)

服务器怎么通过网络向上万个用户同时流化视频内容

通过CDN

2.7,2.8TCP,UDP套接字编程基本不考

http://www.xdnf.cn/news/947305.html

相关文章:

  • GPIO(通用输入输出)与LPUART(低功耗通用异步收发传输器)简述
  • 简繁体智能翻译软件
  • 大数据清洗加工概述
  • 【c语言】安全完整性等级
  • Vue 3 + WebSocket 实战:公司通知实时推送功能详解
  • linux cgroup内存/io/cpu/网络使用总结
  • 怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)
  • Android 开发中配置 USB 配件模式(Accessory Mode) 配件过滤器的配置
  • Android屏幕刷新率与FPS(Frames Per Second) 120hz
  • MySQL中【正则表达式】用法
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
  • 今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
  • web vue 项目 Docker化部署
  • 【DVWA系列】——xss(Reflected)——Medium详细教程
  • 破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
  • Python ROS2【机器人中间件框架】 简介
  • leetcodeSQL解题:3564. 季节性销售分析
  • 均衡后的SNRSINR
  • idea 设置git提交快捷键
  • 【习题】DevEco Studio的使用
  • 《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析(四)DPHY ECC
  • LangGraph 应用实例解析
  • 归并排序算法及其在算法中的应用
  • 使用Python 构建支持主流大模型与 Ollama 的统一接口平台
  • 查找日志文件中​​最后一次出现某个关键词的上下 20 行​​
  • ZYNQ学习记录FPGA(二)Verilog语言
  • matlab自控仿真【第一弹】❀传递函数和输出时域表达式
  • VAS1086Q 奇力科技线性芯片车规用品LED驱动芯片
  • 鸟巢邂逅 3D 全景漫游,一场科技与建筑的梦幻交织​
  • 成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战