计算机网络知识点(二)

ops/2024/9/25 19:31:21/

目录

一、简述CSRF攻击的思想及解决方法

二、MAC地址和IP地址的作用

三、TCP三次握手和四次挥手的过程

四、TCP两次握手是否可行

五、简述TCP和UDP的区别,它们的头部结构是什么样的


一、简述CSRF攻击的思想及解决方法

        1、CSRF全称是“跨站请求伪造”。即黑客可以伪造用户的身份去做一些操作,进而实现自身目的。要完成一次CSRF攻击,受害者必须依次完成两个步骤:

        (1)登录受信任网站A,并在本地生成Cookie;

        (2)在不登出A的情况下,访问危险网站B。

        此时,黑客就可以获取你的Cookie从而达成不可告人的目的。

        2、CSRF攻击是一种请求伪造的攻击方式,它利用的是服务器不能识别用户的类型从而盗取用户的信息来攻击。因此要防御这种攻击,应该从服务器端入手,增强服务器的识别能力,设计良好的防御机制。主要有以下几种方式:

        (1)请求头中的Referer验证(不推荐

        HTTP的头部有一个Referer信息的字段,它记录着该次HTTP请求的来源地址(即它从哪里来的),既然CSRF攻击是伪造请求从服务器发送过来的,那么我们就禁止跨域访问,在服务器端增加验证,过滤掉那些不是从本地服务器发出的请求,这样可以在一定程度上避免CSRF攻击。但是这也存在缺点,比如如果是从搜索引擎所搜结果调整过来,请求也会被认为是跨域请求。

        (2)请求令牌验证(Token验证

        Token验证是一种比较广泛使用的防止CSRF攻击的手段,当用户通过正常渠道访问服务器时,服务器会生成一个随机的字符串保存在session中,并作为令牌(token)返回给客户端,以隐藏的形式保存在客户端中,客户端每次请求都会带着这个token,服务器根据该token判断该请求是否合法。

二、MAC地址和IP地址的作用

        1、IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异

        MAC地址是物理地址用来定义网络设备的位置

        2、IP地址的分配是根据网络的拓扑结构,而不是根据谁制造了网络设置。若将高效的路由选择方案建立在设备制造商的基础上,而不是网络所在的拓扑位置基础上,这种方案是不可行的。

        3、当存在一个附加层的地址寻址时,设备更易于移动和维修。例如,如果一个以太网卡坏了,可以被更换,而无需取得一个新的IP地址。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无需换一个新的网卡。

        4、无论是局域网还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由APP(Address Resolution Protocol:地址解析协议)负责将IP地址映射到MAC地址上来完成的

三、TCP三次握手和四次挥手的过程

        1、三次握手

        (1)第一次握手:建立连接时,客户端向服务器发送SYN包(seq=x),请求建立连接,等待确认;

        (2)第二次握手:服务端收到客户端的SYN包,回复一个ACK(ACK=x+1)确认收到,同时发送一个SYN包(seq=y)给客户端;

        (3)第三次握手:客户端收到SYN+ACK包,再回复一个ACK包(ACK=y+1),告诉服务端已经收到;

        (4)三次握手完成,成功建立连接,开始传输数据。

        2、四次挥手

        (1)第一次挥手:客户端发送FIN(FIN=1)给服务端,告诉它自己的数据已经发送完毕,请求终止连接,此时客户端不发送数据,但还能接收数据;

        (2)第二次挥手:服务端收到FIN包,回一个ACK给客户端,告诉它已经收到包了,此时还没有断开socket连接,而是等待剩下的数据传输完毕;

        (3)第三次挥手:服务端等待数据传输完毕后,向客户端方式FIN包,表明可以断开连接;

        (4)第四次挥手:客户端收到后,回一个ACK包表明确认收到,等待一段时间,确保服务端不再有数据发过来,然后彻底断开连接。

四、TCP两次握手是否可行

        1、为了实现可靠数据传输,TCP协议的通信双方,都必须维护一个序列号,以标识发送出去的数据包中,哪些是已经被对方接收的。三次握手的过程即是通信双方相互告知序列号起始值,并确认对方已经收到了序列号起始值的必经步骤。

        2、如果只有两次握手,至多只有连接发起方的起始序列号能被确认,另一方选择的序列号则得不到确认。

五、简述TCP和UDP的区别,它们的头部结构是什么样的

        1、TCP协议是有连接的,有连接的意思是开始传输实际数据之前TCP的客户端和服务器端必须通过三次握手建立连接,会话结束之后也要结束连接。UDP是无连接的

        TCP协议保证数据按序发送,按序到达,提供超时重传来保证可靠性。但是UDP不保证按序到达,甚至不保证到达,只是努力交付,即便是按序发送的序列,也不保证按序到达

        TCP协议所需资源多,TCP首部需20个字节(不算可选项),UDP首部字段只需8个字节。

        TCP有流量控制和拥塞控制,UDP没有,网络拥堵不会影响发送端的发送速率。

        TCP是一对一的连接,UDP则可以支持一对一、多对多、一对多的通信。

        TCP面向的是字节流方服务,UDP面向的是报文的服务。

        2、TCP头部结构为:

/* TCP头中的选项定义
kind(8bit)+Length(8bit,整个选项的长度,包含前两部分)+内容(如果有的话)
KIND =  1 表示“无操作NOP”,无后面的部分2 表示maximum segment。后面的LENGTH就是maximum segment选项的长度(以byte为单位,1+1+内容部分长度)3 表示windows scale。  后面的LENGTH就是windows scale选项的长度(以byte为单位,1+1+内容部分长度)4 表示 SACK permitted。 LENGTH为2,没有内容部分。5 表示这是一个SACK包。LENGTH为2,没有内容部分。8 表示时间戳,LENGTH为10,含8个字节的时间戳。
*/typedef struct_TCP_OPTIONS
{char m_ckind;char m_cLength;char m_cContext[32];}__attribute__((packed))TCP_OPTIONS,*PTCP_OPTIONS;UDP头部结构如下:……cpp
/*UDF头定义,共8个字节*/typedef struct_UDP_HEADER
{unsigned short m_usSourcePort;   //源端口号16bitunsigned short m_usDestPort;     //目的端口号16bitunsigned short m_usLength;       //数据包长度16bitunsigned short m_usCheckSum;     //校验和16bit
}__attribute__((packed))UDP_HEADER,*PUDP
……


http://www.ppmy.cn/ops/50128.html

相关文章

QT高阶-QSS样式表用法大全

文章目录 使用全局样式设置字体样式的作用域修改全局控件指示器的样式动态刷新控件的样式QSS样式的优先级调节控件的边框线QT6样式用法差异添加控件的背景图QSS注意事项Qt Style Sheet(QSS)是Qt的一种强大功能,类似于CSS用于网页设计。通过QSS,你可以定义Qt应用程序中的控件的…

ncnn 和 rknn 自定义算子对比实现

你提供了两种实现自定义 Sigmoid 算子的代码。第一种是使用NCNN 并行化的实现,第二种是一个自定义算子函数用于 RKNN(Rockchip Neural Network)的实现。下面我将详细解释这两种实现,并提供一些优化建议。 实现 1:使用NCNN 并行化实现的 Sigmoid 算子 int Sigmoid::forwa…

时间复杂度与空间复杂度

1、时间复杂度 for(i1;i<n;i) { a } for(i1;i<n;i) { for(j1;j<n;j) { a; } } 第一个for循环的时间复杂度为o&#xff08;n&#xff09;&#xff0c;第二个for循环时间复杂度为o&#xff08;n^2&#xff09;&#xff0c;则整个算法的时间复杂度为o(n^2…

nvm 报错https://npm.taobao.org/mirrors/node/index.json 淘宝镜像更换

文章目录 一、问题背景二、解决问题1. 获取配置文件的位置2. 修改配置文件中的镜像源配置3. 修改 npm 镜像源 一、问题背景 使用nvm的时候报错: Could not retrieve https://npm.taobao.org/mirrors/node/index.json. 由于淘宝的镜像域名更换&#xff0c;npm.taobao.org 域名…

mysql面试题 Day2

1 长文本如何存储&#xff1f; 可以使用Text存储 TINYTEXT(255长度) TEXT(65535) MEDIUMTEXT&#xff08;int最大值16M&#xff09; LONGTEXT(long最大值4G) 2 大段文本存储如何设计表结构&#xff1f; 分表存储 分表后多段存储 3 大段文本查找时如何建立索引&#xff1…

nuxt3+vue3+vite+TS实现国际化

前言 博主最近打算用Nuxt3重构了自己SSR博客&#xff0c;打算添加国际化功能&#xff0c;众所周知&#xff0c;实现国际化已是一个很常见的功能。用户可以根据自己的喜好&#xff0c;设置页面的自己合适的语言&#xff0c;从而实现国际化浏览。这样用户体验度会大大提升。博客…

C++中的装饰器模式

目录 装饰器模式&#xff08;Decorator Pattern&#xff09; 实际应用 图形对象装饰器 数据流装饰器 网络请求装饰器 总结 装饰器模式&#xff08;Decorator Pattern&#xff09; 装饰器模式是一种结构型设计模式&#xff0c;它允许你动态地向一个对象添加新的行为&…

RSA学习

[MRCTF2020]Easy_RSA 先来分析一下这个RSA代码的特殊性&#xff0c;这个不是传统的RSA,随机生成N&#xff0c;并保证为N%8的余数是5 zlib 用于数据压缩&#xff0c;但是并似乎没有用到 gen_p(): 生成随机的1024位质数p。计算np*q&#xff0c;并没有直接用于加密。计算F_n…