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

网站设置快捷键商业网站建设案例

网站设置快捷键,商业网站建设案例,手机网站设计制作服务,大连森秀网络推广TCP/IP 网络模型 应用层 最上层的#xff0c;也是我们能直接接触到的就是应用层#xff08;Application Layer#xff09;#xff0c;我们电脑或手机使用的应用软件都是在应用层实现。那么#xff0c;当两个不同设备的应用需要通信的时候#xff0c;应用就把应用数据传…TCP/IP 网络模型 应用层 最上层的也是我们能直接接触到的就是应用层Application Layer我们电脑或手机使用的应用软件都是在应用层实现。那么当两个不同设备的应用需要通信的时候应用就把应用数据传给下一层也就是传输层。 所以应用层只需要专注于为用户提供应用功能比如 HTTP、FTP、Telnet、DNS、SMTP等。不需要关心数据如何传输只需要把数据进一步往下传给传输层应用层是工作在操作系统中的用户态传输层及以下则工作在内核态。 传输层 应用层的数据包会传给传输层传输层Transport Layer是为应用层提供网络支持的。 在传输层会有两个传输协议分别是 TCP 和 UDP。 TCP 的全称叫传输控制协议Transmission Control Protocol大部分应用使用的正是 TCP 传输层协议比如 HTTP 应用层协议。TCP 相比 UDP 多了很多特性比如流量控制、超时重传、拥塞控制等这些都是为了保证数据包能可靠地传输给对方。UDP 相对来说就很简单简单到只负责发送数据包不保证数据包是否能抵达对方但它实时性相对更好传输效率也高。当然UDP 也可以实现可靠传输把 TCP 的特性在应用层上实现就可以不过要实现一个商用的可靠 UDP 传输协议也不是一件简单的事情。 当传输层的数据包大小超过 MSSTCP 最大报文段长度 就要将数据包分块这样即使中途有一个分块丢失或损坏了只需要重新发送这一个分块而不用重新发送整个数据包。在 TCP 协议中我们把每个分块称为一个 TCP 段TCP Segment。 当设备作为接收方时传输层则要负责把数据包传给应用但是一台设备上可能会有很多应用在接收或者传输数据因此需要用一个编号将应用区分开来这个编号就是端口。比如 80 端口通常是 Web 服务器用的22 端口通常是远程登录服务器用的。 网络层 不希望传输层协议处理太多的事情只需要服务好应用即可让其作为应用间数据传输的媒介帮助实现应用到应用的通信而实际的传输功能就交给下一层也就是网络层Internet Layer。 网络层最常使用的是 IP 协议Internet ProtocolIP 协议会将传输层的报文作为数据部分再加上 IP 包头组装成 IP 报文如果 IP 报文大小超过 MTU以太网中一般为 1500 字节就会再次进行分片得到一个即将发送到网络的 IP 报文。 网络层需要有区分设备的编号。一般用 IP 地址给设备进行编号对于 IPv4 协议 IP 地址共 32 位分成了四段比如192.168.100.1每段是 8 位。IP 地址一般分为两种意义网络号负责标识 IP 地址属于哪个「子网」主机号标识同一「子网」下不同主机。这两者的区分方法需要配合子网掩码才能算出 IP 地址 的网络号和主机号。一般子网掩码就是 255.255.255.0按位与运算即可得到网络号取反后按位与运算就可以得到主机号。寻址过程中先匹配到同样的网络号才会去匹配主机号。 IP 协议还有另一个重要的能力就是路由。路由器寻址工作中就是要找到目标地址的子网找到后进而把数据包转发给对应的网络内。 总结IP 协议的寻址作用是告诉我们去往下一个目的地该朝哪个方向走路由则是根据「下一个目的地」选择路径。寻址更像在导航路由更像在操作方向盘。 网络接口层 生成了 IP 头部之后接下来要交给网络接口层Link Layer在 IP 头部的前面加上 MAC 头部并封装成数据帧Data frame发送到网络上。 以太网就是一种在「局域网」内把附近的设备连接起来使它们之间可以进行通讯的技术。以太网在判断网络包目的地时和 IP 的方式不同因此必须采用相匹配的方式才能在以太网中将包发往目的地而 MAC 头部就是干这个用的所以在以太网进行通讯要用到 MAC 地址。MAC 头部是以太网使用的头部它包含了接收方和发送方的 MAC 地址等信息我们可以通过 ARP 协议获取对方的 MAC 地址。 网络接口层主要为网络层提供「链路级别」传输的服务负责在以太网、WiFi 这样的底层网络上发送原始数据包工作在网卡这个层次使用 MAC 地址来标识网络上的设备。 TCP/IP 网络通常是由上到下分成 4 层分别是应用层传输层网络层和网络接口层。 从网址到网页 HTTP 浏览器做的第一步工作就是要对 URL 进行解析从而生成发送给 Web 服务器的请求信息。 当没有路径名时就代表访问根目录下事先设置的默认文件。 URL 解析完成就会生成 HTTP 请求消息。如下 真实地址查询——DNS 在发送之前还有一项工作需要完成那就是查询服务器域名对应的 IP 地址因为委托操作系统发送消息时必须提供通信对象的 IP 地址。有一种服务器就专门保存了 Web 服务器域名与 IP 的对应关系它就是 DNS 服务器。 DNS 中域名靠句点分割句点代表不同层次的界限。越靠右则层级越高。一般域名最后还有一个点代表根域名。他的层级关系类似树状结构。 根 DNS 服务器.顶级域 DNS 服务器.com权威 DNS 服务器server.com 解析流程 客户端发送 DNS 请求询问 IP发给本地 DNS 服务器本地 DNS 在缓存中寻找找到就返回 IP找不到就去问根域名服务器根域名收到请求会根据顶级域名发送顶级域 DNS 给本地 DNS本地收到后会再次发出请求顶级域 DNS 解析找到权威 DNS 返回给本地 DNS本地 DNS 询问权威 DNS权威 DNS 查询后发送给本地 DNS本地 DNS 返回给到客户端查询到的 IP 地址 流程图如下 指南——协议栈 通过 DNS 获取到 IP 后就可以把 HTTP 的传输工作交给操作系统中的协议栈。 协议栈内部有好几个部分有上下关系。应用程序浏览器通过调用 Socket 库来委托协议栈工作。协议栈的上半部分有两块分别是负责收发数据的 TCP 和 UDP 协议这两个传输协议会接受应用层的委托执行收发数据的操作。下面一半是用 IP 协议控制网络包收发操作在互联网上传数据时数据会被切分成一块块的网络包而将网络包发送给对方的操作就是由 IP 负责的。 IP 中还包括 ICMP 协议和 ARP 协议。 ICMP 用于告知网络包传送过程中产生的错误以及各种控制信息。ARP 用于根据 IP 地址查询相应的以太网 MAC 地址。 最后到了网卡驱动程序控制网卡硬件最终完成实际的收发操作。 以上过程如下图所示 可靠传输——TCP 源端口号和目标端口号是不可少的如果没有这两个端口号数据就不知道应该发给哪个应用。接下来有包的序号这个是为了解决包乱序的问题。还有应该有的是确认号目的是确认发出去对方是否有收到。如果没有收到就应该重新发送直到送达这个是为了解决丢包的问题。接下来还有一些状态位。例如 SYN 是发起一个连接ACK 是回复RST 是重新连接FIN 是结束连接等。TCP 是面向连接的因而双方要维护连接的状态这些带状态位的包的发送会引起双方的状态变更。还有一个重要的就是窗口大小。TCP 要做流量控制通信双方各声明一个窗口缓存大小标识自己当前能够的处理能力。除了做流量控制以外TCP还会做拥塞控制对于真正的通路堵车不堵车它无能为力唯一能做的就是控制自己也即控制发送的速度。 在 HTTP 传输数据之前首先需要 TCP 建立连接TCP 连接的建立通常称为三次握手。超级重要之后应该是有具体的文章学习的这里就是简单过一遍。 简单而言的三次握手如下通过这些操作保证双方均能发送和接收 一开始客户端和服务端都处于 CLOSED 状态。先是服务端主动监听某个端口处于 LISTEN 状态。然后客户端主动发起连接 SYN之后处于 SYN-SENT 状态。服务端收到发起的连接返回 SYN并且 ACK 客户端的 SYN之后处于 SYN-RCVD 状态。客户端收到服务端发送的 SYN 和 ACK 之后发送对 SYN 确认的 ACK之后处于 ESTABLISHED 状态因为它一发一收成功了。服务端收到 ACK 的 ACK 之后处于 ESTABLISHED 状态因为它也一发一收了。 如果 HTTP 请求消息比较长超过了 MSS 的长度这时 TCP 就需要把 HTTP 的数据拆解成一块块的数据发送而不是一次性发送所有数据。 MTU网络包的最大长度一般为 1500 字节MSS除去 IP 和 TCP 后的数据长度 如果需要拆分那就是把数据拆分分别添加 IP 和 TCP 头部之后进行发送就是完成切片操作。 TCP 协议里面会有两个端口一个是浏览器监听的端口通常是随机生成的一个是 Web 服务器监听的端口HTTP 默认端口号是 80 HTTPS 默认端口号是 443。建立连接后TCP 报文的数据就是存放 HTTP 头部和数据组装好 TCP 报文后交给网络层处理。 远程定位——IP HTTP 是经过 TCP 传输的所以在 IP 包头的协议号要填写为 06十六进制表示协议为 TCP。 如果客户端有多个网卡就需要根据路由表规则判断选择网卡可以使用 route -n 命令查看当前系统的路由表。通过与 Genmask 按位与运算计算并与 Destination 比对来找到匹配网卡的 IP 地址。 两点传输——MAC 生成了 IP 头部之后接下来网络包还需要在 IP 头部的前面加上 MAC 头部。 在 MAC 包头里需要发送方 MAC 地址和接收方目标 MAC 地址用于两点之间的传输。一般在 TCP/IP 通信里MAC 包头的协议类型只使用 0800 IP 协议0806 ARP 协议 发送方的 MAC 地址获取就比较简单了MAC 地址是在网卡生产时写入到 ROM 里的只要将这个值读取出来写入到 MAC 头部就可以了。 接收方的 MAC 地址就有点复杂了只要告诉以太网对方的 MAC 的地址以太网就会帮我们把包发送过去那么很显然这里应该填写对方的 MAC 地址。所以先得搞清楚应该把包发给谁这个只要查一下路由表就知道了。在路由表中找到相匹配的条目然后把包发给 Gateway 列中的 IP 地址就可以了。通过 ARP 协议来找到路由器 MAC 地址。ARP 协议在以太网中广播对所有设备发送 IP 地址匹配若路由器匹配则会回发 MAC 地址同时查询结果会存入 ARP 缓存中。 网络包数据现在如下所示 出口——网卡 需要将数字信息转换为电信号才能在网线上传输也就是说这才是真正的数据发送过程。负责执行这一操作的是网卡要控制网卡还需要靠网卡驱动程序。网卡驱动获取网络包之后会将其复制到网卡内的缓存区中接着会在其开头加上报头和起始帧分界符在末尾加上用于检测错误的帧校验序列 FCS。 至此网络包报文如下所示 送别者——交换机 交换机的设计是将网络包原样转发到目的地。交换机工作在 MAC 层也称为二层网络设备。 首先电信号到达网线接口交换机里的模块进行接收接下来交换机里的模块将电信号转换为数字信号。然后通过包末尾的 FCS 校验错误如果没问题则放到缓冲区。这部分操作基本和计算机的网卡相同但交换机的工作方式和网卡不同。 计算机的网卡本身具有 MAC 地址并通过核对收到的包的接收方 MAC 地址判断是不是发给自己的如果不是发给自己的则丢弃相对地交换机的端口不核对接收方 MAC 地址而是直接接收所有的包并存放到缓冲区中。因此和网卡不同交换机的端口不具有 MAC 地址。 接下来需要查询一下这个包的接收方 MAC 地址是否已经在 MAC 地址表中有记录了。交换机根据 MAC 地址表查找 MAC 地址然后将信号发送到相应的端口。交换机的 MAC 地址表主要包含两个信息设备的 MAC 地址以及该设备在交换机上的端口号。如果地址表中找不到那就直接发送到所有端口然后只有相应的接收者才接收包而其他设备则会忽略这个包且成功后会返回响应包把地址写入 MAC 地址表。 特殊的如果接收方 MAC 地址是一个广播地址那么交换机会将包发送到除源端口之外的所有端口。以下两个属于广播地址 MAC 地址中的 FF:FF:FF:FF:FF:FFIP 地址中的 255.255.255.255 出境大门——路由器 网络包经过交换机之后现在到达了路由器并在此被转发到下一个路由器或目标设备。这一步转发的工作原理和交换机类似也是通过查表判断包转发的目标。不过在具体的操作过程上路由器和交换机是有区别的。 因为路由器是基于 IP 设计的俗称三层网络设备路由器的各个端口都具有 MAC 地址和 IP 地址而交换机是基于以太网设计的俗称二层网络设备交换机的端口不具有 MAC 地址。 包接受 首先电信号到达网线接口部分路由器中的模块会将电信号转成数字信号然后通过包末尾的 FCS 进行错误校验。如果没问题则检查 MAC 头部中的接收方 MAC 地址看看是不是发给自己的包如果是就放到接收缓冲区中否则就丢弃这个包。 完成包接收操作之后路由器就会去掉包开头的 MAC 头部。接下来会根据 MAC 头部后方的 IP 头部中的内容进行包的转发操作。 转发操作分为几个阶段首先是查询路由表判断转发目标。这个跟之前是类似的通过 服务器 IP 地址和 GateWay 做按位与运算并判断是否与 Destination 符合符合就发送如果没有符合的就发送到默认路由 0.0.0.0。 接下来就会进入包的发送操作。需要根据路由表的网关列判断对方的地址。如果网关是一个 IP 地址则这个IP 地址就是我们要转发到的目标地址还未抵达终点还需继续需要路由器转发。如果网关为空则 IP 头部中的接收方 IP 地址就是要转发到的目标地址也是就终于找到 IP 包头里的目标地址了说明已抵达终点。 知道对方的 IP 地址之后接下来需要通过 ARP 协议根据 IP 地址查询 MAC 地址并将查询的结果作为接收方 MAC 地址。路由器也有 ARP 缓存因此首先会在 ARP 缓存中查询如果找不到则发送 ARP 查询请求。 接下来是发送方 MAC 地址字段这里填写输出端口的 MAC 地址。还有一个以太类型字段填写 0800 十六进制表示 IP 协议。网络包完成后接下来会将其转换成电信号并通过端口发送出去。这一步的工作过程和计算机也是相同的。发送出去的网络包会通过交换机到达下一个路由器。由于接收方 MAC 地址就是下一个路由器的地址所以交换机会根据这一地址将包传输到下一个路由器。 在网络包传输的过程中源 IP 和目标 IP 始终是不会变的一直变化的是 MAC 地址因为需要 MAC 地址在以太网内进行两个设备之间的包传输。 服务器 与 客户端 服务器会先扒开数据包的 MAC 头部查看是否和服务器自己的 MAC 地址符合符合就将包收起来。接着继续扒开数据包的 IP 头发现 IP 地址符合根据 IP 头中协议项知道自己上层是 TCP 协议。于是扒开 TCP 的头里面有序列号需要看一看这个序列包是不是我想要的如果是就放入缓存中然后返回一个 ACK如果不是就丢弃。TCP头部里面还有端口号 HTTP 的服务器正在监听这个端口号。于是服务器自然就知道是 HTTP 进程想要这个包于是就将包发给 HTTP 进程。 服务器的 HTTP 进程看到原来这个请求是要访问一个页面于是就把这个网页封装在 HTTP 响应报文里。HTTP 响应报文也需要穿上 TCP、IP、MAC 头部不过这次是源地址是服务器 IP 地址目的地址是客户端 IP 地址。 总结 这里有几个小问题记录一下。 现在家里的路由器其实有了交换机的功能了所以可能找不到交换机这个东西。 在发送数据包时如果目标主机不是本地局域网填入的 MAC 地址是路由器也就是把数据包转发给路由器路由器一直转发下一个路由器直到转发到目标主机的路由器发现 IP 地址是自己局域网内的主机就会 ARP 请求获取目标主机的 MAC 地址从而转发到这个服务器主机。 Linux 收发网络包 国际标准化组织制定了开放式系统互联通信参考模型Open System Interconnection Reference Model也就是 OSI 网络模型该模型主要有 7 层分别是应用层、表示层、会话层、传输层、网络层、数据链路层以及物理层。这个模型比较复杂常用的就是四层的 TCP/IP 模型LInux 也是这么实现网络协议栈的。 这里要注意操作系统获知网络包到达的方式最简单的就是中断但是网络包数量大就会导致中断频繁影响操作系统效率。为了解决频繁中断带来的性能开销Linux 内核在 2.6 版本中引入了 NAPI 机制它是混合「中断和轮询」的方式来接收网络包它的核心概念就是不采用中断的方式读取数据而是首先采用中断唤醒数据接收的服务程序然后 poll 的方法来轮询数据。 网络包到达后就会通过 DMA 写入指定内存地址( Ring Buffer 这个是一个环形缓冲区)然后网卡向 CPU 发起硬件中断CPU 收到后调用对应的中断处理函数。硬件中断会首先屏蔽中断并发起软中断软中断会调用内核的 ksoftirqd 线程轮询处理数据。ksoftirqd 线程会从 Ring Buffer 中获取一个数据帧用 sk_buff 表示从而可以作为一个网络包交给网络协议栈进行逐层处理。 具体的流程可以看这里Linux 网络包收发 这里留意的点数据会拷贝到 sk_buff 内存层级传递会通过其中的 data 指针一步步添加协议栈中的各个头部信息避免多次数据拷贝。一共拷贝三次数据到 sk_buffTCP 协议从传输层到网络层的 sk_buff 副本IP 层 sk_buff 大于 MTU 申请额外 sk_buff。
http://www.pierceye.com/news/38029/

