背景

在通信领域,目前以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都是不一样的.

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

  1. Spring中SmartLifecycle和Lifecycle的作用和区别

    欢迎关注方志朋的博客,回复"666"获面试宝典 本文基于SpringBoot 2.5.0-M2讲解Spring中Lifecycle和SmartLifecycle的作用和区别,以及如 ...

  2. ANDROID 中UID与PID的作用与区别

    ANDROID 中UID与PID的作用与区别 PID:为Process Identifier, PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID.进程中止后PID被系统 ...

  3. linux中export和source的作用和区别

    linux中export和source的作用和区别 2013-11-12 12:36 1039人阅读 评论(0) 收藏 举报 分类: linux(82) shell与export命令 用户登录到Lin ...

  4. Python中3种引号的作用与区别

    简介: 本文主要介绍Python中,单引号,双引号,3个引号这3种引号的作用与区别. 1.简单介绍 单引号字符串:'python' 双引号字符串:"python" 三引号字符串:' ...

  5. JS中关于async和defer作用与区别

    <script src="script.js"></script> 没有 defer 或 async,浏览器会立即加载并执行指定的脚本,"立即&q ...

  6. spring boot中@ResponseBody等注解的作用与区别

    在使用springmvc框架的时候,在处理json的时候需要用到spring框架特有的注解@ResponseBody或者@RestController注解,这两个注解都会处理返回的数据格式,使用了该类 ...

  7. java中抽象类和接口的作用与区别

    抽象类与接口的区别 abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力. abstract ...

  8. WinCE中sources文件中targetlibs与sourcelibs的作用与区别

    在WinCE里面,编译和链接的必备文件sources,做过WinCE BSP开发的一定都很熟悉,其中有2个关键字,targetlibs和sourcelibs,一直让我对其中的区别很感兴趣,故查阅了一些 ...

  9. Python中@staticmethod和@classmethod的作用和区别

    简单介绍一下两者的区别: 对于一般的函数test(x),它跟类和类的实例没有任何关系,直接调用test(x)即可 #!/usr/bin/python # -*- coding:utf-8 -*-def ...

最新文章

  1. RabbitMQ系列之三:publish subscribe
  2. PHP中问号?和冒号: 的作用
  3. Java中的AES加密和解密(CBC模式)
  4. stm32--FatFs调试过程(SPIFlash)
  5. catia func 三菱后处理_20款三菱帕杰罗V97奢华SUV 津港促销价_搜狐汽车
  6. 计算机组成原理中移码怎么算,计算机组成原理中移码是怎么回事?
  7. Freescale i.mx28 Boot-stream分析
  8. 欧姆龙PLC伺服功能块 功能块可供选择脉冲0-3,脉冲输出方式CW/CCW或者脉冲加方向
  9. 【仿真】Carla介绍与使用 [1] (附代码手把手讲解)
  10. 爱,是尘世间人人追求的人生之最,是生活中无处不在的美
  11. ps人像磨皮皮肤处理教程
  12. java项目----教务管理系统_基于Java的教务管理系统
  13. 腾讯网上共享excel使用总结
  14. 源码中的@hide注释和{@hide}注释的差异
  15. 【Java】一次简单实验经历——社交网络图的简化实现
  16. i3 10100和i5 10400哪个好
  17. RH Timer for Mac(定时器软件)
  18. 收集的C#Directx资料
  19. 低通滤波器转带通滤波器公式由来_开关电源电磁兼容进级EMI传导输入滤波器的设计理论(EDTEST上海)...
  20. OC中声明变量的几种方式

热门文章

  1. 以太网标准-802.3各个标准简介
  2. 单兵渗透工具-Yakit-Windows安装使用
  3. html页面上使用vlc,在HTML页面上嵌入VLC插件
  4. 2022-03-07 Influxdb创建用户接口与raft日志交互封装
  5. 1968:Misspelling
  6. 治理企业“数据悬河”,阿里云DataWorks全链路数据治理新品发布
  7. 你真的了解传统IT的集中式三层架构及主流开发技术选型?!
  8. “金三银四“,敢不敢“试”?
  9. 关于独立DFS和域DFS板书
  10. 计算机信息技术在教学中的发展,浅析信息技术在教学中的创新作用