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

电脑知识 | TCP通俗易懂详解 <二>tcp首部

目录

一、👋🏻前言

二、🖃TCP快递单填写(必填部分)

1.🌸TCP快递单样式

2.🏢填写名称

3.🔢TCP序号

4. ✔️TCP确认号

​编辑5.✅️确认号的确认号

6.📏首部长度 

 7.🔮为了未来

8.🚑URG 

9.💭PSH 

10.🔂RST

11.📞SYN

 12.☎FIN

 13.🗔窗口

 13.👩‍⚖️检验和

 14.🚨紧急指针

三、🖃TCP快递单填写(选填部分) 

四、🏁结语


一、👋🏻前言

大家好,我是菌菌巧乐兹~书接上回,我们讲到TCP就是信息运输的一种方式,和快递一样,那既然是快递,我们在送快递前,就要写一些信息,类似寄件人,收件人,电话.....等。

本篇文章就写,TCP传输信息如何“填写快递信息”

二、🖃TCP快递单填写(必填部分)

1.🌸TCP快递单样式

tcp快递单的官方术语为TCP首部

TCP首部为了方便看,写成长方形的,

长:32bit,宽:5行【必须】+10行【备注】

这个快递单最少需要写32*5 = 160bit = 20字节内容,

最多可以增加到32*15 = 480bit = 60字节内容

2.🏢填写名称

源端口:寄件人(占地16bit)

目的端口:收件人(占地16bit)

3.🔢TCP序号

如果快递太大,就会把快递分开发,那么你收到的快递一般都是要标号的,要不然你不知道收到了几个,收全没有,目前是第几个。

序号(seq):本报文段所发送的数据的第一个字节的序号。(占地32bit)

比如现在有20个书要发,我5个一捆发快递,一共会发四个快递,那第一个快递的序号写0,第二个写6,第三个写11,第四个写16这样。

4. ✔️TCP确认号

快递如果被拆开发了,它不一定是按顺序到的,有的到的快,有的到的慢,这时候就需要收件方给发送方回信,回信东西收到没有,现在是啥情况。

确认号(ack或ack_seq):表示的是发送方期待的下一个字节的序列号。(占地32bit)

比如现在有10个快递都发出去了,收件方收到了快递1、快递2、快递5、快递7,按照顺序,它希望收到快递3,所以这里就会填3。

这个3有两个含义:

含义一,我希望下一个收到的是3。

含义二,3之前的都完整收到了,如果有什么意外发生,3之前的也不用再发了

5.✅️确认号的确认号

根据4.✔️TCP确认号中的内容,确认号是专门给收件方回复用的,那如何知道确认号现在到底有没有用?

ACK(注意是大写):这里可以填0或者1,填0就说明4.✔️TCP确认号中的确认号无效,填1则说明有效(占地1bit)

6.📏首部长度 

根据1.🌸TCP快递单样式,我们知道首部的长度是不固定的,是20字节~60字节之间,那到底是多少呢?就填在这里。(占地4bit)

 7.🔮为了未来

科学的发展总是在进步的,所以我们万一以后想写点什么,需要留余地。

保留:留些空白,万一以后要用,此处都填0。(占地6bit)

8.🚑URG 

只要是发东西,总有着急的信息,和普通的信息,如果来了着急的信息,可以插队快速发送。

URG:紧急消息,可以填0或者1,0代表不着急,1代表着急(占地1bit)

9.💭PSH 

只要是发东西,总有需要对方快速回复,或者回不回复无所谓

PSH:希望对方快速回复,可以填0或者1,0代表无所谓,1代表着急要回复(占地1bit)

10.🔂RST

有时出现重大错误,需要断了连接,这时候需要告诉对方

RST:可以填0或者1,0代表一切正常,1代表需要断了(占地1bit)

11.📞SYN

和打电话一样,开头的嘟嘟嘟,或者彩铃~

