关于网络协议的笔记

news2024/11/24 9:06:04

简介:

协议,网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连
接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语
法、语义、时序。
为了使数据在网络上从源到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议
(protocol),它最终体现为在网络上传输的数据包的格式。
协议往往分成几个层次进行定义,分层定义是为了使某一层协议的改变不影响其他层次的协议

常见协议: 

应用层常见的协议有:FTP协议(File Transfer Protocol 文件传输协议)、HTTP协议(Hyper Text
Transfer Protocol 超文本传输协议)、NFS(Network File System 网络文件系统)。
传输层常见协议有:TCP协议(Transmission Control Protocol 传输控制协议)、UDP协议(User
Datagram Protocol 用户数据报协议)。
网络层常见协议有:IP 协议(Internet Protocol 因特网互联协议)、ICMP 协议(Internet Control
Message Protocol 因特网控制报文协议)、IGMP 协议(Internet Group Management Protocol 因特网组管理协议)。
网络接口层常见协议有:ARP协议(Address Resolution Protocol 地址解析协议)、RARP协议
(Reverse Address Resolution Protocol 反向地址解析协议)。

UDP协议:

1.  源端口号:发送方端口号。
2. 目的端口号:接收方端口号。
3. 长度: UDP 用户数据报的长度,最小值是 8 (仅有首部)。
4. 校验和:检测 UDP 用户数据报在传输中是否有错,有错就丢弃。
图的上方是UDP的头,下面是数据。

TCP协议

1. 源端口号:发送方端口号。
2. 目的端口号:接收方端口号。
3. 序列号:本报文段的数据的第一个字节的序号。
4. 确认序号:期望收到对方下一个报文段的第一个数据字节的序号。
5. 首部长度(数据偏移): TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远,即首部长
度。单位: 32 位,即以 4 字节为计算单位。
6. 保留:占 6 位,保留为今后使用,目前应置为 0。
7. 紧急 URG :此位置 1 ,表明紧急指针字段有效,它告诉系统此报文段中有紧急数据,应尽快传送。
8. 确认 ACK :仅当 ACK=1 时确认号字段才有效, TCP 规定,在连接建立后所有传达的报文段都必须把 ACK 1。
9. 推送 PSH :当两个应用进程进行交互式的通信时,有时在一端的应用进程希望在键入一个命令后立即就能够收到对方的响应。在这种情况下,TCP 就可以使用推送( push )操作,这时,发送方 TCP 把 PSH 1 ,并立即创建一个报文段发送出去,接收方收到 PSH = 1 的报文段,就尽快地 (即“ 推送 向前)交付给接收应用进程,而不再等到整个缓存都填满后再向上交付
10. 复位 RST :用于复位相应的 TCP 连接。
11. 同步 SYN :仅在三次握手建立 TCP 连接时有效。当 SYN = 1 ACK = 0 时,表明这是一个连接请求报文段,对方若同意建立连接,则应在相应的报文段中使用 SYN = 1 ACK = 1 。因此, SYN 置 1 就表示这是一个连接请求或连接接受报文 12. 终止 FIN :用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要 求释放运输连接。
13. 窗口:指发送本报文段的一方的接收窗口(而不是自己的发送窗口)。
14. 校验和:校验和字段检验的范围包括首部和数据两部分,在计算校验和时需要加上 12 字节的伪头部。
15. 紧急指针:仅在 URG = 1 时才有意义,它指出本报文段中的紧急数据的字节数(紧急数据结束后就是普通数据),即指出了紧急数据的末尾在报文中的位置,注意:即使窗口为零时也可发送紧急数据。
16. 选项:长度可变,最长可达 40 字节,当没有使用选项时, TCP 首部长度是 20 字节。

 

IP协议

 

 

1.  版本: IP 协议的版本。通信双方使用过的 IP 协议的版本必须一致,目前最广泛使用的 IP 协议版本号为 4 (即 IPv4)。
2. 首部长度:单位是 32 位( 4 字节)。
3. 服务类型:一般不适用,取值为 0。
4. 总长度:指首部加上数据的总长度,单位为字节。
5. 标识( identification ): IP 软件在存储器中维持一个计数器,每产生一个数据报,计数器就加 1 , 并将此值赋给标识字段。
6. 标志( flag ):目前只有两位有意义。
标志字段中的最低位记为 MF MF = 1 即表示后面 还有分片 的数据报。 MF = 0 表示这已是若干数据报片中的最后一个。 标志字段中间的一位记为 DF ,意思是 不能分片 ,只有当 DF = 0 时才允许分片。
7. 片偏移:指出较长的分组在分片后,某片在源分组中的相对位置,也就是说,相对于用户数据段的起点,该片从何处开始。片偏移以 8 字节为偏移单位。
8. 生存时间: TTL ,表明是数据报在网络中的寿命,即为 跳数限制 ,由发出数据报的源点设置这个字段。路由器在转发数据之前就把 TTL 值减一,当 TTL 值减为零时,就丢弃这个数据报。
9. 协议:指出此数据报携带的数据时使用何种协议,以便使目的主机的 IP 层知道应将数据部分上交。给哪个处理过程,常用的 ICMP(1) IGMP(2) TCP(6) UDP(17) IPv6 41
10. 首部校验和:只校验数据报的首部,不包括数据部分。
11. 源地址:发送方 IP 地址。
12. 目的地址:接收方 IP 地址。

