应用层(中)

简介: 应用层(中)

Internet 传输层提供的服务


1. TCP 服务:


  • 可靠的传输服务
  • 流量控制:发送方不会淹 没接受方
  • 拥塞控制:当网络出现拥 塞时,能抑制发送方
  • 不能提供的服务:时间保 证、最小吞吐保证和安全
  • 面向连接:要求在客户端 进程和服务器进程之间建 立连接


2. UDP服务


  • 不可靠数据传输
  • 不提供的服务:可靠, 流量控制、拥塞控制、 时间、带宽保证、建立 连接


UDP服务存在的必要性


  • 能够区分不同的进程,而IP服务不能
  • 在IP提供的主机到主机端到端功能的基础上,区分了主机的 应用进程
  • 无需建立连接,省去了建立连接时间,适合事务性的 应用
  • 不做可靠性的工作,例如检错重发,适合那些对实时 性要求比较高而对正确性要求不高的应用
  • 因为为了实现可靠性(准确性、保序等),必须付出时间代 价(检错重发)
  • 没有拥塞控制和流量控制,应用能够按照设定的速度 发送数据
  • 而在TCP上面的应用,应用发送数据的速度和主机向网络发送 的实际速度是不一致的,因为有流量控制和拥塞控制


Internet应用及其应用层协议和传输协议


1689601351513-d962ba06-e8e5-4cb0-a183-04c0c95161f7.png

安全TCP


TCP & UDP都是不安全的,他们在传输过程中都不提供任何的安全性, 都是明文传输的, 明文通过互联网传输 ,甚至密码


如何增加安全性 ?


1.SSL : 在TCP上面实现,提供加密的TCP连接

基本上是在应用层, 但是也可以在传输层。


1.SSL socket API

应用通过API将明文交 给socket,SSL将其加 密在互联网上传输


Web and HTTP



相关术语:


Web页:由一些对象组成


对象可以是HTML文件、JPEG图像、Java小程序、声 音剪辑文件等


Web页含有一个基本的HTML文件,该基本HTML文 件又包含若干对象的引用(链接)


通过URL对每个对象进行引用


访问协议,用户名,口令字,端口等;


URL格式:


1689677274513-61bc860b-50d6-4ae6-a2b7-3a3bdd53a06b.png


互联网中的所有指向都是通过这种对象的形式呈现的网状。


我们想要找到某一个内容从这个网状结构中 ,就需要通过搜索引擎来建立索引,然后通过我们输入的关键字作为索引, 他就会将匹配的内容给你。


HTTP概述


Http: 超文本传输协议


包括:


  • Web的应用层协议
  • 客户/服务器模式


客户: 请求、接收和显示 Web对象的浏览器


服务器: 对请求进行响应, 发送对象的Web服务器


1689677407643-6c98f7ce-c2a9-47f2-83e3-c00624bd107c.png


协议有:


  • HTTP 1.0: 在RFC 1945中描述
  • HTTP 1.1: 在RFC 2068中描述


HTTP是跑在TCP之上的(步骤)★★★★★


  1. 首先, 客户发起一个与服务器的 TCP连接 (建立套接字) , 端口号为 80
  2. 服务器接受客户的TCP连 接
  3. 然后, 在浏览器(HTTP客户端) 与 Web服务器(HTTP服 务器 server)交换HTTP 报文 (应用层协议报文 )
  4. 最后, TCP连接关闭


解释:


服务器端建立的时候会有一个Socket 用来守护80 端口。(假装叫Socket1)


客户端通过请求发送到服务器之后 ,服务器端会产生Socket (叫Socket2) ,这个Socket代表的就是这个客户端和 当前服务器端建立的会话关系。


之后来的请求同样会建立会话关系(Socket i)


刚开始建立的Socket1并不会有动作, 他会等待其他浏览器的请求, 来建立并发的会话关系


上述的Socket处理请求就类似于: 他(Socket1)是大堂经理,来客人后,把客人分给手下具体营业员管理(Socket i)


HTTP是无状态的。服务器并不维护关 于客户的任何信息


维护状态的协议很复杂!


  • 必须维护历史信息(状态)
  • 如果服务器/客户端死机,它 们的状态信息可能不一致, 二者的信息必须是一致
  • 无状态的服务器能够支持更 多的客户端


