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

学校网站建设源码wordpress底部插件

学校网站建设源码,wordpress底部插件,宁波cms模板建站,做网站要用到ps吗目录 一、概述 2.1 运输层的作用引出 2.2 传输控制协议TCP 简介 2.3 TCP最主要的特点 2.4 TCP连接 二、TCP报文段的首部格式 三、TCP的运输连接管理 3.1 TCP的连接建立(三次握手) 3.2 为什么是三次握手#xff1f; 3.3 为何两次握手不可以呢#xff1f; 3.4 TCP的… 目录 一、概述 2.1 运输层的作用引出 2.2 传输控制协议TCP 简介 2.3 TCP最主要的特点 2.4 TCP连接 二、TCP报文段的首部格式 三、TCP的运输连接管理 3.1 TCP的连接建立(三次握手) 3.2 为什么是三次握手 3.3 为何两次握手不可以呢 3.4 TCP的连接释放(四次挥手) 3.5 为什么客户端在TIME-WAIT状态必须等待2MSL的时间呢 3.6 TCP连接状态解释 【网络】网络层IP地址和IP数据报的格式 【网络】网络层协议ARP和IP协议转发流程 【网络】计算机网络基础概念入门 【网络】网络层ICMP协议-CSDN博客 【Linux】网络诊断 traceroute命令详解 【Linux】nc 网络诊断 | 文件传输 命令详解 一、概述 从通信和信息处理的角度看传输层向它上面的应用层提供通信服务它属于面向通信部分的最高层同时也是用户功能中的最低层。当网络的边缘部分中的两台主机使用网络的核心部分的功能进行端到端的通信时只有主机的协议栈才有运输层而网络核心部分中的路由器在转发分组时都只用到下三层的功能。 1.1 运输层的作用引出 如下图假设局域网LAN1上的主机A和局域网LAN2上的主机B通过互连的广域网WAN进行通信。我们知道IP协议能够把源主机A发送出的分组按照首部中的目的地址送交到目的主机B那么为什么还需要运输层呢 从IP层来说通信的两端是两台主机。严格地讲两台主机进行通信就是两台主机中的应用进程互相通信。IP协议虽然能把分组送到目的主机但是这个分组还停留在主机的网络层而没有交付主机中的应用进程。从运输层的角度看通信的真正端点并不是主机而是主机中的进程。也就是说端到端的通信是应用进程之间的通信。 运输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是从应用层来看只要把应用层报文交给下面的运输层运输层就可以把这报文传送到对方的运输层哪怕双方相距很远例如几千公里好像这种通信就是沿水平方向直接传送数据。但事实上这两个运输层之间并没有一条水平方向的物理连接。数据的传送是沿着图中的虚线方向经过多个层次传送的。 从这里可以看出网络层和运输层有明显的区别。网络层为主机之间提供逻辑通信而运输层为应用进程之间提供端到端的逻辑通信如下图。 1.2 传输控制协议TCP 简介 TCP协议传输控制协议是一种面向连接的、可靠的、基于字节流的方式进行有序的无差错的数据传输通讯协议它负责完成传输层所指定的功能利用重发技术和拥塞控制机制向应用程序提供可靠的通信连接使它能够自动适应网上的各种变化。比如数据报检测、流量控制、拥塞控制、数据排序、超时重发等。 1.3 TCP最主要的特点 TCP是TCP/IP体系中非常复杂的一个协议。下面介绍TCP最主要的特点。 1TCP是面向连接的运输层协议。这就是说应用程序在使用TCP协议之前必须先建立TCP连接。在传送数据完毕后必须释放已经建立的TCP连接。也就是说应用进程之间的通信好像在“打电话”通话前要先拨号建立连接通话结束后要挂机释放连接。 2每一条TCP连接只能有两个端点endpoint每一条TCP连接只能是点对点的一对一。 3TCP提供可靠交付的服务。通过TCP连接传送的数据无差错、不丢失、不重复并且按序到达。 4TCP提供全双工通信。TCP允许通信双方的应用进程在任何时候都能发送数据。TCP连接的两端都设有发送缓存和接收缓存用来临时存放双向通信的数据。在发送时应用程序在把数据传送给TCP的缓存后就可以做自己的事而TCP在合适的时候把数据发送出去。在接收时TCP把收到的数据放入缓存上层的应用进程在合适的时候读取缓存中的数据。 5面向字节流。TCP中的“流”stream指的是流入到进程或从进程流出的字节序列。“面向字节流”的含义是虽然应用程序和TCP的交互是一次一个数据块大小不等但TCP把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。TCP并不知道所传送的字节流的含义。TCP不保证接收方应用程序所收到的数据块和发送方应用程序所发出的数据块具有对应大小的关系例如发送方应用程序交给发送方的TCP共10个数据块但接收方的TCP可能只用了4个数据块就把收到的字节流交付上层的应用程序。但接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样。当然接收方的应用程序必须有能力识别收到的字节流把它还原成有意义的应用层数据。 1.4 TCP连接 每一条TCP连接有两个端点。那么TCP连接的端点是什么呢TCP连接的端点叫做套接字socket或插口。 定义端口号拼接到concatenated withIP地址即构成了套接字。因此套接字的表示方法是在点分十进制的IP地址后面写上端口号中间用冒号或逗号隔开。例如若IP地址是192.3.4.5而端口号是80那么得到的套接字就是192.3.4.580。 套接字 socket I P 地址 port 端口号 socket IP 地址 port端口号 TCP连接 {socket1, socker2} {(IP1, port1), (IP2, port2)} 总之TCP连接的端点是个很抽象的套接字即IP地址端口号。也应记住同一个IP地址可以有多个不同的TCP连接而同一个端口号也可以出现在多个不同的TCP连接中。 二、TCP报文段的首部格式 TCP报文段首部的前20个字节是固定的如下图后面有4n字节是根据需要而增加的选项n是整数。因此TCP首部的最小长度是20字节。 部固定部分各字段的意义如下 1源端口和目的端口 各占2个字节分别写入源端口号和目的端口号TCP的分用功能也是通过端口实现的。 2序号 占4字节。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。序号范围是0232–1共232即4 294 967 296个序号。序号增加到232–1后下一个序号就又回到0。也就是说序号使用mod 232运算。TCP是面向字节流的。在一个TCP连接中传送的字节流中的每一个字节都按顺序编号。整个要传送的字节流的起始序号必须在连接建立时设置。首部中的序号字段值则指的是本报文段所发送的数据的第一个字节的序号。例如一报文段的序号字段值是301而携带的数据共有100字节。这就表明本报文段的数据的第一个字节的序号是301最后一个字节的序号是400。显然下一个报文段如果还有的话的数据序号应当从401开始即下一个报文段的序号字段值应为401。这个字段的名称也叫做“报文段序号”。 3确认号 占4字节是期望收到对方下一个报文段的第一个数据字节的序号。例如B正确收到了A发送过来的一个报文段其序号字段值是501而数据长度是200字节序号501700这表明B正确收到了A发送的到序号700为止的数据。因此B期望收到A的下一个数据序号是701于是B在发送给A的确认报文段中把确认号置为701。请注意现在的确认号不是501也不是700而是701。 总之应当记住 若确认号N则表明到序号N–1为止的所有数据都已正确收到。 由于序号字段有32位长可对4GB即4千兆字节的数据进行编号。在一般情况下可保证当序号重复使用时旧序号的数据早已通过网络到达终点了。 4数据偏移 占4位它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。这个字段实际上是指出TCP报文段的首部长度。由于首部中还有长度不确定的选项字段因此数据偏移字段是必要的。但应注意“数据偏移”的单位是32位字即以4字节长的字为计算单位。由于4位二进制数能够表示的最大十进制数字是15因此数据偏移的最大值是60字节这也是TCP首部的最大长度即选项长度不能超过40字节。 5保留 占6位保留为今后使用但目前应置为0。 下面有6个控制位用来说明本报文段的性质它们的释义见下面的611。 6紧急URGURGent 当URG1时表明紧急指针字段有效。它告诉系统此报文段中有紧急数据应尽快传送相当于高优先级的数据而不要按原来的排队顺序来传送。例如已经发送了很长的一个程序要在远地的主机上运行。但后来发现了一些问题需要取消该程序的运行。因此用户从键盘发出中断命令ControlC。如果不使用紧急数据那么这两个字符将存储在接收TCP的缓存末尾。只有在所有的数据被处理完毕后这两个字符才被交付接收方的应用进程。这样做就浪费了许多时间。 当URG置1时发送应用进程就告诉发送方的TCP有紧急数据要传送。于是发送方TCP就把紧急数据插入到本报文段数据的最前面而在紧急数据后面的数据仍是普通数据。这时要与首部中紧急指针Urgent Pointer字段配合使用。 7确认ACKACKnowledgment 仅当ACK1时确认号字段才有效。当ACK0时确认号无效。TCP规定在连接建立后所有传送的报文段都必须把ACK置1。 8推送PSHPuSH 当两个应用进程进行交互式的通信时有时在一端的应用进程希望在键入一个命令后立即就能够收到对方的响应。在这种情况下TCP就可以使用推送push操作。这时发送方TCP把PSH置1并立即创建一个报文段发送出去。接收方TCP收到PSH1的报文段就尽快地即“推送”向前交付接收应用进程而不再等到整个缓存都填满了后再向上交付。 虽然应用程序可以选择推送操作但推送操作很少使用。 9复位RSTReSeT 当RST1时表明TCP连接中出现严重差错如由于主机崩溃或其他原因必须释放连接然后再重新建立运输连接。RST置1还用来拒绝一个非法的报文段或拒绝打开一个连接。RST也可称为重建位或重置位。 10同步SYNSYNchronization 在连接建立时用来同步序号。当SYN1而ACK0时表明这是一个连接请求报文段。对方若同意建立连接则应在响应的报文段中使SYN1和ACK1。因此SYN置为1就表示这是一个连接请求或连接接受报文。关于连接的建立和释放在后面的5.9节还要进行详细讨论。 11终止FINFINis意思是“完”、“终” 用来释放一个连接。当FIN1时表明此报文段的发送方的数据已发送完毕并要求释放运输连接。 12窗口 占2字节。窗口值是0216–1之间的整数。窗口指的是发送本报文段的一方的接收窗口而不是自己的发送窗口。窗口值告诉对方从本报文段首部中的确认号算起接收方目前允许对方发送的数据量以字节为单位。之所以要有这个限制是因为接收方的数据缓存空间是有限的。总之窗口值作为接收方让发送方设置其发送窗口的依据。 例如发送了一个报文段其确认号是701窗口字段是1000。这就是告诉对方“从701号算起我即发送此报文段的一方的接收缓存空间还可接收1000个字节数据字节序号是7011700你在给我发送数据时必须考虑到这一点。” 总之应当记住窗口字段明确指出了现在允许对方发送的数据量。窗口值经常在动态变化着。 13检验和 占2字节。检验和字段检验的范围包括首部和数据这两部分。和UDP用户数据报一样在计算检验和时要在TCP报文段的前面加上12字节的伪首部。伪首部的格式与图5-5中UDP用户数据报的伪首部一样。但应把伪首部第4个字段中的17改为6TCP的协议号是6把第5字段中的UDP长度改为TCP长度。接收方收到此报文段后仍要加上这个伪首部来计算检验和。若使用IPv6则相应的伪首部也要改变。 14紧急指针 占2字节。紧急指针仅在URG1时才有意义它指出本报文段中的紧急数据的字节数紧急数据结束后就是普通数据。因此紧急指针指出了紧急数据的末尾在报文段中的位置。当所有紧急数据都处理完时TCP就告诉应用程序恢复到正常操作。值得注意的是即使窗 三、TCP的运输连接管理 TCP是面向连接的协议。运输连接是用来传送TCP报文的。TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程。因此运输连接就有三个阶段即连接建立、数据传送和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常地进行。 在TCP连接建立过程中要解决以下三个问题 1要使每一方能够确知对方的存在。 2要允许双方协商一些参数如最大窗口值、是否使用窗口扩大选项和时间戳选项以及服务质量等。 3能够对运输实体资源如缓存大小、连接表中的项目等进行分配。 TCP连接的建立采用客户服务器方式。主动发起连接建立的应用进程叫做客户client而被动等待连接建立的应用进程叫做服务器server。 3.1 TCP的连接建立(三次握手) TCP建立连接的过程叫做握手握手需要在客户和服务器之间交换三个TCP报文段。下图为客户端主动发起的图解 首先主动打开连接的客户端结束CLOSED状态被动打开的服务器端也结束CLOSED状态并进入LISTEN状态。随后开始“三次握手” 客户端进程首先创建传输控制模块TCB(Transmission Control Block)。然后客户端向服务端发出连接请求报文段。这时首部中的同步位SYN1初始序号seqx。这时TCP客户进程进入SYN-SENT同步已发送状态。服务端收到连接请求报文段后如同意建立连接则向客户端发送确认。在确认报文段中把标志位SYN位和ACK位都置1表示“已收到请求并同意创建新连接确认号是ackx1表示将来自客户端的报文序号seq值加1作为自己确认号ack的值初始序号seqy。请注意这个报文段也不能携带数据但同样要消耗掉一个序号。这时TCP服务器进程进入SYN-RCVD同步收到状态。客户端收到服务端的确认后还要向服务端给出确认。标志位为ACK1表示“已收到同意连接的信号”;而自己的序号seqx1表示将来自服务端的确认号ack值作为自己的序号值确认号为acky1表示将来自服务端序号seq值加1作为自己的确认号ack的值。TCP的标准规定ACK报文段可以携带数据。但如果不携带数据则不消耗序号在这种情况下下一个数据报文段的序号仍是seqx1。这时TCP连接已经建立客户端进入ESTABLISHED已建立连接状态服务端收到来自客户端的确认连接TCP报文之后也确认了双方间数据传输正常结束SYN-RCVD状态进入ESTABLISHED状态。 3.2 为什么是三次握手 首先要明确下TCP握手的目的是为了通信能够完成数据传输。那么通信的前提就是客户端和服务端都要具备读写能力。 第一次握手: 服务端收到客户端发来的请求(即第一次握手)能够证明客户端具备写的能力 第二次握手服务端给客户端进行回复信息即第二次握手客户端收到服务端回复的信息能够证明服务端具备读写的能力 第三次握手客户端发送给服务端最后一段报文即第三次握手服务端收到后能够证明客户端具备读的能力。 3.3 为何两次握手不可以呢 原因是为了防止服务端开启一些无用的连接增加服务器开销以及防止已失效的连接请求报文段突然又传送到了服务端而产生错误。“第三次握手”是客户端向服务端发送数据目的是告诉服务器客户端有没有收到服务器“第二次握手”时传过去的数据若发送的是“收到了”的信号服务端接收后就正常建立TCP连接否则建立TCP连接失败服务器关闭连接端口由此减少服务器开销及防止接收到失效请求而导致错误 3.4 TCP的连接释放(四次挥手) 客户端向服务端发送释放连接TCP报文并停止再发送数据主动关闭TCP连接。客户端把连接释放报文段首部的终止控制位FIN置1其序号sequ。这时客户端进入FIN-WAIT-1终止等待1状态等待服务端的确认。服务端收到连接释放报文段后即发出确认标志位为ACK1表示“收到释放请求”序列号为seqv确认号是acku1等于服务端前面已传送过的数据的最后一个字节的序号加1。服务端进入CLOSE-WAIT关闭等待状态。TCP服务器进程这时应通知高层应用进程因而从客户端到服务端这个方向的连接就释放了这时的TCP连接处于半关闭half-close状态即客户端已经没有数据要发送了但服务端若发送数据客户端仍要接收。也就是说从服务端到客户端这个方向的连接并未关闭这个状态可能会持续一段时间。客户端收到来自服务端的确认后就进入FIN-WAIT-2终止等待2状态。等待服务端发出的连接释放报文段。若服务端已经没有要向客户端发送的数据其应用进程就通知TCP释放连接。这时服务端发出的连接释放报文段必须使FIN1标志位为FIN1ACK1表示“已准备好释放序号为seqw。还必须重复上次已发送过的确认号acku1。这时服务端就进入LAST-ACK最后确认状态等待客户端的确认。客户端在收到服务端的连接释放报文段后必须对此发出确认。在确认报文段中把ACK1确认号ackw1而自己的序号是sequ1确认号为ackw1表示将来自服务端报文序号seq值加1作为自己的确认号ack的值。然后客户端进入到TIME-WAIT时间等待状态。请注意现在TCP连接还没有释放掉。必须经过时间等待计时器TIME-WAIT timer设置的时间2MSL后客户端才进入到CLOSED状态。因此从客户端进入到TIME-WAIT状态后要经过4分钟才能进入到CLOSED状态才能开始建立下一个新的连接。当客户端撤销相应的传输控制块TCB后就结束了这次的TCP连接。 MSL即最长报文段寿命(Maximum Segment Lifetime)指任何报文在网络上存在的最长时间超过该时间则报文被丢弃一般MSL为30秒、1分钟等。 3.5 为什么客户端在TIME-WAIT状态必须等待2MSL的时间呢 第一为了保证客户端发送的最后一个ACK报文段能够到达服务端。这个ACK报文段有可能丢失因而使处在LAST-ACK状态的服务端收不到对已发送的FINACK报文段的确认。服务端会超时重传这个FINACK报文段而客户端就能在2MSL时间内收到这个重传的FINACK报文段。接着A重传一次确认重新启动2MSL计时器。最后客户端和服务端都正常进入到CLOSED状态。如果A在TIME-WAIT状态不等待一段时间而是在发送完ACK报文段后立即释放连接那么就无法收到B重传的FINACK报文段因而也不会再发送一次确认报文段。这样服务端就无法按照正常步骤进入CLOSED状态。 第二已失效的连接请求报文段”出现在本连接中。客户端在发送完最后一个ACK报文段后再经过时间2MSL就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段。 服务端只要收到了客户端发出的确认就进入CLOSED状态。同样服务端在撤销相应的传输控制块TCB后就结束了这次的TCP连接。我们注意到服务端结束TCP连接的时间要比A早一些。 3.6 TCP连接状态解释 字段 含义 CLOSED 关闭状态表示当前主机没有正在运行的传输连接 LISTEN 监听状态表示服务器正在等待新的传输连接进入 SYN-RCVD 表示主机已收到一个连接请求但尚未确认 SYN-SENT 表示主机已经发出一个连接请求等待对方确认 ESTABLISHED 传输连接建立双方进入正常数据传输状态 FIN-WAIT-1 主动关闭主机已经发送关闭连接请求等待对方确认 FIN-WAIT-2 主动关闭主机已收到对方关闭连接确认等待对方发送关闭连接请求 TIMED WAIT 完成双向传输连接关闭等待所有分组消失 CLOSING 双方同时尝试关闭传输连接等待对方确认 CLOSE WAIT 被动关闭收到对方发来的关闭连接请求并已确认 LAST ACK 被动关闭等待最后一个关闭连接确认并等待所有分组消失 TCP/IP协议、HTTP协议_tcp/ip http-CSDN博客
http://www.zqtcl.cn/news/149916/

