网络中的常见的各种协议--报文格式总结学习

article/2025/10/13 22:44:43

网络中的各种协议总结学习

  • 以太网帧结构
  • IP报文格式
  • ARP协议
  • ICMP协议
  • UDP用户数据包协议
    • DNS
  • TCP协议
  • FTP协议
  • HTTP协议
  • SMTP协议
  • POP协议
  • SSH协议

以太网帧结构

在这里插入图片描述
注:

  • 当LLC-PDU中携带的是数据的时候,那么左侧的2字节表示的就是长度;当然,以太帧可以携带其他协议,当LLC-PDU中是协议的时候,2字节就代表了类型。
  • CRC为校验码。
  • 以太网帧最小为64字节,数据区取左侧46字节;最长为1518字节。

接下来详细介绍一下以太网帧的2字节类型字段
因为后面的数据区,是46–1500字节,所以如果2字节的长度/类型字段大于5DC(1500),那么这个域表示的是类型。(如:0800表示IP协议,0806表示ARP协议)
这个1500字节,也就是我们以后会提到的以太网的MTU(最大传输单元),也就是因为这个我们在ip数据报哪里经常会听到一个IP数据报分段的概念

如果一个以太网帧携带的是IP数据帧的话,它的帧格式是这样的:
在这里插入图片描述

IP报文格式

这个IP报文就是填在,上面以太网帧的数据区字段1500字节的东东。
在这里插入图片描述
注:

  • 在IPV4中首部最先的可选字段是不使用的,所以IPV4的首部为20字节。(巧了,这也就是我们经常会听到的以1480字节为最大一段,分割IP报文,1500-20呗)
IP报文字段具体作用
版本ip报文中,版本占了4位,用来表示该协议采用的是那一个版本的ip,相同版本的ip才能进行通信。一般此处的值为4,表示ipv4
首部长度(头长度)该字段用四位表示,表示整个ip包头的长度,其中数的单位是4字节。即二进制数0000-1111(十进制数0-15),其中一个最小长度为0字节,最大长度为60字节。一般来说此处的值为0101,表示头长度为20字节。有可选部分的话就会变成24个字节
区分服务 (Tos服务字段)该字段用8位表示。该字段一般情况下不使用。
总长度该字段表示整个ip报文的长度,单位是1字节。能表示的最大字节为2^16-1=65535字节。不过由于链路层的MTU限制。超过1480字节后就会被分片(以太帧MTU为1500的情况下,除去20字节的包头)
标识该字段是ip软件实现的时候自动产生的,该字段的目的不是为了接受方的按序接受而设置的,而是在ip分片以后,用来标识同一片分片的。方便ip分片的重组。
标志该字段是与ip分片有关的。其中有三位,但只有两位是有效的,分别为MF,DF。MF标识后面是否还有分片,为1时,表示后面还有分片。DF标识是否能分片,为0表示可以分片。
片偏移该字段是与ip分片后,相应的ip片在总的ip片的位置。该字段的单位是8字节 (下面有举例说明)
生存时间(TTL)ip分片每经过一个路由器该值减一,它的出现是为了防止路由环路,浪费带宽的问题。比如,该ip在R1路由器发送到R2路由器。R2路由器又发给R1路由器。防止这种循环。window系统默认为128.
协议该值标识上层的协议。占8位。其中1,标识ICMP、2标识IGMP、6标识TCP、17标识UDP、89标识OSPF。
校验和(首部校验和)该值是对整个数据包的包头进行的校验。占16位。
源地址和目的地址标识发送ip片的源和目的ip,32位
可选部分一般一些特殊的要求会加在这个部分。
注:
  • 片偏移:比如,一个长度为4000字节的ip报文,到达路由器。这是超过了链路层的MTU,需要进行分片,4000字节中,20字节为包头,3980字节为数据,需要分成3个ip片(链路层MTU为1500),那么第一个分片的片偏移就是0,表示该分片在3980的第0位开始,第1479位结束。第二个ip片的片偏移为185(1480/8),表示该分片开始的位置在原来ip的第1480位,结束在2959。2960-1480=1480,所以每次都是最大为1480,因为每个数据报都有头部呀第三片的片偏移为370(2960/8),表示开始的时候是2960位,结束的时候在3979位。
  • 协议:数据报进入上层传输层,就是通过这个字段来指出应将数据部分交给哪一个进程。

