HCIA第二次笔记

news2024/9/21 8:04:05

目录

OSI/RM七层参考模型——开放式的系统互联参考模型

核心——分层

TCP/IP模型——TCP/IP协议簇

应用层

应用层协议

封装与解封装

传输层

TCP协议和UDP协议的区别

TCP的报文

TCP的三次握手

TCP的四次挥手

TCP的四种可靠传输机制


OSI/RM七层参考模型——开放式的系统互联参考模型

每一层都在上一层的基础上提供增值服务

  • 应用层:为应用程序通过网络服务,它包含了各种用户使用的协议

  • 表示层:用于处理在两个通信系统中交换信息的表示方式,主要包括数据格式变换、数据的加密与解密、数据压缩与恢复等功能

  • 会话层:负责维护通信中两个节点之间的会话连接的建立、维护和断开,以及数据的交换

  • 传输层:向用户提供端到端的数据传输服务(实现端对端的传输),实现为上层屏蔽低层的数据传输问题,并可以区分不同的进程和服务→依靠端口号实现(根据端口号识别应用)

    端口号的实质是16位二进制,共2^16=65536个端口号

    0号作为保留端口号,实际上能够被使用的有65535个端口号

    1-1023:知名(著名)端口号

  • 网络层:逻辑寻址(IP地址)

  • 数据链路层:物理寻址(MAC地址)

    MAC:介质访问控制层

    LLC:逻辑链路控制层

  • 物理层:利用传输介质为通信的网络节点之间建立、维护和释放物理连接,实现比特流的透明传输,进而为数据链路层提供数据传输服务

核心——分层

1.更利于标准化——每一层的功能及所提供的服务都有精确的细化说明

2.降低层次之间的关联性——每一层只执行对应的功能,某一层出现的问题、某一层协议的增加或减少不会影响到其他层 

TCP/IP模型——TCP/IP协议簇

两种模型的区别

应用层

应用层协议

①HTTP协议:超文本传输协议,80端口

②HTTPS协议(==HTTP+SSL):超文本传输安全协议,443端口

③Telnet协议:远程终端协议,23端口

④DNS协议:域名解析协议,53端口

⑤FTP协议:文本传输协议,20/21端口

⑥DHCP协议:动态主机配置协议,67/68端口

封装与解封装

封装

  • 封装原理:

封装:将数据变为比特流的过程中,参考模型的每一层需要添加上特定的协议报头

        ——从高层往低层依次封装,每一层都把上层的协议包当成数据部分,加上自己的协议头部,组成自己的协议包

  • 协议数据单元(PDU)

(TCP/IP)                                           (OSI-RM)

应用层——数据报文                         应用层——L7PDU

传输层——数据段                             表示层——L6PDU

网络层——数据包                             会话层——L5PDU

数据链路层——数据帧                         ······

物理层——比特流                              物理层——L1PDU

  • 封装过程:

应用层:原始数据 → 二进制数据

传输层:二进制数据 + TCP头部 → 数据段 (TCP头部的关键信息–端口号)

网络层:数据段 + IP头部 → 数据包 (IP头部的关键信息–IP地址)

数据链路层:数据包 + MAC头部 → 数据帧 (MAC头部的关键信息–MAC地址)

物理层:数据帧 → 比特流,在网线中传输

解封装

  • 解封装原理:

解封装 :封装的逆过程,数据从比特流还原为数据的过程

        ——从底层往高层依次解封装,每解封装一层,会将该层的封装的那个协议报头去掉

  • 解封装过程:

物理层:电信号 → 二进制数据,并将其送至数据链路层

数据链路层:查看MAC地址,地址是自己 → 拆掉MAC头部,继续传输;地址不是自己,就丢弃数据

网络层:查看IP地址,地址是自己 → 拆掉IP头部,继续传输;如果IP地址不是自己,则会路由表查找去往该网段的下一跳地址。如果存在转发路径,会为数据包添加一个新的二层帧头和帧尾部。

传输层:查看TCP头部(端口号),判断应该传到哪里,然后重组数据,传输到应用层

应用层:二进制 → 原始数据

传输层

TCP协议和UDP协议的区别

