滑动窗口和流量控制

  TCP利用滑动窗口实现流量控制,流量控制就是为了控制发送方发送速率,保证接收方来得及接收接收方发送的确认报文中的窗口字段可以来控制发送方窗口大小,从而影响发送方的发送速率,将窗口字段设置为0,则发送方不能发送数据。流量控制是端到端的问题。

拥塞控制

  在某段时间内,对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况叫拥塞。拥塞控制就是为了防止过多的数据注入网络,使得网络中的路由器或者链路不致过载。前提是网络能够承受现有的网络负荷。拥塞控制是全局问题,涉及所有的主机所有的路由器以及降低网络传输性能有关的所有因素。

  为了进行拥塞控制,发送方要维持一个拥塞窗口的状态变量。拥塞窗口的大小取决于网络的拥塞程度,且动态变化。发送方的发送窗口取拥塞窗口和接收方的接收窗口中较小的一个。

  • 慢开始:当主机开始发送数据时,如果立即把大量数据注入网络,那么可能引起网络阻塞,因为还不知道网络的负荷情况。应该先探测一下,由小到大增大发送窗口,由小到大的逐渐增大拥塞窗口数值cwnd,初始值为1,每经过传输一轮,拥塞窗口值加倍
  • 拥塞避免:为了防止拥塞窗口值过大,引起网络拥塞,需要设置一个慢开始门限ssthresh,当cwnd达到门限开始使用拥塞避免算法,即没经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,让拥塞窗口缓慢增大。当网络出现超时,调整门限ssthresh = cwnd/2,cwnd=1,重新进入慢开始阶段
  • 快重传、快恢复:快重传算法规定:发送方只要一连收到三个重复确认,就知道接收方没有收到该报文段,应当立即重传,这样就不会出现超时,发送方也不会人为出现了网络拥塞。**发送只要直到只是丢失了个别报文段,就不启动慢开始,执行快恢复,门限值ssthresh = cwnd/2,cwnd=ssthresh ,并开始执行拥塞避免算法。**有了快重传和快恢复,能快速恢复丢失的数据包,如果 接收到了一个不按顺序的数据段,接收方会立即发送一个重复确认,发送方收到三个重复确认,会假定确认件指出的数据丢失了,并立即重传丢失的数据段。当有单独的数据报丢失时,快重传和快恢复才能最有效的工作,当有多个数据信息报某一段很短的时间丢失,则不能有效的工作。如果没有快重传和快恢复,数据包丢失,TCP会使用定时器来要求传输暂停。

在浏览器中输入URL,到显示主页的过程

URL(Uniform Resource Locator)-统一资源定位符,用于定位互联网上的资源

<协议>://<主机>:<端口>/<路径>

  1. DNS通过域名解析IP地址
  2. 浏览器向服务器发送HTTP请求
    • TCP三次握手
    • 发送HTTP请求报文
    • 服务器处理请求并返回HTTP报文
  3. 浏览器解析渲染页面
  4. 四次回收断开TCP连接

状态码

  • 1xx:信息,服务器收到请求,需要请求者继续执行操作
  • 2xx:成功,操作成功并处理
  • 3xx:重定向,需要进一步操作以完成请求
  • 4xx:客户端错误,请求包含语法错误或者无法完成请求
  • 5xx:服务器错误,服务器处理请求的过程发生错误

HTTP的长连接,短连接

  在HTTP/1.0默认使用短连接,客户端和服务器没进行一次HTTP操作,就建立一次连接,任务结束就断开连接。当客户端访问的某个页面中包含其他Web资源,如图片、js文件等,每遇到一个这样的资源,就得重新建立一个HTTP会话。而从HTTP/1.1开始,默认使用长连接,保持连接特性,响应头的一行代码:

Connection:keep-alive

当一个网页打开后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,再次访问,会继续使用这条已经建立的连接。当然保持连接是有一定时限的,可以在不同的服务器软件设定,实现长连接需要客户端和服务器都支持长连接。HTTP协议的长连接和短连接实质上是TCP协议的长连接和短连接,HTTP本身是无连接的。

