密码学学习笔记(二十四):TCP/IP协议栈

TCP/IP协议栈的基础结构包括应用层、传输层、网络层、数据链路层和物理层。

应用层 

应用层位于TCP/IP协议栈的最顶层,是用户与网络通信的接口。这一层包括了各种高级应用协议,如HTTP(用于网页浏览)、FTP(用于文件传输)、SMTP(用于电子邮件)和DNS(用于域名解析)。应用层协议规定了应用软件如何通过网络进行通信,处理特定类型的网络活动,并为用户提供直观的操作界面。

传输层 

传输层负责在网络中不同主机间的数据传输。这一层主要使用两种协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP提供可靠的、有序的数据传输,通过三次握手建立连接,确保数据完整性。UDP则提供更快但不保证数据完整性的连接,适用于对速度要求高但可以容忍一定丢包的应用,如视频流和在线游戏。

网络层

网络层处理数据包在网络中的路由和转发。最重要的协议是IP(互联网协议),它为每个网络设备分配一个独特的地址(IP地址),确保数据包能够找到正确的目的地。网络层决定数据包的最佳路径,通过路由器进行数据包转发,并处理不同网络之间的互连问题。

数据链路层

数据链路层负责在相邻网络节点间的数据传输。这一层将数据封装成帧,然后进行物理传输。它同时也负责错误检测和纠正,确保数据在局部网络中的准确传输。此层中的以太网(Ethernet)是最常见的技术标准,用于有线网络中。

物理层

物理层是协议栈中最基础的部分,负责在物理媒介上进行原始数据的传输。这包括了电缆、光纤、无线电波等传输媒介的使用,以及数据的编码和信号调制。物理层确保数据可以在不同的物理设备间传输,无论是通过电缆还是无线方式。

示例

在Web浏览会话中,应用层主要使用HTTP协议。当用户在浏览器中输入一个网址或点击一个链接时,浏览器会通过HTTP协议向服务器发送请求。HTTP协议规定了这些请求和响应的格式。

传输层 - TCP:HTTP请求通过传输层的TCP协议传输。TCP提供可靠的数据传输服务,确保数据包的正确顺序和完整性。在TCP层,数据被分割成小的段,并在到达目的地后重新组合。

网络层 - IPv4:网络层使用IP协议(这个例子中是IPv4)来处理数据包的寻址和路由。每个数据包都包含源IP地址和目的IP地址,这些地址确保数据包能够正确地路由到目的地。

数据链路层 - Ethernet:在数据链路层,数据包被进一步封装为帧,用以在局部网络中的物理设备之间传输。以太网是最常见的数据链路层技术。

物理层 - 物理信号:最后,在物理层,数据以电子或光信号的形式通过物理媒介(如铜线、光纤或无线电波)进行传输。

TCP 和 UDP 使用端口允许主机之间的多个主机之间的同时连接

  • 公共IP地址作为唯一标识符:公共IP地址是分配给网络中每个设备的独特标识符。在互联网上,每个设备的IP地址必须是唯一的,以确保数据可以准确地发送到正确的目的地。
  • TCP和UDP的端口使用:TCP(传输控制协议)和UDP(用户数据报协议)都使用端口号来管理多个连接。端口号允许一个IP地址上的不同应用或服务进行区分。例如,HTTP通常使用端口80,HTTPS使用端口443。这样即使多个服务在同一IP地址上运行,也能够被正确地区分和访问

NAT 在多台主机之间共享同一个 IP 地址多个主机共享同一 IP 地址,以应对 IPv4 短缺问题

  • 网络地址转换(NAT):NAT是一种在IPv4地址不足的情况下广泛使用的技术。它允许多个设备共享同一个公共IP地址,通过在私有网络和公共网络之间转换IP地址来实现。这样,内部网络中的多个设备可以使用私有IP地址,而对外表现为单一的公共IP地址。
  • IP数据包的基本结构:IP数据包包括一个头部和数据部分。头部包含了重要的控制信息,如源IP地址、目的IP地址、版本号、长度等。这些信息对于正确路由和传输数据包至关重要。

IP数据包在网段上的传递不涉及路由器

为了到达同一网络(链路)中的计算机,IP 数据包被封装在数据链路帧中,最常见(在有线帧中)是以太网

以太网实现基本链路功能,例如冲突避免和 CRC

网卡仅将那些发往该主机的帧传递给操作系统(即以其 MAC 地址作为目的地)

IP漏洞和路由

互联网最初的设计没有将安全作为首要考虑因素,导致了许多潜在的安全漏洞。随着网络攻击的增加,改进网络安全成为了一个重要的挑战。 

路由算法决定了数据包在网络中的传输路径。BGP(边界网关协议)是互联网上使用的主要路由协议。然而,BGP自身存在安全问题,如路由劫持,这可能导致数据流量被错误地或恶意地重定向。

