计算机网络知识点(五)

目录

一、简述什么是 MSL,为什么客户端连接要等待2MSL的时间才能完全关闭

二、简述 SYN flood,如何防止这类攻击

三、简述TCP 粘包和拆包

四、简述TCP 与 UDP 在网络协议中的哪一层,他们之间有什么区别?

五、简述从系统层面上,UDP 如何保证尽量可靠


一、简述什么是 MSL,为什么客户端连接要等待2MSL的时间才能完全关闭

        1、MSL是Maximum Segment Lifetime的英文缩写,可译为“最长报文段寿命”,它是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃

        2、为了保证客户端发送的最后一个ACK报文段能够到达服务器。因为这个ACK有可能丢失,从而导致处在 LAST-ACK 状态的服务器收不到对 FIN-ACK 的确认报文。服务器会超时重传这个FIN-ACK,接着客户端再重传一次确认,重新启动时间等待计时器。最后客户端和服务器都能正常的关闭。假设客户端不等待2MSL,而是在发送完ACK之后直接释放关闭,一但这个ACK丢失的话,服务器就无法正常的进入关闭连接状态。即:

        (1)保证客户端发送的最后一个ACK报文段能够到达服务端。

        这个ACK报文段有可能丢失,使得处于 LAST-ACK 状态的B收不到对已发送的 FIN+ACK 报文段的确认,服务端超时重传 FIN+ACK 报文段,而客户端能在2MSL时间内收到这个重传的FIN+ACK 报文段,接着客户端重传一次确认,重新启动2MSL计时器,最后客户端和服务端都进入到 CLOSED 状态,若客户端在 TIME-WAIT 状态不等待一段时间,而是发送完ACK报文段后立即释放连接,则无法收到服务端重传的 FIN+ACK 报文段,所以不会再发送一次确认报文段,则服务端无法正常进入到 CLOSED 状态。

        (2)防止“已失效的连接请求报文段”出现在本连接中。

        客户端在发送完最后一个ACK报文段后,再经过2MSL,就可以使本连接持续的时间内所产生 的所有报文段都从网络中消失,使下一个新的连接中不会出现这种旧的连接请求报文段。

二、简述 SYN flood,如何防止这类攻击

        1、SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,使被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。

        2、有以下三种方法预防或响应网络上的DDoS攻击:

        (1)从互联网服务提供商(ISP)购买服务。

        许多互联网服务提供商(ISP)提供DDoS缓解服务,但是当企业网络受到攻击时,企业需要向互联网服务提供商(ISP)报告事件以开始缓解。这种策略称为“清洁管道”,在互联网服务提供商(ISP)收取服务费用时很受欢迎,但在缓解措施开始之前,通常会导致30到60分钟的网络延迟。

        (2)保留在内部并自己解决。

        企业可以使用入侵防御系统/防火墙技术和专用于防御DDoS攻击的专用硬件来实现内部预防和响应 DDoS攻击。不幸的是,受影响的流量已经在网络上消耗了宝贵的带宽。这使得该方法最适合在托管设施中配备设备的企业,在这些企业中,流量是通过交叉连接到达互联网服务提供商(ISP),从而保护流向企业其他部门的下游带宽。

        (3)使用内容分发网络(CDN)。

        由于IT团队可以将基础设施置于内容分发网络(CDN)后面,因此这种方法可以最大程度地减少对企业网络基础设施的攻击。这些网络庞大而多样,如果组织订阅DNS和DDoS缓解措施,则它们可以保护电子商务站点以及企业本身。

三、简述TCP 粘包和拆包

        1、TCP是个“”协议,所谓流,就是没有界限的一串数据。大家可以想想河里的流水,是连成一片的,其间并没有分界线。TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这就是所谓的TCP粘包和拆包问题。

        2、假设客户端分别发送了两个数据包D1和D2给服务端,由于服务端一次读取到的字节数是不确定的,故可能存在以下4种情况:

        (1)服务端分两次读取到了两个独立的数据包,分别是D1和D2,没有粘包和拆包;

        (2)服务端一次接收到了两个数据包,D1和D2粘合在一起,被称为TCP粘包;

        (3)服务端分两次读取到了两个数据包,第一次读取到了完整的D1包和D2包的部分内容,第二次读取到了D2包的剩余内容,这被称为TCP拆包;

        (4)服务端分两次读取到了两个数据包,第一次读取到了D1包的部分内容D1_1,第二次读取到了D1包的剩余内容D1_2和D2包的整包。

        如果此时服务端TCP接收滑窗非常小,而数据包D1和D2比较大,很有可能会发生第五种可能,即服务端分多次才能将D1和D2包接收完全,期间发生多次拆包。