SYN:代表正在连接,可以填0或者1,1代表这是正在连接的信号,0代表不是连接信号,只有握手1和握手2需要填1,其他都是0(占地1bit)

握手的知识在上一集里:

电脑知识 | TCP通俗易懂详解 <一>-CSDN博客

 12.☎FIN

和打电话一样,主动告诉对方结束了的那条信息

FIN:代表告知对方我方结束这段关系,可以填0或者1,1代表这是结束语,0代表一切正常,只有挥手1和挥手3需要填1,其他都是0(占地1bit)

挥手的知识也在上一集里:

电脑知识 | TCP通俗易懂详解 <一>-CSDN博客

 13.🗔窗口

我们回到发快递这件事上,作为一个快递公司,每一个快递站都是有容量限制的,不能无限接受快递,所以我们需要告诉发送方,我这里还能接收多少快递,剩余有多少空间,就填在窗口(rwnd或rcvwnd)(占地16bit)

 13.👩‍⚖️检验和

简单判断一下前面写的内容会不会是错的。(占地16bit)

例:我打算发1、2、3、4,这几个数据,在发的时候我简单加一下1+2+3+4=10,我就把10填在检验和这里,如果中间发送的时候数据传错了,比如4不小心传成了6,那么数据就变成1+2+3+6=12,我一看,检验和是10,我收到的是12,说明数据传错了

这里是简单说明,只限于理解,不是真实情况

 14.🚨紧急指针

8.🚑URG 中,我们允许一些紧急数据插队,但如果紧急数据也有很多怎么办,我们需要给紧急数据排队,这个紧急指针就是给紧急数据排序。(占地16bit)

三、🖃TCP快递单填写(选填部分) 

选项:这里可以填很多东西,例,在两个电脑发东西的时候,两边网速不一样,一般会按照网速最差的那个电脑的速度发送,比如腾旭服务器很厉害,但你电脑网速只有1M每秒,肯定不能按照腾旭服务器的速度给你发,你电脑接不住,所以两边需要提前协商一下,就写在这里。

填充:填表格是一行一行的,如果一行没写完,那就拿0补全

四、🏁结语

我是菌菌巧乐兹~希望用通俗易懂的语言来讲解程序知识~

如果觉得写的还行,请点个赞💛再走吧~

相关文章:

  • 微信小程序转为App实践篇 FinClip
  • 金融 IC 卡 CCRC 认证:从合规到业务安全的升级路径
  • asp-for等常用的HTML辅助标记?
  • 继承:(开始C++的进阶)
  • 【回眸】Tessy集成测试软件使用指南(一)新手使用篇
  • 雪域高原的智慧灯塔:国门书屋点亮边疆未来
  • ARCGIS国土超级工具集1.5更新说明
  • 精益数据分析(2/126):解锁数据驱动的商业成功密码
  • STM32 调试口STM32CUBEMX配置
  • 深入解析字体加密解密技术:从原理到实战
  • 数据结构第六章(四)-最小生成树、最短路径
  • Go 语言实现的简单 CMS Web
  • Windows安装Rust版本GDAL
  • 从零开始搭建PyTorch环境(支持CUDA)
  • 基于瑞芯微RK3562 四核 ARM Cortex-A53 + 单核 ARM Cortex-M0——Linux应用开发手册
  • Python抽象基类
  • Day1-初次接触UFS
  • spark-SQL核心编程课后总结
  • thinkphp:部署完整项目到本地phpstudy
  • 移动硬盘突然打不开紧急救援指南:从排查到完整恢复‌
  • 外贸平台做摩托车配件什么网站好/百度平台我的订单查询在哪里
  • 网站备案需要提供网站建设方案书/长沙优化官网服务
  • wordpress和站点/企业推广软文
  • 网站开发源代码知识产权归属/seo专业论坛
  • 网站公司怎么做运营/网络营销步骤
  • 个人网站界面模板/怎样推广自己的app