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

韶关企业网站建设公司官方网站做背景墙厂家

韶关企业网站建设公司,官方网站做背景墙厂家,昆明企业网站开发,东莞+网站+建设+汽车文章目录1、计算机模型2、客户端和服务端通信——TCP协议#xff08;1#xff09;socket套接字#xff08;2#xff09;TCP三次握手——创建socket#xff08;3#xff09;连接的本质#xff08;4#xff09;TCP四次挥手——释放socket资源#xff08;5#xff09;TC… 文章目录1、计算机模型2、客户端和服务端通信——TCP协议1socket套接字2TCP三次握手——创建socket3连接的本质4TCP四次挥手——释放socket资源5TCP的滑动窗口机制及重传机制6发送方窗口(7)接收方窗口3、TCP常见问题1什么是半连接队列2什么是自动重传3ISN(Initial Sequence Number)是固定的吗4三次握手过程中可以携带数据吗6SYN攻击是什么?7挥手为什么需要四次8四次挥手释放连接时等待2MSL的意义?9TIME_WAIT状态过多有什么危害10如何解决TIME_WAIT状态过多1、计算机模型 用户空间应用层会话层、表示层内核空间传输层TCP/UDP、网络层、数据链路层、物理层 2、客户端和服务端通信——TCP协议 应用层组织好HTTP请求数据——用户空间 请求行请求数据的第一行。其中GET表示请求方式 / 表示请求资源路径HTTP/1,1表示协议版本请求头第二行开始格式为keyvalue形式请求体POST请求的最后一部分存放请求参数 传输层建立连接——内核空间 TCP是面向连接的、可靠的传输层协议 发送数据断开连接 1socket套接字 socket套接字是TCP/IP协议的网络通信的基本操作单元包含了五中信息 连接使用的协议本地主机的IP地址本地进程的协议端口远程主机的IP地址远程主机进程的协议端口 2TCP三次握手——创建socket 客户端发送SYN请求给服务端SYN(i)客户端进入SYN_SEND发送状态等待服务器确认 服务端收到客户端的连接请求后给客户端发送SYN(j)ACK(i1)响应,服务端进入SYN_RECEIVDE接收状态 客户端收到服务端的响应后给服务端发送ACK(j1)响应,客户端和服务端进入ESTABLISHED连接状态 所谓的HTTP长链接、短连接的本质其实是TCP的长短连接 3连接的本质 三次握手成功后通信双方会在各自内核空间开辟一些资源。比如发送队列和接收队列 客户端用户要读取服务端资源不是直接和服务器直接对接客户端的读取和服务端的发送时异步的。内核收到服务器的数据后放到接收队列里面去。然后用户再去内核的接收队列中取数据——即IO模型。 连接是通信双方内核的传输层去建立的即socket的创建。数据的发送和接收是用户层和内核之间socket套接字的交互。 思考一个本地进程可以跟一个目标进程建立多少个连接呢 答操作系统中端口号是16位如果确定了本地IP和端口、以及目标IP和端口、理论上是能创建65535条但是一般操作系统对可用端口做了限制(比如1024~65535。那么我可以再插一个网卡换一个IP或者端口就可以再创建这么多连接。这样下去是不是就能创建越来越多的连接了 ​ 当然不是每一个连接都是一个文件描述符。当达到操作系统允许创建的最大描述符个数时就会创建失败。此外创建连接还需要消耗cpu、内存、线程资源。所以这几项都会对创建的socket连接数做出限制。 4TCP四次挥手——释放socket资源 ​ 在断开连接之前客户端和服务器都处于ESTABLISHED状态双方都可以主动断开连接以客户端主动断开连接为优。 第一次挥手客户端打算断开连接向服务器发送FIN(1)报文FIN报文中会指定一个序列号 seq x之后客户端进入FIN_WAIT_1状态。 报文为:FIN 1 序列号seq x 。 第二次挥手服务器收到释放报文(FIN)后就向客户端发送ACKx 1,应答报文。同时发送 seq y。服务器进入CLOSE_WAIT(等待关闭)状态此时的TCP处于半关闭状态客户端到服务器的连接释放。客户端收到来自服务器的ACK应答报文段后进入FIN_WAIT_2状态。 报文为ACK 1 , 序列号seq y, 确认序列号ack x 1。 第三次握手服务器也打算断开连接向客户端发送连接释放(FIN)报文段之后服务器进入LASK_ACK(最后确认)状态等待客户端的确认。 报文为FIN1ACK1序列号seqm确认序列号acku1。 第四次握手客户端收到来自服务器的连接释放(FIN)报文段后会向服务器发送一个ACK应答报文段。 报文为ACK 1 , seq u 1 , ack m 1 之后客户端进入TIME_WAIT(时间等待)状态服务器收到ACK应答报文段后服务器就进入CLOSE(关闭)状态到此服务器的连接已经完成关闭。 客户端处于TIME_WAIT状态时此时的TCP还未释放掉需要等待2MSL后客户端才进入CLOSE状态。 5TCP的滑动窗口机制及重传机制 加入A发送了一个数据包需要等到接收到B的确认报文后才可以继续发送下一个报文是不是效率就比较慢。所以就引入了滑动窗口。 滑动窗口的本质在发送方开启一个数据缓冲区可以一次性发送n个报文并放到缓冲区里面接收端收到这些收据后会给发送方一个应答。发送方等收到接收端的确认后再讲数据从缓冲区删掉。一次性可以发送的最大报文数n就被成为窗口大小。 注意窗口大小是发送方决定的如果一次发送n条数据而服务器此时只能处理mm n条数据此时是不是就会出问题。所以窗口大小是接收方根据自己的处理能力决定的。 那么一次性传多个报文当遇到丢包怎么办——TCP确认重传机制 比如A一次发了0~1000的报文给B那么B给出的应答就是1001表示前面1000个数据已经收到了下一个报文应该是1001。这时A又连续发10002000和20003000的报文给B但是10002000的报文丢了B没有收到。而收到了20003000的数据那么接下来三次给A的应答都将是1001表示应该为1001的数据丢失了。A后面连续三次收到了3次来自B的形同的响应1001就知道1001~2000的数据丢失了就会重传 6发送方窗口 接收窗口被划分为4个部分: 数据已被发送并且接收到ACK数据已被发送但没有接收到ACK数据未发送但在接收方处理能力范围之内数据未发送并且不在接收方处理能力范围之内 窗口是如何滑动的? 当接收方返回4个确认应答,那么发送窗口就向右移动4个位置,同时窗口的每个部分都在同时变化. 这里注意如果发送方一下把数据全部发送,可用窗口大小就为0,那么就无法再次发送数据,需要等待接收方确认应答腾出窗口大小才能发送数据 (7)接收方窗口 接收窗口分为3个部分 已经成功接收,并且已经被接收方确认的数据还没有收到的数据,但是可以接收没有接收到的数据,还不可以被接收 接收的窗口大小与发送的窗口大小是完全相等的么? ​ 可以认为是约等于的关系,把数据放到接收缓冲区里面还需要应用进程来进行读取,如果应用进程读取数据过快,接收缓冲区很快就空了,接收窗口很快就空出来,这时还要将新窗口的大小需要通过TCP的Windows字段告诉我们,这个传输过程存在时延迟,所以不是完全相等的. 3、TCP常见问题 1什么是半连接队列 服务器第一次收到客户端的连接请求SYN时会进入待连接状态SYN_RCVD。还没有完全建立连接。然后将此连接放入到一个队列里这就是半连接对列。 2什么是自动重传 当客户端法送了SYN请求后如果迟迟没有收到服务器的回复就会不断的重新发送连接请求。当重传次数到达系统规定的最大重传次数时就会从半连接状态中删除。重传的时间间隔一般呈指数增加比如1s、2s、4s、8s…… 3ISN(Initial Sequence Number)是固定的吗 建立连接的初始序列不能是固定的。比如A用seq 1向B发起了连接请求当连接后使用seq1向B发送了100k数据假设此时网络出故障了这100k数据没有阻塞在网络中。刚好A重启了之后又以seq 1连接B向B发了200K数据。此时之前的100k数据也到达了B端。但是这时B还将这100k数据当做是新连接之后发的数据是不是就有问题了。 可以避免数据乱序问题 4三次握手过程中可以携带数据吗 ​ 第三次是可以的但是前两次不行因为前两次不知道对方的状态比如此时服务器cpu已经满了但是客户端还恶意的不断去发送大量数据服务器就会分配资源来存储处理可能会导致服务器崩溃。而最后一次是知道对方状态的所以可以携带数据 6SYN攻击是什么? 服务端的连接是在第二次挥手时建立的客户端是在第三次建立的。如果有客户端使用不存在的IP地址向同一台服务器不断的发大量的SYN连接请求服务器就会不停的回复确认报文由于地址是不存在的所以服务端每次发送的报文都不会得到确认就会一直重传直到次数达到最大值。这就导致浪费大量的服务器资源而使得正常的连接得不到资源而被丢弃。这就是洪泛攻击。 防止洪泛攻击的方法 增大最大半连接数 缩短超时时间 SYN cookies技术 SYN cookies技术 服务器在第二次连接的时候会将连接加入到半连接对列等收到确认报文后从半连接对列删除后才认为建立成功。而开启SYN cookies不需要半连接对列也会建立连接具体做法是 第二次挥手时服务器会根据当前的状态算出一个cookies值发给客户端客户端在发送确认报文时会携带这个值服务器收到后进行校验校验成功就会连接成功。 7挥手为什么需要四次 当客户端的数据发送完后发起断开连接请求当收到服务端的确认后就可以断开客户端的连接。但是此时还可以接收到服务器的数据。此时处于半关闭状态。但是此时服务器可能还有数据没有发送完成所以等到服务器发完数据后再向客户端发起断开连接请求。收到确认报文后才会断开连接。 8四次挥手释放连接时等待2MSL的意义? MSL表示报文再网络环境中能存在的最长时间。如果第四次挥手后客户端直接关闭而它发出的确认报文丢失了服务器就会因为收不到这个报文而等待。所以第四次挥手后不能直接关闭如果发出去的确认服务端没有收到服务端就会重新进行第三次挥手客户端再次做出确认报文。 9TIME_WAIT状态过多有什么危害 浪费系统资源如果服务端的TIME_WAIT状态过多就会占用过多的端口资源得不到释放。占满了所有端口后就无法创建新的连接了。 10如何解决TIME_WAIT状态过多 最好是让客户端主动断开对TIME_WAIT状态最大数做出限制达到最大值时将会被清理掉短连接改为长链接
http://www.w-s-a.com/news/94654/

