软件安全测试-网络相关基础知识

news2025/6/30 1:01:26

目录

1. OSI 网络模型 

2. TCP/IP协议 

2.1 TCP 协议分层

2.2 TCP 协议内容

2.3 应用层活动

2.4 传输层活动

2.4.1 建立连接三次握手

2.4.2 断开连接四次握手

2.4.3. 数据打包与分解

2.5 网络层活动

2.5.1 IP寻址

2.5.2 ARP协议获取MAC地址

2.5.3 BGP外部网关协议

2.6 数据链路层活动

2.6.1 MAC寻址

3.  协议端口号

4  UDP 协议

​5  IP 协议

6  Http 协议

6.1 http协议

6.2 请求报文

6.3 请求方式

6.4 Http响应报文

6.5 Http响应状态码

1. OSI 网络模型 

2. TCP/IP协议 

2.1 TCP 协议分层

2.2 TCP 协议内容

2.3 应用层活动

  • 用户发起http请求
  • DNS获取IP地址
  • 根据HTTP协议生成HTTP请求报文
  • TLS进行加密,提供保密性和数据完整性

获取IP地址过程:

请求一旦发起,浏览器首先要做的事情就是解析这个域名,一般来说,浏览器会首先查看本地硬盘的 hosts 文件,看看其中有没有和这个域名对应的规则,如果有的话就直接使用 hosts 文件里面的 ip 地址。

如果在本地的 hosts 文件没有能够找到对应的 ip 地址,浏览器会发出一个 DNS请求到本地DNS服务器 。本地DNS服务器一般都是你的网络接入服务器商提供,比如中国电信,中国移动。

查询你输入的网址的DNS请求到达本地DNS服务器之后,本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果,此过程是递归的方式进行查询。如果没有,本地DNS服务器还要向DNS根服务器进行查询。

DNS根服务器没有记录具体的域名和IP地址的对应关系,于是告诉本地DNS服务器,你可以到域服务器上去继续查询,并给出域服务器的地址。这种过程是迭代的过程。

本地DNS服务器继续向域服务器发出请求,在这个例子中,请求的对象是.com域服务器。.com域服务器收到请求之后,也不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,你的域名的解析服务器的地址。

最后,本地DNS服务器向域名的解析服务器发出请求,这时就能收到一个域名和IP地址对应关系,本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。如果url里不包含端口号,则会使用该协议的默认端口号。
 

2.4 传输层活动

2.4.1 建立连接三次握手

2.4.2 断开连接四次握手

2.4.3. 数据打包与分解

2.5 网络层活动

2.5.1 IP寻址

  • 根据目的地址,得到目的网络号,如果处在同一个内网,则可以直接发送。
  • 如果不是,则查询路由表,找到一个路由。
  • 如果找不到明确的路由,此时在路由表中还会有默认网关,也可称为缺省网关,IP用缺省的网关地址将一个数据传送给下一个指定的路由器,所以网关也可能是路由器,也可能只是内网向特定路由器传输数据的网关。
  • 路由器收到数据后,它再次为远程主机或网络查询路由,若还未找到路由,该数据包将发送到该路由器的缺省网关地址。而数据包中包含一个最大路由跳数,如果超过这个跳数,就会丢弃数据包,这样可以防止无限传递。路由器收到数据包后,只会查看网络层的包裹数据,目的ip。所以说它是工作在网络层,传输层的数据对它来说则是透明的。
  • 如果上面这些步骤都没有成功,那么该数据报就不能被传送。如果不能传送的数据报来自本机,那么一般会向生成数据报的应用程序返回一个“主机不可达”或 “网络不可达”的错误。
  • 如果是在局域网中,每台电脑都有自己的私网IP,在对外传输的时候,会经过NAT转换,改成路由器的公网IP。

2.5.2 ARP协议获取MAC地址

ARP协议是将IP地址映射成MAC地址的,由于是IP协议使用了ARP协议,因此通常把ARP协议划归为网络层,但是ARP协议的用途是为了从网络层使用的IP地址解析出在数据链路层使用的MAC地址.


获取MAC地址过程:

  • 主机生成一个具有目的IP地址(默认网关)的ARP查询报文,将该ARP报文放置在一个具有广播目的地址(例如FF:FF:FF:FF:FF:FF:FF)的以太网帧中,并向交换机发送该以太网帧,交换机将该帧交付给所有连接的设备,包括网关路由器。
  • 网关路由器在接口上收到包含该ARP查询报文的帧,发现ARP报文中目的地址IP地址匹配接口的IP地址.网关路由器因此准备一个ARP回答,指示它的MAC地址对应报文中的IP地址,它将ARP回答放在一个以太网帧中,其目的地址是源MAC地址,并向交换机发送该帧,再由交换机将该帧交付给主机。
  • 主机接收包含ARP回答报文的帧,并从ARP回答报文中抽取网关路由器的MAC地址。
  • 将这个MAC地址将与IP包共同传输给下层。
     

