协议的三要素

  • 语法,就是这一段内容要符合一定的规则和格式。例如,括号要成对,结束要使用分号等。

  • 语义,就是这一段内容要代表某种意义。例如数字减去数字是有意义的,数字减去文本一般来说就没有意义。

  • 顺序,就是先干啥,后干啥。例如,可以先加上某个数值,然后再减去某个数值。

常用的网络协议

  • 应用层:
    • DNS 通过域名解析IP
    • HTTP、HTTPS 数据传输、加密传输,将请求打包
    • FTP 文件传输协议
    • SNMP 简单网络管理协议
    • DHCP 使网络环境中的主机动态的获得IP、网关、DNS地址等信息
  • 传输层:
    • TCP 面向连接的传输协议,包含端口,保证包可以到达目的地以及顺序
    • UDP 无连接传输
  • 网络层:
    • IP 包含源IP地址,目的地IP地址
    • ARP 根据IP地址获取物理地址的一个TCP/IP协议

程序是如何工作的

  • 只要是网络上的包,可以只有下层没有上层,但绝不能只有上层没有下层。比如TCP协议的三次握手,重试等,只要发包,必然有IP层和MAC层,否则包是发不出去的

  • 如果将网络分层放到现实生活中,可以拿快递进行类比:

    • 设备A应用层 首先发件人填写寄件人、收件人信息,下单(将包加上HTTP头)
    • 设备A传输层 联系快递员取件,将快件装箱并揽收到附近营业部(加TCP头)
    • 设备A网络层 装车发往下一站(加IP头)
    • 设备A物理层 开始运送(加MAC头)
    • 设备B物理层 是否到站,没到站继续转发(二层设备处理MAC头)
    • 设备B网络层 快递员看看是不是属于自己的快件,如果不是转发到其它站(三层设备处理IP头)
    • 设备B传输层 快递员联系收件人并运送快件(处理四层TCP头)
    • 设备B应用层 如果是正常的快件包裹,将包裹送至收件人地址处(四层头中有端口号,按照端口号将包传输给应用处理)

IP ADDR

  • IP地址->门牌号 MAC地址->身份证
  • 在IP地址的后面有个scope,对于eth0这张网张网卡来讲,是global,说明这张网卡是可以对外的,可以接收来自各个地方的包。
  • MAC地址是有一定定位功能的,只不过范围非常有限。其通信范围只局限在一个子网里面,一旦跨子网,还是需要IP地址进行定位。
  • Linux的默认逻辑是,如果源IP与目标IP是一个跨网段的调用,它就会把包发送给网关。

crazy0x

天性凉薄