网络协议分析知识点

TCP/IP/UDP协议对应层级

网络协议分析知识点_第1张图片

IP地址的分类方式

网络协议分析知识点_第2张图片

A类网络的IP地址范围为:1.0.0.1-126.255.255.254;

B类网络的IP地址范围为:128.1.0.1-191.255.255.254;

C类网络的IP地址范围为:192.0.1.1-223.255.255.254

A类IP地址 一个A类IP地址由1字节(每个字节是8位)的网络地址和3个字节主机地址组成,网络地址的最高位 必须是“0”,即第一段数字范围为1~126每个A类地址可连接16387064台主机,Internet有126个 A类地址。注:127.0.0.0到127.255.255.255是保留地址,用做循环测试用的。 0.0.0.0到0.255.255.255也是保留地址,用做表示所有的IP地址。 A类地址默认子网掩码为255.0.0.0

2.B类IP地址 一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”, 即第一段数字范围为128~191。每个B类地址可连接64516台主机,Internet有16256个B类地址。

3.C类IP地址 一个C类地址是由3个字节的网络地址和1个字节的主机地址组成网络地址的最高位必须是“ll0”, 即第一段数字范围为192~223。每个C类地址可连接254台主机,Internet有2054512个C类地址。

IP地址和MAC地址的区别

网络协议分析知识点_第3张图片

1、两者地址使用不同。

IP地址是指Internet协议使用的地址,而MAC地址是Ethernet协议使用的地址。当存在一个附加层的地址寻址时,设备更易于移动和维修。

2、分配依据不同。
IP地址的分配是基于网络拓朴,MAC地址的分配是基于制造商。

IP地址是可以自动分配的,MAC地址在每个网卡出场的时候就有一个全球唯一的MAC地址,所以很多的验证软件就是验证mac地址的。

3、地址能否更改不同。

IP是可以更改的,mac地址虽然也可以更改,但是一般用不上,除非要用来绕过一些验证软件的。网卡在通讯的时候通过mac地址相互识别。

4、 长度不同。

IP地址为32位,MAC地址为48位。

5、寻址协议层不同。

IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。

IP层

IP层:TCP/IP协议的网络层
网络层的协议有:IP、ICMP、IGMP,ARP,RARP

IP协议是TCP/IP协议的核心协议
提供了网络数据传输的最基本服务
实现网络互联的基本协议

除ARP、RARP协议报文之外
几乎所有数据都要经过IP协议进行发送。

IP数据报格式

网络协议分析知识点_第4张图片

IP数据包首部校验的原因

网络协议分析知识点_第5张图片

IP数据报传输变化情况

网络协议分析知识点_第6张图片

