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:短连接,服务器在发送完数据之后立马断开

相关推荐
网络研究院10 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智10 天前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest10 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_10 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
2601_9618451510 天前
粉笔行测题库|系统班|刷题
网络·百度·微信·微信公众平台·facebook·新浪微博
程序猿阿伟10 天前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome
InHand云飞小白10 天前
无人值守站点网络困境?工业级路由器IR315破解连接难题
网络·物联网·4g·工业路由器·4g路由器·iiot·蜂窝路由器
森G10 天前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt
江华森10 天前
TCP/IP 协议栈实战 — 7 个实验详解
网络·tcp/ip·智能路由器
酉鬼女又兒10 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php