首页 > 其他分享 >计算机网络知识点(二)

计算机网络知识点(二)

时间:2024-06-16 18:33:21浏览次数:26  
标签:知识点 UDP 请求 握手 TCP 计算机网络 CSRF 客户端

目录

一、简述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;   //源端口号16bit
    unsigned short m_usDestPort;     //目的端口号16bit
    unsigned short m_usLength;       //数据包长度16bit
    unsigned short m_usCheckSum;     //校验和16bit
}__attribute__((packed))UDP_HEADER,*PUDP
……

标签:知识点,UDP,请求,握手,TCP,计算机网络,CSRF,客户端
From: https://blog.csdn.net/L_peanut/article/details/139624655

相关文章

  • 移动端超超超详细知识点总结(Part4)
    rem基础1.rem单位rem(rootem)是一个相对单位,类似于em,em是父元素字体大小。不同的是rem的基准是相对于html元素的字体大小。比如,根元素(html)设置font-size=12px;非根元素设置width:2rem;则换成px表示就是24px。rem的优势:父元素文字大小可能不一致,但是整个页面只有一个html,......
  • 【计算机网络仿真实验-实验2.7】单臂路由
    实验2.7单臂路由1.实验拓扑图2.测试连通性测试PC1PC2PC3之间的连通性无法ping通,因为它们处在不同的网段,而二层交换机不具备路由功能,因此没办法接通3.在交换机上创建vlan10,并将端口0/2划分到vlan10中Switch>enableSwitch#configureterminal......
  • 软考 系统架构设计师系列知识点之杂项集萃(38)
    接前一篇文章:软考系统架构设计师系列知识点之杂项集萃(37)第62题以下关于域名服务器的叙述,错误的是()。A.本地缓存域名服务不需要域名数据库B.顶级域名服务器是最高层次的域名服务器C.本地域名服务器可以采用递归查询和迭代查询两种查询方式D.权限服务器负责将其管辖......
  • 软考 系统架构设计师系列知识点之杂项集萃(37)
    接前一篇文章:软考系统架构设计师系列知识点之杂项集萃(36)第60题用例(usecase)用来描述系统对事件做出响应时所采取的行动。用例之间是具有相关性的。在一个“订单输入子系统”中,创建新订单和更新订单都需要核查用户账号是否正确。用例“创建新订单”、“更新订单”与用例“核......
  • 个人自用python知识点
    str字符串常用方法str_1="abcdefgaaaAGJIFJIJaadfn"#1.index返回某个字符第一次出现的下标,若无则报错print(str_1.index("a"))#print(str_1.index("p"))#报错#2.find返回某个字符第一次出现的下标,若无则返回-1print(str_1.find("a"))print(str_1.find(&quo......
  • 软考 系统架构设计师系列知识点之杂项集萃(35)
    接前一篇文章:软考系统架构设计师系列知识点之杂项集萃(34)第56题遗留系统的演化可以采用淘汰、继承、改造和集成四种策略。若企业中的遗留系统技术含量较高,业务价值较低,在局部领域中工作良好,形成了一个个信息孤岛时,适合于采用()演化策略。A.淘汰B.继承C.改造D.集成正......
  • 第1章 计算机网络和因特网
    1.1什么是因特网回答这个问题:我们更够描述因特网的具体构成(nutsandbolts),即构成因特网的基本硬件和软件组件。我们能够根据为分布式应用提供服务的联网基础设施来描述因特网。1.1.1具体构成描述端系统通过通信链路(communicationlink)和分组交换机(packetswitch)的网络连......
  • 网络编程拓展知识点
    网络编程strcpy和memcpy的区别1.参数,返回值的区别:char*strcpy(char*dest,constchar*src);char*dest:拷到哪里constchar*src:从哪里拷贝void*memcpy(void*dest,constvoid*src,size_tn);void*dest:指向用于存储复制内容的目标数组,类型强制转换为void*指针。......
  • 【知识点】一堆知识点见目录
    目录使⽤distance和advance将容器的const_iterator转换为iterator背景知识问题描述示例代码解释总结正确使用`swap`函数来清理容器`std::vector::swap`的用法示例代码解释总结删除某个元素示例代码解释优点总结什么是纯函数?如何编写纯函数判别式例子:检查一个整......
  • 【知识点】std::thread::detach std::lock_guard std::unique_lock
    在C++11中,std::thread提供了并发编程的基础设施,使得我们可以创建和管理线程。std::thread的detach方法是一种常用的线程管理方式,允许线程在后台独立运行,而不必与主线程同步或等待其完成。std::thread::detach方法当你调用std::thread对象的detach方法时,线程将......