以太网帧协议:

类型:0x800表示 IP0x806表示 ARP0x835表示 RARP

也就是MAC地址的封装。

 ARP协议

1. 硬件类型: 1 表示 MAC 地址。
2. 协议类型: 0x800 表示 IP 地址。
3. 硬件地址长度: 6字节。(存的是硬件地址是6个字节,实际上这里存的就是长度,占一个字节)
4. 协议地址长度:4字节。(存的是硬件地址是6个字节,实际上这里存的就是长度,占一个字节)
5. 操作: 1 表示 ARP 请求, 2 表示 ARP 应答, 3 表示 RARP 请求, 4 表示 RARP 应答。

封装:

上层协议是如何使用下层协议提供的服务的呢?其实这是通过封装( encapsulation )实现的。应用程序数据在发送到物理网络上之前,将沿着协议栈从上往下依次传递。每层协议都将在上层数据的基础上加上自己的头部信息(有时还包括尾部信息),以实现该层的功能,这个过程就称为封装。
由下往上传递的时候,上层都是 通过下层的头部或尾部来获取所需的信息

分用

当帧到达目的主机时,将沿着协议栈自底向上依次传递。各层协议依次处理帧中本层负责的头部数据,以获取所需的信息,并最终将处理后的帧交给目标应用程序。这个过程称为分用(demultiplexing )。分用是依靠头部信息中的类型字段实现的。

自下向上传递时,不保留头部数据。 上一层封装之后的内容就是作为下一层的数据去使用。

网络通信的过程:

过程中有一个错误就终止操作。 A通过ARP协议(根据ip找到MAC地址)得到B的MAC地址。在此之后就无需ARP协议了,因为电脑已经缓存下来了。

ARP到底是怎么封装的:

 给局域网内的所有的机器发送ARP请求,然后通过数据报中的目的端IP地址来响应(是否匹配),匹配就应答。

ARP(地址解析协议)的请求和应答是在同一侧操作的,通常是由发送方发起的。

上图中的目的端以太网地址,一开始不知道就填:00:00:00:00:00:00:00。

以太网帧头中的目的物理地址,ff.ff.ff.ff.ff.ff.ff表示给局域网中所有的机器发送请求。ARP报文是数据。

ARP应答包更改其中的一些数据即可。 

以太网帧协议变换过程:

  1. 初始情况: 假设两台主机首次进行通信。发送端希望与目标主机通信,但只知道目标主机的IP地址。此时,发送端会构建一个以太网帧,以太网帧的类型字段设置为0x0800,表示上层协议是IPv4。

  2. ARP请求: 发送端发送这个以太网帧到本地网络,但由于只知道目标IP地址,而不知道目标MAC地址,所以发送的以太网帧的类型字段被设置为0x0806,表示上层协议是ARP。这个ARP请求广播到本地网络,目的是获取目标主机的MAC地址。

  3. 接收端响应: 目标主机接收到ARP请求,识别到自己的IP地址,然后发送ARP应答。这个ARP应答封装在以太网帧中,类型字段仍为0x0806。

  4. 获得MAC地址: 发送端接收到ARP应答,从中获取目标主机的MAC地址。此时,发送端已经知道目标主机的MAC地址,可以将这个MAC地址保存起来以便将来使用。

  5. 切换到IPv4通信: 接下来的通信可以使用IPv4。发送端构建以太网帧,类型字段设置为0x0800,表示上层协议是IPv4。这时发送端已经知道了目标主机的MAC地址,可以将IPv4数据封装在以太网帧中,然后发送到目标主机。

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

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

相关文章

REVIT二次开发 自动门窗墙体标注

步骤1 步骤2 步骤3 using System; using System.Collections.Generic; using System.Linq; using System

视频转换成文字,原来转换的方法这么简单!

在我们的生活中,不少小伙伴是否遇到过这样的情况?观看网络视频时,由于解说内容极为引人入胜,忍不住想将其内容记录下来,但这手动逐句整理的过程既耗时又费力。幸运的是,经过一番努力查找,确实有…

Hbas简介:数据模型和概念、物理视图

文章目录 说明零 BigTable一 Hbase简介二 HBase 访问接口简介三 行式&列式存储四 HBase 数据模型4.1 HBase 列族数据模型4.2 数据模型的相关概念4.3 数据坐标 五 概念&物理视图 说明 本文参考自林子雨老师的大数据技术原理与应用(第三版)教材内容,仅供学习…

面试篇-大厂的面试流程和面试注意事项

以前找工作的时候,对于流程中的面试总是好奇流程走到哪一步了,这一轮面试有没有通过,后面不通过还有没有消息通知等问题。今天作为一个求职者和面试官的身份来主要讲一下大厂招聘,内部的面试过程以及流转的流程是什么样的以及该注…

