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

相关推荐
张紫娃32 分钟前
ipconfig详解
网络·智能路由器
测试开发Kevin1 小时前
EDR:现代网络安全的“哨兵”与“侦探”
网络·安全
LRX_1989272 小时前
网络管理员教程(初级)第六版--第3章 网络操作系统
网络·计算机网络
运维帮手大橙子3 小时前
最近面试题总结
linux·服务器·网络
Black蜡笔小新12 小时前
视频汇聚平台EasyCVR级联播放偶发失败排查:TCP主动模式下的3秒超时响应差
网络·tcp/ip·音视频
Fms_Sa12 小时前
UDP的一次双向通信
网络·网络协议·udp
zzz.1013 小时前
top命令的详解
linux·服务器·网络
馨谙13 小时前
网络故障排查三板斧:路由追踪、端口检查,快速定位网络问题
linux·网络
keer_zu14 小时前
一个Modbus-TCP传感器数据传输方案
网络·网络协议·tcp/ip
深度学习实战训练营14 小时前
MemNet:一种用于图像恢复的持久性存储网络
网络·人工智能