IPSec 和 IPv6

IPSec 为 IP 添加身份验证和加密

IPSec 可以验证和加密每个 IP 数据包。IPSec是一个在网络层提供认证和加密的协议框架,以增强数据传输的安全性。它包括两种模式:传输模式和隧道模式。传输模式只加密IP数据包的数据部分,而隧道模式则加密整个IP数据包。

  • 安全关联 (SA):在通信开始之前定义(端点之间)——指定用于身份验证和加密的算法,并通过 IPSec 密钥交换 (IKE) 交换密钥
  • 身份验证标头 (AH):IP 扩展,提供数据报的身份验证和完整性,加上时间戳以防止重放攻击
  • 封装安全有效负载 (ESP):对 IP 的扩展,提供身份验证、完整性和机密性(加密)

IPv6应对了IPv4地址耗尽的问题,提供了几乎无限的地址空间。它还引入了一些其他改进,如自动地址配置、更简单的头部格式和改进的安全性(例如内置IPSec支持)。

IPSec有两种模式:传输(主机到主机)和隧道(VPN)

在传输模式下,IPSec 被“添加”到原始数据包中。

AH 可以为 IP 标头和有效负载提供完整性(通过散列)和身份验证问题:IP 选项是可变的,并且可以在传输过程中更改因此被排除在外 。

在隧道模式下,原始数据包封装在 IPSec 中,例如 用于虚拟专用网络 (VPN)

网关将 IP 数据包封装到附加的 IP 标头中,一旦数据包到达另一个网关,该标头就会被删除。网络中的主机看到彼此就好像它们在同一网络中一样。IPv6的引入大大增加了可用的IP地址数量,并带来了其他改进,例如自动配置和简化的路由器处理。

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

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

相关文章

适用于电脑的 10 款最佳文件恢复软件

由于在线可用选项数量众多,寻找适用于 Windows 11 的最佳文件恢复软件可能会很棘手,但本指南将为您提供有关此主题所需的所有信息。 文件或数据丢失是指意外或无意丢失电子设备上存储的重要数字文件的事件。这可能是由于外部或内部问题造成的&#xff0…

element-ui的el-upload组件实现上传拖拽排序图片顺序(sortablejs)

