news 2026/5/11 15:17:48

网络原理TCP/IP

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
网络原理TCP/IP

一.自定义应用层协议

1.明确前后端交互过程中需要传递哪些信息

2.明确组织这些信息的格式(确保前后端一致)

格式:

①xml——通过成对的标签表示键值对信息

②json——键值对格式{"userId":111,"position":e40n60}

③yml——强制要求了数据组织的格式

④google protobuffer——二进制形式

二.传输层

1.UDP\TCP端口号

是一个整数。

同一时刻,同一机器,同一协议,一个端口只能被一个进程绑定,一个进程可绑定多个端口。

端口号可通过2字节无符号整数表示0~65535(0不用,1~1023已被预定好,一般会避开)。

2.UDP协议

(1)报文格式

UDP报头共8B,固定长度。

报头中的四个字段未指定分隔符,通过固定长度进行区分。

UDP数据包长度限制(太长会导致数据截断)

解决:①把大数据包拆分成多个进行传输(不确定性很高)

②直接使用TCP(对长度无限制,且自身有可靠传输机制,代码修改成本低)

(2)检验和算法

CRC、MD5、SAH1

MD5的本质是“字符串hash算法”:key存String,通过hash函数把String转换成数组下标

特点:①定长:无论输入的字符串有多长,md5定长

②分散:输入的内容哪怕只有一点点不同,得到的md5值相差也会很大

③不可逆:已知md5值,理论上无法还原成原始值

3.TCP协议

(1)报文格式

4位首部长度(TCP报文长度可变)

6位保留位(应对突发状况)

选项(TCP报头变长的主要原因)

(2)基本特点

有连接,可靠传输,面向字节流,全双工

(能感知对方是否收到;如果发现对方没收到,重试)

(3)核心机制

①确认应答(感知对方是否收到,对方说一声收到了)

为何网络中存在先发后至?

原因:正常传输数据时,不同的数据包走的路线不同,遇到的状况有差别,最终到达目标的时序存在差异。

解决:给传输的数据添加编号来区分先后顺序。

TCP面向字节流,实际上的编号按照字节进行编排。每个字节有一个独立的编号,字节和字节之间编号连续,递增,称为“TCP的序号”。

在应答报文中,针对之前收到的数据进行对应的编号,称为“TCP的确认序号”。

32位序号TCP数据报载荷中第一个字节的序号
32位确认序号
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 15:16:25

【SAP CO】3.产品成本-3.Routine主数据

目录 一、【KL01/KL02/KL03】作业类型 二、【CR01/CR02/CR03】工作中心 三、【CA01/CA02/CA03】Routine工艺路线(时间) 四、【KP26】作业价格计划(单价) 五、计算Rountine的价格(总价格) 一、【KL01/K…

作者头像 李华
网站建设 2026/4/12 4:47:32

CKKS 同态加密数学基础推导技

背景 StreamJsonRpc 是微软官方维护的用于 .NET 和 TypeScript 的 JSON-RPC 通信库,以其强大的类型安全、自动代理生成和成熟的异常处理机制著称。在 HagiCode 项目中,为了通过 ACP (Agent Communication Protocol) 与外部 AI 工具(如 iflow …

作者头像 李华
网站建设 2026/4/15 17:20:28

Sketch Measure插件:3个关键功能彻底改变设计开发协作流程

Sketch Measure插件:3个关键功能彻底改变设计开发协作流程 【免费下载链接】sketch-measure Make it a fun to create spec for developers and teammates 项目地址: https://gitcode.com/gh_mirrors/sk/sketch-measure 在UI/UX设计领域,设计师与…

作者头像 李华
网站建设 2026/4/17 23:32:56

设计数据流转与跨平台协作:Figma-to-JSON全栈解决方案

设计数据流转与跨平台协作:Figma-to-JSON全栈解决方案 【免费下载链接】figma-to-json 项目地址: https://gitcode.com/gh_mirrors/fi/figma-to-json 在数字化产品开发流程中,设计与开发之间的数据流转始终是影响团队效率的关键瓶颈。设计师在Fi…

作者头像 李华
网站建设 2026/5/8 20:30:08

Elasticsearch多条件查询实战:从基础到高级应用

1. Elasticsearch多条件查询入门指南 第一次接触Elasticsearch的开发者往往会被它强大的查询功能所震撼,但同时也容易被复杂的查询语法劝退。其实多条件查询就像搭积木,只要掌握几个基础组件,就能组合出各种复杂的查询场景。我在实际项目中处…

作者头像 李华