七层模型
OSI七层结构分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
- 应用层:为应用程序提供服务并规定应用程序中通信相关的细节
- 表示层:将应用处理的信息转换为合适网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式。因此它主要负责数据格式的转换
- 会话层:负责建立和断开通信连接,以及数据的分割等数据传输相关的管理。
- 传输层:起着可靠传输的作用,只在通信双方节点上进行处理,无需在路由器上处理。
- 网络层:将数据传输到目标地址。目标地址可以是多个网络通过路由器连接而成的某一个地址,因此这一层主要负责寻址和路由选择。
- 数据链路层:负责物理层面上互连的、节点之间的通信传输,将0-1序列划分为具有意义的数据帧传送给对端(数据帧的生成和接收)
- 物理层:负责0-1与高低电压之间的转换
集线器工作在物理层,交换机主要工作在数据链路层,但也有多层交换机。路由器工作在网络层。
传输层
TCP/IP中有两个重要的传输协议,分别是TCP和UDP,TCP提供可靠的通讯传输,而UDP则常被用于让广播和细节交给应用的通讯传输
TCP
nodejs中net模块实现了TCP协议
TCP(transimision control protocol)
- 特征
- 传输控制协议
- 可靠、面向连接
- 确认应答
- 丢包重发
- 分段打包、顺序控制
- 传输效率低
- 流量控制避免拥塞
UDP
nodejs中dgram模块实现了UDP协议
UDP(user datagram protocol),不提供复制的控制机制,利用IP提供面向无连接的通讯服务,并且它是将应用程序发来的数据在收到的那一刻,立即原样发到网络的一种机制,所以即使在网络拥堵的情况下,udp也无法进行流量控制来避免堵塞、丢包。此外在传输过程中,即使发现丢包也不会重发,包顺序错乱了也不能纠正
-
特征
- 面向无连接,可随时发送数据
- 无流量控制
- 可能丢包,只管传输数据,成功与否并不关心
- 不能重发
- 不能纠正包顺序
- 传输效率高
-
应用
- 包总量较少的通信
- 视频、音频等多媒体通信(即时通信)
- 现定于LAN等特定网络中的应用通信
- 广播通信
网络层
IP
在网络中,每台计算机都有一个唯一的地址,方便别人找到它,这个地址称为IP地址。不同于MAC地址全球唯一不可变,一台计算机对应的IP地址是可变的
应用层
HTTP
请求
响应
一次完整通讯过程
常用协议
-
网络层:IP协议簇
- ARP协议:获得同一物理网络中的硬件主机MAC地址
- IP协议:负责主机和网络之间寻址和路由数据包
-
传输层:TCP协议、UDP协议
-
应用层:HTTP协议、FTP协议、FILE协议、
-
- mac表
- 路由表
- arp表