四、简述TCP 与 UDP 在网络协议中的哪一层,他们之间有什么区别?

        TCP和UDP协议都是传输层协议。二者的区别主要有:

        1、基于连接 vs 无连接

        TCP是面向连接的协议。

        UDP是无连接的协议。UDP更加适合消息的多播发布,从单个点向多个点传输消息。

        2、可靠性

        TCP提供交付保证,传输过程中丢失,将会重发。

        UDP是不可靠的,不提供任何交付保证。(网游和视频的丢包情况)

        3、有序性

        TCP保证了消息的有序性,即使到达客户端顺序不同,TCP也会排序。

        UDP不提供有序性保证。

        4、数据边界

        TCP不保存数据边界。虽然TCP也将在收集所有字节之后生成一个完整的消息,但是这些信息在传给传输给接受端之前将储存在TCP缓冲区,以确保更好的使用网络带宽。

        UDP保证。在UDP中,数据包单独发送的,只有当他们到达时,才会再次集成。包有明确的界限来哪些包已经收到,这意味着在消息发送后,在接收器接口将会有一个读操作,来生成一个完整的消息。

        5、速度

        TCP速度慢。

        UDP速度快。应用在在线视频媒体,电视广播和多人在线游戏。

        6、发送消耗

        TCP是重量级。

        UDP是轻量级。因为UDP传输的信息中不承担任何间接创造连接、保证交货或秩序的信息。 这也反映在用于报头大小。

        7、报头大小

        TCP头大。一个TCP数据包报头的大小是20字节。 TCP报头中包含序列号,ACK号,数据偏移量,保留,控制位,窗口,紧急指针,可选项,填充项,校验位,源端口和目的端口。

        UDP头小。UDP数据报报头是8个字节,UDP报头只包含长度、源端口号、目的端口和校验和。

        8、拥塞或流控制

        TCP有流量控制。在任何用户数据可以被发送之前,TCP需要三数据包来设置一个套接字连接。TCP处理的可靠性和拥塞控制。

        UDP不能进行流量控制。

        9、应用

        由于TCP提供可靠交付和有序性的保证,它是最适合需要高可靠并且对传输时间要求不高的应用。

        UDP是更适合的应用程序需要快速,高效的传输的应用,如游戏。UDP是无状态的性质,在服务器端需要对大量客户端产生的少量请求进行应答的应用中是非常有用的。在实践中,TCP被用于金融领域,如FIX协议是一种基于TCP的协议,而UDP是大量使用在游戏和娱乐场所。

        10、上层使用的协议

        基于TCP协议的:Telnet,FTP以及SMTP协议。

        基于UDP协议的:DHCP、DNS、SNMP、TFTP、BOOTP。

五、简述从系统层面上,UDP 如何保证尽量可靠

        1、UDP仅提供了最基本的数据传输功能,至于传输时连接的建立和断开、传输可靠性的保证这些UDP统统不关心,而是把这些问题抛给了UDP上层的应用层程序去处理,自己仅提供传输层协议的最基本功能。

        2、最简单的方式是在应用层模仿传输层TCP的可靠性传输。下面不考虑拥塞处理,可靠UDP的简单设计。

        (1)添加seq/ack机制,确保数据发送到对端。

        (2)添加发送和接收缓冲区,主要是用户超时重传。

        (3)添加超时重传机制。

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

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

相关文章

个人制作软件是否需要代码签名证书?

在数字化时代,软件安全已成为企业和个人用户关注的焦点。为了保护软件免受恶意篡改和仿冒,代码签名证书应运而生。代码签名证书是一种数字证书,用于对软件进行数字签名和加密,以确保软件在传输过程中的安全性和可靠性。本文将详细…

【西瓜书】第一二章笔记

耽于学业,选择速记,后续再补。本笔记质量不高,敬请谅解。 关键词: 监督学习(Supervised Learning):一种机器学习范式,其中模型在带有标签的数据集上进行训练。标签提供了正确的答案&…

makefile追加warning日志

在Makefile中,你不能直接“追加”warning日志到构建过程中,但你可以通过几种方式在构建时产生额外的警告或消息。以下是一些常用的方法: 使用echo或printf命令: 在Makefile的规则中,你可以使用echo或printf命令来输出警…

10招教你玩转Python循环优化

更多Python学习内容:ipengtao.com 在Python编程中,循环是最常见的控制结构之一。尽管Python的循环语法简单明了,但在处理大量数据或进行复杂计算时,循环可能会成为性能瓶颈。本文将介绍10种加速Python循环的方法,帮助在…

[Linux] 系统的基本架构特点