<template><!-- 省略其他配置 --><el-upload ref"upload" :file-list.sync"fileList"></el-upload></template><script>import Sortable from sortablejs;export default {data() {return {fileList: []};},mounted()…

【数据结构与算法】排序算法:冒泡排序,冒泡排序优化,选择排序、选择排序优化

目录 一、冒泡排序 1、冒泡排序思想 2、冒泡排序算法的性能分析 代码实现&#xff1a; 二、选择排序 1、选择排序思想 2、选择排序算法的性能分析 代码实现&#xff1a; 一、冒泡排序 1、冒泡排序思想 冒泡排序的基本思想是通过相邻元素之间的比较和交换来逐步将最大…

基于springboot+vue的房产销售系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

UI自动化Selenium 无头模式运行

1、导入浏览器参数设置 from selenium.webdriver.chrome.options import Options 2、创建参数&#xff0c;并使用无厘头模式创建driver对象 opt Options() # 新建参数对象 opt.add_argument("--headless") # 无头 self.driver webdriver.Chrome(optionsopt) …

List详解,线性表

什么是List 在集合框架中&#xff0c;list是一个接口&#xff0c;继承自collection&#xff0c;collection也是接口&#xff0c;继承自Iterable&#xff1b; Iterable是一个接口&#xff0c;表示实现该接口的类是可以逐个元素进行遍历的&#xff0c;如下&#xff1a; 第一个是…

游卡:OceanBase在游戏核心业务的规模化降本实践

从 2023 年 9 月测试 OceanBase&#xff0c;到如今 3 个核心业务应用 OceanBase&#xff0c;国内最早卡牌游戏研发者之一的游卡仅用了两个月。是什么原因让游卡放弃游戏行业通用的 MySQL方案&#xff0c;选择升级至 OceanBase&#xff1f;杭州游卡网络技术有限公司&#xff08;…

密码产品推介 | 沃通安全电子签章系统(ES-1)

产品介绍 沃通安全电子签章系统&#xff08;ES-1&#xff09;是一款基于密码技术、完全自主研发的商用密码产品&#xff0c;严格遵循国家密码管理局制定的相关标准&#xff0c;可为企业和个人提供安全、合规的电子签章功能服务。产品的主要用途是为各类文书、合同、表单等电子…

半波整流电路原理详解+参数与计算公式

什么是半波整流电路&#xff1f; 半波整流电路的基本操作非常简单&#xff0c;输入信号通过二极管&#xff0c;由于只能通过一个方向的电流&#xff0c;二极管的整流作用&#xff0c;单个二极管只允许通过一半的波形。 下图说明了半波整流电路的基本原理。 半波整流电路工作图…

自动驾驶概述

自动驾驶技术主要解决的问题 无人驾驶分级 L1:巡航定速(ACC),巡航装置可以纵向控制车辆,可以加速减速 L2:车道保持辅助,系统可以纵向控制也可以横向控制汽车,但车是辅助,人才是主导。 L2.5:可以提供简单路况下的变道能力,比如特斯拉。 L3:L2的基础上提供变道能力,…

PGSQL主键序列

PostgreSQL和 MySQL数据库还是有一定的区别。 下面了解一下 PGSQL的主键序列。 一、主键 1、系统自带主键序列 在 PostgreSQL 中&#xff0c;GENERATED BY DEFAULT 和 GENERATED ALWAYS 是用于定义自动生成的列&#xff08;Generated Column&#xff09;的选项。一般可作用…

C#根据 App.config 文件中的配置信息去查找并加载指定目录下的 DLL

C#根据 App.config 文件中的配置信息去查找并加载指定目录下的 DLL System.IO.FileNotFoundException:“未能加载文件或程序集“AliNPOIExcel, Version1.0.0.0, Cultureneutral, PublicKeyTokennull”或它的某一个依赖项。系统找不到指定的文件。” 如何让程序识别不同目录下…

Scrcpy:掌握你的Android设备

Scrcpy&#xff1a;掌握你的Android设备 本文将介绍Scrcpy工具&#xff0c;它是一种强大的安卓设备控制工具&#xff0c;可以实现屏幕镜像、操作控制等功能。我们将探讨Scrcpy的基本原理和工作方式&#xff0c;并介绍如何使用Scrcpy连接和控制安卓设备。此外&#xff0c;我们还…

conda环境下wget: command not found解决方案

1 问题描述 window10的conda环境下&#xff0c;运行程序&#xff0c;报如下错误 sh download_model.sh mkdir: cannot create directory ‘data’: File exists download_model.sh: line 4: wget: command not found download_model.sh: line 5: wget: command not found mkd…

基于Prism框架的WPF前端框架开发《知产代理数字化解决方案》

最近新开发了一套WPF前端界面框架&#xff0c;叫《知产代理数字化解决方案》&#xff0c;采用了时下流行的Prism框架作为整个系统的基础架构&#xff0c;演示了Prism中的IRegionManager区域管理器、IDialogAware对话框、IDialogService对话框服务、IContainerExtension容器等用…

CentOS搭建DNS服务器

服务器规划 DNS服务器IP为&#xff1a;172.16.32.253 需要自定义域名解析 172.16.32.253 dns.zhangsan.com 172.16.32.128 test1.zhangsan.com 172.16.32.129 test2.zhangsan.com 172.16.32.130 www.zhangsan.com 1. 服务器初始化 [rootlocalhost ~]# hostnamectl set-hostnam…

源码:Spring常规Bean创建过程

Bean创建过程&#xff1a; 一、版本 5.3.10二、学习内容 Bean创建过程源码三、Bean生命周期 时间轴地址&#xff1a;点击 四、bean创建过程脑图总结 脑图地址&#xff1a;点击 五、源码过程 说明&#xff1a; bean创建入口一般都是通过getBean(xxx);方法进入的&#xf…

elasticsearch[一]-索引库操作(轻松创建)、文档增删改查、批量写入(效率倍增)

elasticsearch[一]-索引库操作(轻松创建)、文档增删改查、批量写入(效率倍增) 1、初始化 RestClient 在 elasticsearch 提供的 API 中&#xff0c;与 elasticsearch 一切交互都封装在一个名为 RestHighLevelClient 的类中&#xff0c;必须先完成这个对象的初始化&#xff0c;…

python222网站实战(SpringBoot+SpringSecurity+MybatisPlus+thymeleaf+layui)-热门帖子推荐显示实现

锋哥原创的SpringbootLayui python222网站实战&#xff1a; python222网站实战课程视频教程&#xff08;SpringBootPython爬虫实战&#xff09; ( 火爆连载更新中... )_哔哩哔哩_bilibilipython222网站实战课程视频教程&#xff08;SpringBootPython爬虫实战&#xff09; ( 火…

李沐《动手学深度学习》线性神经网络 softmax回归

系列文章 李沐《动手学深度学习》预备知识 张量操作及数据处理 李沐《动手学深度学习》预备知识 线性代数及微积分 李沐《动手学深度学习》线性神经网络 线性回归 目录 系列文章一、softmax回归&#xff08;一&#xff09;问题背景&#xff08;二&#xff09;网络架构&#xf…