由首部和数据两部分组成。首部的前一部分是固定长度,共 20 字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。首都中的源地址和目的地址都是 IP 协议地址。

  1. 相关字段详解
    版本:占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。日前广泛使用的 IP协议版本号为 4 (即 IPv4)。IPv6 目前还处于起步阶段。
    首部长度:占 4 位,可表示的最大十进制数值是 15。请注意,这个字段所表示数的单位是32位字 ( 1 个32位字长是4 字节),因此,当 IP 的首部长度为 1111 时 (即十进制的 15),首部长度就达到 60字节。当 IP 分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在 4字节的整数倍开始,这样在实现 IP协议时较为方便。首部长度限制为 60字节的缺点是有时可能不够用。这样做的目的是希望用户尽量减少开销。最常用的首部长度就是 20 字节 (即首部长度为 0101),这时不使用任何选项。
    服务:占 8 位,用来获得更好的服务。包括3个bit的优先权字段(现在已经被忽略),4bit的TOS子字段和1bit未用位但是必须置0。4bit的TOS位分别代表:最小延时、最大吞吐量、最高可靠性和最小费用。4bit中只能置其中1bit。如果所有的4bit均为0,那么就意味着是一般服务
    ④总长度:总长度指首都及数据之和的长度,单位为字节。因为总长度字段为 16位,所以数据报的最大长度为 216-1=65 535字节。在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,即最大传送单元 MTU (Maximum Transfer Unit)。当一个数据报封装成链路层的帧时,此数据报的总长度 (即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。
    标识 (Identification):占 16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段。但这个“标识”并不是序号,
    因为 IP是无连接的服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的 MTU 而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
    标志 (Flag):占3 位,但目前只有2位有意义。标志字段中的最低位记为 MF (More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个;标志字段中间的一位记为 DF(Don’t Fragment),意思是“不能分片”。只有当 DF=0时才允许分片。
    片偏移:占 13位。较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以 8个字节为偏移单位。
    这就是说,每个分片的长度一定是 8字节 (64位)的整数倍。
    生存时间:占 8位,生存时间字段常用的英文缩写是TTL (Time To Live),其表明数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在因特网中兜围子,因而白白消耗网络资源。最初的设计是以秒作为 TTL的单位。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于 1 秒,就把TTL值减 1。当 TTL值为 0时,就丢弃这个数据报。
    ⑨协议:占 8 位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。(ICMP、IGMP、TCP、UDP)
    ⑩首部检验和:占 16位。这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,都要重新计算一下首都检验和 (一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。
    ⑾源地址:占32位。
    ⑿目的地址:占 32位。

IP数据报首部的可变部分

IP首都的可变部分就是一个可选字段。选项字段用来支持排错、测量以及安全等措施,内容很丰富。此字段的长度可变,从 1 个字节到40个字节不等,取决于所选择的项目。某些选项只需要 1 个字节,它只包括 1 个字节的选项代码。但还有些选项需要多个字节,这些选项一个个拼接起来,中间不需要有分隔符,最后用全0 的填充字段补齐成为 4字节的整数倍。 增加首都的可变部分是为了增加IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。实际上这些选项很少被使用。新的 IPv6就将 IP数据报的首部长度做成固定的。

IP数据包指的是第三层的PDU,IP首部只是其中的一部分,是在第三层网络层上加上去的,是给路由器看的。IP数据包的总长度过大,超过链路的最大MTU时,数据包就会被分成多片,而在如今的IPv4的网络中,数据传输时不可靠的,是尽力而为的,所以这些分片的数据单元到达对端的链路和时间都是不同的, 对端根据IP首部中的标示符(Identification)、标志(Flag)、段偏置值字段重组数据包。

原文链接:https://blog.csdn.net/m_buddy/article/details/74209099

IP数据包分片

网络协议分析知识点_第7张图片
网络协议分析知识点_第8张图片

数据报被分片时,标识号的字段值被复制到所有分片中,即同一数据报的所有分片具有相同的标识,即原始数据报的标识号29571
标志:字段表示:该IP数据报是否允许分片以及是否是最后一片分片。该字段低两位有效:DM。 D位表示是否允许该数据报分片:1:不允许;0:允许。 M为表示该片是否是分片的最后一片:1:非最后一片;0:最后一片。
001 允许分片,非最后一片;000 允许分片,最后一片
偏移量:第1个分片携带的是字节0-1399,它的分片偏移是0/8=0;第2个分片携带的是字节1400-1600,它的分片偏移是1400/8=175

TCP协议首部及其各个字段的含义

网络协议分析知识点_第9张图片
各个字段含义

源端口和目的端口:分别占2字节,写入源进程的端口号,和目的进程的端口号。TCP的分用功能就是通过端口号来实现的。

序号:占4个字节。序号的范围是[0 , 2^31 - 1 ] ,总共有2^32个序号。序号从0开始增长,并采用的是 mod 2^32 的增长方式(即到达最大值,又从零开始)。由于TCP是面向字节流的,所以 ,在一个TCP连接中传输的每一个字节流自然就按照每一个字节进行顺序编号。 首部中的序号字段是指的是本报文段要发出的第一个字节的序号。

确认号:也是占4个字节,是期待下一次发送来的报文段第一个字节的序号。如果此时确认号为N, 则代表到N-1所有序号的数据均已正确收到。

数据偏移:占4位,代表 TCP报文段到TCP报文段数据起始地址的距离。单位为4字节 , 由于 4位最大值为 15 , 而单位为4字节,易知TCP报文段的首部最大值为 60字节 ,而固定为 20字节 ,所以,选项中最大为 40字节。

保留: 占 6位 ,目前全都置零,用作以后使用。

控制位:占六个字节 。

  • URG:(URGent) 紧急:当 URG = 1 ,表示紧急指针字段有效,告诉系统这个报文段中有紧急的数据
    。发送方TCP就把紧急数据放在本报文数据的最前面,紧急数据后面仍然是普通数据,配合紧急指针字段使用,表示 紧急数据到哪里结束。
  • ACK(ACKnowlegment) 确认: 仅当 ACK = 1 ,此字段才有效,TCP规定,在建立连接之后
    ,所传送的数据报文ACK都要置为1 。
  • PUSH(push) 推送 :这个字段经常在进行可交互式的应用程序中使用比较多
    ,在两个应用进程进行通信的时候,用户希望在键入一个命令之后,能够立即得到对方的响应。这时,发送方TCP就可将PUSH 置为 1
    。发送方TCP就会立即创建一个报文段, 接收方TCP收到PUSH = 1的报文段,就尽快的交付给应用进程,不等待缓存满了在提交给应用进程
  • RST复位:当RST = 1时,表明TCP连接出现了严重的错误(由于主机奔溃,或其他原因),必须释放连接,然后在重新建立连接。
  • SYN(同步):在建立连接时使用来同步序号,当SYN = 1 ,而ACK = 0 时,表明这是一个请求连接报文,
    如果对方同意连接,则在响应的报文段中使SYN = 1 和 ACK = 1 。
  • FIN (中止): 用来释放连接 ,当数据发送完毕之后,就将FIN = 1 ,表示要求释放连接。

窗口:占2个字节 ,窗口的值是[ 0 , 2 ^ 16 - 1] 之间的整数。这里的窗口字段指定的是发送本报文段一方的接收窗口。(不是自己的发送窗口)。告诉发送者,从此时的确认号算起,你能发送的最大数据量是多少,之所以要有这个概念,因为接受方的数据缓存空间总是有限的,总之,接受方设置的窗口值,就是作为发送方设置 自己发送窗口大小的依据。窗口一般用作 流量和拥塞控制。

每一方都有两个窗口 ,一个接受窗口,一个发送窗口, 而 发送方报文段中设置的窗口值,是设置接受方的发送窗口。 其实窗口是由 TCP 缓存大小决定的 。

窗口值指明了现在允许对方发送的数据量,窗口值是经常动态变化着的。

滑动窗口

滑动窗口链接
网络协议分析知识点_第10张图片
网络协议分析知识点_第11张图片
网络协议分析知识点_第12张图片
网络协议分析知识点_第13张图片
网络协议分析知识点_第14张图片

检验和:占2个字节 ,检验和字段检验的部分包括数据报的首部和数据部分。和UDP一样,在计算检验和时 ,需要加上12字节的伪首部,伪首部的格式和UDP一样,不过不同的是,应该把UDP伪首部的第4个字段的17改为6(由于TCP协议的版本号是6 )。 把第五个字段中的所记录的UDP长度值改为TCP长度值,接受方接受到此报文段之后,仍然需要加上伪首部进行检验。

紧急指针:占两个字节 , 只有控制字段URG = 1时,才会有意义 。标识的是在这个数据报文中紧急数据的字节数,(紧急数据后后面就是普通数据)。紧急指针指出了在紧急数据末尾的位置。当所有的紧急数据处理完成之后,TCP告诉应用程序恢复到正常操作。但是,需要注意的是,就算是窗口为零的时候,也可以发送紧急数据。

选项: 长度可变 , 最长可以达到 40 字节 , 当没有使用“选项”的时候,TCP首部的长度就是 20字节。
文链接:https://blog.csdn.net/qq_41860497/article/details/103390042

TCP的三次握手

网络协议分析知识点_第15张图片

TCP特点

网络协议分析知识点_第16张图片

TCP避免和消除拥塞方法

慢启动+拥塞避免+快速重传+快速恢复
网络协议分析知识点_第17张图片

TCP和UDP协议的区别,相同点,各自的主要特点。

定义
TCP:传输控制协议,Transmission Control Protocol。

是一种面向连接的、可靠的、基于字节流的传输层通信协议

UDP:用户数据报协议,User Datagram Protocol。

UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。

区别
1.面向连接与无连接
TCP有三次握手过程;
UDP适合消息的多波发布,从单个点向多个点传输。
2.可靠性
TCP可靠,利用三次握手确认和重传机制,提供可靠性保证;
UDP可能会丢包。
3.有序性
TCP利用序列号保证消息的顺序交付,到达可能无序,但最终会排序;
UDP不具备。
4.速度
TCP较慢,因要保证顺序和可靠性;
UDP适合对速度敏感的程序,比如在线视频、广播、游戏等。
5.量级
TCP属于重量级,UDP轻量级,体现在元数据的头大小,TCP是20字节,UDP为8字节。
TCP首部较长20字节,UDP首部较短8字节;

相同点
两者都是OSI模型中的运输层协议。

特点
TCP
可靠的,有状态的,基于流的协议,有明确的客户端和服务端,且只能连接两个端点(即两个套接字)ServerSocket和Socket,点对点;

TCP协议的主要特点

(1)TCP是面向连接的运输层协议;

(2)每一条TCP连接只能有两个端点(即两个套接字),只能是点对点的;

(3)TCP提供可靠的传输服务。传送的数据无差错、不丢失、不重复、按序到达;

(4)TCP提供全双工通信。允许通信双方的应用进程在任何时候都可以发送数据,因为两端都设有发送缓存和接受缓存;

(5)面向字节流。虽然应用程序与TCP交互是一次一个大小不等的数据块,但TCP把这些数据看成一连串无结构的字节流,它不保证接收方收到的数据块和发送方发送的数据块具有对应大小关系,例如,发送方应用程序交给发送方的TCP10个数据块,但就受访的TCP可能只用了4个数据块久保收到的字节流交付给上层的应用程序,但字节流完全一样。

TCP的可靠性原理

可靠传输有如下两个特点:

a.传输信道无差错,保证传输数据正确;

b.不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据;

(1)首先,采用三次握手来建立TCP连接,四次握手来释放TCP连接,从而保证建立的传输信道是可靠的。

(2)其次,TCP采用了连续ARQ协议(回退N,Go-back-N;超时自动重传)来保证数据传输的正确性,使用滑动窗口协议来保证接方能够及时处理所接收到的数据,进行流量控制。

(3)最后,TCP使用慢开始、拥塞避免、快重传和快恢复来进行拥塞控制,避免网络拥塞。

UDP
不可靠,无状态无连接,速度快,靠发包传输数据,最大包64k。

UDP协议特点

(1)UDP是无连接的传输层协议;

(2)UDP使用尽最大努力交付,不保证可靠交付;

(3)UDP是面向报文的,对应用层交下来的报文,不合并,不拆分,保留原报文的边界;

(4)UDP没有拥塞控制,因此即使网络出现拥塞也不会降低发送速率;

(5)UDP支持一对一 一对多 多对多的交互通信;

(6)UDP的首部开销小,只有8字节.

基于TCP和UDP的常用协议
HTTP、HTTPS、FTP、TELNET、SMTP(简单邮件传输协议)协议基于可靠的TCP协议。TFTP、DNS、DHCP、TFTP、SNMP(简单网络管理协议)、RIP基于不可靠的UDP协议

应用场景
TCP:访问网页、发邮件、上传或下载文件等。

UDP:在线视频、广播、游戏等。

原文链接:https://blog.csdn.net/Sunhongyu51/article/details/104547881

UDP数据报的最大数据长度,UDP数据报的首部长度,首部各个字段的含义

网络协议分析知识点_第18张图片
UDP头部很简单,包括源端口,目的端口,UDP总长度,校验和,各占8字节。
源端口:长度16位,指定发送方所使用的端口号,若不需要对方回发消息,则可全置为0。
目的端口:长度16位,指定接收方所使用的端口号。
UDP总长度:长度16位,指定了UDP数据报的总长度。
校验和:长度16位,用于UDP的差错检测,防止UDP报文出错,同时伪首部参与计算,避免UDP用户数据报传送到错误的目的地。UDP的首部,数据部分,伪首部都会参与检验和的计算,各字段是按照16比特为单位进行计算的,因此数据部分是要保证是16比特的倍数,不够用0填充。

原文链接:https://blog.csdn.net/weixin_40472874/article/details/103409864

ARP和RARP

网络协议分析知识点_第19张图片
网络协议分析知识点_第20张图片
网络协议分析知识点_第21张图片
网络协议分析知识点_第22张图片

因特网控制报文协议(ICMP)

网络协议分析知识点_第23张图片
网络协议分析知识点_第24张图片
网络协议分析知识点_第25张图片

路由算法

网络协议分析知识点_第26张图片

向量距离算法

网络协议分析知识点_第27张图片
网络协议分析知识点_第28张图片
网络协议分析知识点_第29张图片

链路状态算法

网络协议分析知识点_第30张图片
网络协议分析知识点_第31张图片

路由协议

网络协议分析知识点_第32张图片

应用层的主要协议的名字,作用

  1. DNS: 域名系统
    DNS:域名系统。DNS是因特网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址。

现在顶级域名TLD分为三大类:国家顶级域名nTLD;通用顶级域名gTLD;基础结构域名

域名服务器分为四种类型:根域名服务器;顶级域名服务器;本地域名服务器;权限域名服务器。

  1. FTP:文件传输协议
    FTP:文件传输协议。FTP是因特网上使用得最广泛的文件传送协议。FTP提供交互式的访问,允许客户指明文件类型与格式,并允许文件具有存取权限。FTP其于TCP。

  2. Telnet:远程终端协议
    Telnet:远程终端协议。telnet是一个简单的远程终端协议,它也是因特网的正式标准。又称为终端仿真协议。

  3. HTTP:超文本传送协议
    HTTP:超文本传送协议。是面向事务的应用层协议,它是万维网上能够可靠地交换文件的重要基础。http使用面向连接的TCP作为运输层协议,保证了数据的可靠传输。

  4. SMTP:电子邮件协议
    SMTP:电子邮件协议。即简单邮件传送协议。SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息。SMTP通信的三个阶段:建立连接、邮件传送、连接释放。

  5. POP3:邮件读取协议
    POP3:邮件读取协议。POP3(Post Office Protocol 3)协议通常被用来接收电子邮件。

  6. SNMP:简单网络管理协议
    SNMP:简单网络管理协议。由三部分组成:SNMP本身、管理信息结构SMI和管理信息MIB。SNMP定义了管理站和代理之间所交换的分组格式。SMI定义了命名对象类型的通用规则,以及把对象和对象的值进行编码。MIB在被管理的实体中创建了命名对象,并规定类型。

二、结合五层模型
应用层:文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
传输层:提供端对端的接口 TCP,UDP

网络层:为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP

数据链路层:传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU

物理层:以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2

TCP提供IP下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。

而UDP则不为IP提供可靠性、流控或差错恢复功能,是非面向连接,不可靠的传输。

TCP支持的应用协议主要有:Telnet、FTP、SMTP等。

UDP支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)等.

原文链接:https://blog.csdn.net/u014078930/article/details/52068483

你可能感兴趣的:(网络协议分析知识点)