计算机网络 4.传输方式、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错误

上一篇:详解DNS域名解析全过程


下一篇:linux--目录结构(2)