| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 哈工大MOOC计算机网络第二章网络应用上 -> 正文阅读 |
|
[网络协议]哈工大MOOC计算机网络第二章网络应用上 |
2.1网络应用层内容概述2.2网络应用的基本原理1.网络应用的体系结构1>客户机/服务器结构(Client-Server,C/S)????????????????如Web????????服务器不间断提供服务,客户机使用服务 ???????? ????????服务器:需要不间断提供服务,有永久性访问地址/域名,要有大量的服务器并行处理用户请求,同时具有可扩展性 ? ? ? ? 客户机:与服务器通信使用服务器提供的服务,可以间歇性接入网络,可能使用动态IP地址,不与其他客户机直接通信。 2>点对点结构(Peer-to-peer,P2P)? ? ? ? ? ? ? ? 如文件共享? ? ? ? ? ? ?? ? ? ? ? ?没有永远在线的服务器,任意端系统/节点之间可以直接通讯,节点间歇性接入网络,节点可能改变IP地址。 ? ? ? ? ?优点:高度可伸缩 ? ? ? ? ?缺点:难于管理 3>混合结构(Hybird)? ? ? ? ? ? ? ? 如Napster? ? ? ? Mapster中文件传输使用P2P结构,文件搜索使用C/S结构。每个节点向中央服务器登记自己的内容,每个节点向中央服务器提交查询请求,查找感兴趣的内容。 ? ? ? ? 避免了都从服务器下载,避免了服务器成为性能瓶颈 2.网络应用进程通信1>网络应用的基础:进程间通信? ? ? ? 同一主机上运行的进程之间如何通信? ? ? ? ? ? ? ? ? 通过进程间通信机制,由操作系统提供 ? ? ? ? 不同主机上运行的进程间如何通信? ? ? ? ? ? ? ? ? 通过消息交换 ? ? ? ? 客户机进程:发起通信的进程。服务器进程:等待通信请求的进程。(P2P架构中也存在客户机进程和服务器进程) 2>套接字Socket? ? ? ? 进程间通信利用Socket发送/接受消息实现,socket是操作系统提供的关于网络编程的API ???????? ?3>寻址进程? ? ? ? 不同主机上的进程间通信,那么每个进程必须拥有标识符。 ? ? ? ? 仅有IP地址不足以定位进程,因为同一主机上可能同时又多个进程需要通信 ? 端口号:为主机上每个需要通信的进程分配一个端口号(0-65536) ? ? ? ? HTTP Server:80端口 ? ? ? ? Mail Server:25端口 ? ? ? ? IP地址加上端口号唯一的标识一个网络上的进程 4>应用层协议公开协议(HTTP,SMTP,.......) ? ? ? ? ? 1.由RFC(Request For Comments)定义 ? ? ? ? ? ?2.允许互操作 私有协议 ? ? ? ? ? ? 多数P2P文件共享应用 应用层协议的内容: ????????消息类型:请求消息,响应消息 ????????消息的语法/格式: ? ? ? ? ????????消息中有哪些字段,每个字段如何描述 ??? ?????????字段的语义:字段中信息的含义 ? ? ? ? 规则:进程何时发送/响应消息,进程如何发送/响应消息 3.网络应用的需求与传输层服务网络应用对传输服务的需求:? ? ? ? 1.数据丢失/可靠性 ? ? ? ? ? ? ? ? 某些应用可以有一部分数据丢失:网络电话,视频丢帧 ? ? ? ? ? ? ? ? 某些应用要求100%可靠数据传输:文件传输,银行汇款等 ? ? ? ? 2.时间/延迟? ? ? ? ? ? ? ? ? 有些应用只有在延迟足够低时才”有效“:网络电话,网络游戏 ? ? ? ? 3.带宽 ? ? ? ? ? ? ? ? 某些应用要求带宽达到最低要求时才有效:网络视频 ? ? ? ? ? ? ? ? 某些应用能够适应任何带宽——弹性应用:email Internet提供的传输服务:
2.3Web应用1.Web与HTTPWeb基本构成要素:?????????网页,网页互相链接。 ????????网页包含多个对象(HTML文件/JPEG图片/视频文件/动态脚本等),基本HTML文件包含对其他对象引用的链接 ????????对象的寻址:URL统一资源定位器? ? ? ? Scheme://host:post/path HTTP(超文本传输协议)协议概述:万维网应用遵循的协议采用C/S结构 ????????客户——Browser:请求、接收、展示Web对象 ????????服务器——Web Server:响应客户的请求,发送对象 使用TCP传输服务 ? ? ? ? 1.服务器在80端口等待客户的请求 ? ? ? ? 2.浏览器发起到服务器的TCP连接(创建套接字Socket) ? ? ? ? 3.服务器接受来自浏览器的TCP连接 ? ? ? ? 4.浏览器(HTTP客户端)与Web服务器(HTTP服务器)交换HTTP消息 ? ? ? ? 5.关闭TCP连接 无状态机制:服务器不维护任何有关客户端过去所发请求的信息 2.HTTP连接(1)HTTP连接的两种类型? ? ? ? 1>非持久性连接:每个TCP连接最多允许传输一个对象(HTTP 1.0版本使用)
? ? ? ? ? ? ? ? 响应时间分析:Total=2RTT+文件发送时间 ? ? ? ? ? ? ? ? ? ? ? ? 1.发起、建立TCP连接:1个RTT ? ? ? ? ? ? ? ? ? ? ? ? 2.发送HTTP请求消息到HTTP响应消息的前几个字节到达:1个RTT ? ? ? ? ? ? ? ? ? ? ? ? 3.响应消息中所含文件/对象传输时间 ???????????????????????????????????????????????? ? ? ? ? ? ? ? ? ? ? ? ? 注:RTT从客户端发送一个很小的数据包到服务器并返回所经历的时间 ? ? ? ? ? ? ? ? 问题: ? ? ? ? ? ? ? ? ? ? ? ? 1.每个对象都需要2个RTT ? ? ? ? ? ? ? ? ? ? ? ? 2.操作系统需要为每个TCP连接开销资源 ? ? ? ? ? ? ? ? ? ? ? ? 3.浏览器打开多个并行的TCP连接以获取网页所需对象,给服务器造成负担 ? ? ? ? 2>持久性连接:每个TCP连接允许传输多个对象 (HTTP1.1版本默认使用) ? ? ? ? ? ? ? ? 发送响应后服务器保持TCP连接的打开,后续的HTTP消息可以通过这个连接发送 ? ? ? ? ? ? ? ? 分类: ? ? ? ? ? ? ? ? ? ? ? ? 1.无流水的持久性连接:客户端只有收到前一个响应后才发送新的请求 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 每个被引用的对象耗时一个RTT ? ? ? ? ? ? ? ? ? ? ? ? 2.带有流水机制的持久性连接: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 客户端只要遇到一个引用对象就尽快发出请求,理想情况下收到所有的引用 ? ? ? ? ? ? ? ? ? ? ? ? ?对象只需耗时约1个RTT 3.HTTP消息格式? ? ? ? 请求消息、响应消息 ? ? ? ? (1)HTTP请求消息? ? ? ? ? ? ? ? 使用ASCII码写成,人直接可读 ? ? ? ? HTTP请求消息的通用格式: ? ? ? ? 上传输入的方法: ? ? ? ? ? ? ? ? 1>POST方法。在请求消息的消息体(entity body)中上传客户端的输入 ? ? ? ? ? ? ? ? 2>URL方法。使用GET方法,输入信息通过request行的URL字段上传
??????(2)HTTP响应消息
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年2日历 | -2025/2/23 7:21:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |