ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

计算机网络 4.传输方式、DNS、长短连接

2021-12-14 01:02:53  阅读:135  来源: 互联网

标签:-- 传输方式 server 计算机网络 client DNS 服务器 连接


网络传输方式

传输方式

​ 网络通信中根据数据发送方式进行了多种分类,分类方法主要有两种:

  • 面向无连接
  • 面向有连接

​ 数据发送的方法主要是 TCP 和 UDP

面向无连接

​ 面向无连接型不需要建立和断开连接,发送端可于任何时候自由发送数据,不需要确认接收端是否存在,即使接收端不存在或无法接收数据,发送端也能将数据发送出去,接收端也不知道自己会在何时从哪里接收到数据,因此,面向无连接的情况下,接收端需要时常确认是否收到了数据

面向有连接

​ 面向有链接型在发送数据之前,需要在收发主机之间建立一条连接通信线路,只有对方确认连接才能进行真正的通信,通信结束后需要断开连接,因此必须在通信传输前后专门进行建立和断开连接的处理


DNS服务器

​ DNS(domain name system)域名解析系统,是一台运行在互联网上的服务器,用来将域名转成对应的IP地址

浏览器请求流程

​ 计算机之间互访,只能识别IP地址的访问,不能识别域名的访问,所以需要通过DNS服务器用域名查询对应的IP地址

客户端访问域名 --> 请求本地DNS --> 请求DNS服务器 --> 获取目标IP地址 --> 建立连接 --> 服务器返回HTML --> 渲染

本地DNS

​ 本地DNS是一个文件hosts,内容为IP地址和域名的对应关系表

​ hosts文件路径:

​ Windows:C:\Windows\System32\drivers\etc\hosts

​ Linux:/etc/hosts


长连接和短连接

​ HTTP1.0中默认使用短连接,也就是浏览器和服务器每进行一次HTTP操作,就建立一次连接,任务结束就断开连接,如果浏览器访问的某个Web页中包含其他的Web资源,如JS文件、CSS文件、图片文件等,浏览器每遇到这样一个Web资源就会建立一次HTTP会话

​ 从HTTP1.0开始默认使用长连接,以保持连接特性,使用长连接的HTTP协议会在响应头加入以下协议项:

connection:keep-alive

​ 在真正的读写操作之前,server与client之间必须建立一个连接,读写操作完成后,双方不再需要这个连接时可以释放连接,连接的建立通过三次握手,断开则需要四次挥手

​ 每个连接的建立都是需要消耗资源和时间的

TCP短连接

  1. client向server发起连接请求
  2. server接到请求,双方建立连接
  3. client向server发送数据
  4. server回应client
  5. 一次读写完成,此时任意一方都可以发起close

​ 短连接一般只会在client/server间传递一次读写操作

TCP长连接

  1. client向server发起连接请求
  2. server接到请求,双方建立连接
  3. client向server发送数据
  4. server回应client
  5. 一次读写完成,连接不关闭,等待下一次读写操作
  6. 长时间操作之后client发起close

长连接和短连接的优缺点

  • 长连接可以省去较多TCP建立和关闭的操作,节约时间
    • 如果用户量太大,容易造成服务器负载过高最终导致服务不可用
  • 短连接对于服务器来说实现较为简单,存在的连接都是有用的连接,不需要额外的控制手段
    • 如果用户量太大,可能在很短的时间内需要创建大量连接,容易造成服务器响应速度过慢

运用场景:

  • 短连接:
    • 小型Web网站的HTTP服务一般使用短连接,因为长连接会消耗服务器一定资源来保持socket存活(keep-alive)
  • 长连接:
    • 中大型Web网站一般使用长连接,优点是响应用户请求的速度更快,用户体验更好
    • 数据库的连接使用长连接,如果使用短连接,频繁的通信可能会造成socket错误

标签:--,传输方式,server,计算机网络,client,DNS,服务器,连接
来源: https://www.cnblogs.com/HyeJeong/p/15686017.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有