DSP

计算机通信中ip,macid的主要作用和区别

2019-07-13 18:43发布

背景

在通信领域,目前以tcp/ip族网络协议作为传输数据的规范为主要手段,本文大致讲的是tcp/ip方面的网络通信基础.但是随着科技的发展,ipv4(internet protocol verison4)的所能承载的设备数量已经不能满足于各种智能设备(智能遥控,智能手环)的广泛商业化.所以ipv6(verison 6)在各种校园科研研究所所使用.而要想在网络通信中能够更加深入理解并于实践,对协议以及相关的ip|macid|port的作用需要有一个最基本 认识,本人觉得如下为非常重要的概念.

实际协议层次

在目前阶段,tcp/ip网络的通信大致会通过四大层方式进行传输:
  1. 链路层(网络接口层) : 大体理解为在用户传输数据的时候在最外层添加一套macid标志,这是一个非常重要的概念,为什么要在这一层添加macid地址呢?其实,数据链路层是一层最为贴近物理层的(物理设备).那么区别一个物理设备的最核心标志是什么?是ip吗?其实仔细一想,macid就像身份证一样,是区别与别人的一套物理标志码.相当于在写信的时候,写信人名字和收信方的名字(假想都加个身份证号)
  2. 网路层 : 这一层是介于物理与应用中的一个环境,作用是为了标志传输数据的source ip(来源网络地址) 和 target ip(目标网络地址).相当于写信人地址和收信人地址. address. ip地址根据网络号所包含的位数不同可以分为,A/B/C/D/E类型.
    a). A类地址的子网掩码为255 .0.0.0,
    b) B类为255.255.0.0,B类地址子网掩码为255.255.0.0
    c) C类地址,C类地址子网掩码为255.255.0.0
    子网掩码的作用是干嘛的?其实就是在传输数据的时候,为了和用户自己的ip(192.168.4.10)与子网掩码(255.0.0.0)取按位与(AND逻辑运算),来确定网络号用的
  3. 传输层(端口层) : 数据携带的其他细节信息比如目标端口,以及源端口.端口其本质就是为了唯一确定进程的id的,类似于在本机中的pid号.但是为什么不用pid号作为端口号呢?因为pid会经常变动,当然是要用一个相对稳定的值作为标记咯.只有知道了进程绑定的端口,才能实现两台不同网络设备之间的应用程序之间的通信.
  4. 应用层 : 这一层就很好理解了,这就是各种应用,比如QQ,微信,支付宝…等等,每一个应用都会绑定一个端口号,如果作为服务形式(listen),需要在创建一个监听器,用来监听端口发送来的数据,同时也可以在这一层对基本的tcp/ip协议进行更进一步的协议规范封装.比如,你可以定义,数据(在应用层上纯粹的数据,不包含端口号,ip号,macid等等的数据)定义一个haha字符串,代表应用可以笑的笑脸或者其他的功能(在接收方页面弄出个大笑脸),等等的功能…

学习网络的两个非常好的工具

  1. wireshark,这是一个抓包工具,改工具的特点是能够抓取到协议层方面的各种数据,也就是说,它会抓到每一次通信(三次握手中的每一次握手),能够看到上面所说的每层次层的数据打包的标志的过程.
  2. packet tracer : 这个软件有点像matlib中的monitor,一样可以手动创建一个虚拟的网络,然后在网络上添加各种设备,比如电脑,集成器,转换机,路由.同时,还能在电脑元素上ping包,来理解ping的过程,以及数据传递的过程.
    其实在此使用该软件的过程中,能够看大每一步,数据包的传递,以及相关的数据携带信息的变换.在两端设备之间通过多个路由器链接的网络中,ping数据传递的过程,在各种通信设备中所传递的数据中的网络层的ip信息(源ip与target ip)是不变的,而macid只是标志了各个最近可通信网卡设备(不包含转换机与集成器,但是包含路由器,因为路由器中是包含多张网卡的)的物理id,因此在各个路由器传递的过程中,每个路由器所携带的macid都是不一样的.