嵌入式学习36-TCP要点及http协议

news2024/11/17 6:25:18

TCP发送文件的粘包问题                                                                                                                     1.  例:    发端 1.flv-------->收端 1.flv csfga

2.解决   1.  sleep(1) 延时发送

              2.自定义帧格式  1.flv \r\n

UDP会不会产生粘包问题呢?
  TCP                                                                                                                                                           是为了保证可靠传输并减少额外的开销(每次发包都要验证),采用了基于流的传输,基于流的传输不认为消息是一条一条的,是无保护消息边界的(保护消息边界:指传输协议把数据当做一条独立的消息在网上传输,接收端一次只能接受一条独立的消息)。

UDP                                                                                                                                                           则是面向消息传输的,是有保护消息边界的,接收方一次只接受一条独立的信息,所以不存在粘包问题。

TCP包头:
1.序号:                                                                                                                                                            发送端   发送数据包的  编号
2.确认号:                                                                                                                                                           已经确认  接收到的数据的编号     (只有当ACK为1时,确认号才有用)

             

TCP为什么安全可靠:


1.在通信前建立三次握手连接
    SYN
    SYN+ACK 
    ACK 

注:Time:wait

防止连接  释放阶段  ACK指令    进入到新连接

我方主动调用close( )断开连接,收到对方确认后状态变为TIME_WAIT。TCP协议规定TIME_WAIT状态会一直持续2MSL(即两倍的分段最大生存期),以此来确保旧的连接状态不会对新连接产生影响。                                                                                                                                                    处于TIME_WAIT状态的连接占用的资源不会被内核释放,所以作为服务器,在可能的情况下,尽量不要主动断开连接,以减少TIME_WAIT状态造成的资源浪费。

2.在通信过程中通过 序列号 和  确认号  保障数据传输的完整性                                                               
    本次发送序列号:                                                                                                                                                             上次收到的确认号
    本次发送确认号:                                                                                                                                                            上次接收到的序列号 + 实际接收的数据长度

  在传输过程中使用滑动窗口实现流量控制

3.在通信结束时使用  四次挥手  结束连接保障数据传输的完整性

UDP和TCP的区别:
    1.UDP和TCP都是传输层的协议
    2.UDP实现机制简单、资源开销、不安全不可靠
    3.TCP实现机制复杂、资源开销、安全可靠
    4.UDP是无连接的、TCP有连接的                                                                                                        UDP是以数据包形式传输、TCP是以流的方式传输

URL:http://api.k780.com/?app=weather.today&weaid=西安&appkey=44923&sign=c9815919d111da6c2c9ca64a304f640b&format=json
    注意:
        appkey:换成自己的APPKey
        sign:换成自己的sign标识

HTTP:应用层协议
1.URL
    <协议>://<主机>:<端口>/<路径>

    协议:                                                                                                                                                          HTTP       80         TCP                                                                                                                                                           
             HTTPS     443         TCP 
    主机:  域名  ->  域名解析服务器 -> IP地址                                                                                    
                                                                                                                                                                端口: 可以省略, HTTP 80
                                HTTPS 443
    路径: 想要获得对应的资源

2.HTTP交互过程:
    1.建立  TCP连接
    2.发送  HTTP请求报文
    3.回复  HTTP相应报文
    4.关闭  TCP连接

网站IP:103.205.5.249:80
    
请求报文格式:
GET /?app=weather.today&weaid=%E8%A5%BF%E5%AE%89&appkey=44923&sign=c9815919d111da6c2c9ca64a304f640b&format=json HTTP/1.1\r\n
Host: api.k780.com\r\n
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/113.0\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\r\n
Accept-Language: en-US,en;q=0.5\r\n
Connection: keep-alive\r\n\r\n

响应报文格式:
HTTP/1.1 200 OK\r\n
Server: nginx\r\n
Date: Fri, 08 Mar 2024 06:33:44 GMT\r\n
Content-Type: application/json; charset=utf-8;\r\n
Transfer-Encoding: chunked\r\n
Connection: keep-alive\r\n
Access-Control-Allow-Origin: *\r\n
\r\n
{"success":"1","result":{"weaid":"316","days":"2024-03-08","week":".........","cityno":"xian","citynm":"......","cityid":"101110101","temperature":"13.../0...","temperature_curr":"12...","humidity":"29%","aqi":"65","weather":"............","weather_curr":"...","weather_icon":"http://api.k780.com/upload/weather/d/0.gif","weather_icon1":"","wind":"......","winp":"2...","temp_high":"13","temp_low":"0","temp_curr":"12","humi_high":"0","humi_low":"0","weatid":"1","weatid1":"","windid":"4","winpid":"2","weather_iconid":"0"}}\r\n

                                                           响应报文的状态行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1501621.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HarmonyOS NEXT应用开发案例——二级联动

