当前位置: 首页 > news >正文

成都设计公司视频制作山西seo和网络推广

成都设计公司视频制作,山西seo和网络推广,最低网网站多少钱,小说下载网站哪个好本文主要取材于 《网络是怎样连接的》 第六章。 目录 6.1 服务器概览 6.2 服务器的接收操作 6.3 Web服务器程序解释请求消息并作出响应 6.4 浏览器接收响应消息并显示内容 简述:本文主要内容是解释 网络包到达服务器之后,如何给客户端响应的。 服务…

本文主要取材于  《网络是怎样连接的》 第六章。

目录

6.1 服务器概览

6.2 服务器的接收操作

6.3 Web服务器程序解释请求消息并作出响应

6.4 浏览器接收响应消息并显示内容

简述:本文主要内容是解释 网络包到达服务器之后,如何给客户端响应的。

服务器与客户端的不同点 在于服务器是在启动之后创建套接字等待连接。当客户端发起连接时,等待模块会接受连接,然后启动与客户端的通信模块。服务器需要同时为多个客户端服务,对于每个客户端都要创建一个通信模块。

数据包到达服务器之后,需要经过FCS校验、MAC校验、IP校验然后交给TCP/UDP模块处理。

之后服务器会根据请求内容,生成响应消息再返回给客户端。客户端根据响应的数据类型展示数据内容。

6.1 服务器概览

服务器在启动之后就要准备各项工作,等待客户端的访问。在连接过程中,客户端发起连接操作,而服务器则是等待连接操作,因此在Socket库的用法上还是有一些区别的,即应用程序调用的Socket库的程序组件不同。

根据用途,服务器可以分为多种类型,其硬件和操作系统和客户端有所不同。但是与网络相关的部分,如网卡、协议栈、Socket库等功能和客户端一样。即无论硬件和OS如何变化,TCP和IP的功能都是一样的。

服务器需要同时和多个客户端通信,但一个程序来处理多个客户端的请求是很难的,因为服务器必须把握每一个客户端的操作状态。因此一般的做法是,每有一个客户端连接进来,就启动一个新的服务器程序,确保服务器程序和客户端是一对一的状态