首部校验和的计算方法

在这里插入图片描述

ARP协议

概念:
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址(MAC)的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
工作原理
ARP协议的请求包是以广播的方式发送的。网段中的所有主机都会接受到这个包,如果一个主机的IP地址和ARP请求中的目的IP地址相同,该主机会对这个请求数据包做出与ARP应答,将其MAC地址发送给源端。
在这里插入图片描述
命令对主机的ARP缓存表操作

命令操作
arp -a查看ARP缓存表中的内容
arp -d删除ARP表中的一行内容
arp -s手动在ARP表中指定IP地址与MAC地址的对应项
ARP的封装
ARP报文在以太网帧里:
在这里插入图片描述

具体的ARP分组格式
在这里插入图片描述
使用ARP应当注意的问题

  1. ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
  2. 如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的网关路由器的硬件地址,然后把分组发送给这个网关路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
    ARP协议的工作过程可以看这篇文章理解一下

ICMP协议

ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
ICMP数据包封装在IP数据报里传输
在这里插入图片描述
具体的ICMP报文格式:
在这里插入图片描述
ICMP有两种报文:

  1. 差错报文
  2. 查询报文

UDP用户数据包协议

TCP与UDP的区别比较可以看这篇文章

  • UDP采用非连接的方式提供网络应用层的事务处理,UDP不提供可靠性,也就是说,UDP协议不提供端到端的确认和重传功能,它不保证数据包一定能送达目的地,因此称为不可靠协议。
  • UDP协议是封装在IP数据包里中
    在这里插入图片描述

UDP报文格式
在这里插入图片描述
UDP的校验和有一个特殊之处:

  • UDP在计算校验和时,包含一个12字节的伪报头。
  • 伪报头包含IP报头的源IP和目的IP,目的是让UDP检测数据确定到达正确的目的端。
  • 伪报头不参与传输的。
    在这里插入图片描述

DNS

域名系统(Domain Name System,缩写:DNS)是互联网的一项服务。DNS是一种可以将域名和IP地址相互映射的以层次结构分布的数据库系统。DNS协议将域名转换为IP地址(也可以将IP地址转换为相应的域名地址),DNS使用UDP端口53。DNS 定义了两种报文 ,一种为查询报文;另一种是对查询报文的响应,称为响应报文。

TCP协议

TCP协议的报文格式(也是封装在IP数据报里的)
在这里插入图片描述
TCP首部介绍:

TCP字段功能
源端口号表示发送端端口号,字段长度16位
目标端口号表示接收端端口号,字段长度16位
序号序列号是指发送数据的位置。每发送一次数据,就累加一次该数据字节数的大小。字段长度32位
确认号是指期望下一次应该收到的数据的序列号。发送端接收到这个确认应答号以后就可以认为在这个序号以前的数据都已经被正常接收了。字长32位
首部长度指出TCP报文首部含选项时的长度,没有选项时为5,字长4位
保留该字段主要为以后扩展使用。一般设置为0.
URG为1时,表示包中有需要紧急处理的数据。
ACK为为1时,确认应答的字段变为有效。TCP规定除了在最初建立连接时候的SYN包之外该位必须设置为1
PSH该位为1时,表示需要将收到的数据立刻上传给上层应用协议。PSH为0时,则不需要立即传,而是先进行缓存。
RST该位为1时,表示TCP连接出现异常,必须强制断开连接。
SYN用于建立连接。SYN为1时表示希望建立连接,并在其序列号的字段进行序列号初始值的设定。
FIN该位为1时,表示今后都不会再有数据发送,希望断开连接。当通信结束希望断开连接时,通信双方的主机之间就可以相互交换FIN位置为1的TCP段。(每个主机又对对方的FIN包进行确认应答以后就可以断开连接了。不过主机收到FIN设置为1的TCP段以后不必马上回复一个FIN包,而是可以等到缓冲区中的所有数据都因已成功发送而被自动删除之后再发。)
窗口用来让对方设置发送窗口的依据(告诉对方自己能接受多少数据),2字节
检验和检验和字段检验的范围包括首部和数据这两个部分。在计算检验和是,要在TCP报文段的前面加上12字节的伪首部
紧急指针指出在本报文段紧急数据共多少个字节(紧急数据放在本报文段数据最前面)