介绍 本示例主要介绍了List组件实现二级联动&#xff08;Cascading List&#xff09;的场景。 该场景多用于短视频中拍摄风格的选择、照片编辑时的场景的选择。 效果图预览 使用说明&#xff1a; 滑动二级列表侧控件&#xff0c;一级列表随之滚动。点击一级列表&#xff0c;…

蓝桥杯每日一题:烤鸡dfs

这道题考察了dfs的应用&#xff0c;题干十分有趣&#xff0c;思考过程对以后类似题目也有很强的参考性&#xff0c;一起来学习吧&#xff01; 题目&#xff1a; # 烤鸡 ## 题目背景 猪猪 Hanke 得到了一只鸡。 ## 题目描述 猪猪 Hanke 特别喜欢吃烤鸡&#xff08;本是同畜…

关于Linux上的$ORIGIN解说

1、Linux RPATH & $ORIGIN 许多现代C / C 项目都利用Autotools创建GNU构建系统&#xff0c;例如 根据平台生成make文件。 可执行文件&#xff08;二进制文件&#xff09;在生成/编译过程中生成&#xff0c;并且可以在执行编译的计算机上本地执行。 但是&#xff0c;如果将…

借着ChatGPT的人机交互聊聊长连接

ChatGPT这两年可谓风靡全球&#xff0c;尤其是最近Sora视频模型的横空出世以及claude 3模型所具备的浅意识&#xff0c;更是像打开了新世界的大门。本文就从ChatGPT的网页聊天开始聊起&#xff08;有蹭热度之嫌&#xff0c;哈哈&#xff09;&#xff0c;聊聊长连接的发展历程和…

程序员有哪些证书值得考?

证书可以作为第三方机构对于程序员特定技能或知识掌握程度的认可&#xff0c;在求职市场上&#xff0c;一些公司尤其是大型企事业单位或者政府项目可能更看重证书作为衡量应聘者专业能力的标准之一。备考证书的过程&#xff0c;也可以促使程序员系统地学习和巩固相关知识&#…

2024上半年软考中级《数据库系统工程师》报名考试全攻略

​2024年软考系统数据库系统工程师考试报名时间节点&#xff1a; 报名时间&#xff1a;上半年3月18日到4月15日&#xff0c;下半年8月19日到9月15日&#xff08;各地区报名时间不同&#xff0c;具体日期见官方通告&#xff09; 准考证打印时间&#xff1a;上半年5月20日起&am…

海云安荣获「粤港澳大湾区金融创新成果优秀解决方案」奖

近日&#xff0c;由广东省粤港澳合作促进会指导&#xff0c;广东省粤港澳合作促进会金融专业委员会、粤港澳大湾区金融创新研究院和澳门电子金融产业贸易促进会联合开展了“第二届金融创新优秀应用案例与解决方案技术成果评定”工作。海云安向组委会提交的“海云安开发者安全助…

python爬虫(3)

上一次的代码结果如下&#xff1a; 当然会有一点点不一样是正常的表现&#xff0c;因为这个图本身使用随机数rand函数做的&#xff0c;用其他两种随机函数出来的结果也不会完全相同。 继上节这次带来的是数组的重塑和转置 1、一维数组的重塑 在NumPy模块中的reshape()函数可…

人工蜂群算法

人工蜂群算法 人工蜂群算法&#xff08;Artificial Bee Colony Optimization,ABC&#xff09;是一种基于蜜蜂觅食行为的优化算法&#xff0c;由土耳其学者Karaboga于2005年提出&#xff0c;算法模拟蜜蜂的采蜜行为对优化问题进行求解。 算法原理 ABC算法的核心思想是将优化问…

Unreal Engine API:颠覆游戏开发,数字内容创造轻松驾驭!

