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

网站建设中搜索引擎/app开发费用标准

网站建设中搜索引擎,app开发费用标准,公司网站开发的流程,前端后端哪个好找工作文章目录 传输控制协议(TCP)知识点总结介绍数据包格式TCP连接的建立和关闭三次握手四次挥手一张图展示这些过程 其他知识 传输控制协议(TCP)知识点总结 维基百科: 传输控制协议(TCP)是Internet协议套件中的主要协议之一。它起源于…

文章目录

  • 传输控制协议(TCP)知识点总结
    • 介绍
    • 数据包格式
    • TCP连接的建立和关闭
      • 三次握手
      • 四次挥手
      • 一张图展示这些过程
    • 其他知识

传输控制协议(TCP)知识点总结

维基百科:

传输控制协议(TCP)是Internet协议套件中的主要协议之一。它起源于最初的网络实现中,它补充了Internet协议(IP)。因此,整个套件通常称为TCP/IP。TCP在通过IP网络通信的主机之间提供可靠的、有序的、经过检查的字节流传输。主要的互联网应用程序,如万维网、电子邮件、远程管理和文件传输,都依赖于TCP,它是TCP/IP套件的传输层的一部分。SSL/TLS通常运行在TCP之上。

TCP是面向连接的,客户端和服务器之间必须建立连接后才能发送数据。在建立连接之前,服务器必须在等待(被动打开)来自客户端的连接请求。三次握手(主动打开)、重传和错误检测增加了可靠性,但也延长了延迟时间。不需要可靠数据流服务的应用程序可以使用用户数据报协议(UDP),它提供了一个无连接的数据报服务,优先考虑时间而非可靠性。TCP采用网络拥塞避免。但是,TCP存在漏洞,包括拒绝服务攻击、连接劫持、TCP否决和重置攻击。

数据在TCP层称为流(Stream),数据分组称为分段(Segment)。作为比较,数据在IP层称为Datagram,数据分组称为分片(Fragment)。 UDP 中分组称为Message。

介绍

传输控制协议(TCP)是一种在IP之上使用的传输协议,用于确保数据包的可靠传输。

TCP拥有一些机制,可以解决数据包传输的传递中出现的许多问题,例如数据包丢失、数据包乱序、数据包重复和数据包损坏。

由于TCPIP之上最常用的协议,因此Internet协议栈有时也称为TCP/IP

数据包格式

使用TCP/IP发送数据包时,每个IP数据包的数据部分被格式化为TCP段。

在这里插入图片描述

TCP连接的建立和关闭

三次握手

任何TCP连接在建立之前都需要经过三次握手,确保通信双方都能正确的接收和发送数据,这也是TCP可靠性的保障之一。
让我们来研究一下TCP三次握手的过程:

下图是使用wireshark捕获到的三次握手的过程(服务端监听的端口为8888):

wireshark三次握手

  1. 首先客户端(图中端口14243)先向服务端(图中端口8888)发送一个同步位SYN被设置为1的TCP报文段,用来表明这是一个TCP连接请求报文段,并将Seq需要字段设置为x(上图中的连接的x是0),表明客户端选择x作为这个连接的初始序号。发送该报文段后,客户端进入同步发送状态(SYN-SENT)。
  2. 然后服务端收到客户端的TCP连接请求报文段后,服务端同意连接后会向请求的客户端回复一个请求确认报文,这个报文的同步位SYN和确认位ACK都被置为1,序号Seq设置为y(上图是y=0),确认号字段ack被设置为x+1(对于图中连接来说就是x+1=0+1=1)。发送该报文段后,服务端进入同步接收状态(SYN-RECEIVED)。
  3. 最后,在客户端收到服务端发送的请求确认报文段后会回复一个确认报文段,该报文的确认位ACK置1,序号seq置为x+1,确认号字段ack置为y+1。发送该报文段后,客户端进入已建立连接状态(ESTABLISHED)
  4. 服务端接收到客户端发出的确认报文段后也进入已建立连接状态(ESTABLISHED)。

注意:TCP规定SYN被设置为1的报文段不能携带数据而且会消耗掉一个序号。在三次握手的第三次回复中,该报文段没有设置SYN为1,所以它是可以携带数据的。但如果不携带数据则不消耗序号,这时下一次发送的报文段的Seq还是x+1。

下图展示了三次握手的过程:
TCP三次握手

四次挥手

TCP在关闭连接时会进行四次挥手,这确保了数据能够完整地传输并且双方都能正常关闭连接。

下图是wireshark捕获的一次TCP连接的四次挥手记录