TCP三次握手

  1. 第一次
    第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize
    Sequence Numbers)。
  2. 第二次
    第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。
  3. 第三次
    第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

FTP协议

  • 文件传输协议(File Transfer
    Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。FTP
    的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。
  • FTP支持两种模式:Standard (PORT方式,主动方式),Passive (PASV,被动方式)。

HTTP协议

  • HTTP是应用层协议,是WWW服务的支撑协议。
  • HTTP是基于客户/服务器模式,且面向连接的。典型的HTTP事务处理有如下的过程:

(1)客户与服务器建立连接;

(2)客户向服务器提出请求;

(3)服务器接受请求,并根据请求返回相应的文件作为应答;

(4)客户与服务器关闭连接。

  • HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。这就大大减轻了服务器记忆负担,从而保持较快的响应速度。
  • HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成。

请求报文格式:请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体

应答报文格式:状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体

SMTP协议

  • SMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。
  • SMTP协议的工作过程可分为如下3个过程:(1)建立连接 (2)邮件传送 (3)连接释放

POP协议

  • POP的全称是 Post Office Protocol,即邮局协议,用于电子邮件的接收,它使用TCP的110端口。常用的是第三版 ,所以简称为POP3。

SSH协议

  • SSH是英文Secure Shell的简写形式。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、Pop、甚至为PPP提供一个安全的"通道"。

http://chatgpt.dhexx.cn/article/yLYnrP3t.shtml

相关文章

网络基础知识之报文格式介绍

1.以太网数据帧头部 DMAC:目的MAC地址,长度6个字节。 SMAC:源MAC地址,长度6个字节。 TYPE:类型字段,表明上层是哪种协议,IP协议是0x800,ARP协议是0x0806。 DATA:数据字…

计算机网络11种协议报文格式

文章目录 TCPUDPIPIPV6IPSec以太网帧结构802.1Q以太网帧结构802.11无线链路帧SSL记录RTP实时传输协议OpenFlow流表参考 TCP 源端口号和目的端口号: 用16bit表示所以端口号范围为0~65535,用来标识源主机和目的主机上的进程,用于运输层的多路复用和多路分解…

EndNote X8使用总结

本文记录在使用EndNote X8(Word2013)过程中遇到的一些问题,持续更新。 1.插入参考文献序号与文本的缩进问题 问题描述:在Word中使用EndNote插入参考文献后,在文末的参考文献出现文献序号与文本内容相距较大的情况&am…

EndNote20 安装方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Endnote是什么?二、安装步骤 1.安装库2.中文版总结 前言 管理文献工具是科研入门的一个必要学习方面。随着写作论文的增多,以及学习…

安装 EndNote X 9.3.3

下载 链接:https://pan.baidu.com/s/1d4njrGQUZQxE-VeSA_M1Zw 提取码:0226 安装 双击 .exe文件 不想安装在C盘的可以点击 Browse 自己设置一个路径,点击 OK 出现下图这一幕是因为我 office 打开着,只要把 wor…

Endnote操作

记录一下一些要点,以便之后毕设用到 1. 用endnote插入文献后,mathtype的公式显示域代码。word-文件-选项-高级 2.word中想修改endnote格式出现can not be formatted because it is no longer open. Please chose another document. word-endnote20-Too…

EndNote安装与使用

一、安装 1、双击ENX9Inst.msi安装 2、进入安装目录,使用CHS或ENG里的文件替换安装目录文件 CHS 中文版 ENG 英文版 二、软件优化 1、EndNote Import.enf 此文件用于导入中文文献时期刊名解析错误的问题,右击使用EndNoteX9打开后关闭即可 2、geebin…

EndNote X9导入文献的5种方式

上一篇介绍了EndNote X9下载与简介。 这里再介绍一下EndNote X9导入文献的5种方式,分别如下: 1. 从数据库网站导入参考文献 2. 在网页浏览中导入参考文献 3. 轻松导入本地参考文献 4. 在线检索导入参考文献 5. 手工添加参考文献信息 1. 从数据库网站导…

学习记录:关于如何安装EndnoteX9以及汉化过程

1、下载 Endnote X9安装包,并解压。 百度网盘地址: 链接:https://pan.baidu.com/s/1s1o81RVPsYIekr9as2M-kg 提取码:iw6h 2、 点击ENX9Inst.msi开始安装。 3、安装过程 Next accept Next accept、Next Typical、Next 可默认地址…

EndnoteX9下载并安装

Endnotex9 安装包链接链接:链接:https://pan.baidu.com/s/1lZYXIkZ-LjeHAH32DT4DmQ 提取码:yz2d 破解码:1、79SHT-UQFTD-FE94J-FRRBW-UDHXL 2、3VLXS-VVXSR-RMSJ7-AKURY-GPQFG 3、LTF3T-KJ778-RPRSC-8G4FN-5LWJN 4、3SF6V-TYK7C-…

Mac版本EndNote基本用法

NoteExpress在Mac上并未覆盖,转而探索了下Mac版EndNote基本用法: 以北京科技大学为例: 一、下载安装: 1.在校外访问学校VPN:http://n.ustb.edu.cn/。登录个人账号后,点击“电子资源数据导航”进入到学校图…

EndNote X9使用方法

要先下载,word里不自带 一、如何添加引用 1、打开EndNote x9。点击文件->新建,在弹出的对话框中选择一个地址,修改文件名,新建文献库。 新建之后的效果如图所示: 2、在谷歌学术、百度学术或知网上搜索自己需要的…

「Juc并发编程」什么是可重入锁?

「Juc并发编程」什么是可重入锁? 文章目录 「Juc并发编程」什么是可重入锁?一、概述二、解释三、可重入锁种类隐式锁同步块同步方法 显式锁 四、Synchronized的重入的实现机理 一、概述 可重入锁又名递归锁,是指在同一个线程在外层方法获取锁…

可重入锁和不可重入锁 ReentrantLock synchronize

http://blog.csdn.net/qq838642798/article/details/65441415 https://www.cnblogs.com/dj3839/p/6580765.html 用lock来保证原子性(this.count这段代码称为临界区) 什么是原子性,就是不可分,从头执行到尾,不能被其他…

到底什么是重入锁,拜托,一次搞清楚!

相信大家在工作或者面试过程中经常听到重入锁这个概念,或者与关键字 synchrozied 的对比,栈长面试了这么多人,80%的面试者都没有答对或没有答到点上,或者把双重效验锁搞混了,哭笑不得。。 那么你对重入锁了解有多少呢&…

重入锁-ReentrantLock

ReentrantLock 一.重入锁的特点1)实现重进入功能2)分为公平锁和非公平锁: 二.ReentrantLock和AQS的关系 一.重入锁的特点 1)实现重进入功能 重进入是指任意线程获取锁之后能够再次获取该锁而不会被锁阻塞 锁的获取和释放过程如下: 线程再次获取锁。锁…

