Linux12-TCP\HTTP

一、TCP粘包问题

1.TCP在接受数据时,多包数据粘在一起

2.原因:

2.1TCP发送数据时,会根据缓冲区数据的情况进行重新组包

2.2TCP接收方,没有及时读走缓冲区数据,导致缓冲区大量数据缓存。

3.如何解决

3.1发指定大小字节

将要发数据,封装在结构体里

struct data

{

int id;

float tmp;

xxx

};

缺点:发送端与接收端体系不同,32位与64位对齐方式的不同造成数据丢失;所有要在指定的相同平台使用,注意结构体对齐问题。

3.2发送具有指定分隔符的数据

hello world\n

miss you\n

3.3封装自定义数据帧

AA len0C 0001 0112 1314 1504 XXXX XXXXBB

校验:8位和校验

16位和校验

二、网络抓包

抓取通过设备网卡的数据

wireshark:网络抓包工具

1.分析和追踪网络问题

2.查看网络协议栈

安装:sudo apt-get install wireshark

1.sudo wireshark

2.选择通信设备的网卡==》any

3.选择抓取的过滤条件

4.开始抓取

5.进行一次通信

三.TCP报文头

标志位:紧急指针标志,为I时表示紧急指针有效,该报文应该优先传送,

  1. URG:

确认应答标志

2 ACK:

表示发送数据,提示接收端从TCP接收缓冲区中读走数据,为接收后续数据腾出空间

3.PSH:

  1. RST:重置连接标志

表示请求建立一个连接5.SYN:

fmish标志,表示释放连接6.FN

四、TCP机制

1.应答机制:为每个数据增加序列发,发送数据时,第一个数据的序号作为报文中的序号。接收方收到相关数据,会回应ACK报文,报文中的确认号是接收方下次希望接收到的数据的起始序号

2.超时重传机制:TCP发送数据后会在一定的时间内等待ACK,假设在指定时间ACK未收到,则视为此数据包丢失,

五、HTTP(应用层)

超文本传输协议

1.世界范围内的广域网--万维网WWW

万维网服务器如何标记万维网文档?---------------->url:统一资源定位符

万维网客户端和万维网服务器如何通信?---------->http:超文本传输协议

万维网客户端如何显示数据?------------------------->HTML:超文本标记语言

URL:

<协议>://<主机>:<端口>/<路径>

/*创作中心-CSDNhttps://mpbeta.csdn.net/mp_blog/creation/editor?spm=1001.2014.3001.4503*/

应用层:

HTTP协议:浏览器与服务器之间的通信标准

端口号:80

传输层:tcp协议

  1. HTTP工作流程
  1. 请求TCP连接

  2. 发送http请求报文

  3. 接收http响应报文

  4. 关闭连接

爬虫

2.HTTP报文格式:

Connection: keep-alive

http的(tcp)连接方式

keep-alive:长连接,服务器不会立马断开,会等待一段时间断开

close:短连接,服务器在发送完数据之后立马断开

相关推荐
汽车仪器仪表相关领域24 分钟前
NHFID-1000型非甲烷总烃分析仪:技术破局,重构固定污染源监测新体验
java·大数据·网络·人工智能·单元测试·可用性测试·安全性测试
卤炖阑尾炎40 分钟前
Python 网络编程实战:从 TCP/UDP 基础到高并发服务器开发
网络·python·tcp/ip
乾元1 小时前
《硅基之盾》番外篇二:算力底座的暗战——智算中心 VXLAN/EVPN 架构下的多租户隔离与防御
网络·人工智能·网络安全·架构
智擎软件测评小祺1 小时前
渗透测试报告关键模块拆解
网络·web安全·渗透测试·测试·检测·cma·cnas
W.W.H.1 小时前
嵌入式常见的面试题1
linux·网络·经验分享·网络协议·tcp/ip
zmj3203242 小时前
CAN + 以太网 + Wi-Fi + BLE + TCP/IP + MQTT +HTTP协议层级
网络·网络协议·tcp/ip
HXQ_晴天2 小时前
Linux 系统的交互式进程监控工具htop
linux·服务器·网络
南湖北漠2 小时前
记录生活中的那些小事(佚名)
网络·人工智能·计算机网络·其他·安全·生活
M158227690552 小时前
免编程・全兼容|SG‑PLC‑Private PLC 数据采集网关 —— 打通设备数据最后一公里
网络
发光小北2 小时前
IEC103 转 ModbusTCP 网关应用在什么场景?
网络·网络协议