PDU(位,帧,数据包。段)MTU最大传输单元。以太网和IEEE802.3对数据帧的长度都有限制,其最大值分别为1500和1492字节。
假设IP层有一个数据报要传。并且数据的长度比链路层的MTU还大。那么IP层就要进行分片(Fragmentation),把数据报分成若干片,这样每一片都小于MTU。
尽可能避免分片,分片会减少网络传输效率。
以太网帧格式头部有14个字节 6位目的地址 6为源地址 2位类型 用来区分是传给ARP RARP还是IP网络层进行处理 链路层仅仅识别物理地址或MAC地址 不识别逻辑地址 须要解析 IP->MAC地址 ARP解析 MAC->IP地址 反向地址解析RARP
ICMP协议用于传递差错信息、时间、回显、网络信息等控制数据。ping程序就是将数据封装成ICMP程序来实现。
ARP协议 地址解析协议 将IP地址转换为MAC地址 上层地址传给下层的时候须要封装 ARP快速缓存中能存放IP地址与MAC地址之间的映射
RARP用于没有硬盘的主机中 想要获取无盘工作站的IP地址 RARPserver存有MAC地址与IP地址的映射 会响应回去。
IP数据报的格式:TTL表示数据报的生存期 最多可经过的路由器的数量,数据报每经过一个路由器,TTL减1。减为0时丢弃,并发送ICMP报文通知源主机,TTL可避免数据报在路由器之间不断循环。
在IP网络中传输的单位称为IP数据包,它包含IP报头与更高层协议的相关数据。IP数据包的报头至少为20个字节,当中包含版本,报头长度,服务类型,数据报总长度,标识,标志。片偏移。生存时间,协议和头部校验和,源,目的IP地址,先项。
引入IP报头字段的目的是为网络实体提供互联机制,IP报头不仅带有数量可观的IP数据包信息,如源和目标IP地址,数据包内容等,并且还为网络实体提供了从源到目标之间传送数据包的处理方法。
看看IP报头中各个字段各代表什么。 版本:版本占用四个比特位。如今我们所接触到的网络中绝大部分都是IPV4网络,所以一般所捕获到的IP报头的版本为4。
报头长度:表示的IP数据包的包头长度,这个长度不包含数据字段,最小为20个字节,最大为60个字节,当中的40个字节供IP选项使用。 服务类型:一般用于实现QoS的要求。我们如今一般捕获到的数据包中此值为一缺省值。
IP数据包总长度:它描写叙述的是IP数据包中报头和数据包的总长度。因为其占用16个比特位,因此我们能够得出一个IP数据包的最大值为65536。
标识符:由源主机随机产生的一个号码。用于帮助又一次组合一个被分段的数据包,当一个IP数据包从一个主机传输到另外一个主机时,它一般都须要通过另外一个网络,每个物理网络都有一个最大帧的大小,也就是我们常说的最大传输单元(MTU),它限制了一个物理帧中数据的大小。当主机发送的数据超过了某一设备的MTU时,这时IP就会用一进程来对超过MTU的数据包进行分段,这个进程建立了一个小于MTU的数据报的集合。因此终于IP数据包以合适的大小发送到目标主机。因为数据包分过段,所以目标主机在接收数据包时会新建立一个缓存区来接收分段的数据包,目标主机推断某一数据包是否和其他数据包一样也是经过分段的就是通过推断标识符是否一样。在分段时仅仅有数据会被分段。面报头是复制而作为分段数据的头部。
标志:它是用来标志数据包是否分段,当中包括DF(do not fragment)和MF(more fragment),当DF的值为1时。则MF的值必为0,DF为1。则说明数据包有分段。相同能够知道当MF为1时,则DF为0。这表示的是数据包没有分段。当然也有可能MF和DF都为0。 片偏移量:接收主机能够使用该字段的值来计算当前分段数据在原始数据报中的原始位置,因为该字段占用13个比特位,所以其最大值为8192。因为该字段的值是以8个字节为一个单位表示的。因此该字段能够表示在原始的数据报中的最远位置能够是65528个字节。举个样例来说吧。当某个数据包的大小为640个字节。如今分成8个大小为80个字节的数据包,这样第一个数据包的偏移量为0,则第二个数据包的偏移量就为10,后面的数据包依此计算可得到最后一个数据包的片偏移量是70。
当然有些时候片偏移量就是0,这表示些数据包没有分段。
生存时间:这个相信大家都非常熟悉,也就是我们在使用PING命令时的TTL,理论上讲,每一个处理此数据报的路由器应该用该字段的值减去它处理的时间,可是实际上,一个路由器处理这种一个数据包并不要一秒钟,可是为了方便。实际运用中还是以一秒钟来计算,这样TTL就变成了跳步数了,而不再是时间的度量。
协议号:这个字段指示IP下一步应当把这个数据包发往更高层的协议,如TCP为6。UDP为17。 报头校验和:该字段的数值仅用来表示IP报头的校验和。
IP报头被视为是由一系列的16位二进制数据流和一个初值为0的校验组成的。对原始报头的全部数值求补就得到校验和因为TTL的值会随着亿能过的网络设备而发生变化,所以每以过一个网络设备,报头校验和都会发生变化。
选项:选项为非固定信息,可变长度,选项最长可达40个字节。这个字段主要用于測试。
网际校验和:IP首部(不含校验和)反码+0x1111(0的反码)=发送端校验和 得到16位序列
IP首部=IP首部(不含校验和)+发送端校验和
IP首部(不含校验和)反码+发送端校验和 反码=接收端的校验和
TCP特点:
基于字节流 segment 面向连接 可靠传输 缓冲传输 全双工 流量控制 MSS最长报文大小 每一个连接方通常都在通信的第一个报文段中指明这个选项,它指明本端所能接收的最大长度的报文段。
上层应用缓冲区不超过536个字节 就不须要分片。ACK是确认标记。
通告各自接收窗体的大小 还通知了最大段大小 不能超过MSS。滑动窗体协议!
它指明本端所能接收的最大长度的报文段。
该选项假设不设置。默觉得536(20+20+536=576字节的IP数据报)
这是一个端到端的校验和,目的是检測数据在传输过程中的不论什么变化。假设收到段的校验和有差错,TCP将丢弃这个报文段而且不确认(导致对方超时重传)
TCP连接的每一方都有一定大小的缓冲空间。
来源:https://www.cnblogs.com/cxchanpin/p/6911483.html