IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 计算机网络之应用层 -> 正文阅读

[网络协议]计算机网络之应用层

1.应用层

网络应用的体系结构

可能的应用架构:

  1. 客户 - 服务器模式( C/S:client/server )

  2. 对等模式 (P2P:Peer To Peer)

  3. 混合体:客户 - 服务器和对等体系结构

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

服务器

  • 一直运行

  • 有固定的IP和端口号

  • 拓展性差

客户端

  • 主动与服务器进行通信

  • 可能是动态IP地址

  • 不直接与其他客户端通信

对等体( P2P )体系结构

  • 几乎没有一直运行的服务器

  • 任意端系统之间可以进行通信

  • 每个节点既是客户端又是服务器

  • 参与的主机间歇性连接且可以改变IP地址

进程通信

进程

在主机上运行的应用程序

  • 同一个主机内,使用进程间通信机制进行通信

  • 不同主机,通过交换报文(Message)进行通信

客户端进程与服务器进程

  • 客户端进程:发起通信的进程

  • 服务器进程:等待连接的进程

分布式进程通信解决的问题

问题1:对进程进行编址(addressing)

进程为了接收报文,必须要有标识 (SAP)

  • 主机:唯一的32位IP地址

  • 所采用的传输层协议:TCP/UDP

  • 端口号

例如

HTTP:TCP 80

Mail:TCP 25

FTP:TCP 2

问题2:传输层提供的服务 - 需要穿过层间的信息

  • 层间接口必须要携带的信息

    • 要传输的报文(对于本层来说: SDU )

    • 谁传的:对方的应用进程的标示: IP+TCP(UDP) 端口

    • 传给谁:对方的应用进程的标示:对方的 IP+TCP(UDP) 端口号

  • 传输层实体( tcp 或者 udp 实体)根据这些信息进行 TCP报文段( UDP 数据报)的封装

    • 源端口号,目标端口号,数据等

    • 将 IP 地址往下交 IP 实体,用于封装 IP 数据报:源 IP, 目标 IP

问题 3 :传输层提供的服务 - 层间信息的代表

TCP socket

TCP spcket: 源IP、源端口、目标IP、目标端口

TCP 之上的套接字( socket )

  • 4 元组: ( 源 IP ,源 port ,目标 IP ,目标 port)

  • 唯一的指定了一个会话( 2 个进程之间的会话关系)

  • 应用使用这个 标示,与远程的应用进程通信

  • 不必在每一个报文的发送都要指定这 4 元组

  • 就像使用操作系统打开一个文件, OS 返回一个文件句 柄一样,以后使用这个文件句柄,而不是使用这个文件 的目录名、文件名

  • 简单,便于管理

UDP 之上的套接字( socket )

  • 2 元组: IP , port (源端指定)

  • UDP 套接字指定了应用所在的一个端节点( end point )

  • 在发送数据报时,采用创建好的本地套接字(标示 ID ),就不必在发送每个报文中指明自己所采用的 ip 和 port

  • 但是在发送报文时,必须要指定对方的 ip 和 udp port( 另外一个段节点

应用层协议

  1. 公开协议

    HTTP SMTP

  2. 专有(私有)协议

    协议不公开 Skype

概念

  1. 数据丢失率

    • 有些应用则要求 100% 的可靠数据传输(如文件)

    • 有些应用(如音频)能容忍一定比例以下的数据丢失

  2. 延迟

    • 一些应用 出于有效性考虑,对数据传输有严格的时间限制,例如Internet 电话、交互式游戏,延迟、延迟差

  3. 吞吐

    • 一些应用(如多媒体)必须 需要最小限度的吞吐,从而 使得应用能够有效运转

    • 一些应用能充分利用可供使 用的吞吐 ( 弹性应用 ) 如何描述传输层的服务?

  4. 安全性

    • 机密性

    • 完整性

    • 可认证性(鉴别)

常见应用对传输服务的要求

应用数据丢失率吞吐时间敏感性
文件传输不能丢失弹性
email不能丢失弹性
web文档不能丢失弹性
实时音视频容忍丢失音频 5k-1Mbps/视频 0K-5Mbps100ms
储存音视频不能丢失同上几秒
交互式游戏容忍丢失几kbps100ms
即时消息不能丢失弹性是和不是

TCP与UDP

TCP:

  • 可靠的传输服务

  • 流量控制:发送方不会淹没接受方

  • 拥塞控制:当网络出现拥塞时,能抑制发送方

  • 面向连接:要求在客户端进程和服务器进程之间建立连接

UDP:

  • 不可靠数据传输

  • 不可靠的服务

UDP存在的必要性

  • 无需建立连接

  • 没有拥塞控制和流量控制,应用能按照设定的速度发送数据

常用应用层协议及其传输协议

应用应用层协议传输层协议
E-mailSMTPTCP
WEBHTTPTCP
流媒体专用协议TCP/UDP
网络电话专用协议TCP/UDP

HTTP

HTTP分类:

  • 非持久HTTP

    • 最多只有一个对象在TCP上发送

    • HTTP1.0采用非持久连接

  • 持久HTPP

    • 多个对象可以在一个TCP上传输

    • HTTP1.1采用持久连接

HTTP响应报文

在这里插入图片描述

GET、POST区别

  • get把请求的数据放在url上,即HTTP协议头上,post把数据放在HTTP的包体内

  • get提交的数据最大是2k,post理论上没有限制

  • get产生一个TCP数据包,post产生两个TCP数据包

  • get效率比post高

  • get可以缓存,post不可以缓存

  • post比get安全

HTTP状态码

  • 200 OK 请求成功,请求对象包含在响应报文的后续部分

  • 301 Moved Permanently 请求的对象已经被永久转移了;新的 URL 在响应报文的 Location:首部行中指定 客户端软件自动用新的 URL 去获取对象

  • 400 Bad Request 一个通用的差错代码,表示该请求不能被服务器解读

  • 404 Not Found 请求的文档在该服务上没有找到

  • 505 HTTP Version Not Supported

DNS(Domain Name System)

基于UDP

作用:实现主机名 -IP 地址的转换 (name/IP translate)

域名服务器

类型作用
根域名服务器最高层次的域名服务器,本地域名服务器解析不了的域名就会向其求助
顶级域名服务器负责管理在该顶级域名服务器下注册的二级域名
权限域名服务器负责一个区的域名解析工作
本地域名服务器当一个主机发出DNS查询请求时,这个查询请求首先发给本地域名服务器

域名查询:

  • 递归查询

    • 主机->本地DNS服务器->根DNS服务器->TLD DNS服务器->权威DNS服务器

      ->TLD DNS服务器->根DNS服务器->本地DNS服务器->主机

  • 迭代查询

    • 主机->本地DNS服务器->根DNS服务器->本地DNS服务器->TLD DNS服务器->本地DNS服务器->权威DNS服务器->本地DNS服务器->主机

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-24 08:19:34  更:2021-11-24 08:21:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年7日历 -2024/7/3 20:49:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码