TCP协议和UDP协议的区别TCPUDP
连接面向连接无连接
传输可靠性可靠——可靠传输机制:排序、确认、重传、流控不可靠
分段可以分段不能分段
流控可以进行流控不能进行流控
转发效率较低较高
适用场景对于数据可靠性要求比较高,但是对于实时性要求相对较低的场景,如电子邮件对于数据可靠性要求比较低,但是对于实时性要求相对较高的场景,如视频聊天
  1. UDP是无连接的,在传输数据前不需要与对方建立连接

    TCP是面向连接的,在通信之间双方必须建立TCP连接
  2. UDP提供不可靠的服务,数据可能不按发送顺序到达接收方,也可能会重复或者丢失数据

    TCP提供可靠的服务,TCP协议可以保证传输的数据按发送顺序到达,且不出差错、不丢失、不重复  

TCP的报文

TCP报头最小是20字节→只有功能数据,无可选项(1字节=8位,即一层4字节,除去选项有五层,4*5=20字节)

源端口和目的端口:端口是传输层与应用层的服务接口(源IP,目的IP,源端口,目的端口,TCP→可以唯一标识一个TCP连接)

序号(seq):TCP是面向字节流的,TCP传送的报文可看成为连续的字节流。TCP报文段中每一个字节都有一个编号,该字段指明本报文段所发送的数据的第一个字节的序号

确认序号(ack):期望收到的下一个报文段首部的序号字段的值,确认具有累积效果。若确认号为M,则表明序号M-1为止的所有数据都已经正确收到

首部长度:TCP报头长度,大小不固定(不含数据部分的长度)

标志位:用于区分不同类型的TCP报文,相应标志位置位时有效

标志位含义
URG紧急标志位,表明此报文段中包含紧急数据
ACK确认标志位,表明确认号字段有效
PSH推送标志位,表明应尽快将此报文段交付给接收应用程序
RST重置标志位,表明TCP连接出现严重差错,需释放连接,然后再重新建立连接
SYN同步标志位,在连接建立时用来同步序号
FIN完成标志位,用来释放一个连接

窗口:该字段在传输过程中经常动态变化,表明现在允许对方发送的数据量,以字节为单位。TCP使用滑动窗口机制进行流量控制

校验和:校验数据包的完整性,检验和字段检查的范围包括伪首部、TCP首部和数据两部分,与UDP校验和计算方法相同,但是伪首部中的协议字段值是6

紧急指针:只有在URG=1时才有效,指明本报文段中紧急数据的字节数

选项:长度为0~40字节,注意必须填充为4字节的整数倍。最常用的选项字段是最大段长度MSS

TCP的三次握手

TCP三次握手的工作过程

(1)主机A的TCP向服务器B的TCP发出连接请求报文段,其首部中的同步比特标志位SYN应置为1,同时选择一个初始序号(随机)seq=x

(2)服务器B的TCP收到连接请求报文段后,则发回确认,标志位ACK应置为1,确认号应为ack=x+1。因为连接是双向的,所以服务器B也发出和A的连接请求,在报文段中同时应将SYN置为1,为自己选择一个初始序号seq=y

(3)主机A的TCP收到此报文段后,还要向服务器B给出确认,ACK应置为1,其确认号为ack=y+1;第一次握手发出的seq=x,由于ACK报文段不携带数据则不消耗序号,所以第三次握手发出的seq=x+1

TCP的四次挥手

TCP四次挥手的工作过程

(1)主机A的TCP通知对方要释放从主机A到服务器B这个方向的连接,将发往主机B的TCP报文段首部的终止比特标志位FIN置1,假定此时序号为seq=m

(2)服务器B的TCP收到释放连接的通知后,即发出确认,FIN需要消耗一个序号,所以其确认号为ack=m+1,这样从主机A到服务器B的连接就释放了,连接处于半开闭状态。此时如果服务器B还发送数据,主机A仍接收

(3)服务器B向主机A的数据发送结束后,TCP释放服务器B到主机A的连接。服务器B发出的连接释放报文段必须将终止比特标志位FIN置1,并假定其序号seq=n,因为标志位ACK不需要消耗序号,所以此时的确认号仍是ack=m+1

