当前位置: 首页 > news >正文

网络基础知识总结

在这里插入图片描述

‌网络的7层结构‌是指OSI模型,即开放式系统互联模型,由国际标准化组织(ISO)定义,用于描述计算机网络中各个不同层次之间的通信和功能。OSI模型将网络通信分为七个层次,从下到上依次为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。‌

1.物理层(Physical Layer)‌:负责在传输媒体上发送和接收原始的比特流,确保数据能够以适当的方式传输。主要设备包括集线器、中继器和网线等。
‌2.数据链路层(Data Link Layer)‌:负责将原始比特流分割成帧并添加地址信息,确保数据在直接连接的设备之间传输。主要设备包括交换机、网卡和网桥等。
‌3.网络层(Network Layer)‌:负责在不同的网络之间传输数据,路由数据包并确保它们能够到达目标设备。主要设备包括路由器和三层交换机等。
4. ‌传输层(Transport Layer)‌:提供端到端的数据传输服务,确保数据的可靠性、流量控制和错误检测。主要协议包括TCP和UDP。
TCP的全称是传输控制协议(Transmission Control Protocol),UDP的全称是用户数据报协议(User Datagram Protocol)‌‌。
TCP和UDP的基本概念和区别

‌TCP‌:‌面向连接‌:在发送数据前,TCP需要建立连接,确保数据传输的可靠性。‌可靠传输‌:通过一系列机制(如确认应答、超时重传、流量控制等)确保数据完整性和顺序。‌基于字节流‌:TCP传输的是字节流,适用于需要高可靠性的应用,如文件传输和Web浏览器。‌应用场景‌:适合需要可靠传输的应用,如HTTP、FTP、SMTP等‌23。‌UDP‌:‌无连接‌:发送数据前不需要建立连接,直接发送数据包。‌不可靠传输‌:不保证数据的可靠传输,可能会丢包。‌面向数据报‌:传输的数据单位是数据报,适用于实时性要求高的应用。‌应用场景‌:适合对实时性要求高但可以容忍丢包的应用,如视频会议、网络游戏等‌。

TCP3次握手过程详解

所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发,整个流程如下图所示:

在这里插入图片描述

(1)第一次握手:
Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。

(2)第二次握手:
Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。这个时候客户端确认了是自己请求的server

(3)第三次握手:
Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。 server也确认了是这个客户端
SYN攻击:

在三次握手过程中,Server发送SYN-ACK之后,收到Client的ACK之前的TCP连接称为半连接(half-open connect),此时Server处于SYN_RCVD状态,当收到ACK后,Server转入ESTABLISHED状态。SYN攻击就是Client在短时间内伪造大量不存在的IP地址,并向Server不断地发送SYN包,Server回复确认包,并等待Client的确认,由于源地址是不存在的,因此,Server需要不断重发直至超时,这些伪造的SYN包将产时间占用未连接队列,导致正常的SYN请求因为队列满而被丢弃,从而引起网络堵塞甚至系统瘫痪。SYN攻击时一种典型的DDOS攻击,检测SYN攻击的方式非常简单,即当Server上有大量半连接状态且源IP地址是随机的,则可以断定遭到SYN攻击了,使用如下命令可以让之现行:

1 #netstat -nap | grep SYN_RECV

为什么TCP需要设计成三次握手?
‌TCP三次握手的主要目的是为了确保通信双方能够正常接收和发送数据,同时减少不必要的连接错误和冲突(网络拥堵带来的重复的历史连接),从而提高通信的稳定性和可靠性‌。‌
TCP三次握手的具体过程和作用

‌同步双方初始序列号‌:在三次握手过程中,通信双方会相互告知序列号的起始值,以确保数据传输的可靠性。通过确认这些序列号,双方可以标记已经发送的数据包中哪些是被对方签收的,从而避免数据丢失或重复发送。
‌确认连接建立‌:三次握手确保了双方都准备好进行数据传输,避免了历史的重复连接初始化造成的混乱问题。在网络环境不佳的情况下,三次握手可以有效地防止因网络堵塞而导致的无效连接请求。
‌资源优化‌:三次握手是建立可靠数据传输通道的最小通信次数,虽然理论上可以设计更多次握手,但三次握手已经足够确保连接的可靠性,同时避免了不必要的资源浪费。

TCP三次握手的历史背景和演变过程

TCP协议的设计初衷是在不可靠的网络环境下实现可靠的数据传输。三次握手机制是为了在一个不可靠的网络环境中建立一个可靠的连接,确保数据的完整性和顺序性。随着网络技术的发展,虽然有其他协议或机制的出现,但TCP的三次握手机制仍然被广泛使用,并且在许多情况下被认为是建立可靠连接的最优方式。

  1. ‌会话层(Session Layer)‌:负责建立、维护和结束会话,处理会话层面的错误和同步问题。
  2. ‌表示层(Presentation Layer)‌:负责数据的格式转换、加密和解密,确保应用程序能够正确地解释数据。
    7.应用层(Application Layer)‌:为用户提供网络应用服务,包括文件传输、电子邮件、网页浏览等。

‌OSI模型的作用‌在于通过分层结构实现标准化、模块化和互操作性,使得网络通信的设计、开发和管理更加高效。每一层都负责不同的任务,下层只和上层有来往关系,不可跨层传输。


http://www.mrgr.cn/news/81870.html

相关文章:

  • NVR小程序接入平台EasyNVR使用FFmpeg取流时提示错误是什么原因呢?
  • 计算机体系结构期末复习3:GPU架构及控制流问题
  • 【电机控制】基于STC8H1K28的六步换向——方波驱动(硬件篇)
  • Rocky Linux 下安装Liboffice
  • Lua语言入门 - Lua常量
  • 玉米中的元基因调控网络突出了功能上相关的调控相互作用\mo.20a3.R
  • Postman接口测试03|执行接口测试、全局变量和环境变量、接口关联、动态参数、断言
  • 精通 CSS 阴影效果:从基础到高级应用
  • 2.微服务灰度发布落地实践(agent实现)
  • RabbitMQ工作模式(详解 工作模式:简单队列、工作队列、公平分发以及消息应答和消息持久化)
  • nss刷题
  • vue 基础学习
  • win10、win11-鼠标右键还原、暂停更新
  • Linux 笔记 /etc 目录有什么用?
  • Datawhale-AI冬令营二期
  • llm知识梳理
  • 深度学习笔记(9)——神经网络和反向传播
  • ESP-IDF学习记录(2)ESP-IDF 扩展的简单使用
  • STM32F103RCT6学习之三:串口
  • 若依定时任务
  • Qt 中实现系统主题感知
  • GAN对抗生成网络(一)——基本原理及数学推导
  • CSS 居中技术完全指南:从基础到高级应用
  • Java重要面试名词整理(十二):Netty
  • Windows Knowledge
  • RTLinux和RTOS基本知识