HTTP连接


非持久HTTP(三次握手初讲)


  • 最多只有一个对象在 TCP连接上发送
  • 下载多个对象需要多 个TCP连接
  • HTTP/1.0使用非持 久连接


在一个Web浏览器和一个Web服务器想要建立连接的时候(HTTP 1.0 版本)


  1. 首先借助SocketAPI 告诉下面的TCP要根对方建立连接了(发送请求)
  2. 然后这个请求还会回来(建立确认), 然后进行交互才能完成。
  3. 借者就是发送HTTP请求, 然后响应等等


1689679117233-dbb21c00-c0bc-47cd-9c21-302134365d2d.png1689679134409-ee90033c-0174-4f94-bc31-7ad7dad12adb.png



响应时间模型


往返时间RTT(round-trip time):一个小的分组从客 户端到服务器,在回到客户 端的时间(传输时间忽略)


响应时间:


  • 一个RTT用来发起TCP连接
  • 一个 RTT用来HTTP请求并 等待HTTP响应
  • 文件传输时间


共:2RTT+传输时间


传输是把分组打出去的时间,传播是分组在介质中运行的时间


1689679487549-997c625f-852b-4a46-9728-bae3d83d40a3.png


持久HTTP


  • 多个对象可以在一个 (在客户端和服务器 之间的)TCP连接上 传输
  • 在相同客户端和服务器之间的后 续请求和响应报文通过相同的连 接进行传送
  • 客户端在遇到一个引用对象的时 候,就可以尽快发送该对象的请 求
  • HTTP/1.1 默认使用 持久连接


非持久的缺点:


  • 每个对象要2个 RTT
  • 操作系统必须为每个TCP连接分 配资源
  • 但浏览器通常打开并行TCP连接 ,以获取引用对象


(一) 流水线方式的持久HTTP


  • 客户端只能在收到前一个响应后 才能发出新的请求
  • 每个引用对象花费一个RTT
  • HTTP/1.1 默认使用 持久连接


类似于并行的方式吧,


(二) 非流水线方式的持久HTTP


  • HTTP/1.1的默认模式
  • 客户端遇到一个引用对象就立即 产生一个请求
  • 所有引用(小)对象只花费一个 RTT是可能的



目录
相关文章
|
6月前
|
缓存 网络协议 前端开发
深入了解常见的应用层网络协议
深入了解常见的应用层网络协议
深入了解常见的应用层网络协议
|
5月前
|
JavaScript Java 网络安全
|
2月前
|
安全 网络协议 网络安全
应用层常见的协议有哪些?
应用层常见的协议有哪些?
312 1
|
存储 缓存 网络协议
【计算机网络】第2章 应用层
【计算机网络】第2章 应用层
|
6月前
|
存储 消息中间件 设计模式
计算机网络——应用层(1)
计算机网络——应用层(1)
YI
|
网络协议 API
计算机网络-应用层(上)
计算机网络-应用层
YI
149 0
|
6月前
|
网络协议 网络架构
【计算机网络】应用层
【计算机网络】应用层
74 0
【计算机网络】应用层
|
存储 缓存 网络协议
计算机网络-应用层
应用层概述 应用层是计算机网络体系结构的最顶层,其功能是设计和建立计算机网络的最终目的,也是在计算机网络中发展最快的部分。从早期基于文本的应用,例如电子邮件、远程登录,文件传输,新闻组等到20世纪90年代,将因特网带入千家万户的万维网,再到当今流行的即时通信,p2p文件共享, 以及各种音视频应用,网络应用一直层出不穷。此外,计算设备的小型化和无处不在,宽带住宅接入和无线接入的日益普及和迅速发展,为未来更多的新型网络应用提供了广阔的舞台。 例如我们在浏览器的地址栏中输入某个网站的域名号,就可以访问该网站的内容,这就是推动因特网飞速发展的万维网应用。其相关的应用层协议为超文本传送协议HTTP。
55 0
|
网络协议
应用层报文怎么传输到另一个应用层的?
应用层报文怎么传输到另一个应用层的?
|
域名解析 负载均衡 网络协议
应用层续(上)
应用层续(上)
99 0
应用层续(上)
下一篇
无影云桌面