(4)主机A必须对此发出确认,因为FIN需要消耗一个序号,所以给出的确认号为ack=n+1。最终双方连接释放全部完成

TCP的四种可靠传输机制

(1)排序

TCP数据包分段

假设有一份较大的数据包,如果这份数据包在发送的过程中出现丢包现象,TCP会发生重传,重传的是这一大份数据包。如果TCP把这份数据包分段成几个小的数据包,此时如果在发送过程中发生丢包,那么TCP只会重传丢失的那一小部分数据包

MTU最大传输单元——默认最大1500字节,是数据链路层的参数(限制二层数据)

MSS最大分段大小——MTU-IP协议报头最小长度,最大1480字节(限制分段)

(2)确认

接收端接收到分段数据时,根据fen'duan数据序号向发送端发送一个确认

(3)重传

如果发送端发完数据段之后,并没有收到接收端反馈的确认报文,重新发送一遍

(4)流控——滑动窗口机制

根据接收方的接收能力,通过接收窗口实现端到端的流量控制,接收端将接收窗口的值放在TCP报文中的“窗口”字段中传送给发送端

发送窗口在连接建立时由双方商定初始值。在通信的过程中,接收端可根据自己的资源情况,随时动态地调整自己的接收窗口,然后告诉发送方,使发送方的发送窗口和自己的接收窗口一致

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

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

相关文章

单链表经典面试题 (动图解析)

🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!人生格言:当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔🦾&am…

Lars bak

(1)先从smalltalk说起上回书《阿伦凯(Alan Kay)》咱们说到世界上第一个基于语言虚拟机的编程语言Smalltalk,以及它的创造者:Alan kay。今天我再沿着语言虚拟机这条路,再走向系统虚拟机《虚拟机:IBM-S/360-O…

WebServer项目(一)->计网知识补充

WebServer项目->计网知识补充1.网络结构模式C/S结构B/S结构2.MAC 地址3.IP 地址1)IP 地址编址方式2)A类IP地址3)B类IP地址4)C类IP地址5)D类IP地址(了解)6)特殊的网址7)子网掩码4.端口5.网络模型1)OSI 七层参考模型(Open System Interconnection)2)TCP…

测试开发岗 - 一面复盘

1. 什么是软件测试, 谈谈你对软件测试的了解 软件测试就是验证产品特性是否符合用户需求, 软件测试贯穿于软件的整个生命周期. >>> 那软件测试具体是什么呢 ? 就拿生活中的例子来说, 比如说我们去商场买衣服, 会有以下几个步骤 : 第一步: 我们会走进门店…

SSM版本个人博客系统实现

SSM版本的个人博客系统 文章目录SSM版本的个人博客系统统一的数据返回处理关于前端的一些问题实现注册功能实现登录的功能存储session获取用户的信息获取左侧的个人信息获取右侧的博客列表时间格式化删除操作注销功能(退出登录)查看文章的详情页排查问题…

机器人项目与产品开发

ROS(Robot Operating System) ROS(Robot Operating System)是一个开源的机器人操作系统,旨在为机器人软件开发提供一个通用的、模块化的、分布式的软件平台。ROS由加州大学伯克利分校机器人实验室开发,目前…

一图看懂 xlwings 模块:基于 BSD 协议在 Excel 中方便调用 Python 库(反之亦然), 资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 xlwings 模块:基于 BSD 协议在 Excel 中方便调用 Python 库(反之亦然), 资料整理笔记(大全)摘要模块图类关系图模…

向量和矩阵的backward

向量&#xff1a; 有yw*x&#xff0c;取w、x分别如下且y得&#xff1a; x1 tc.tensor([[5],[6]], dtypetc.float32, requires_gradTrue) w tc.tensor([[10,20],[30,40]], dtypetc.float32, requires_gradTrue) y1 tc.mm(w, x1) y1: tensor([[170.],[390.]], grad_fn<M…

网络安全必学 SQL 注入

1.1 .Sql 注入攻击原理 SQL 注入漏洞可以说是在企业运营中会遇到的最具破坏性的漏洞之一&#xff0c;它也是目前被利用得最多的漏洞。要学会如何防御 SQL 注入&#xff0c;首先我们要学习它的原理。 针对 SQL 注入的攻击行为可描述为通过在用户可控参数中注入 SQL 语法&#…

