【计算机网络】计算机网络基础与协议栈
优质
小牛编辑
149浏览
2023-12-01
更多面试题总结请看:【面试题】技术面试题汇总
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 参考模型各层常见协议
将“网络接入层”进一步分为“数据链路层”与“物理层”,得到五层协议模型。各层的常见协议如下:
TCP/IP 协议层 | 协议 | 作用 |
---|---|---|
应用层 | HTTP | 超文本传输协议(HyperText Transfer Protocol) |
FTP | 文件传输协议(File Transfer Protocol)用于在客户端和服务器之间进行文件传输 | |
SMTP | 简单邮件传输协议(Simple Mail Transfer Protocol)是一个在网络上传输电子邮件的标准 | |
TELNET | Telnet 是服务器远程登录控制的标准协议与主要方式 | |
DNS | 域名系统(Domain Name System)是域名和 IP 地址相互映射的分布式数据库 | |
SSH | 安全外壳协议(Secure Shell)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境 | |
DHCP | 动态主机配置协议(Dynamic Host Configuration Protocol)的主要作用是集中管理、动态分配 IP 地址,提升地址的使用率 | |
传输层 | TCP | 传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议 |
UDP | 用户数据报协议(User Datagram Protocol)是一个简单的、无连接的、不可靠的、面向数据报的通信协议 | |
网络层 | IP | 网际协议(Internet Protocol)是用于分组交换数据网络的一种协议,功能包括寻址、路由、尽最大努力交付数据包 |
ICMP | 互联网控制消息协议(Internet Control Message Protocol)用于返回通信环境的错误消息。traceroute 和 ping 都是基于 ICMP 消息实现的,traceroute 是通过发送含有特殊 TTL 的包,然后接收 ICMP 超时消息和目标不可达消息来实现的;ping 则是用 ICMP 的“Echo request (8)”和“Echo reply (0)”消息来实现的 | |
IGMP | 因特网组管理协议(Internet Group Management Protocol )管理 IP 协议多播组成员 | |
RIP | 路由信息协议(Routing Information Protocol)是一种内部网关协议(IGP),是距离向量路由协议的一种实现 | |
OSFP | 开放式最短路径优先(Open Shortest Path First)是一种内部网关协议(IGP),使用 Dijkstra 算法计算最短路径,是链路状态路由协议的一种实现 | |
BGP | 边界网关协议(Border Gateway Protocol)是互联网上一个核心的去中心化自治路由协议,属于矢量路由协议。BGP 用于互联网上,将自治系统视作一个整体;每个自治系统使用 IGP(代表实现有 RIP 和 OSPF)进行路由 | |
数据链路层 | ARP* | 地址解析协议(Address Resolution Protocol)通过 IP 寻找 MAC 地址 |
ARQ | 自动重传请求(Automatic Repeat-reQuest)是一种错误纠正协议 | |
物理层 | IEEE802 | IEEE 802 指 IEEE 标准中关于局域网和城域网的一系列标准,其中最广泛使用的有以太网、令牌环、无线局域网等 |
- ARP 协议:ARP 协议应该属于哪一层?一种说法是属于网络层,因为 IP 协议使用 ARP 协议;另一种说法是属于数据链路层,因为 MAC 地址是数据链路层的内容。在 OSI 模型中,ARP 协议属于链路层;而在 TCP/IP 模型中,ARP 协议属于网络层。
比较 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 动态地估算。