相关文章:

  • 怎样做国际网站dw网页设计代码免费
  • wordpress做企业站基础微网站开发公司
  • 用上海注册的公司建的网站怎么做asp网站
  • 一个专做特卖的网站千鸟云网站建设
  • 哈尔滨网站优化seo知名公司
  • 企业网站的开发流程个人免费建网站
  • 旅游网站平台建设方案策划书wordpress 自建cdn
  • 网站开发回访话术内容电商网站有哪些
  • 网络广告投放网站网站如何做关
  • 葫芦岛住房和城乡建设厅网站野望王绩
  • 小说网站怎么做网站建设需求分析班级
  • 开设购物网站的方案网站免费seo
  • 免费手机h5模板网站模板下载wordpress所有插件
  • 北京做网站开发公司wordpress主题创建后门
  • 企业门户网站建设内容企业建设网站的功能是什么意思
  • 做a的网站有哪些在国外做网站推广
  • 做外贸网站设计上需要注意什么python做音乐网站
  • 英语门户网站织梦源码wordpress 推荐插件
  • 学做衣服网站有哪些网站建设算入会计分录
  • 京东网站开发技术织梦网站如何做404
  • 论坛类网站开发屏蔽wordpress缩略图
  • 南宁市两学一做网站logo设计网站官网
  • 中国建设工程造价管理协会网站查询网站开发者的设计构想
  • 华强北网站建设设计素材网站p开头的
  • 怎样让网站快速收录利用数据库修改wordpress密码
  • 网站建设群发广告词做网站首页多少钱
  • 黑彩网站建设中企动力 网站价格
  • 上海营销型网站报价深圳企业网站制作设计
  • 网站清理通知北京电商购物网站
  • 新开传奇网站180合击创建一个个人网站需要多少钱