HTTP是不保存状态的协议

  HTTP是无状态的,同一个客户端第二次访问同一个服务器上的页面时,服务器响应和第一次相同,服务器并不记得这个客户。Session机制的存在就是为了解决这个问题,主要作用就是通过服务端记录用户状态。服务端给特定的用户创建特定的Session就可以标识跟踪该用户,一定时间后该Session销毁。通常采用内存和数据库进行保存Session,通常情况下,为Cookie中附加一个Session ID来跟踪

Cookie被尽用怎么办

  常用的就是利用URL重写把Session ID直接附加在URL路径的后面

Cookie的作用是什么,和Session的区别

  都是用来跟踪浏览器用户身份的会话方式。

  • Cookie:一般用来保存用户信息。比如:保存用户登录信息,下载访问时可以自动填写一些登录信息,在Cookie中存放了一个Token,下次登录根据Token值来查找用户即可。数据保存在客户端。
  • Session:主要作用是通过服务端来记录用户状态。服务端给特定的用户创建特定的Session就可以标识跟踪。数据保存在服务端,安全性更高

HTTP1.0和HTTP1.1的主要区别

  1. 长连接:在HTTP/1.0默认使用短连接,客户端和服务器没进行一次HTTP操作,就建立一次连接,任务结束就断开连接。每一次建立或者断开都要三次握手和四次挥手的开销。而从HTTP/1.1开始,默认使用长连接,保持连接特性。HTTP1.1的持续链接包括非流水线和流水线方式,流水线方式:客户收到HTTP响应报文之前就能发送新的报文请求,非流水线方式:收到前一个响应后才能发送下一个请求。
  2. 错误状态码:HTTP1.1新增24个错误状态响应码
  3. 缓存处理:HTTP1.0主要使用header的if-Modified-Since,Expire来作为缓存判断的标准。HTTP1.1则引入了缓存控制策略:Entity tag , If-Unmodified-Since, If-Match , If-None-Match等缓存头来控制缓存策略
  4. 带宽优化及网络连接的使用:HTTP1.0只需要某个对象的一部分,而却传来了整个对象,带宽浪费,HTTP1.1引入了range头域,只请求资源的某部分,状态码206

URL和URI的区别

  • URI(Uniform Resource Identifier):统一资源标识符,可以唯一标识一个资源
  • URL(Uniform Resource Locator): 统一资源定位符,可以提供该资源路径,它是一种具体URI,可以用来标识一个资源,还指明了如何找到这个资源。URI像是身份证号,URL像是家庭住址,URL不仅唯一标识资源,还提供定位该资源的信息。

HTTP和HTTPS的区别

  1. 端口:HTTP的URL默认端口80,HTTPS的URL默认端口443
  2. 安全性和资源消耗:HTTP运行在TCP之上,传输的都是明文,客户端和服务器无法验证对方身份。HTTPS运行在SSL/TLS之上的HTTP协议,SSL/TLS运行在TCP之上。所有的传输都是经过加密,采用对称加密,但是对称加密的密钥用服务器的证书进行非对称加密,所有HTTP的安全性不如HTTPS高,但是更耗资源。
    • 对称加密:密钥只有一个,加密解密都是一个密码,加密速度快,如DES、AES等。
    • 非对称加密:密钥成对出现(根据公钥无法推知私钥,相反也不行),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度慢。如RSA、DSA等。

参考:JavaGuide的pdf整理
《计算机网络》