2.5.3 BGP外部网关协议

在网络层用BGP协议来控制路由的传播和选择最佳路由。
路由更新时,BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息。
BGP路由通过携带AS路径信息彻底解决路由环路问题。
BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择。

 

2.6 数据链路层活动

2.6.1 MAC寻址

  • 首先通过广播获取足够的MAC地址表,交换机使用MAC地址通过指向相应端口的交换结构将网络通信转向目的节点。交换机为了知道要使用哪个端口来传送单播帧,它必须首先知道自己的每个端口上都存在哪些节点。
  • 交换机使用其 MAC 地址表来确定如何处理传入的数据帧。通过记录与其每一个端口相连的节点的 MAC 地址来构建其 MAC 地址表。当某个特定端口上的某个特定节点的 MAC 地址记录到地址表之后,交换机就可以知道在后续传输中,应将目的地为该特定节点的流量从与该节点对应的端口上发出。
  • 当交换机收到传入的数据帧,而地址表中没有该帧的目的MAC地址时,交换机将把该帧从除接收该帧的端口之外的所有端口转发出去。当目的节点响应时,交换机从响应帧的源地址字段中获得的该节点的MAC地址,并将其记录在地址表中。在多台交换机互连的网络中,连接其它交换机的端口MAC地址表中记录有多个MAC地址,用来代表远端节点。通常,用于互连两台交换机的交换机端口在MAC地址表中记录了多个MAC地址。

3.  协议端口号

 

 

4  UDP 协议

5  IP 协议

 

 

6  Http 协议

6.1 http协议

6.2 请求报文

 

6.3 请求方式

 

6.4 Http响应报文

 6.5 Http响应状态码

 

参考:

访问一个网页的全过程(超详细版)_cream66的博客-CSDN博客_页面访问​blog.csdn.net/cream66/article/details/104920732?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1.highlightwordscore&spm=1001.2101.3001.4242.2 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/68370.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Neuroscout:可推广和重复利用的fMRI研究统一平台

摘要 功能磁共振成像 (fMRI) 已经彻底改变了认知神经科学,但方法上的障碍限制了研究 结果的普遍性。Neuroscout,一个端到端分析自然功能磁共振成像数据 的平台, 旨在促进稳健和普遍化的研究推广。Neuroscout利用最先进的机器学习模型来自动注…

一文解决IDEA中文乱码问题

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:JAVA开发者…

一张图让你牢记MySQL主从复制原理|原创

本文深入浅出的讲解了MySQL面试中的必考内容——主从同步原理,牢记文中的主从同步流程图即可!点击上方“后端开发技术”,选择“设为星标” ,优质资源及时送达为什么需要主从复制?1、读写分离,增强MySQL数据…

前端面试题合集

UDP和TCP有什么区别 TCP协议在传送数据段的时候要给段标号;UDP协议不TCP协议可靠;UDP协议不可靠TCP协议是面向连接;UDP协议采用无连接TCP协议负载较高,采用虚电路;UDP采用无连接TCP协议的发送方要确认接收方是否收到数…

[附源码]Python计算机毕业设计Django心理健康系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

【Rasa+Pycharm+Tensorflow】控制台实现智能客服问答实战(附源码和数据集 超详细)

需要源码和数据集请点赞关注收藏后评论区留言~~~ 一、数据准备 1:下面以pychar为环境介绍操作步骤,选择file-new project 创建一个新项目 new environment using 选择 Virtualenv 命名虚拟环境的名称,这里假定虚拟环境的名称为venv&#xff…

uniapp获得某个元素的高度并移动到该高度【伸手党福利】

uniapp获得某个元素的高度并移动到该高度 <view class"scrolls"> ... </view>//等view加载完了才取高度setTimeout(()>{const query uni.createSelectorQuery().in(this);query.select(.scrolls).boundingClientRect(data > {console.log("…

20221207英语学习

今日新词&#xff1a; work v.劳动, 干活; 工作; 起作用, 奏效; 运行 mentality n.〈常贬〉心态&#xff0c;心性&#xff1b;思想方法 copyright n.版权, 著作权 turkey n.火鸡&#xff1b;火鸡肉&#xff1b;&#xff08;Turkey&#xff09;土耳其 best-selling adj.最畅…

知识图谱-生物信息学-医学顶刊论文(Briefings in Bioinformatics-2022):基于异构图GCN和GAT的DTI预测

