-
物理层 用物理手段(光缆、电缆、无线电波wifi)将设备连接起来组网 传输原始的比特流,也就是010101011011101 主要传送01电信号 集线器hub就属于这一层
-
数据链路层 确定01电信号的分组 物理寻址,将比特流转变为逻辑传输线路。 现在流行的是以太网协议(统一了各个公司的电信号分组方式) 以太网协议规定: 一组电信号是一个数据包,叫“帧frame” 一个帧有两部分:标头head 和 数据data 连入网络的所有设备都必须有"网卡"接口,数据都是从一个网卡传到另一个网卡 笔记本一般有一个以太网卡和一个wifi网卡 每块网卡生产时都会带上独一无二的mac地址,也称网卡地址 head:数据的描述,包括发送者和接受者,以及数据类型等 mac地址是48位二进制,对应12位16进制,前6位是厂商编码,后6位是流水号,独一无二 head中的发送者和接受者,就是用mac地址标识的 知道了目的mac地址,怎么把数据发送给指定设备: 广播:以太网的方式,数据发给以太网所有设备,接收者根据head中的目的地址判断, 如果是自己的,就处理,这种广播方式是通过交换机进行的。 如何去确定一个机器的mac地址: 通常我们输出数据只有ip,不会带mac地址,这时需要使用arp协议, arp协议,address resolution protocol地址解析协议, arp协议符合以太网协议标准,作用是实现mac地址和ip的对应关系, arp协议适用于ipv4,包含的概念有:arp缓存、地址冲突 跨网(跨以太网)获取mac地址:这时需要用到arp代理,一般由路由器充当 交换机属于这一层 ps:数据链路层除了以太网协议Ethernet,还有ieee802.2和internetwork等其他协议 实现了3个功能: - 封装成帧 head + data 构成一帧 - 透明传输 什么报文都能传 某些特殊字符要做处理SOH EOT - 差错控制 原意是让数据链路层做成可靠传输,现在硬件设备的升级, 将可靠传输的任务丢到上层协议,以提高通信效率。
-
网络层 引入一套新的地址(ip网络地址),将互联网分解为一级一级的网络, 因为纯靠mac地址和广播技术,效率太低。 ip: internet protocol,网络地址协议,分ipv4 ipv6 下面讨论ipv4: ip地址是32位二进制组成,常用255.255.255.255表示,前面3个表示网络,后面一个表示主机 具体是前24位表示网络,还是前16位表示网络,由子网掩码解决,255.255.255.0表示前24是网络 路由是:通过互联网将信息从源地址传输到目的地址 路由器:实现路由的机器,配有多个网卡的专用机器,可以计入到不同网络 网关:路由器的一种,通常指路由器的ip
ip协议是指一个协议族 在数据链路层有帧的概念,在网络层有ip报文的概念 ip报文,包含20字节的固定首部,后面跟数据,20byte = 5 * 32bit
ps:交换机和路由器的区别: - 交换机在数据链路层,路由器在网络层 - 交换机根据mac地址(物理地址)转发,路由器根据ip地址(网络地址)转发 - 交换机用于组建局域网,路由器由于将组好的局域网接入网络
-
传输层 一个设备有了ip地址和mac地址后,就可以在互联网上任意两个设备上建立通信, 端口号,可以让一个设备上的多个程序都使用到网络 端口号其实是使用网卡的程序的一个编号 传输层的作用:建立端口号-端口号之间的通信,网络层是主机-主机的通信
可以理解为进程间通信: 主机内部ipc由操作系统决定 跨主机ipc,称为网络进程间通信,也叫socket通信 socket本质是编程接口(api),对tcp/ip的封装,对外暴露的接口 udp/tcp都是传输层协议族,会在数据前面的head中加入端口,生成tcp包和udp包 在传输层,也做了必要的数据分割,目的是保证数据有效达到对端
-
应用层 应用程序接到传输层的数据后,会按约定的格式来解析数据,eg:socket + 自定义格式 也有一些应用层的协议eg:email、www、ftp等 dns:domain name system 域名系统,管理域名和ip地址的相互映射
这里的应用层其实包括了会话层、表示层、应用层
http数据包:
- 传输层添加了tcp首部
- 网络层添加了ip首部
- 链路层天机阿勒以太网首部