网络层发送数据的准备
- 应用层程序准备要传输的文件
- 传输层 将文件分段编号
- 网络层 添加目标IP地址和源IP地址
- 数据链路层 两种情况
两种情况 使用自己的子网掩码判断自己、目标地址在哪个网段
- 如果是同一网段 arp协议广播解析目标IP地址的MAC
- 如果不是同一网段 通过路由器寻找目标地址网关
物理层发送数据的过程
- 集线器 延长比特流
- 交换机 存储转发
- 路由器 接收比特流解封帧 然后查找目标地址 封装帧转发
传输的具体流程:
- 在应用层,用户将准备传输的数据
- 到传输层,数据被分成好几段,分段传输 , 每段都发向网络层
- 在网络层,每个数据段都会被标注源IP地址和目标IP地址,然后发向数据链路层封装成帧
- 数据链路层,给数据加上起始标注,在末尾加上从当前物理地址到下一物理地址(下一跳),封装成帧
- 物理层传输比特流,通过集线器进行信号延长
- 遇到交换机(数据链路层)存储再转发,传到路由器(网络层)解封帧结构,传入下一路由器先看路由器协议,上图是点对点协议(ppp),物理地址是FF(全F),在帧尾加上下一路由器的物理地址,最后在传给目的计算机的物理层,从物理层一层一层解封,还原数据就完成了数据的传输。
网络层协议
- ARP协议
1》ARP(Address Resolution Protocol)即地址解析协议, 用于实现从 IP 地址到 MAC 地址的映射,即询问目标IP对应的MAC地址。
2》在网络通信中,主机和主机通信的数据包需要依据OSI模型从上到下进行数据封装,当数据封装完整后,再向外发出。所以在局域网的通信中,不仅需要源目IP地址的封装,也需要源目MAC的封装。
3》一般情况下,上层应用程序更多关心IP地址而不关心MAC地址,所以需要通过ARP协议来获知目的主机的MAC地址,完成数据封装。
数据的封装需要目的IP地址的MAC,所以ARP协议就需要采用以太网的"广播"功能:将请求包以广播的形式发送,交换机或WiFi设备(无线路由器)收到广播包时,会将此数据发给同一局域网的其他所有主机,广播包的特征就是封装的目的MAC是全f(ff-ff-ff-ff-ff-ff-ff-ff)或三层封装时IP时全1(255.255.255.255),ARP请求首先有"自我介绍",然后才是询问,当目的主机收到广播会回复ARP回应包,非目的主机会丢弃包。
ARP欺骗:
有三台电脑 p1p2p3,p1想知道p2的MAC,但是当p2回复p1的时候,p3也回复了p1,这时p1在缓存中记录的p2的MAC被p3的MAC给覆盖了,这时p1发给p2的数据就被p3截取了,然后p3在转发给p2
2.ICMP协议
ICMP协议的简介:
1》确认IP包是否成功到达目标地址
2》允许主机或路由器报告差错情况和提供有关异常情况的报告,通知在发送过程中IP包被丢弃的原因
3》ICMP是网络层协议
ICMP协议的命令
PING(Packet Internet Grope , 因特网包探索器)命令:测试网络连接量的程序。
3.IGMP协议
点到点
广播
多播=组播
4.IP数据报的结构
IP数据报由首部和数据两部分组成,首部前部分是固定长度,共20字节,所有IP数据包必须具有的
- 版本,占4bit,指IP协议的版本 目前升级到了IPV6
- 首部长度,占4bit,可表示的最大数值是15个单位,每个单位为4字节,最大值为60字节
- 区分服务,占8位,一般不使用这个字段
- 总长度,16bit,首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535字节
- 标识,16bit 他是一个计数器,产生数据报的标识。
- 标志 , 占3位 , 目前只有前两位有意义,最低位是MF(More Fragment),MF=1表示后面还有分片,MF=0表示这是最后一个分片,中间位是DF(Dont Fragment),只有当DF= 0时才允许分片
- 片位移 12bit 分片后在原分组中的相对位置,以8个字节为偏移单位 (分组分片回忆MTU)
- 生存时间 8bit 记为TTL(Time To Live)表示数据报在网络中至多可经过多少个路由器
- 协议 8bit 携带数据报所使用的协议,或者说来自上面的运输层使用的什么协议,以便目的主机的IP层将数据部分上交到哪个层处理 ICMP 1 IGMP 2 TCP 6 UDP 17 OSPF 89
- 首部检验 16bit 只检验数据报的首部,纠错检测方法这里不用CRC而是用简单的计算方法
- 源地址目的地址,各占4字节
- 可选字段用来支持排错测量以及安全等措施 长度从1字节到40字节不等 ,实际上很少被使用