(嵌入式八股)第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模型由四层组成,下面详细介绍每一层及其功能。

  1. 网络接口层(Network Interface Layer)
  • 功能:网络接口层负责将数据从计算机发送到物理网络(如局域网或互联网)。它处理设备间的通信细节,包括物理媒介和数据链路层的通信。
  • 包括的协议:
  • 以太网(Ethernet)
  • Wi-FiARP(地址解析协议)
  • PPP(点对点协议)
  • FDDI(光纤分布数据接口)

工作方式:这一层确保网络硬件设备(如网卡、交换机等)通过物理和数据链路层将数据包正确传输到目标设备。

  1. 网络层(Network Layer)
  • 功能:网络层的任务是处理数据包的寻址和路由,确保数据能够从源设备通过多个网络到达目标设备。网络层主要使用IP协议来执行数据的路由和转发。
  • 包括的协议:
  • IP(Internet Protocol):为数据包提供源地址和目的地址,并负责数据包的路由。
  • ICMP(Internet Control Message Protocol):用于网络设备之间的控制消息交换(如ping)。
  • ARP(Address Resolution Protocol):将IP地址映射到物理地址(如MAC地址)。
  • 工作方式:该层处理数据包的封装和寻址,决定如何通过不同的路由将数据从源设备传输到目标设备。
  1. 传输层(Transport Layer)
  • 功能:传输层负责端到端的通信,确保数据在源设备和目标设备之间可靠传输,并处理数据的顺序、完整性和错误校验。此层的协议能够确保数据按顺序到达,不丢失。
  • 包括的协议:
  • TCP(Transmission Control Protocol):一个面向连接的协议,提供可靠的、无误的传输服务,确保数据按顺序到达,并且进行流量控制和错误校验。
  • UDP(User Datagram Protocol):一个无连接的协议,提供简单快速的传输服务,但不保证数据的可靠性。
  • 工作方式:在这层,数据被分割成小的数据段,每个段都包括序列号和校验信息,传输过程中的错误会导致数据重发。
  1. 应用层(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地址来标识每个设备,并且通过路由器将数据包从一个网络传递到另一个网络。

    特点

  • 寻址:IP协议为每个设备分配唯一的IP地址,用于网络间的标识。
  • 路由:IP协议通过路由器确定数据包的传输路径。
  • 分片与重组:IP协议可以根据目标网络的最大传输单元(MTU)将较大的数据包分片,并在目标设备处重新组合。
  • 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报文的控制信息:

  • URG(Urgent):紧急指针字段是否有效。
  • ACK(Acknowledgment):确认号字段是否有效。
  • PSH(Push):接收方应尽快将数据交给应用程序。
  • RST(Reset):重置连接。
  • SYN(Synchronize):用于建立连接。
  • FIN(Finish):用于关闭连接。
  • 窗口大小(Window Size)

    • 16位字段,表示接收方的缓

    剩余60%内容,订阅专栏后可继续查看/也可单篇购买

    作者简介:仅用几个月时间0基础天坑急转嵌入式开发,逆袭成功拿下华为、vivo、小米等15个offer,面试经验100+,收藏20+面经,分享求职历程与学习心得。 专栏内容:这是一份覆盖嵌入式求职过程中99%问题指南,详细讲解了嵌入式开发的学习路径、项目经验分享、简历优化技巧、面试心得及实习经验,从技术面,HR面,AI面,主管面,谈薪一站式服务,助你突破技术瓶颈、打破信息差,争取更多大厂offer。

    全部评论

    相关推荐

    不愿透露姓名的神秘牛友
    07-04 14:35
    点赞 评论 收藏
    分享
    评论
    5
    7
    分享

    创作者周榜

    更多
    牛客网
    牛客网在线编程
    牛客网题解
    牛客企业服务