HCIA第二次笔记

目录

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.mfbz.cn/a/10416.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[目标识别-论文笔记]Object Detection in Videos by Short and Long Range Object Linking

文章标题:2018_Cite13_Tang——Object Detection in Videos by Short and Long Range Object Linking 这篇论文也被叫做“2019_Cite91_TPAMI_Tang——Object Detection in Videos by High Quality Object Linking” 如果这篇博客对你有帮助,希望你 点赞…

学生信息管理系统【GUI/Swing+MySQL】(Java课设)

系统类型 Swing窗口类型Mysql数据库存储数据 使用范围 适合作为Java课设!!! 部署环境 jdk1.8Mysql8.0Idea或eclipsejdbc 运行效果 本系统源码地址:https://download.csdn.net/download/qq_50954361/87673902 更多系统资源库…

【设计模式】如何在业务开发中使用适配器模式?

文章目录前言适配器模式定义通用代码实现适用场景案例场景分析一坨坨代码实现适配器模式重构总结前言 适配器模式(Adapter Pattern):将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个…

高速Serdes技术(FPGA领域应用)

目录引入一、Serdes(概念-历程)1、概念2、技术现状3、发展历程二、Serdes结构三、在FPGA领域中的运用四、Serdes跟Lvds的关系五、Xilinx 有关 serdes的文档六、参考文献引入 回顾接口技术发展历史,其实数据的传输最开始是低速的串行接口&…

OSI七层网络模型与TCP/IP四层模型

一、OSI七层网络模型 OSI 七层模型 是国际标准化组织提出一个网络分层模型,其大体结构以及每一层提供的功能如下图所示: 但由于各方面原因,OSI 七层模型并没有被广泛应用,更多的是作为网络分层的一种基础理论模型。 二、TCP/IP…

NumPy 基础知识 :1~5

原文:Numpy Essentials 协议:CC BY-NC-SA 4.0 译者:飞龙 一、NumPy 简介 “我宁愿使用通用语言进行数学运算,也不愿尝试使用数学语言进行通用编程。” – John D Cook 在过去的十年中,Python 已成为科学计算中最受欢迎…

MVCC

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

Java对象模型

介绍 Java是一种面向对象的语言,而Java对象在JVM中存储是由一定结构的。而这个 Java对象自身的存储模型称之为Java对象模型HotSpot虚拟机中,设计了一个OOP-Klass Model.OOP指的是普通对象指针,而Klass用来描述对象的具体类型。如下图所示是一…

文章生成器写出来的原创文章

文章生成机器人 文章生成机器人是一种基于人工智能技术和自然语言处理算法的程序,可以自动地生成高质量、原创的文章。 文章生成机器人的优点如下: 提高工作效率:文章生成机器人能够在较短的时间内自动帮助用户生成大量的文章,提…

Python 小型项目大全 21~25

二十一、DNA 可视化 原文:http://inventwithpython.com/bigbookpython/project21.html 脱氧核糖核酸是一种微小的分子,存在于我们身体的每个细胞中,包含着我们身体如何生长的蓝图。它看起来像一对核苷酸分子的双螺旋结构:鸟嘌呤、…

计算机网络微课堂1-3节

目录 1. TCP/TP协议​编辑 2. 3.调制解调器 4.因特网的组成 5.电路交换 6.分组交换 重要常用 7.报文交换 8.总结电路交换 报文交换和分组交换 9. 1. TCP/TP协议 2. ISP 网络提供商 ISP的三层 国际 国家 和本地 3.调制解调器 什么是调制解调器,它存在的…

Python 小型项目大全 11~15

十一、标题党生成器 原文:http://inventwithpython.com/bigbookpython/project11.html 我们的网站需要欺骗人们去看广告!但是想出有创意的原创内容太难了。幸运的是,有了标题党生成器,我们可以让一台计算机产生数百万个令人发指的…

【Linux】浅析Input子系统

文章目录1. 框架1.1 数据结构1.2 evdev_handler1.3 evdev_init1.4 input_register_handler2. 应用如何打开节点并读取到事件数据2.1 evdev_fops2.2 evdev_open2.3 evdev_release2.4 evdev_read2.5 evdev_write2.6 evdev_poll2.7 evdev_fasync2.8 evdev_ioctl2.9 evdev_ioctl_co…

[考研数据结构]第3章之栈的基本知识与操作

文章目录 栈的基本概念 栈的实现 顺序栈 共享栈 链栈 栈的基本概念 栈的定义 栈(Stack)是只允许在一端进行插入或删除操作的线性表 相关术语 栈顶(Top)线性表允许进行插入或删除的那一端称之为栈顶栈底(Bottom&…

【计算机网络-数据链路层】集线器、网桥、交换机

本文许多文字和图片使用了湖科大教书匠(高军老师)的 PPT,在此表示感谢。正是他让非科班的我能以奇妙的方式走进网络的世界。 文章目录1 【物理层】集线器(Hub)——共享式以太网1.1 为什么使用集线器?1.2 集…

macOS Monterey 12.6.5 (21G531) Boot ISO 原版可引导镜像

本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。另外也支持在 Windows 和 Linux 中创建可引导介质。 2023 年 4 月 10 日(北京…

ESXI 6.7全面系统教程~汇总

ESXI 6.7全面系统教程 许可证:0A65P-00HD0-375M1-M097M-22P7H esxi 是一个脱机系统,也是一个虚拟机系统与vmware 相比,它可以直接运行在硬件上,这样可以减少资源浪费,一般用于服务器上;下面是esxi 的完整…

stable-diffusion-webui-colab部署记录

stable-diffusion-webui-colab 该模型可以在网上云端部署stable-diffusion,减少本地部署的繁琐步骤降低配置要求的依赖。 一、进入stable-diffusion-webui-colab 1.网址:https://github.com/camenduru/stable-diffusion-webui-colab 在分支中选择driv…

我的创作纪念日:Unity CEO表示生成式AI将是Unity近期发展重点,发布神秘影片预告

PICK 未来的AI技术将会让人类迎来下一个生产力变革,这其中也包括生成型AI的突破性革新。各大公司也正在竞相推出AIGC工具,其中微软的Copilot、Adobe的Firefly、Github的chatGPT等引起了人们的关注。然而,游戏开发领域似乎还没有一款真正针对性…

Vulnhub:Digitalworld.local (Development)靶机

kali:192.168.111.111 靶机:192.168.111.130 信息收集 端口扫描 nmap -A -v -sV -T5 -p- --scripthttp-enum 192.168.111.130 查看网站首页源码 访问development目录,提示存在一个流量包 查看流量包发现另一个网站路径:/devel…