May
21st,
2018
协议的三要素
-
语法,就是这一段内容要符合一定的规则和格式。例如,括号要成对,结束要使用分号等。
-
语义,就是这一段内容要代表某种意义。例如数字减去数字是有意义的,数字减去文本一般来说就没有意义。
-
顺序,就是先干啥,后干啥。例如,可以先加上某个数值,然后再减去某个数值。
常用的网络协议
- 应用层:
- 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是一个跨网段的调用,它就会把包发送给网关。