【计算机网络】TCP/IP四层模型

news2024/9/22 19:36:29

文章目录

  • TCP/IP模型
    • 应用层(Application Layer)
    • 传输层(Transport Layer)
    • 网络层(Internet Layer)
    • 网络接口层(Network Interface Layer)

TCP/IP模型

经典的TCP/IP参考模型从上至下分为4个层次:应用层、传输层、网络层和网络接口层。与OSI模型不同的是在TCP/IP参考模型中,根据实际情况把OSI参考模型的会话层和表示层合并到应用层中。同时,将数据链路层和物理层合并为网络接口层。

为什么要有 TCP/IP 网络模型?

对于同一台设备上的进程间通信,有很多种方式,比如有管道、消息队列、共享内存、信号等方式,而对于不同设备上的进程间通信,就需要网络通信,而设备是多样性的,所以要兼容多种多样的设备,就协商出了一套通用的网络协议

这个网络协议是分层的,每一层都有各自的作用和职责,接下来就根据「 TCP/IP 网络模型」分别对每一层进行介绍。

在这里插入图片描述

在这里插入图片描述

应用层(Application Layer)

应用层Application Layer)是最接近用户的层,直接为用户和应用程序提供服务。那么,当两个不同设备的应用需要通信的时候,应用就把应用数据传给下一层,也就是传输层。

TCP/IP模型中把会话层和表示层取消,并将其功能合并到应用层。实现了许多基于TCP和UDP的应用层协议。例如基于TCP协议的文件传输协议File Transfer Protocol,FTP)、Telnet协议、超文本传输协议(HyperText Transfer Protocol,HTTP)等,基于UDP协议有简化的FTP协议、TFTP、网络管理协议SNMP、域名服务DNS、网络文件共享NFS等。

应用层是不用去关心数据是如何传输的,就类似于,我们寄快递的时候,只需要把包裹交给快递员,由他负责运输快递,我们不需要关心快递是如何被运输的。

而且应用层是工作在操作系统中的用户态,传输层及以下则工作在内核态。

传输层(Transport Layer)

传输层负责在通信双方之间提供可靠的数据传输。它提供了源主机和目标主机上的对等层之间可以进行会话的机制。传输控制协议Transmission Control Protocol,TCP)和用户数据报协议User Datagram Protocol,UDP)是这一层的主要协议。应用层的数据包会传给传输层,传输层是为应用层提供网络支持的。

  • TCP协议是一个面向连接的、可靠的协议。它利用IP层的机制在不可靠连接的基础上实现可靠的连接,通过发送窗口控制、超市重发、分包等方法,将一台主机发出的字节流发往互联网上的其他主机。
  • UDP协议是一个不可靠的、无连接协议,主要适用于不怕数据丢失、不需要对报文进行排序、流量控制的场景。

当设备作为接收方时,传输层则要负责把数据包传给应用,但是一台设备上可能会有很多应用在接收或者传输数据,因此需要用一个编号将应用区分开来,这个编号就是端口

比如 80 端口通常是 Web 服务器用的,22 端口通常是远程登录服务器用的。而对于浏览器(客户端)中的每个标签栏都是一个独立的进程,操作系统会为这些进程分配临时的端口号。

由于传输层的报文中会携带端口号,因此接收方可以识别出该报文是发送给哪个应用。

网络层(Internet Layer)

网络层是TCP/IP协议栈的核心。它将数据包进行分组并发往目的主机或网络。为了尽快地发送分组,一个数据包的分组可能要经过不同的路径进行传递。这造成了分组之间到达目的网络或主机的顺序不是原来发送分组的顺序,需要在本层对分组进行排序。网络层定义了数据包的分组格式和协议, IP 协议(Internet Protocol),因此网络层也可以称为IP层。它可以进行路由,网际互连和拥塞控制等。

在实际的网络环境中,数据传输涉及复杂的网络路径和节点。设备之间的数据传输需要在不同的路径和节点之间进行选择,而传输层的设计理念是追求简单、高效和专注。因此,不希望传输层协议处理过多的任务,而是专注于应用间的数据传输。传输层的主要职责是充当应用之间的数据传输媒介,实现应用到应用的通信,而实际的数据传输功能和路径选择则由网络层来处理。

这样,传输层可以更好地为应用服务,而网络层则负责路由和数据包的传输。

网络层负责将数据从一个设备传输到另一个设备,世界上那么多设备,又该如何找到对方呢?因此,网络层需要有区分设备的编号。

我们一般用 IP 地址给设备进行编号,对于 IPv4 协议, IP 地址共 32 位,分成了四段(比如,192.168.100.1),每段是 8 位。

网络接口层(Network Interface Layer)

包括物理层和数据链路层。在TCP/IP这一层负责物理设备之间的数据传输。它包括硬件接口和低级协议,确保数据能够在物理介质上进行传输,如以太网、Wi-Fi等。

生成了 IP 头部之后,接下来要交给网络接口层Link Layer)在 IP 头部的前面加上 MAC 头部,并封装成数据帧(Data frame)发送到网络上。