相关文章:

  • 做电脑租赁网站server 2008 网站部署
  • 做网站的公司一年能赚多少钱wordpress作者增加分类插件
  • 苏州尚云网站建设专业摄影网站推荐
  • 020网站开发微信公众号直接链接网站怎么做
  • 学做烘焙的网站某网站注册需要邮箱是怎么弄
  • 网站的特效代码公司网站开发的工作内容
  • 网站制作哪家好商城网站建设预算要多少钱
  • 怎么做律所的官方网站微网站可以做商城吗
  • 通用网站后台管理系统(php版)网站备案ip查询网站查询
  • 制作网站代码吗江阴网站建设推广
  • 汕头建网站wordpress文章网址采集
  • 十大景观设计网站用vue框架做的网站
  • 福建省建设监理网官方网站做外贸网站卖什么东西好
  • 公司做网站排名东莞关键词优化推广
  • 连云港做企业网站公司全网营销与seo
  • 电子毕业设计代做网站wordpress 插件放在那
  • 黄石规划建设局网站怎么做存储网站
  • 网站安装wordpress滨江网站建设
  • 河南官网网站建设一般使用的分辨率显示密度是
  • dedecms新网站 上传到万网的空间宝洁公司网站做的怎么样
  • 网站建设语录优惠券的网站怎么做的
  • 白山市住房和建设局网站有实力高端网站设计地址
  • 沧州网站建设制作设计优化深圳网站自然优化
  • 企业做网站 乐云seowordpress中修改html
  • 网站细节门户wordpress主题下载
  • 全景网站模版wordpress套餐
  • 华为云建网站dw制作一个手机网站模板
  • 定陶菏泽网站建设河北新出现的传染病
  • 商业网站建设案例教程郑州服装网站建设公司
  • 网站内容怎么做专业的企业管理软件