我们将程序分成两个模块,即等待连接模块(图6.1(a))和负责与客户端通信的模块(图6.1(b)。

当服务器程序启动并读取配置文件完成初始化操作后,就会运行等待连接模块(a)。这个模块会创建套接字,然后进入等待连接的暂停状态。

当客户端连发起连接时,这个模块会恢复运行并接受连接,然后启动客户端通信模块(b),并移交完成连接的套接字。接下来,客户端通信模块(b)就会使用已连接的套接字与客户端进行通信。

服务器的Socket调用流程。

(1)创建套接字(创建套接字阶段)

(2-1)将套接字设置为等待连接状态(等待连接阶段)

(2-2)接受连接(接受连接阶段)

(3)收发数据(收发阶段)

(4)断开管道并删除套接字(断开阶段)

6.2 服务器的接收操作

数字还原 :到达服务器的网络包其本质是电信号或者光信号,接收操作的第一步是网卡接收到信号,然后将其还原成数字信息。

FCS校验:接下来需要根据包末尾的帧校验序列(FCS)来校验错误,即根据校验公式[插图]计算刚刚接收到的数字信息,然后与包末尾的FCS值进行比较。

MAC校验:当FCS一致,即确认数据没有错误时,接下来需要检查MAC头部中的接收方MAC地址,看看这个包是不是发给自己的,如果不是则丢弃。还原后的数字信息被保存在网卡内部的缓冲区中。网卡驱动会根据MAC头部判断协议类型,并将包交给相应的协议栈。

IP校验:当网络包转交到协议栈时,IP模块会首先开始工作,检查IP头部。IP模块首先会检查IP头部的格式是否符合规范,然后检查接收方IP地址,看包是不是发给自己的。确认包是发给自己的之后,接下来需要检查包有没有被分片。检查IP头部的内容就可以知道是否分片,如果是分片的包,则将包暂时存放在内存中,等所有分片全部到达之后将分片组装起来还原成原始包;如果没有分片,则直接保留接收时的样子,不需要进行重组。接下来需要检查IP头部的协议号字段,并将包转交给相应的TCP模块或者UDP模块。

如果收到的是发起连接的包,则TCP模块会(1)确认TCP头部的控制位SYN;(2)检查接收方端口号;(3)为相应的等待连接套接字复制一个新的副本;(4)记录发送方IP地址和端口号等信息。

在收发阶段,收到数据包时,TCP模块会(1)根据收到的包的发送方IP地址、发送方端口号、接收方IP地址、接收方端口号找到相对应的套接字;(2)将数据块拼合起来并保存在接收缓冲区中;(3)向客户端返回ACK。

6.3 Web服务器程序解释请求消息并作出响应

服务器程序会根据收到的请求消息中的内容进行相应的处理,并生成响应消息,再通过write返回给客户端。请求消息包括一个称为“方法”的命令,以及表示数据源的URI(文件路径名),服务器程序会根据这些内容向客户端返回数据,但对于不同的方法和URI,服务器内部的工作过程会有所不同。

如请求方法为GET,URI为一个HTML文件名。这种情况只要从文件中读出HTML文档,然后将其作为响应消息返回就可以。为了不暴露磁盘全部内容,Web服务器公开的目录其实并不是磁盘上的实际目录,而是如图6.9这样的虚拟目录,而URI中写的就是在这个虚拟目录结构下的路径名。因此,当读取文件时,需要先查询虚拟目录与实际目录的对应关系,并将URI转换成实际的文件名后,才能读取文件并返回数据。

URI指定的文件内容不仅限于HTML文档,也有可能是一个程序。在这个情况下,服务器不会直接返回文件内容,而是会运行这个程序,然后将程序输出的数据返回给客户端。

Web服务器还可以检查事先设置的一些规则,并根据规则允许或禁止访问。Web服务器的访问控制规则主要有以下3种。(1)客户端IP地址(2)客户端域名(3)用户名和密码

Web服务器完成对消息的处理之后,调用Socket库的write,将响应消息交给协议栈。这时,需要告诉协议栈这个响应消息应该发给谁,但我们并不需要直接告知客户端的IP地址等信息,而是只需要给出表示通信使用的套接字的描述符就可以了。套接字中保存了所有的通信状态,其中也包括通信对象的信息。

6.4 浏览器接收响应消息并显示内容

Web服务器发送的响应消息会被分成多个包发送给客户端,然后客户端需要接收数据。首先,网卡将信号还原成数字信息,协议栈将拆分的网络包组装起来并取出响应消息,然后将消息转交给浏览器。这个过程和服务器的接收操作相同。

要显示内容需要先判断数据类型,如文字、图像、声音、视频等多种类型,每种数据的显示方法都不同。数据类型 原则上可以根据响应消息开头的Content-Type头部字段的值来进行判断。判断类型之后,只要根据数据类型调用用于显示内容的程序,将数据显示出来就可以了。

http://www.hkea.cn/news/755797/

相关文章:

  • 网站自动采集指标sem广告投放是做什么的
  • 想做一个个人网站怎么做培训学校
  • 网站开发ipv6升级如何创建自己的小程序
  • 做网站需要备案吗外贸网站推广与优化
  • 独立网站建设流程b站视频推广网站动漫
  • 泰安诚信的网站建设b站推广入口2023年
  • 高校网站建设资料库东莞seo推广公司
  • 电子印章手机在线制作软件四川seo整站优化费用
  • 个人风采网站制作外贸网站平台哪个好
  • 沈阳企业建站谷歌推广和seo
  • .la域名做的网站如何快速推广app
  • 广州优化网站建设怎么用手机制作网站
  • 做微网站的第三方学网络营销
  • 湖南做网站的公司有哪些搜索引擎是什么
  • flash网站管理系统seo优化排名易下拉用法
  • 永年网站建设友链互换平台推荐
  • 企业网站的设计公司网络广告营销的典型案例
  • 高校思政主题网站建设的意义关键词歌词任然
  • 哪里做网站比较快2345网址导航下载桌面
  • 广州建设委员会官方网站凡科建站下载
  • 全球做网站的公司排名百度一下你就知道官网
  • 小企业网站价格免费发链接的网站
  • 买了空间和域名 怎么做网站哪家公司网站做得好
  • 网站备案是否关闭衡阳网站建设公司
  • 遂昌建设局网站个人怎么做网站
  • 软件开发和网站建设网络营销的未来6个发展趋势
  • 做网站一年多少钱免费seo网站推广
  • 智通人才网东莞最新招聘信息官网seo是如何做优化的
  • 个人做跨境电商网站百度地图导航手机版免费下载
  • 阿里云注册网站之后怎么做网站百度联盟是什么