计算机网络-拥塞控制/HTTP/URL相关推荐

  1. 计算机网络知识之URL、IP、子网掩码、端口号

    客户端:应用C/S(客户端/服务器) B/S(浏览器/服务器) 服务器:为客户端提供服务.数据.资源的机器 请求:客户端向服务端索取数据 响应:服务器对客户端请求作出反应,一般是返回给客户端数据. 目 ...

  2. 计算机网络拥塞解决方法,对TCP/IP计算机网络拥塞控制的研究

    摘 要: 为提升计算机的网络性能,更好地避免拥塞现象的发生,需要对其进行必要的技术控制.鉴于此,对基于TCP/IP协议的网络拥塞控制方法进行分析.在TCP拥塞控制中主要采用TCP Tahoe,TCP ...

  3. [计算机网络] 拥塞控制

    目录 例题1 拥塞控制和流量控制的主要区别 例题1 TCP的拥塞窗口cwnd大小与传输轮次n的关系如表T-5-39所示; (1)试画出如教材的图5-25所示的拥塞窗口与传输轮次的关系曲线. (2)指明 ...

  4. 计算机网络—拥塞控制(2)TCP

    4. TCP拥塞控制 4.1. 源算法 拥塞控制源算法 描述 Tahoe-TCP 慢启动.拥塞避免.快速重传三算法.(早期较为普遍采用的版本)paper: congest avoid.pdf Reno ...

  5. 计算机网络 拥塞控制和流量控制,简述TCP的流量控制与拥塞控制

    1. TCP流量控制 流量控制就是让发送方的发送速率不要太快,要让接收方来的及接收. 原理是通过确认报文中窗口字段来控制发送方的发送速率,发送方的发送窗口大小不能超过接收方给出窗口大小. 考虑一种特殊 ...

  6. c语言 将url图片存到本地_计算机网络系列之浏览器对URL处理,小白看完吊打面试官...

    从这篇开始,就开始了计算机网络的学习,从面试时最常见的一道面试题开始,"在浏览器输入一个网址之后发生了什么?" 一.序言 1.1什么是互联网 说到计算机网络,先来认识一下天天说的互 ...

  7. 计算机网络知识点复习(适合春招面试复习)

    计算机网络知识点 HTTP协议 HTTP协议各版本之间的区别 **HTTP1.0默认是短链接.** **HTTP1.1默认持久连接.** **HTTP2.0** **HTTP3.0** HTTPS的过 ...

  8. 2021届Java开发求职-------面试实战之Vivo提前批

    一.介绍 这个面试题目非常多,牛客网链接 我擦 但是 VIvo好像不招Java研发岗的 二.题目 Java基础 Java异常了解吗?说说平时遇到的异常?说出6种常见的java异常.写程序遇到过哪些异常 ...

  9. 《爬虫与网络编程基础》学习

    <爬虫与网络编程基础>学习 任务1:计算机网络基础 Step1-2 Step 3:关于XML格式的学习 XML文件格式 XML文件的常见操作 1.构建xml格式文件 2. 保存XML文件 ...

最新文章

  1. pip install models ModuleNotFoundError: No module named ‘base‘
  2. Leetcode409最长回文串 -字符哈希
  3. 编写测试用例的方法_适合小白的测试用例编写方法,一看就会!
  4. ubuntu下软件删除
  5. python argparse模块详解_python学习之argparse模块
  6. 精选22个Pandas函数!
  7. Android中调用系统已安装的播放器来播放网络流媒体视频
  8. Envoy实现.NET架构的网关(三)代理GRPC
  9. LazyInitializationException的四种解决方案–第1部分
  10. 个人知识整理(javascript篇初识)
  11. mysql 表上线_腾讯云上线数据库 MySQL 8.0 版
  12. 在windows使用vs2008编译live555
  13. NOR Flash、NAND Flash、SPI Flash、CFI Flash
  14. MySQL数据导出:ERROR 1 (HY000) 错误解决
  15. html超链接调用php,html网页超链接怎么做
  16. 达人评测 iPad Pro 2021怎么样
  17. 速率法和终点法的区别_两点法、终点法、速率法
  18. commons-math3-3.6.1-org.apache.commons.math3.analysis.function-包下的类(三)-中英对照文档及源码赏析
  19. 一个执念重度患者的自白
  20. java语言笔记io

热门文章

  1. 移动端扫描vin码(车架号)识别
  2. 多张图片合成一份PDF(不使用其他软件)
  3. 什么是无线cpe与AP?如何区分二者的功能?
  4. 计算机组成原理时序与启停实验,计算机组成原理时序与启停实验.doc
  5. el-upload在表单循环中,实现选择,删除,拖拽,并且和表单数组对上
  6. CCPC-Wannafly Summer Camp 2019 全记录
  7. Tableau 第十三天 雷达图和凹凸图
  8. 前台访客与后台管理员如何实现不同端口访问
  9. java毕业设计大学生心理健康系统Mybatis+系统+数据库+调试部署
  10. 微信在线答题小程序的应用场景有哪些