wireshark四次挥手

  1. 首先假设挥手的发起者是客户端(图中端口4676),则客户端会发送一个终止位FIN和确认位ACK置为1的报文段,表示客户端想要释放该TCP连接,并将序号Seq设置为u(即该连接请求断开之前已传送过的数据的最后一个字节的序号加1,图中Seq为6),ack置为v(即该连接请求断开之前已收到的数据的最后一个字节的序号加1,图中ack为14)。发送该报文段后,客户端进入终止等待1状态(FIN-WAIT-1)。
  2. 之后,服务端收到该连接终止请求的报文段,服务端会立即回复一个确认报文段,该报文段的确认位ACK置为1,序号Seq置为v,确认号字段ack置为u+1。发送该确认报文段后,服务端进入关闭等待状态(CLOSE-WAIT)。
  3. 在服务端发送确认报文段后,表明客户端到服务端的连接就被释放了,现在该连接处于半关闭状态,客户端不再向服务端发送数据,但是服务端如果还有数据要发送,客户端仍然会接收,这个状态会持续到服务端确认没有数据传输后,主动发出终止连接的报文段。
  4. 在客户端收到服务端发来的确认报文段后,会进入终止等待2状态(FIN-WAIT-2)。该状态会一直等待服务端发出的终止连接的报文段。
  5. 在服务端确认没有数据要发送时,会通知终止连接,并发出一个终止连接的报文段。该报文段的终止位FIN和确认位ACK置为1,序号Seq置为w(如果服务端在半关闭状态下发送了数据那么Seq就会变化,如果没有发送数据,那么Seq=v),确认号字段ack还是置为u+1。发送该报文段后,服务端进入最后确认状态(LAST-ACK)。
  6. 客户端在接收到服务端发来的终止连接的报文段后,会回复一个确认报文段,该报文段确认位ACK置为1,序号Seq置为u+1,确认号字段ack置为w+1。该报文段发送后,客户端进入时间等待状态(TIME-WAIT)。
  7. 服务端在收到客户端发来的确认报文段后,会进入已关闭状态(CLOSED)。而客户端需要等待2MSL的时间后才会从时间等待状态(TIME-WAIT)进入已关闭状态(CLOSED)。(MSL(Maximum Segment Lifetime)即报文段最大生存时间,RFC793建议为2分钟)。

注意:TCP规定终止位FIN置为1的报文段即使不携带数据,也要消耗掉一个序号

下图展示了四次挥手的过程:
TCP四次挥手

一张图展示这些过程

其他知识

  1. 在TCP连接中,服务端使用一个五元组(源IP地址,源端口,目的IP地址,目的端口,协议类型)来唯一标识客户端的连接。当服务端监听一个端口时,它会接受来自任何源IP地址和源端口号的连接请求,但是每个连接都必须具有唯一的目的IP地址、目的端口号和协议类型。
http://www.jmfq.cn/news/5021785.html

相关文章:

  • 做网站需要的注意事项/杭州网站优化企业
  • 中山网站建设技术/某个网站seo分析实例
  • 杭州网站建设书生商友/青岛seo关键字排名
  • 全面的网站制作/seo外链自动群发工具
  • 兰州建设厅评职称网站/免费网站推广网站在线
  • 做网站满屏的照片尺寸是多少/建设网站前的市场分析
  • wap网站用什么服务器/百度应用商店app
  • 找人做网站上线后被投诉侵权/关键词整站优化
  • 潍坊免费模板建站/百度推广怎么做最好
  • 硬件开发平台有哪些/深圳优化公司义高粱seo
  • 海口网站开发/外链网
  • 深圳 网站/怎么提升关键词的质量度
  • 温州做网站建设多少钱/国外seo工具
  • BBS推广网站的步骤/宣传推广计划怎么写
  • 中建材建设有限公司网站/百度大搜推广和百度竞价
  • 政府信息公开和网站建设/小程序制作一个需要多少钱
  • 广州珈瑶公司是哪一年注册的/河南网站关键词优化
  • 建个静态网站/搜索引擎营销名词解释
  • 常州规划网站/网络推广工作怎么样
  • 什么网站程序好/百度投诉电话客服24小时
  • 专注专业网站建设/鱼头seo软件
  • 哪项不属于网站架构/百度推广好不好做
  • 福州建设网站公司/北京朝阳区疫情最新情况
  • 在地税网站怎么做税种认定/网络营销企业案例
  • 政府网站建设讲话稿/网站优化排名哪家性价比高
  • 常平最新疫情/郑州seo顾问培训
  • 电子商务网站建设的基本流程/最近的时事新闻
  • wordpress模板修改教程/宁波seo咨询
  • 什么网站下载素材做图的/网站空间
  • 安徽省疫情防控最新政策/seo搜索排名