OSI 参考模型
OSI 从上到下分为 7 层:
- 应用层:应用层协议定义的是应用进程间的通信和交互的规则,不同的网络应用需要不同的应用层协议
- 表示层:把数据转换为能与接收者的系统格式兼容并适合传输的格式
- 会话层:在数据传输中设置和维护电脑网络中两台电脑之间的通信连接
- 传输层:向两台主机进程之间的通信提供通用的数据传输服务
- 网络层:基于网络层地址(IP地址)进行不同网络系统间的路径选择
- 数据链路层:在不可靠的物理介质上提供可靠的传输
- 物理层:在局域网上透明地传送比特,尽可能屏蔽掉具体传输介质和物理设备的差异
TCP/IP 参考模型
从上到下分为 4 层,对应于 OSI 中的 5 层:
- 应用层:对应于 OSI 参考模型的应用层,为用户提供所需要的各种服务。定义的是应用进程间的通信和交互的规则,不同的网络应用需要不同的应用层协议。协议包括 SMTP、HTTP、FTP 等
- 传输层:对应于 OSI 参考模型的传输层,为应用层实体提供端到端的、通用的通信功能,保证了数据包的顺序传送及数据的完整性。“通用的”是指不同的应用可以使用同一个运输层服务。协议包括 TCP、UDP 等
- 网络层(或网际互联层):对应于 OSI 参考模型的网络层,主要解决主机到主机的路由问题。协议包括 IP、ICMP 等
- 网络接入层:对应于 OSI 参考模型的物理层和数据链路层,负责相邻的物理节点间的可靠数据传输。协议包括 ARP、IEEE 802.2 等
比较 TCP/IP 参考模型与 OSI 参考模型
共同点:
- 都采用了层次结构的概念
- 都能够提供面向连接和无连接的通信服务机制
不同点:
- OSI 采用了七层模型,而 TCP/IP 是四层
- OSI 是一个在协议开发前设计的、有清晰概念的模型;TCP/IP 是先有协议集然后建立的、事实上得到广泛应用的弱模型,功能描述和实现细节混在一起
- OSI 的网络层既提供面向连接的服务,又提供无连接的服务;TCP/IP 的网络层只提供无连接的网络服务
- OSI 的传输层只提供面向连接的服务;TCP/IP 的传输层即提供面向连接的服务 TCP,也提供无连接的服务 UDP
集线器、网桥、交换机、路由器
- 网线是物理层的硬件
- 集线器(Hub)是物理层的硬件,连接所有的线路,广播所有信息
- 网桥(Bridge)是数据链路层的硬件。网桥隔离两个端口,不同的端口形成单独的冲突域,减少网内冲突。网桥在不同或相同类型的 LAN 之间存储并转发数据帧,根据 MAC 头部来决定转发端口,显然是数据链路层的设备
- 交换机(Switch)是数据链路层的硬件,相当于多端口的网桥。交换机内部存储 MAC 表,只会将数据帧发送到指定的目的地址
- 路由器(Router)是网络层的硬件,根据 IP 地址进行寻址,不同子网间的数据传输隔离
比特、帧、数据包、数据段、报文
PDU:Prtocol data unit,协议数据单元,指对等层协议之间交换的信息单元。PDU 再往上就是数据(data)。
在 OSI 模型里,PDU 和底下四层相关:
- 物理层———比特(Bit)
- 数据链路层———帧(Frame)
- 网络层———分组、数据包(Packet)
- 传输层———数据段(Segment)
第五层或以上为数据(data)。也有一种说法是,应用层的信息称为消息、报文(message),表示完整的信息。
MSL、TTL、RTT 是什么?
MSL(Maximum segment lifetime):报文最大生存时间。它是任何 TCP 报文在网络上存在的最长时间,超过这个时间报文将被丢弃。实际应用中常用的设置是 30 秒,1 分钟和 2 分钟。
- 应用场景:TCP 四次挥手时,需要在 TIME-WAIT 状态等待 2MSL 的时间,可以保证本次连接产生的所有报文段都从网络中消失。
TTL(Time to live):IP 数据报在网络中可以存活的总跳数,称为“生存时间”,但并不是一个真正的时间。该域由源主机设置初始值,每经过一个路由器,跳数减 1,如果减至 0,则丢弃该数据包,同时发送 ICMP 报文通知源主机。取值范围 1-255,如果设置的 TTL 值小于传输过程中需要经过的路由器数量,则该数据包在传输中就会被丢弃。
RTT(Round trip time):客户端到服务端往返所花时间。RTT 受网络传输拥塞的变化而变化,由 TCP 动态地估算。