探幽寻秘,一网打尽—多版本银狐木马加密要素揭秘

概述 “银狐”木马,自2023年起在国内肆虐,其攻击范围广泛,波及众多企业。在黑产团伙中应用广泛,并且不同团伙采用的攻击手段各异,加载“银狐”的方式层出不穷,最终呈现的“银狐”木马版本也各有差异。观成…

图像处理------负片

什么是负片? 负片是经曝光和显影加工后得到的影像,其明暗与被摄体相反,其色彩则为被摄体的补色,它需经印放在照片上才还原为正像。我们平常所说的用来冲洗照片的底片就是负片。 """将彩色图像转换成负片 "&…

「 网络安全术语解读 」通用攻击模式检举和分类CAPEC详解

引言:在网络安全领域,了解攻击者的行为和策略对于有效防御攻击至关重要。然而,攻击模式的描述和分类方式缺乏统一性和标准化。为了解决这个问题,MITRE公司创建了CAPEC标准,以提供一个共享和统一的攻击模式分类框架。 1…

计算机网络 第3章(数据链路层)

系列文章目录 计算机网络 第1章(概述) 计算机网络 第2章(物理层) 计算机网络 第3章(数据链路层) 文章目录 系列文章目录1. 数据链路层概述1.1 概述1.2 三个重要问题 2. 封装成帧2.1 介绍2.2 透明传输2.3 总…

discuz论坛附件上传限制大小2MB

我遇到了这个问题,去修改了配置PHP.ini文件没有解决. 我把他变成2000M依旧没有用,然后我选择了用户组,附件部分。如图所示: 然后这个时候我还是没有好,我同事的却不限制大小了,我去清理缓存&#xff…

c++:类和对象(3),对象模型和this指针

成员变量和成员函数分开存储 空对象占用内存空间为:1c编译器会给每个空对象也分配一个字节空间,是为了区分空对象占内存的位置每个空对象也应该有一个独一无二的内存地址 只有非静态成员变量 属于类的对象上,其余都不属于类的对象上 this指针…

网工内推 | 上市公司同程、科达,五险一金,年终奖,最高12k*15薪

01 同程旅行 招聘岗位:网络工程师 职责描述: 1.负责职场、门店网络规划、建设、维护。 2.负责网络安全及访问控制、上网行为管理和VPN设备的日常运维; 3.负责内部相关网络自动化和系统化建设; 4.优化与提升网络运行质量&#xff…

激光雷达行业梳理2-产业链、公司、未来展望

四、产业链及竞争格局 激光雷达产业链可以分为上游(光学和电子元器件)、中游(集成激光雷达)、下游(不同应用场景)。其中 上游即激光发射、激光接收、扫描系统和信息处理四大部分,主要包括激光器…

设备通过GB28181注册到EasyCVR,平台看不到设备信息的排查方法汇总

智慧安防平台EasyCVR能在复杂的网络环境中(专网、局域网、广域网、VPN、公网等)将前端海量的设备进行统一集中接入与视频汇聚管理,平台支持设备通过4G、5G、WIFI、有线等方式进行视频流的接入与传输,支持的接入协议包括&#xff1…

Shell脚本的变量

目录 shell脚本变量: 1.变量的介绍: 2.变量的作用: 3.变量的类型 : 4.自定义变量 : (1)自定义变量命名要求: (2)定义与查看变量: &#x…

为什么单片机不能直接驱动继电器和电磁阀?

为什么单片机不能直接驱动继电器和电磁阀? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「单片机的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!&…

SpringBoot3(一)动力节点总结

目录 0、有用的新特性 一、Record 1.1、Record的介绍 1.2、Record的声明 1.3、Record的创建 0、有用的新特性 JDK8-19 新增了不少新特性,这里我们把实际常用的新特性,给大家介绍一下,包括以下几个方面: Java RecordSwich 开…

数据结构(Chapter Two -03)—线性表的链式表示

在这一部分(数据结构(Chapter Two -01)—线性表及顺序表-CSDN博客)里面,我们知道线性表包括顺序表和链表结构。前面写了顺序表的基本操作,那这部分就写一写线性表叭! 链表特点:不需要使用地址连续的存储单…

ctfshow-SQL注入(web214-web220)

时间盲注 (最贴合实际的注入) web214 什么都不存在 使用bp进行抓包看看有没有注入点 在原始页面刷新 抓包发现修改debug为1是返回结果是一个sql的查询语句 id可能存在注入点 发现存在时间注入 使用web193脚本进行修改 python盲注脚本 import requests …

「JavaScript基础」一文彻底搞懂JS的事件流以及事件模型

目录 事件事件机制一、事件绑定二、事件监听三、事件委托 事件流事件流模型DOM事件处理DOM0DOM2IE 事件处理程序 常见的事件 在JavaScript中,事件流和事件模型是处理用户交互的关键概念。深入理解这些概念将使你能够更好地处理和响应用户的动作。本文将详细介绍Java…