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

相关推荐
北极光SD-WAN组网2 小时前
从0到1搭建某铝箔智慧工厂网络:5G与WiFi 6助力智能制造
网络·5g·制造
阿昭L2 小时前
HTTP原理
网络·网络协议·http
hazy1k3 小时前
STM32H750 RTC介绍及应用
网络·stm32·实时音视频
没书读了3 小时前
考研复习-计算机网络-第三章-数据链路层
网络·计算机网络·考研
on the way 1233 小时前
多线程之HardCodedTarget(type=OssFileClient, name=file, url=http://file)异常
网络·网络协议·http
WhoisXMLAPI4 小时前
WhoisXML API再次荣登2025年美国Inc. 5000快速成长企业榜单
网络·安全
阿sir1984 小时前
ZYNQ 自定义IP
服务器·网络·tcp/ip
星马梦缘6 小时前
计算机网络4 第四章 网络层——网络间的通信问题(省际之间如何规划信件运输路线)
网络·计算机网络·路由·ip地址·子网掩码·icmp·ipv4/ipv6
hsjkdhs7 小时前
万字详解网络编程之socket
网络·tcp/ip·udp·socket
@是你太难忘9 小时前
计算机网络IP协议
网络·tcp/ip·计算机网络