基础笔记(三):网络协议之Tcp、Http

2023-11-05

目录

一、网络协议

二、TCP(Transmission Control Protocol,传输控制协议)

  1. TCP头格式
  2. TCP协议中的三次握手和四次挥手
  3. TCP报文抓取工具

三、HTTP(HyperText Transfer Protocol,超文本传输协议)

  1. 请求报文结构
  2. 请求报文样例
  3. 请求报文参数详解
  4. 响应报文结构
  5. 响应报文样例
  6. 响应报文参数详解
  7. HTTP报文抓取工具
  8. Session和Cookie

四、相关资料

 

一、网络协议

       国际标准化组织(International Standard Organization,ISO)公布了开放系统互连参考模型(OSI/RM)。OSI/RM是一种分层的体系结构,参考模型共有7层。
TCP/IP(Transmission Control Protocol/Internet Protocol)作为Internet的核心协议。它是个协议族,包含多种协议。
分层的基本想法是每一层都在它的下层提供的服务基础上提供更高级的增值服务,而最高层提供能运行分布式应用程序的服务。

发送请求的过程是从最顶层(应用层)出发,每一层负责封装属于自己的信息到请求中,最后将一整个请求发送给对方。
接收请求的过程是从最底层(网络接口层)开始,每一层的协议负责解析属于自己的东西,比如网际层(IP)处理ip信息,传输层(TCP)处理点对点的端口,应用层(HTTP)处理Request或Response的Line\Header\Body。

 

二、TCP(Transmission Control Protocol,传输控制协议)

      TCP是一种面向连接(连接导向)的、可靠的基于字节流的传输层通信协议。TCP将用户数据打包成报文段,它发送后启动一个定时器,另一端收到的数据进行确认、对失序的数据重新排序、丢弃重复数据。
TCP的特点有:

  • TCP是面向连接的运输层协议
  • 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的
  • TCP提供可靠交付的服务
  • TCP提供全双工通信。数据在两个方向上独立的进行传输。因此,连接的每一端必须保持每个方向上的传输数据序号。
  • 面向字节流。面向字节流的含义:虽然应用程序和TCP交互是一次一个数据块,但TCP把应用程序交下来的数据仅仅是一连串的无结构的字节流。

1、TCP头格式

(1)   Source Port(源端口号):数据发起者的端口号,16bit。
(2)   Destination Port(目的端口号):数据接收者的端口号,16bit。
(3)   Sequence Number(顺序号码,Seq):用于在数据通信中解决网络包乱序(reordering)问题,以保证应用层接收到的数据不会因为网络上的传输问题而乱序(TCP会用这个顺序号码来拼接数据),32bit。
(4)   Acknowledgment Number(确认号码,ack):是数据接收方期望收到发送方在下一个报文段的顺序号码(Seq),因此确认号码应当是上次已成功收到顺序号码(Seq)加1,32bit。
(5)   Offset(TCP报文头长度):用于存储报文头中有多少个32bit(上图的一行),存储长度为4bit,最大可表示(2^3+2^2+2^1+1)*32bit=60bytes的报文头。最小取值5,5*32bit=20bytes。
(6)   Reserved(保留):6bit, 均为0
(7)   TCP Flags(TCP标志位)每个长度均为1bit
          CWR:压缩,TCP Flags值0x80。
          ECE:拥塞,0x40。
          URG:紧急,0x20。当URG=1时,表示报文段中有紧急数据,应尽快传送。
          ACK:确认,0x10。当ACK = 1时,代表这是一个确认的TCP包,取值0则不是确认包。
          PSH:推送,0x08。当发送端PSH=1时,接收端尽快的交付给应用进程。
          RST:复位,0x04。当RST=1时,表明TCP连接中出现严重差错,必须释放连接,再重新建立连接。
          SYN:同步,0x02。在建立连接是用来同步序号。SYN=1, ACK

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基础笔记(三):网络协议之Tcp、Http 的相关文章