LightGBM——提升机器算法详细介绍(附代码)

LightGBM——提升机器算法 前言 LightGBM是个快速的&#xff0c;分布式的&#xff0c;高性能的基于决策树算法的梯度提升框架。可用于排序&#xff0c;分类&#xff0c;回归以及很多其他的机器学习任务中。 在竞赛题中&#xff0c;我们知道XGBoost算法非常热门&#xff0c;它…

MySQL:安装 MySQL、Navicat、使用 Navicat 连接 MySQL

文章目录Day 01&#xff1a;一、概念1. 数据库 DB2. 数据库管理系统 DBMS3. MySQL二、安装 MySQL三、安装 Navicat Premium 16四、使用 Navicat 连接 MySQL注意&#xff1a;Day 01&#xff1a; 一、概念 1. 数据库 DB 数据库&#xff1a;DB (Database) 数据仓库&#xff0c;…

NumPy 秘籍中文第二版:四、将 NumPy 与世界的其他地方连接

原文&#xff1a;NumPy Cookbook - Second Edition 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 在本章中&#xff0c;我们将介绍以下秘籍&#xff1a; 使用缓冲区协议使用数组接口与 MATLAB 和 Octave 交换数据安装 RPy2与 R 交互安装 JPype将 NumPy 数组发送到 J…

脑电信号分析

导读 EEG信号的分析过程是为了获得能够突出信号本身特定特性的值&#xff0c;从而对其进行表征。同时&#xff0c;也需要将所获得的值通过准确的绘图技术来进行正确地显示&#xff0c;以使这些值对用户有用且清晰易读。目前&#xff0c;已有许多不同的脑电信号分析和显示技术&…

MVCC

MVCC基本概念 当前读 当前读 : 读取的是记录的最新版本,读取时还要保证其他并发事务不能修改当前记录,会对读取的记录进行加锁. 对于我们日常的操作. 如 : select....lock in share mode(共享锁) , select * for update , update ,insert,delete(排他锁) 都是一种当前读. 快…

「Cpolar」使用Typecho搭建个人博客网站【内网穿透实现公网访问】

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后端的开发语言A…

Spring学习小结

文章目录1 BeanFactory与ApplicationContext的关系2 Spring基础环境下&#xff0c;常用的三个ApplicationContext3 Spring开发中Bean的配置4 Bean的初始化和销毁方法配置5 Bean的实例化配置6 Bean的依赖注入之自动装配7 Spring 的 xml 标签&#xff08;默认、自定义&#xff09…

硬件语言Verilog HDL牛客刷题 day09 哲K部分

1.VL59 根据RTL图编写Verilog程序 1.题目&#xff1a; 根据以下RTL图&#xff0c;使用 Verilog HDL语言编写代码&#xff0c;实现相同的功能&#xff0c;并编写testbench验证功能 2.解题思路 2.1 了解D触发器的知识 &#xff08;在时钟是上升沿的时候&#xff0c; 输入是什么…

UE “体积”的简单介绍

目录 一、阻挡体积 二、摄像机阻挡体积 三、销毁Z体积 四、后期处理体积 一、阻挡体积 你可以在静态网格体上使用阻挡体积替代碰撞表面&#xff0c;比如建筑物墙壁。这可以增强场景的可预测性&#xff0c;因为物理对象不会与地面和墙壁上的凸起细节相互作用。它还能降低物理模…

visio的使用技巧

一、调节箭头方向 1.打开你要修改的Microsoft Visio文件 2.选中你要修改的箭头&#xff0c;在上方的开始工具栏中找到“线条”选项&#xff0c;鼠标左键单击打开&#xff1b; 3.在下面找到“箭头”这个选项&#xff0c;鼠标移到上面去&#xff0c;就会展开&#xff1b;带阴影的…

Linux网络编程 第七天

目录 网络编程阶段项目 项目目标 Web服务器开发准备 Html语言基础 Html简介 Html标签介绍 题目标签 文本标签 列表标签 图片标签 超链接标签 http请求消息 请求类型 http响应消息 http常见状态码 http常见文件类型分…