(2022.4.16)Briefings-DTI-HETA&#xff1a;基于异构图GCN和GAT的DTI预测 目录 (2022.4.16)Briefings-DTI-HETA&#xff1a;基于异构图GCN和GAT的DTI预测 摘要1.引言2.模型方法 2.1 定义3.1 异构图上的GCN3.2 图注意机制3.3 链接预测 4.实验 4.1 案例分析 论文题目&#xff1…

【圣诞节限定】教你用Python画圣诞树,做个浪漫的程序员

最近在各大社交平台看到好多圣诞树&#xff0c;看到大佬们画的圣诞树一个比一个精致&#xff0c;我也特别想尝试画一棵特别的圣诞树。下面是我画的一棵简易的圣诞树&#xff0c;虽然和网络上大佬们的圣诞树相比不是很精致&#xff0c;但是对于萌新们来说&#xff0c;画这样一棵…

Access denied for user ‘root‘ @‘123.233.244.218‘(using password:YES)的解决方法

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。 前言 在我们新买了个服务器之后&#xff0c;数据库我觉得是比不可少的吧&#xff0c;任何一个项目&#xff0c;只要是动态的&#xff0c;都需要数据做数据的服务于支撑&#xff0c;目前我…

JUC并发编程第八篇,谈谈你对CAS的理解?自旋锁,CAS底层原理和存在的问题?

JUC并发编程第八篇&#xff0c;谈谈你对CAS的理解?自旋锁&#xff0c;CAS底层原理和存在的问题&#xff1f;一、CAS是什么&#xff1f;二、CAS的底层原理&#xff0c;如何理解UnSafe类&#xff1f;比较&#xff1a;i线程不安全&#xff0c;那 atomicInteger.getAndIncrement()…

笔记本电脑有必要分盘吗?电脑是分盘好还是不分盘好

电脑分区是指把电脑磁盘划分成多个磁盘分区&#xff0c;不同的磁盘分区用于存储相应类型的数据。许多用户新购置的电脑&#xff0c;打开一看&#xff0c;都会发现&#xff1a;“电脑只有一个C盘&#xff0c;没有其他的磁盘。那么&#xff0c;要不要对电脑分区呢&#xff1f;”笔…

共享车位|基于SpringBoot+vue+node共享车位平台的设计与实现

作者主页&#xff1a;编程千纸鹤 作者简介&#xff1a;Java、前端、Pythone开发多年&#xff0c;做过高程&#xff0c;项目经理&#xff0c;架构师 主要内容&#xff1a;Java项目开发、毕业设计开发、面试技术整理、最新技术分享 收藏点赞不迷路 关注作者有好处 文末获得源码 …

2022-12-6-Cmake工程转VS环境开发

新建工程后目录有 .vs 执行文件目录 x64 baseline.sln 首先新建一个目录&#xff0c;下面分为四个目录分别是dll&#xff0c;idl&#xff0c;include&#xff0c;lib 在include目录下面把所有Cmake工程中的include目录下的文件夹拷过来 在x64的debug下面把所有的dll动态库拷…

数据比较器,对比数据前后变化细节

前言 在开发的过程中&#xff0c;有时候需要对数据进行比对&#xff0c;来判断是否发生变化。如果一个字段一个字段比较&#xff0c;就太麻烦了。所以通过整合注解与反射的方式&#xff0c;实现一个通用的实体数据比较框架。 设计 使用注解&#xff0c;确定需要比较的属性。…

进程管理笔记

查看进程详情 命令&#xff1a;ps -aux 查看进程 能够观察所有系统的数据 命令&#xff1a;ps la | head -5 命令&#xff1a;ps axjf | head -20 仅查看自己的bash相关的进程 命令&#xff1a;ps l 观察系统所有进程 命令&#xff1a;ps aux 观察进程变化命令 - top …

微服务框架 SpringCloud微服务架构 21 RestClient 操作文档 21.3 更新文档

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构21 RestClient 操作文档21.3 更新文档21.3.1 更新文档21 RestClient 操作文…

Python:函数进阶

目录 一、Python中的推导式 需求一 需求二 二、Python的全局作用域 三、Python的多参数传递 四、Python的装饰器 被装饰的方法不带参数 被装饰的方法带参数 带参数的装饰器 一、Python中的推导式 列表生成式是python内置的一种创建列表的方法&#xff0c;通过在[ ]内部执…

会话跟踪技术(Cookie和Session)

目录概述Cookie基本使用Cookie原理Cookie 存活时间Session基本使用Session原理Session使用细节Seesion 销毁&#xff1a;Cookie和Session的对比最后概述 会话&#xff1a; 用户打开浏览器&#xff0c;访问web服务器的资源&#xff0c;会话建立&#xff0c;直到有一方断开连接&…