IP地址和MAC地址的区别:

  • IP地址: 在网络通信中,IP地址标识数据包的目的地。通过IP地址,我们可以确定要将数据包发送到哪里。然而,IP地址在局域网内并不能直接用于数据包的传输。
  • MAC地址: 在以太网环境中,数据包的传输依赖于MAC地址。MAC地址是物理网络接口的硬件地址,用于在局域网中唯一标识设备。

IP 头部中的接收方 IP 地址表示网络包的目的地,通过这个地址我们就可以判断要将包发到哪里,但在以太网的世界中,这个思路是行不通的。

什么是以太网呢?以太网是一种「局域网」技术,用于将附近的设备连接起来,实现它们之间的通信。以太网设备包括电脑上的以太网接口、Wi-Fi接口、以太网交换机和路由器上的接口等。网线也是以太网的一部分。

在以太网中,网络包的目的地判断与IP的方式不同。以太网使用MAC头部来标识接收方和发送方的MAC地址。为了将网络包准确发送到目标设备,需要使用MAC地址,而不是IP地址。

网络接口层的职责:网络接口层为网络层提供链路级别的传输服务,负责在以太网、Wi-Fi等底层网络上发送原始数据包。该层次的操作主要在网卡(网络接口卡)上进行,使用MAC地址来标识和定位网络中的设备。

img

网络接口层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。但这些名词并没有什么本质的区分,可以统称为数据包。


以下关于网络协议分层说法不正确的是()

A.表示层一项重要的工作就是网络标准数据格式的转换

B.会话层负责管理传输层以下的分层

C.数据链路层是地址管理和路由选择

D.传输层管理两个节点之间的数据传输

C :数据链路层完成帧同步,差错控制,流量管理,链路管理

OSI参考模型中,()提供了差错报告,网络拓扑结构的功能

A.网络层 B.传输层 C.数据链路层 D.物理层

C:传输层负责两端之间的数据传输;网络层负责地址管理与路由选择;数据链路层负责相邻设备之间数据帧传输,完成帧同步,差错控制,流量管理,链路管理;物理层负责物理光电信号传输。

传统交换机和路由器分别运行在OSI参考模型的()

A.数据链路层和网络层 B.网络层和传输层

C.传输层和数据链路层 D.物理层和网络层

交换机在数据链路层,路由器在网络层

OSI的哪一层通常同时使用报头和报尾进行封装()

A.网络 B.传输层 C.数据链路层 D.表示层

在OSI模型中,数据链路层通常同时使用报头(Header)和报尾(Footer)进行封装。
数据链路层负责在相邻节点之间提供可靠的数据传输。在这一层,数据被封装成帧(Frame),帧的报头包含了控制信息,如源和目的MAC地址、帧类型等,而报尾可能包含错误检测信息,如循环冗余检测(CRC)码。这些信息帮助接收方正确地接收并处理数据帧。因此,正确答案是数据链路层。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1966946.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何手动修复DLL丢失?directx修复工具收费吗?

在使用电脑时,我们有时会遇到DLL文件丢失或损坏的问题,导致软件无法正常运行。DLL(动态链接库)文件是Windows操作系统中重要的组成部分,用于共享程序代码和资源。本文将介绍如何手动修复DLL丢失问题,手动修…

【优秀python案例】基于Python的豆瓣电影TOP250爬虫与可视化设计与实现

摘要:伴随着当代社会物质水平的不断提高,人们越来越注重精神享受,看电影成为人们日常生活中重要的组成成分。本文将针对豆瓣上热门电影评论进行爬取,应用可视化分析更为形象地了解该电影的动态。该系统可以使得人们实时了解到有关…

WebLogic:CVE-2023-21839[JNDI注入]

原理 1、T3/IIOP协议支持 远程绑定对象 bind到服务端,而且可以通过lookup代码 c.lookup("xxxxxx"); 查看 2、远程对象继承自OpaqueReference并lookup查看远程对象时,服务端会调用远程对象 getReferent 方法 3、由于 weblogic.deployment.…

Java未来还是霸主吗?Java 在当今企业中的未来到底是什么?

Java 及其生态系统对于许多现代企业的成功至关重要。它是一种多功能语言,对许多用例提供强大支持,并具有强大的新功能来应对棘手的情况。但您可能会问自己:Java 的未来是什么? 尽管自 1999 年以来 Java 一直是软件开发领域的关键角…

【C++11】深度解析--异步操作(什么是异步?异步有那些操作?异步操作有什么用呢?)

目录 一、前言 二、什么是异步操作呢? 🔥异步的概念🔥 🔥异步的生活案例说明🔥 三、异步有那些操作呢? 🔥std::future🔥 💢std::future 的概念💢 &a…

SmolLM-HuggingFace发布的高性能小型语言模型

SmolLM是什么? SmolLM是由 Huggingface 最新发布的一系列最先进的小型语言模型,有三种规格:1.35亿、3.6亿和17亿个参数。这些模型建立在 Cosmo-Corpus 上,Cosmo-Corpus 是一个精心策划的高质量训练数据集。Cosmo-Corpus 包括 Cos…

