Linux12-TCP\HTTP

打印 上一主题 下一主题

主题 1038|帖子 1038|积分 3114

一、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:
4. RST:重置毗连标志
表现请求创建一个毗连5.SYN:
fmish标志,表现开释毗连6.FN
四、TCP机制

1.应答机制:为每个数据增加序列发,发送数据时,第一个数据的序号作为报文中的序号。接收方收到相关数据,会回应ACK报文,报文中的确认号是接收方下次希望接收到的数据的起始序号
2.超时重传机制:TCP发送数据后会在肯定的时间内等待ACK,假设在指定时间ACK未收到,则视为此数据包丢失,
五、HTTP(应用层)

超文本传输协议
1.世界范围内的广域网--万维网WWW
万维网服务器怎样标志万维网文档?---------------->url:统一资源定位符
万维网客户端和万维网服务器怎样通讯?---------->http:超文本传输协议
万维网客户端怎样显示数据?------------------------->HTML:超文本标志语言
URL:
<协议>://<主机>:<端口>/<路径>
/*创作中心-CSDN
https://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:短毗连,服务器在发送完数据之后立马断开



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

嚴華

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表