(嵌入式八股)第7章 计算机网络(一)
OSI七层模型
OSI(Open Systems Interconnection,开放系统互联)模型是一个分层的计算机网络通信框架,用于理解和描述计算机网络中的不同协议和数据流动。OSI模型将网络通信分为七个不同的层级,每一层都有其独特的功能,确保数据从一个设备传输到另一个设备时的完整性、效率和可靠性。
七层模型的层次从物理层到应用层逐层向上,以下是每一层的详细介绍:
物理层(Physical Layer)
作用:物理层是OSI模型中的第一层,负责设备间的实际物理连接和数据传输。它处理比特的传输,涉及电气信号的编码和解码。
功能:定义电气信号的标准(如电压、频率)。传输原始的比特流(0和1)。定义传输介质(如电缆、光纤、无线信号)。
示例协议和设备:IEEE802.1、 IEEE802.2-802.11、网络适配器、集线器、交换机端口、传输介质(铜线、光纤)。
数据链路层(Data Link Layer)
- 作用:数据链路层的任务是将物理层传输的比特流分组为数据帧,并负责错误检测和纠正。它确保数据的正确传输,提供设备间的逻辑链接。
- 功能:数据帧的封装和解封装。错误检测(如校验和)和纠正。访问控制,管理多个设备共享物理媒介。
- 示例协议和设备::FDDI、Ethernet、PPP、交换机、网卡。
网络层(Network Layer)
- 作用:网络层负责在不同网络之间转发数据包,决定数据包的传输路径(路由)。它提供逻辑地址(如IP地址)和路由机制。
- 功能:路由选择,确定数据包的路径。地址分配与管理(如IP地址)。数据包的分段和重组。
- 示例协议和设备:IP协议(IPv4/IPv6)、ICMP、路由协议(RIP、OSPF)、ARP、路由器。
传输层(Transport Layer)
- 作用:传输层确保数据在发送方和接收方之间的可靠传输。它负责数据的分段、流量控制和错误检测。
- 功能:提供端到端的通信,确保数据的可靠性。流量控制,确保数据不会传输过快或过慢。错误检测和恢复。数据重组,确保数据正确到达。
- 示例协议:TCP(传输控制协议)、UDP(用户数据报协议)。
会话层(Session Layer)
- 作用:会话层负责在不同的应用程序之间建立、管理和终止会话。它支持全双工或半双工通信,并维护通信的状态。
- 功能:建立、维护和终止会话。会话恢复,支持会话断开后的恢复。数据同步和控制。
- 示例协议:SSL、TLS。
表示层(Presentation Layer)
- 作用:表示层负责数据格式的转换和加密解密,使得不同系统能够理解彼此的数据。
- 功能:数据格式的转换(例如,从ASCII到EBCDIC)。数据压缩和解压。数据加密和解密,确保安全性。
- 示例协议:JPEG、ASCII、DECORIC、加密格式。
应用层(Application Layer)
- 作用:应用层是OSI模型的第七层,直接为用户提供网络服务。它为应用程序提供网络服务接口,使得用户能够通过网络与其他系统进行通信。
- 功能:提供应用服务,如文件传输、电子邮件、浏览器等。确保网络应用程序与底层协议(如TCP/IP)之间的互操作。
- 示例协议:TTP、FTP、Telnet、SNMP、DNS。
总结
- 物理层:负责数据的物理传输。
- 数据链路层:确保数据帧的正确传输,并提供错误检测。
- 网络层:负责数据包的路由选择和传递。
- 传输层:确保端到端的可靠数据传输。
- 会话层:管理会话和会话的状态。
- 表示层:负责数据格式的转换、压缩和加密。
- 应用层:为用户提供网络服务接口。
7.2 TCP/IP四层模型
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)是一个用于网络通信的协议集,它定义了如何在网络上进行数据传输。TCP/IP模型通常被用作实际互联网和局域网通信的基础,其结构更简单,并且广泛应用于互联网通信。TCP/IP模型由四层组成,下面详细介绍每一层及其功能。
- 网络接口层(Network Interface Layer)
- 功能:网络接口层负责将数据从计算机发送到物理网络(如局域网或互联网)。它处理设备间的通信细节,包括物理媒介和数据链路层的通信。
- 包括的协议:
- 以太网(Ethernet)
- Wi-FiARP(地址解析协议)
- PPP(点对点协议)
- FDDI(光纤分布数据接口)
工作方式:这一层确保网络硬件设备(如网卡、交换机等)通过物理和数据链路层将数据包正确传输到目标设备。
- 网络层(Network Layer)
- 功能:网络层的任务是处理数据包的寻址和路由,确保数据能够从源设备通过多个网络到达目标设备。网络层主要使用IP协议来执行数据的路由和转发。
- 包括的协议:
- IP(Internet Protocol):为数据包提供源地址和目的地址,并负责数据包的路由。
- ICMP(Internet Control Message Protocol):用于网络设备之间的控制消息交换(如ping)。
- ARP(Address Resolution Protocol):将IP地址映射到物理地址(如MAC地址)。
- 工作方式:该层处理数据包的封装和寻址,决定如何通过不同的路由将数据从源设备传输到目标设备。
- 传输层(Transport Layer)
- 功能:传输层负责端到端的通信,确保数据在源设备和目标设备之间可靠传输,并处理数据的顺序、完整性和错误校验。此层的协议能够确保数据按顺序到达,不丢失。
- 包括的协议:
- TCP(Transmission Control Protocol):一个面向连接的协议,提供可靠的、无误的传输服务,确保数据按顺序到达,并且进行流量控制和错误校验。
- UDP(User Datagram Protocol):一个无连接的协议,提供简单快速的传输服务,但不保证数据的可靠性。
- 工作方式:在这层,数据被分割成小的数据段,每个段都包括序列号和校验信息,传输过程中的错误会导致数据重发。
- 应用层(Application Layer)
- 功能:应用层提供用户与网络之间的接口,负责不同应用程序之间的通信。这一层处理与用户相关的功能和协议,如网页浏览、电子邮件等。
- 包括的协议:
- HTTP(HyperText Transfer Protocol):用于万维网上传输超文本。
- FTP(File Transfer Protocol):用于文件传输。
- SMTP(Simple Mail Transfer Protocol):用于发送电子邮件。
- DNS(Domain Name System):将域名解析为IP地址。
- Telnet:远程终端协议。POP3、IMAP:用于接收邮件。
- 工作方式:应用层将用户需求转化为网络通信请求,并将结果返回给用户。该层负责支持不同应用程序的功能。
TCP/IP模型与OSI模型的对比
总结
- TCP/IP模型更简洁,适用于互联网等分布式网络环境。它以四层结构描述了网络协议的功能,重点关注实际通信过程中的协议与数据传输。
- OSI七层模型则更为详细,是网络教学和理论学习中的基础模型,提供了更清晰的分层结构以帮助理解网络通信的各个方面。
7.3 CS模型与P2P模型
客户-服务器(C/S)模型
定义:
- 在C/S模型中,网络中的计算机分为两类:客户端和服务器。客户端是服务的请求方,服务器是服务的提供方。客户端发起请求,服务器接收请求并处理,最后返回处理结果给客户端。
工作方式:
- 客户端发送请求给服务器。
- 服务器处理请求并返回相应的结果。
- 服务器通常处理多个客户端的请求,可以是多个客户端同时访问同一服务。
优点:
- 服务器集中管理资源和数据,便于管理和维护。
- 安全性较高,因为客户端仅能通过请求访问服务器,数据可以得到集中控制。
缺点:
- 如果服务器出现问题或不可用,所有客户端的请求将无法处理。
- 服务器可能会成为性能瓶颈。
应用场景:
- Web应用:如浏览器与网站之间的通信。
- 数据库访问:客户端应用程序请求数据库服务器提供数据。
- 电子邮件服务:通过邮件客户端与邮件服务器进行通信。
对等连接(P2P)模型
定义:
- P2P模型中,网络中的所有设备都是对等的,没有明确的客户端和服务器角色。每台计算机(即节点)既可以是服务请求方,也可以是服务提供方。它们可以相互交换资源和信息,通信是平等的。
工作方式:
- 在P2P网络中,任何一台计算机可以发起请求并提供服务,不依赖中心服务器。
- 数据通常分布式存储在网络的各个节点上,节点之间通过直接通信交换信息。
优点:
- 没有单点故障,网络更具容错性。
- 资源分布广泛,能够充分利用每个节点的计算和存储能力。
缺点:
- 没有中心管理,可能导致一些节点提供不稳定或不安全的服务。
- 在大规模网络中,可能会遇到性能问题,如带宽瓶颈和网络延迟。
应用场景:
- 文件共享:如BitTorrent协议,用户之间可以共享文件。
- 即时通讯:如Skype,节点之间直接通信。
- 分布式计算:如SETI@home,多个计算节点共同完成计算任务。
总结
客户-服务器(C/S)模型:
- 适用于集中式应用,服务器集中管理和提供服务,客户端请求并接收服务。
- 典型应用:Web浏览、电子邮件、数据库访问。
对等连接(P2P)模型:
- 适用于去中心化的应用,所有计算机互相连接,资源共享,通信平等。
- 典型应用:文件共享、即时通讯、分布式计算。
7.4 什么是TCP/IP?
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)是一种用于计算机网络中数据传输的协议,它是互联网中最常用的协议之一。TCP/IP协议通过将网络通信分为多个协议来实现数据传输,提供了一种可靠的端到端的通信方式。
1. TCP(传输控制协议)
- 作用:TCP是面向连接的协议,提供可靠的、无误的数据传输。它负责将数据从源设备传输到目标设备,并且确保数据包按正确的顺序到达。
特点:
2. IP(互联网协议)
- 作用:IP是网络层协议,负责根据目标IP地址将数据包从源设备传递到目标设备。它使用唯一的IP地址来标识每个设备,并且通过路由器将数据包从一个网络传递到另一个网络。
特点:
TCP/IP的组合
TCP和IP协议相辅相成,TCP提供可靠的传输保障,而IP负责数据的路由和寻址。二者结合,提供了端到端的数据传输,这也是互联网能够实现可靠通信的基础。
TCP报文格式
TCP报文的结构包含多个字段,下面是这些字段的详细说明:
源端口(Source Port):
- 16位字段,标识发送端的端口号,表示发送方的应用程序或服务。
目标端口(Destination Port):
- 16位字段,标识接收端的端口号,表示接收方的应用程序或服务。
序列号(Sequence Number):
- 32位字段,标识数据报文的顺序,用于确保数据包按正确的顺序组装。
确认号(Acknowledgment Number):
- 32位字段,表示期望接收的下一个字节的序列号,用于确认已接收的数据。
数据偏移(Data Offset):
- 4位字段,表示TCP头部的长度,用于指示数据区的起始位置。
保留位(Reserved):
- 6位字段,保留位供将来使用,目前保持为0。
控制位(Flags):
6位字段,表示TCP报文的控制信息:
窗口大小(Window Size):
- 16位字段,表示接收方的缓
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
作者简介:仅用几个月时间0基础天坑急转嵌入式开发,逆袭成功拿下华为、vivo、小米等15个offer,面试经验100+,收藏20+面经,分享求职历程与学习心得。 专栏内容:这是一份覆盖嵌入式求职过程中99%问题指南,详细讲解了嵌入式开发的学习路径、项目经验分享、简历优化技巧、面试心得及实习经验,从技术面,HR面,AI面,主管面,谈薪一站式服务,助你突破技术瓶颈、打破信息差,争取更多大厂offer。