随机推荐

  • 【R】【数据采集、抽样和预处理实验】

    文章目录 实验思维导图 实验一 1 1 启动 Rstudio 1 2 新建 R Script 文件 1 3 read csv 函数导入数据 1 4 剔除冗余变量 1 5 缺失值处理 1 6 异常值处理 实验二 2 1 启动 Rstudio
  • 解决idea识别不出来项目中某些Maven模块,显示模块为“灰色”

    解决idea识别不出来项目中某些Maven模块 显示模块为 灰色 背景 打开一个Maven多模块项目 发现有些Maven子模块显示为 灰色 解决方式 点击右侧怕 Maven gt 点击 加号 gt 选择灰色模块对应的 pom 文件 本步骤主
  • OpenSSL中文手册之ASN1库详解(未完待续)

    openssl之ASN 1系列之1 引言和ASN 1概述 引言 ASN 1全称为Abstract Syntax NotationOne 是一种描述数字对象的方法和标准 openssl的编码方法就是基于该标准的 目前 很多其他软件的编码方法也
  • vue321

    component切换 div class dashboard container div
  • [PHP面试题]跳槽面试必背-自己最近5年的整理(二)

    看完这些还怕进不了大厂 PHP面试题 跳槽面试必背 自己最近5年的整理 一 PHP面试题 跳槽面试必背 自己最近5年的整理 三 PHP经典面试题集 含答案 面试12家公司 收获9个offer 2020年PHP 面试问题 100 个常见的 P
  • 图解OAuth 2.0协议族(一):授权码 auth code

    最近学习了OAuth 2 0的协议族 获益匪浅 对认证 授权都有了新的 进一步认识 在这里做用序列图记录与总结所有的场景 以共勉 系列全文以资源拥有者授权客户端访问受保护照片访问为例 模拟了多个场景 Oauth是一个授权协议框架 包含多个协
  • NVIDIA-smi

    上图是服务器上 GeForce GTX 1080 Ti 的信息 下面一一解读参数 上面的表格中的红框中的信息与下面的四个框的信息是一一对应的 GPU GPU 编号 Name GPU 型号 Persistence M 持续模式的状态 持续模式
  • 剑指offer-10 二进制数字1的个数

    输入一个int型数字 输出它作为二进制的1的个数 如9的二进制为1001 有2个1 则输出2 法一 因为int型有4个字节 一共32位 每次将输入右移1 并和1进行 与 操作 将结果累加 则为1的个数 public class Test10
  • 二维各向同性介质弹性波数值模拟(交错网格有限差分法)

    一 一阶速度 应力弹性波方程 在二维各向同介质xoz平面内 假定体力为0 从上面方程当中 我们为了得到各点的应力和速度值 就需要得到关于对时间t和空间x z的偏导 二 时间上的2M阶差分 由Taylor公式得 三 空间2N阶近似差分 由一阶
  • 【2023】Python安装教程

    一 Python下载 1 进入Python官网 官网地址 https www python org 2 点击 Downloads 展开后点击 Windows 跳转到下载python版本页面 选择 Stable Releases 稳定版本 我
  • 尤其抖音,不如学习

    什么是我们最宝贵的资源 是钱吗 不不不 我们最宝贵的资源是时间 与其把时间耗费在刷抖音 或者其他没多少价值的事情上 不如多学习一些有用的技能 今天 小灰给大家推荐几个有用的公众号 这些公众号有些是IT相关 有些是教我们如何穿衣打扮 有些是讨
  • 超出表空间"users"的空间限额

    这是因为用户被数据库限制了在建表的表空间 执行一下下面的语句后 再执行建表语句 alter user 用户名 quota unlimited on 表空间名字
  • shell中if多重条件

    if a aa a b bb c cc a d dd then echo success fi
  • APP自动化之weditor工具

    由于最近事情颇多 许久未更新文章 大家在做APP自动化测试过程中 可能使用的是Appium官方提供的inspect进行元素定位 但此工具调试不方便 于是今天给大家分享一款更好用的APP定位元素工具 weditor weditor基于web网
  • linux查看可执行文件的编译器版本

    一部分可执行程序 可以使用这个方法快速确认 strings a program name grep i gcc 输出 GCC Debian 4 8 4 1 4 8 4
  • django/CVE-2017-12794XSS漏洞复现

    docker搭建漏洞复现环境 漏洞原理看帮助文档 Django debug page XSS漏洞 CVE 2017 12794 分析 Django发布了新版本1 11 5 修复了500页面中可能存在的一个XSS漏洞 这篇文章说明一下该漏洞的
  • 挖洞经验

    本文分享的是作者在一次众测中的SQL报错型注入漏洞发现过程 有趣之处在于 在后续漏洞利用的构造中 如果在目标服务端数据库逻辑的INSERT查询中使用逗号 Comma 将导致构造的Payload不可用 这种情况下 作者通过综合Time bas
  • 在ubuntu16.04搭建Qt4.8.6嵌入式开发环境

    环境以及软件版本 虚拟机环境 ubuntu16 04 64位 虚拟机环境中gcc的版本 gcc version 5 4 0 20160609 Qt版本 qt everywhere opensource src 4 8 6 tar gz 下载
  • mac安装Python3.7

    https www cnblogs com linxue p 10097785 html
  • 基础笔记(三):网络协议之Tcp、Http

    目录 一 网络协议 二 TCP Transmission Control Protocol 传输控制协议 TCP头格式 TCP协议中的三次握手和四次挥手 TCP报文抓取工具 三 HTTP HyperText Transfer Protoco