本文转自至:https://blog.csdn.net/super_yc/article/details/72290931
回忆一下网络层的主要功能:通过TCP或者UDP协议绘制网络地图,数据包选取合适的路径进行传输(网络层基本单位 : 数据包 Package)
(1)编址(目标端的IP地址),数据传输的过程当中就必须表明要发送目标端的IP地址;
(2)路由选择:选择一条最快的路径进行数据包的传输;
(3)拥塞控制:防止数据包传输的过程当中出现拥塞现象,造成数据包的丢失和延迟。
(一)IP协议的功能:
(1)寻址和路由;(根据对方的IP地址,寻找最佳路径传输信息);
(2)传递服务:① 不可靠(IP协议只是尽自己最大努力去传输数据包),可靠性由上层协议提供(TCP协议);② 无连接;(事先不建立会话);
(3)数据包的分片和重组。
(二)IP数据包详解:
(1)0100 = Version : 4(表示使用的 IPv4协议),对等层之间要使用同一种IP协议(IPv4协议);
(2)0101 = Header Length : 20Bytes(5) 首部长度占4 bit ,可表示的最大数值为15个单位(1111),一个单位一个字节,最大为60字节;
(3)服务类型-----占8 bit ,(Differentiated Services Field)字段来区分服务,Delay = 1 延迟小,Throughput = 1吞吐量大,Reliability = 1 质量比较高,Cost = 1 最小代价!同一时刻只有一位是1;
(4)Total Length 总长度占 16 bit:2^16 - 1 = 65535 字节,值首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535字节(MTU最大传送单元);
(5)标识(identification)占16 bit,它是一个计数器,用来产生数据包的标识;
(6)标志(flag):数据包在传输的过程中,标志字段MF(More Fregment),MF = 1表示后面还有分片,MF = 0 表示最后一个分片;
(7)片偏移:每个数据片不同时传输,标志着谋片在原分组中的相对偏移位置,以8字节为偏移单位;
注意:发送数据报过大,就要对其数据报分片处理,每一个分片都会含有一个标识(IP地址 + 标识),到达目的地要对其所有的分片进行重新组装;
重点:片偏移计算过程;首部分大题的内容是一样,因为都属于同一个数据报文!
(8)生存时间(Time To Live)占用 8bit ,使用“跳数“作为TTL的单位。数据报每经历一个路由器时对应的TTL值就会减 1 ;防止数据报发送在路由器中出现环路,因为数据报在传送的过程中要占用一定的带宽(TTL值为零自动丢弃);
(9)协议(8bit)字段指出此数据报所携带上层数据使用的TCP协议还是UDP协议,以便对等层接收到数据报交给上层相应的协议(TCP或者UDP协议)进行处理;
(10)首部检验和(Header checksum 16bit)字段只校验数据报的首部,不包含数据部分;看IP数据报头部是否被破坏、被篡改和丢失等;
(11)源地址:数据向外发送,发送机器本身的IP地址,也成为逻辑地址;
目的地址:数据具体要发送目标及其的IP地址。
(对应IP数据报wireShark抓包图解)
(三)逻辑地址和物理地址解释:
(1)逻辑地址:(工作在网络层,网络级)也称为IP地址,具有特征 ① 全局唯一性;② 使用软件来实现网络中地址管理;③ 占32位,4字节;
(2) 物理地址:也称为硬件地址、链路地址或MAC地址,(工作在网络接口层)具有特征:① 本地范围唯一性;② 使用硬件实现(路由器、计算机有设置MAC地址的位置);③ 占48位,12字节,16进制表示!例如:74-E5-0B-35-60-16 :0111 0100-1110 0101-0000 1011-0011 0101-0110 0000-0001 0110。
(四)为什么有了IP地址,还要使用MAC地址:
① IP地址一般情况下容易修改和变动,具有随意性,不能在网络上固定标识一台设备;
② MAC地址一般情况出厂时由厂家烧录到网卡中,不容易修改,在局域范围内容易唯一定位一台设备。
③ 从拓扑结构和分层上分析,IP地址属于网络层,主要功能在广域网范围内路由寻址,选择最佳路由,而MAC地址在网络接口层要形成适合于网络媒体上传输的数据帧。
注意:标识一个设备的三种方式:① 域名访问(www.baidu.com,应用层);② 设备的IP地址访问(网络层);③ 设备的MAC地址(在局域网当中唯一标识该设备,实际不用其访问,在网络接口层,具有固定的特性,不易发生紊乱现象)。