&#x1f680; 原理介绍大揭秘 Epic Games的得意之作Unreal Engine API&#xff0c;是虚幻引擎跳动着的核心心脏。基于C架构&#xff0c;并携手可视化编程神器——蓝图系统&#xff0c;它为全球的游戏开发者们打造了一套火力全开的工具箱和功能丰富的接口。无论你是专业团队还…

C++vector的使用方法

文章目录 一、vector的介绍1. 文档链接2. 简要介绍 二、vector的使用1.vector的定义&#xff08;1&#xff09;构造函数&#xff08;2&#xff09;拷贝构造函数&#xff08;2&#xff09;赋值重载 2. vector 增删查改&#xff08;1&#xff09;operator []&#xff08;2&#x…

Vue3 中的代理原理详解

Vue3 中的代理原理详解 Vue3 中引入了代理&#xff08;Proxy&#xff09;机制&#xff0c;取代了 Vue2 中的 Object.defineProperty() 机制&#xff0c;用于实现数据响应式。代理机制是 ES6 中新增的特性&#xff0c;它可以用来自定义对象中的操作&#xff0c;比如属性查找、赋…

IDS入侵检测知识整理及lDS入侵检查表

【IDS入侵检测知识整理及lDS入侵检查表】 1. 网络入侵检测IDS概念 2. IDS分类 3. IDS的工作原理 4. IDS在网络中的部署 5. 入侵检查表 项目建设全套资料获取通道&#xff1a;软件开发全套资料_数字中台建设指南-CSDN博客

植物病虫害:YOLO水稻虫害识别数据集(6类,五千余张图像,标注完整)

YOLO水稻虫害识别数据集&#xff0c;包含褐飞虱&#xff0c;绿叶蝉&#xff0c;正常叶片&#xff0c;稻虫&#xff0c;二化螟&#xff0c;蝇蛆6个类别&#xff0c;共五千余张图像&#xff0c;yolo标注完整。 适用于CV项目&#xff0c;毕设&#xff0c;科研&#xff0c;实验等 …

【QT6】打开项目 .pro 一堆报错 但是程序可以运行 打开别人的QT项目后,全是报错

报错环境 我通过在网上拷贝的项目&#xff0c; 然后打开pro文件 build项目 你会发现各种报错 无缘无故的报错 明明环境已经没问题了 解决方案 首先是提示no valid settings file could be found&#xff0c;这个错误很好解决&#xff0c;删除项目目录下的.user文件&#xff…

第三百八十九回

文章目录 1. 概念介绍2. 使用方法2.1 获取所有时区2.2 转换时区时间 3. 示例代码4. 内容总结 我们在上一章回中介绍了"分享一些好的Flutter站点"相关的内容&#xff0c;本章回中将介绍timezone包.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在…

制备大量单抗腹水就选博奥龙腹水专用佐剂

博奥龙Biodragon腹水专用佐剂是一种预先注入机体内&#xff0c;能增强机体对抗原的免疫应答能力或改变免疫应答类型的辅助物质。主要用于在单克隆抗体腹水制备中&#xff0c;在小鼠腹腔内接种杂交瘤细胞前&#xff0c;注射本佐剂到腹腔内&#xff0c;可以诱导杂交瘤细胞在腹腔内…

用一个 Python 脚本实现依次运行其他多个带 argparse 命令行参数的 .py 文件

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 问题描述&#xff1a;在 Windows 环境中&#xff0c;您希望通过一个 Python 脚本来实现特定的自动化任务&#xff0c;该任务需要依次运行其他多个带 argparse 命令行参数的 .py 文件。您希望找到一种简…

外呼营销的出单成本

在虚拟通信里面&#xff0c;需要不断降低投诉骚扰营销。企业通过呼叫中心电话营销来销售产品&#xff0c;随着市场的管控越来越严格&#xff0c;那就是需要计算出呼叫意向客户的成本。 前期成本是企业引入呼叫中心系统的成本&#xff0c;主要取决于呼叫中心系统的类型。本地自建…

LVS集群(Linux Virtual server)介绍----及LVS的NAT模式部署(一)

群集的含义 ●Cluster&#xff0c;集群、群集由多台主机构成&#xff0c;但对外只表现为一个整体&#xff0c;只提供访问入口(域名或IP地址)&#xff0c;相当于一台大型计算机 问题&#xff1a; 互联网应用中&#xff0c;随着站点对硬件性能、响应速度、服务稳定性、数据可靠…