Linux系统的基本结构 Linux is also a subversion of UNIX,it follows the basic structure of UNIX 内核(kernel): 操作系统的基本部分 管理与硬件相关的功能,分模块进行 常驻模块:进程控制IO操作文件\磁盘访问 用户不能直接访问内核 外壳(s…

【杂记-浅谈OSPF协议和RIP协议区别】

RIP协议和OSPF协议的区别 1、两者概念不同2、运行方式不同3、底层运行方式不同 1、两者概念不同 路由信息协议RIP:分布式的基于距离向量的路由选择协议,RIP着重于数跳数;开放最短路径优先协议OSPF:使用分布式的基于链路状态的路由…

数据资产:打破数据孤岛,实现数据互联互通,构建企业智能化转型的重要桥梁。通过高效整合与利用数据资源,推动企业决策的科学化、精准化,助力企业迈向智能化新时代

目录 一、引言 二、数据孤岛现象及其影响 三、打破数据孤岛,实现数据互联互通 1、制定统一的数据标准和管理规范 2、建设统一的数据平台 3、推广数据共享和开放文化 四、数据资产在智能化转型中的重要作用 1、推动企业决策的科学化、精准化 2、优化企业运营…

盘点下常见 HDFS JournalNode 异常的问题原因和修复方法

盘点下常见 HDFS JournalNode 异常的问题原因和修复方法 最近在多个客户现场以及公司内部环境,都遇到了因为 JournalNode 异常导致 HDFS 服务不可用的问题,在此总结下相关知识。 1 HDFS HA 高可用和 JournalNode 概述 HDFS namenode 有 SPOF 单点故障…

【尚庭公寓SpringBoot + Vue 项目实战】移动端项目初始化(十九)

【尚庭公寓SpringBoot Vue 项目实战】移动端项目初始化(十九) 文章目录 【尚庭公寓SpringBoot Vue 项目实战】移动端项目初始化(十九)1、 SpringBoot配置2、Mybatis-Plus配置3、Knife4j配置4、导入基础代码5、导入接口定义代码6…

JavaScript保留两位小数

目录 使用toFixed方法 使用Math.round方法 使用toFixed方法 let number 123.456; let result Number(number.toFixed(2)); // 123.46 注意: 1. 返回字符串类型:toFixed 方法返回的是一个字符串类型的值,而不是数字类型。因此&#xf…

gradio快速入门 — Reactive Interfaces

Gradio自动刷新演示。 实时界面 你可以在界面中设置liveTrue让界面自动刷新,这样只要用户输入发生变化,界面就会重新计算。 import gradio as grdef calculator(num1, operation, num2):if operation "add":return num1 num2elif operati…

上海中腾食品科学餐饮管理铸就企业食堂新模式

在当今企业运营中,食堂不仅是员工用餐的场所,更是企业文化和管理水平的体现。随着餐饮行业的不断发展,科学合理的餐饮管理模式成为了企业食堂成功的关键。上海中腾食品科技有限公司以其独特的餐饮管理模式,成功打造了企业食堂的新…

Nginx 的配置和运行核心数

查看 Nginx 配置 Nginx 配置文件通常位于 /etc/nginx/nginx.conf 或 /usr/local/nginx/conf/nginx.conf 路径下。你可以使用以下命令查看这个文件的内容: cat /etc/nginx/nginx.conf在配置文件中找到 worker_processes 这一行,其值就是 Nginx 配置的工作…

CSS3中鲜为人知但非常强大的 Clip-Path 属性

CSS3中鲜为人知但非常强大的 Clip-Path 属性 在CSS3中,clip-path属性可以让我们快速创建各种各样的不规则图形,而无需使用图片或者复杂的绘图工具。它可以帮助我们实现一些非常出色的视觉效果,但遗憾的是它并不是很常见。 clip-path属性可以接受多种不同的值,比如polygon()、…

windows下安装IntelliJIDEA

windows下安装IntelliJIDEA 步骤1:下载IntelliJ IDEA 打开浏览器并访问IntelliJ IDEA下载页面. https://www.jetbrains.com/idea/download/选择合适的版本: Ultimate:付费版本,包含更多功能,适合专业开发。Community…

内核学习——3、自旋锁的作用及其实现

作用: 保护一段临界区的操作时独占的,不能由其他cpu或者线程同时访问破坏数据结构多核系统SMP: 主要考虑一个cpu进入临界区之后,其他CPU不能再去进入这个临界代码区单核系统: 不能被其他进程抢占单核系统自旋锁实现&am…

深入了解python生成器(generator)

生成器 生成器是 Python 中一种特殊类型的迭代器。生成器允许你定义一个函数来动态产生值,而不是一次性生成所有值并将它们存储在内存中。生成器使用 yield 关键字来逐个返回值。每次调用生成器函数时,函数会在 yield 语句暂停,并记住当前的…

静态网页发送基本请求

目录 一、 发送 GET 请求 1.不携带 url 参数的 GET 请求 2.携带 url 参数的 GET 请求 二、发送 POST 请求 三、处理响应 1.获取网页源代码 2.获取图片 一、 发送 GET 请求 当用户在浏览器的地址栏中直接输入某个 URL 地址…

海量数据处理利器 Roaring BitMap 原理介绍

作者:来自 vivo 互联网服务器团队- Zheng Rui 本文结合个人理解梳理了BitMap及Roaring BitMap的原理及使用,分别主要介绍了Roaring BitMap的存储方式及三种container类型及Java中Roaring BitMap相关API使用。 一、引言 在进行大数据开发时,…

网络安全,怎么搭建Python防范环境

注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程: Python网络安全项目开发实战_搭建Python防范环境_编程案例解析实例详解课程教程.pdf 构建一个Python环境下的网络安全防范体系是一个涉及多个层面和步…