详述重入锁-ReentrantLock

什么是重入锁? 锁主要用来控制多线程访问的行为,对于同一个线程,如果连续两次对同一把锁进行lock,那么这个线程会被卡死在那里,这样的特性很不好,在实际的开发中,方法之间的调用方式错综复杂&a…

进行LDPC编码时扔掉了前面2Zc的信息位,为何如此设计?在解码时如何恢复?

好久没发文章了,拿去年的周报水一篇吧。 其实我也不是研究LDPC的,就是之前被导师提过这个问题,就看了一阵子。下面进入正文—— LDPC基础概念 对于这个问题,还是需要对LDPC码有初步的了解,下面先由一个普通的规则LDPC…

基于matlab的ldpc编码的构造,基于LDPC编码的GMSK调制与解调及matlab仿真实现(含录像)...

基于LDPC编码的GMSK调制与解调及matlab仿真实现(含录像)(开题报告,论文10700字,程序代码,录像) 摘 要 随着无线通信技术的不断发展与进步,数字电视广播、移动视频点播等对数据吞吐量要求很高的业务逐渐变得可能。为了在有限的带宽内用有限的发射功率保证信息在空间传…

ldpcMATLAB/ldpc的译码,matlab程序/LDPC编码的matlab实现/源码

ldpcMATLAB/ldpc的译码,matlab程序/LDPC编码的matlab实现/源码 1、ldpcMATLAB(ldpc编码的MATLAB例子,内容相对来说还是比较详细的。值得参考借鉴。) 2、LDPCmatlab(LDPC码的matlab实现,把解码的部分改过了&#xff…