相关文章:

  • 若尊二级域名分发郑州官网优化推广
  • c2c网站系统网站案例
  • 专门给别人做网站成都专业建设网站
  • 上海网站建设明细表南通 网络 公司网站
  • dz网站数据备份恢复wordpress rest 授权
  • 企业所得税怎么征收几个点广东网络优化推广
  • 接单网站源码网站建设检查整改情况报告
  • 做网站的成本有多少凌河网站建设推广
  • 长沙做网站优化的公司aitt网站建设中
  • 建设网站站点过程中全国装修公司排名前十强
  • 环保局网站建设wordpress头像怎么修改
  • 烟台福山建设工程监测网站主机网站
  • 苏州网站排名方案wordpress网站资源
  • 邯郸网站设计价位seo如何快速出排名
  • 爱站关键词挖掘old怎么申请自己公司的网址
  • 网上商城网站模板知名响应式网站企业
  • 0基础建站网站搭建教程门户系统1号线wordpress
  • 个人网站 商城 备案网站建设报价请示
  • 网站建设工作室小俊哥建筑公司logo设计大全
  • 重庆最便宜的网站建设公司重庆网站建设 公司
  • 网站开发与网页设计wordpress4.9下载
  • 网站维护是什么职业wordpress灯箱代码
  • 著名设计案例网站如何申请域名网站注册
  • 网站流量分析网站wordpress 个人写作
  • 卢松松的网站网站h1标签的应用
  • 网站规划与建设ppt模板下载今天的三个新闻
  • 做网站的伪原创怎么弄有哪些做ae小动效的网站
  • 外包公司做网站多少钱网业加速器
  • 湖北建设厅网站首页长春做网站搜吉网传媒
  • php的网站模板如何提升网站的流量