一.分组交换原理,以及报文分段
报文分段
报文分段是TCP协议的一部分,当应用程序生成的数据需要通过TCP发送时,如果数据量超过了TCP接收端所能接收的最大报文段长度(MSS),或者超过了网络的最大传输单元(MTU),TCP会将这些数据分割成更小的片段,每个片段称为一个TCP报文段。这些报文段会在接收端重新组装成原始的数据流。
作用于:传输层,且只限于TCP报文
分组交换原理
分组交换是一种网络技术,它将数据分割成小的数据包,称为分组。每个分组包含必要的路由信息,允许它们独立地通过网络,最终到达目的地。在目的地,这些分组会被重新组装成原始的数据流。
作用于:网络层
二.IP数据分组的片偏移计算。
已知当分组长度超过数据链路层能封装成桢的极限长度时(及超过MTU时),需要对分组进行分片。而片偏移的作用就是指出某片在原分组中的相对位置;另外还有标志和标识作为辅助。标识符站三位,最低位记为MF,当MF=1即表示后面还有分片的数据报,当MF=0即表示这已经是最后一个分片数据报了(如图1)。(中间这位记为DF,当DF=0即表示能分片)
图1
片偏移的计算:咱给举个例子,一个总长为3820字节的的数据报,数据部分为3800字节,需要分片为长度不超过1420字节的数据报片。有计算可得三个报片,分别为A,B,C(有序),其长度分别为1420,1420,1000.那么A中数据部分中第一个字节为原数据报的第一个字节(在这里记为第0个字节),而B中数据部分的第一个字节为原数据报数据部分中的第1400个字节,同理C为第2800个字节。由以上可得
长度 | 标识 | MF | DF | 片偏移 | |
原始数据报 | 3820 | 12121 | 0 | 0 | 0 |
A | 1420 | 12121 | 1 | 0 | 0/8=0 |
B | 1420 | 12121 | 1 | 0 | 1400/8=175 |
C | 1000 | 12121 | 0 | 0 | 2800/8=350 |
#注意标识是我随意定义的,片偏移那一列中的算式是我为了理解加上去的,实际上并没有过程只有答案。
三.ARP协议的工作原理。
ARP又被叫做地址解析协议,是网络层协议。ARP的作用就是根据IP地址找出相对应的MAC地址。
ARP的工作原理
已知再每台主机中都有ARP高速缓存,里面存在本局域网上的某些主机和路由的IP地址到MAC地址的映射表(在电脑的密令提示符中执行 arp -a 命令就能够看到),这些都是主机已经知道的MAC地址。那么电脑是如何知道的呢?
我们知道当主机A要想主机B发送IP数据报时,需要知道主机B的MAC地址,主机A会先在ARP高速缓存中查找,有的话最好,省事,若没有则:
第一步:在局域网内发送ARP请求(已知主机B的IP:12.12.12.12),即在局域网内发送一个广播,寻找一个叫 12.12.12.12 的主机。
第二步:当主机B的ARP进程接收到A的ARP请求后会发送一个单播给主机A,叫做ARP响应,其中包含这B的MAC地址。
第三步:当主机A接收到主机B的响应报文后,进行解析并将主机B的MAC地址写入ARP高速缓存中。
#注意:arp请求中同时包含了主机A的IP和MAC地址,所以最后A和B的ARP高速缓存中都有对方的MAC地址。