AT24C08系列eeprom总结

内存大小说明:单位(bits(位) AT24C02A,2K bits串行EEPROM:内部组织为256页,每页1字节, AT24C04A,4K bits串行EEPROM:4K内部组织为256页,每页2字节。 AT24C…

拯救丢失数据,这三款数据恢复软件你不可错过

数据丢失真的很烦人,无论是手滑删除了重要文件,还是电脑突然崩溃,那些珍贵的照片、文档、视频,一瞬间就仿佛人间蒸发了一样。但别担心,科技的力量总能给我们带来希望,数据恢复软件就是我们的救星。我用过了…

如何选择开放式耳机?2024五款热门机型推荐!

耳机在我们日常通勤和运动锻炼中扮演着重要的角色,它不仅帮助我们放松和振奋,还提供了随时可得的安慰和动力。选择一款合适的耳机非常关键,开放式耳机因其不挤压耳道的设计,在多种使用场景下都能提供良好的适应性,特别…

本地node搭建web服务器

首先确认自己的电脑已经安装了node.js 1.创建一个node服务文件 创建一个node-serve文件夹,然后在当前文件下输入初始化node项目命令。 npm init然后一直按回车即可,完成之后生成一个 package.json 文件。 2.在当前文件夹下新建一个 index.js 的文件&…

IT人求职就业手册:如何在数字时代脱颖而出

💂 个人网站:【 摸鱼游戏】【网址导航】【神级代码资源网站】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…

《数据库技术及其对我国企业发展的重大贡献》

数据库技术及其对我国企业发展的重大贡献 一、夯实数字化基础,助力企业转型二、提升数据处理能力,增强企业核心竞争力三、保障数据安全,筑牢企业发展防线四、推动技术创新,引领企业未来发展五、构建数据生态,激发企业创…

Vue + View-ui-plus Upload实现手动上传

本文实现Vue Upload组件多文件手动上传&#xff0c;支持上传图片&#xff08;image&#xff09;、压缩文件(zip/rar)、表格(excel)、pdf 一、dom结构 <Row><Col :span"19"></Col><Col :span"2"><div class"ivu-btn-uplo…

基于自监督学习的多维MRI数据去噪

摘要 目的&#xff1a;开发一种基于自监督学习方法的高维MRI数据去噪框架&#xff0c;该框架无需基准真值。 方法&#xff1a;定量MRI面临着信噪比(SNR)的限制&#xff0c;而且复杂的非线性信号模型使得拟合过程容易受到噪声的影响。为了解决这些问题&#xff0c;本研究提出了…

智慧停车场反向寻车功能:蓝牙iBeacon技术赋能地下车库精准定位与导航

随着城市车辆数量的激增&#xff0c;传统停车场面临着管理效率低下、停车难、寻车难等问题。智慧停车场导航停车和反向寻车技术的引入&#xff0c;为解决这些问题提供了创新方案&#xff0c;极大提升了停车场的智能化水平和用户体验。 智慧停车场导航系统的技术架构 1.基于3D…

ETL数据集成丨快速将MySQL数据迁移至Doris数据库

随着大数据技术的迅速发展&#xff0c;越来越多的企业开始寻求高效、灵活的数据存储与分析解决方案。Apache Doris&#xff08;原名 Palo&#xff09;作为一款高性能的MPP&#xff08;大规模并行处理&#xff09;分析型数据库&#xff0c;凭借其在OLAP场景下的卓越表现&#xf…

丝滑的动态Dock栏设计:交互式网页元素的实现

动态Dock栏设计&#xff1a;交互式网页元素的实现 在现代网页设计中&#xff0c;交互性是一个关键要素&#xff0c;它能够提升用户体验并使网页更加生动。本文将深入分析一个交互式Dock栏的设计案例&#xff0c;它通过CSS自定义属性和JavaScript事件处理&#xff0c;实现了一个…

redis的集群(高可用)

redis集群的三种模式&#xff1a; 主从复制 奇数 三台 一主两从 哨兵模式 3 一主两从 cluster集群 六台 主从复制&#xff1a;和mysql的主从复制类似&#xff0c;主可以写&#xff0c;写入主的数据通过RDB方式把数据同步到从服务器&#xff0c;从不能更新到主&#xff0c;也…

UML类图 详解

总目录 前言 作为一个程序员&#xff0c;我们经常会使用UML来绘制各种图&#xff08;UML中定义了用例图、类图、时序图、协作图等九种&#xff09;&#xff0c;类图就是其中常用图之一。设计模式中经常会用到的是类图&#xff0c;本文主要是学习UML类图相关资料后的汇总笔记&a…

【原创】分析JDK17加载Sybase驱动出现递归调用的原因并解决其加载问题

前言 最近好久没发文章了&#xff0c;原因是AI太强了&#xff0c;随便问一句答案就有了&#xff0c;节约了很多折腾的时间&#xff0c;也就没法作为原创文章发布了&#xff0c;还有就是很多涉及公司内部的代码&#xff0c;没法公开发布。 这次遇到了一个项目&#xff0c;用的…