计算机网络——TCP / IP 网络模型

news2024/11/14 13:55:06

OSI 七层模型

七层模型是国际标准化的一个网络分层模型,大体结构可以分成七层。每层提供不同的功能。

图片来源 JavaGuide

但是这样七层结构比较复杂,不太实用,所以有了 TCP / IP 模型。

TCP / IP 网络模型

TCP / IP 网络模型可以看作是 OSI 模型的简化版本。它将 OSI 网络模型合并成了 4层结构。

应用层、表示层、会话层统一被合并成了应用层。

传输层和网络层没有变化,数据链路层和物理层合并成了物理链路层 / 网络接口层。

应用层

最上层,是用户直接接触的层。手机电脑的应用就是在应用层实现。手机和电脑不同设备需要进行通信的话,应用会把需要传输的数据交由下一层进行传输,交互的数据就叫报文不同的网络应用需要不同的应用层协议。下面是常见的协议:

HTTP:超文本传输协议。基于TCP 协议,是用于传输超文本和多媒体内容的协议,主要为 web 浏览器和服务器之间的通信。

FTP:文件传输协议。基于 TCP 协议,用于计算机之间传输文件。

DNS:域名管理系统。基于UDP 协议,用于解决域名和IP 地址的映射问题。

传输层

为两个设备之间的通信提供数据传输服务。

传输层常见的协议就是 TCP 和 UDP 

TCP:传输控制协议。大部分应用层的协议就是基于这个而协议实现的。比如 HTTP 协议。TCP 比 UDP 协议多了很多特性,比如流量控制,超时重传,拥塞控制等,目的都是数据传输的可靠性。

UDP:用户数据报协议,相较于TCP ,UDP 是面向无连接的传输,就是通过 UDP 协议传输的数据不能保证一定传到。可能会丢失,没有超时重传机制。但是实时性高。

传输层有的时候会传送很大的数据。如果直接传可能不太好控制,如果中途丢失了,那么就需要重新传。就像直接下载一个20G 的游戏安装包和下载分为20个压缩包,如果在 99.9%的位置出现了安装包损坏,那么就需要从头开始下载。压缩包只需要下载损坏的那个就行了。TCP 协议在传输大数据时,会将数据分为数据块,叫做TCP 段或者报文段。如果某个段损坏了或者中途丢失了,那么只需要重传这一个数据段即可。

接收端的接收到数据之后会将数据传给应用层。但是一台设备可能有不同的应用在接收传输数据。比如你一边用微信回复老板信息,一边用QQ 和好朋友吐槽老板,系统怎么直到你吐槽的信息要发给谁,所以在数据传输时需要一个东西来区分接收对应数据的应用,这个就是端口,传输层的报文中会包含需要接收的端口,接收方可以直到这个数据是发送给那个端口的。比如 80 端口就是 web 服务器使用的。

网络层

负责为分组交换网上的不同主机提供通信服务。也就是实际控制数据报文传输的方向路径的。

打个比方,网络层就像是快递分拣站,将到来的快递分拣,排序,分配给各地区的快递小哥,快递小哥就像是传输层,只专心负责将快递送到顾客的手上,中途要走哪条路,都有中转站进行控制分配,这就是网络层为传输层选择适合的路由,通过指定的路由找到目的的主机。

网络层最常见的协议 IP 协议,主要作用是定义数据包的格式、对数据进行路由和寻址,以便可以通过网络传播并准确到达。寻址就是告诉数据下一个目的地是哪,路由就是选择路径。寻址就像是导航,规划了很多路线,路由就是从这些路线中选择一条。

网络接口层

网络接口层可以看作是数据链路层和物理层的结合,实际的作用也就是这两层的作用。

数据在 网络层加上了IP 头部之后变成 IP 数据报,网络接口层会给 IP 数据报加上 MAC 头部,并封装成数据帧发送到网络上。也就是以太网,以太网根据 MAC 头部识别需要发送到的目的地。

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

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

相关文章

视频截图软件,这几款截图神器收好!

在数字化时代,视频内容已经成为我们获取信息、娱乐休闲的主要方式之一。而在观看视频的过程中,我们总会遇到一些想要定格下来的精彩瞬间。此时,一款高效的视频截图软件就显得尤为重要。今天,就为大家推荐几款功能强大、操作简便的…

倩女幽魂手游攻略:搬砖赚银指南,2024新手必备!

倩女幽魂手游作为一款热门的多人在线角色扮演游戏,吸引了大量玩家。在游戏中,搬砖(即通过游戏中的活动和任务赚取虚拟货币,并换取实际收益)成为了许多玩家的选择。本文将为大家详细介绍如何在倩女幽魂手游中高效搬砖&a…

1.5.3 基于Java配置方式使用Spring MVC

本实战教程主要介绍了如何使用Java配置方式来使用Spring MVC框架。相较于XML配置方式,Java配置方式提供了一种更为简洁和灵活的配置方法。 项目创建与配置 创建一个Jakarta EE项目,并设置项目名称和位置。选择Jakarta EE 10版本,不添加依赖&a…

【webrtc】RtpToNtpEstimator:最小二乘法、ntp估计及c++实例

上一篇: 【webrtc】RtpToNtpEstimator:将 RTP 时间戳映射到 NTP 时间 分析了最小二乘法的实现及对rtp到ntp的映射计算的调用流程 基于最小二乘法进行估计 RtpToNtpEstimator::Estimate G:\CDN\rtcCli\m98\src\system_wrappers\source\rtp_to_ntp_estimator.cc RtpToNtpEstima…

kettle学习之子映射组件

映射组件就跟java中的函数方法一样,类似一个子流程。 练习开始 根据数据库表中的id查询出想要的字段,并把字段存到excel表中 一、表输入 二、子映射 映射输入规范,类似java方法中的形参 name vsxcd是方法返回的参数 三、excel输出 运行结果…

【Linux】线程操作

文章目录 前言一、线程相关操作函数1. pthread_create2. pthread_join3. pthread_exit4. pthread_cancel5. pthread_detach6. 示例代码 前言 在 Linux 中并不存在真正意义上的线程, 而是通过复用进程的结构来实现的, 叫做轻量级进程. 线程是一个进程内部的一个执行流, 而一个进…

LangChain实战技巧之三:关于Tool的一点拓展

(几乎)任一LLM在bind_tools时,都是习惯先定义一个Function或BaseTool,然后再bind(bind_tools)具体方式可参考我的这篇文章 AI菜鸟向前飞 — LangChain系列之十三 - 关于Tool的必知必会 但这里的tool未必需…

GC日志中的Metaspace

GC 日志中的 Metaspace used 20580K, capacity 21180K, committed 21248K, reserved 1067008K class space used 2594K, capacity 2752K, committed 2816K, reserved 1048576K 一、Metaspace介绍 知道jdk8之前有perm这一整块内存来存klass等信息,我们的参数里也…

Python 文件操作指南:使用 open 和 with open 实现高效读写

🍀 前言 博客地址: CSDN:https://blog.csdn.net/powerbiubiu 👋 简介 本系列文章主要分享文件操作,了解如何使用 Python 进行文件的读写操作,介绍常见文件格式的读取和写入方法,包括TXT、 CS…

vue 表格表头展示不下,显示。。。;鼠标悬浮展示全部

vue 表格表头展示不下&#xff0c;显示。。。&#xff1b;鼠标悬浮展示全部 <templateslot-scope"scope"slot"header"><span:title"临时证券类型"style"white-space:nowrap">{{ 临时证券类型 }}</span></templa…

老年人培聊助手:温暖心灵的智能陪伴

在快节奏的现代生活中&#xff0c;老年人常常感到孤独和寂寞。为了给他们带来更多的陪伴和温暖&#xff0c;我们推出了全新的老年人培聊助手智能体。 这款培聊助手智能体不仅是一个智能聊天工具&#xff0c;更是老年人生活中的贴心伙伴。它拥有自然流畅的语言交互能力&#xf…

一文详解SaaS增长模式:PLG、MLG、SLG哪种更适合你?

在SaaS&#xff08;软件即服务&#xff09;的领域中&#xff0c;增长策略的选择对于企业的成功至关重要。其中&#xff0c;PLG&#xff08;产品驱动增长&#xff09;、MLG&#xff08;市场驱动增长&#xff09;和SLG&#xff08;销售驱动增长&#xff09;是三种常见的策略&…

COD20使命召唤20新赛季免费玩 COD20免费体验在哪下

使命召唤20&#xff08;COD20&#xff09;的免费周已经正式启动&#xff0c;这是一个为期一周的特别活动&#xff0c;为玩家们带来了前所未有的游戏体验。在这个特殊的周期里&#xff0c;多人模式和僵尸模式将向公众免费开放&#xff0c;玩家们可以尽情地探索和体验游戏的精彩内…

PUBG绝地求生卡在初始界面 登不上去 打不开游戏的解决办法

PUBG绝地求生卡在初始界面 登不上去 打不开游戏的解决办法 吃鸡热潮依旧绝地求生PUBG可是咱们玩家的心头好啊&#xff01;不过有时候可能会遇到点小麻烦&#xff0c;比如PUBG绝地求生卡在初始界面 登不上去 打不开游戏的解决办法。小编这就给大家分享几个超实用的解决方法&…

想用Python做OCR?看看这篇文章

OCR是Optical Character Recognition的缩写&#xff0c;中文名为光学字符识别。它是一种通过计算机技术对图像或扫描文档中的文字进行识别和理解的过程。OCR技术可以将图像中的文字转换为可编辑、可搜索的文本&#xff0c;使得计算机能够理解和处理这些文字信息。 OCR技术通常…

马斯克拟打造xAI“算力超级工厂”,助力聊天机器人Grok

KlipC报道&#xff1a;马斯克计划推出xAI超级计算机&#xff0c;为下一代人工智能聊天机器人Grok提供动力&#xff0c;直言这将是一个“算力超级工厂”&#xff0c;并希望在2025年秋季之前能运行起来。 xAI是马斯克去年创立的人工智能初创公司&#xff0c;“尽可能寻求真相”、…

明日周刊-第11期

上周末去参加了软考&#xff0c;这个考试目前很热门&#xff0c;参加考试的人也非常多。笔者已经算是二战了&#xff0c;今年从笔试改革成了机考。618的购物活动也都已经开始了&#xff0c;我给狗子买了一袋进口的高端狗粮渴望&#xff0c;但是买回来发现它并不爱吃&#xff0c…

第五天 从零开始构建基于Kubernetes的DevOps平台

基于Kubernetes的DevOps平台实践 持续集成工具&#xff1a; JenkinsgitlabciTekton 本章基于k8s集群部署gitlab、sonarQube、Jenkins等工具&#xff0c;并把上述工具集成到Jenkins中&#xff0c;以Django项目和SpringBoot项目为例&#xff0c;通过多分支流水线及Jenkinsfile…

使用VUE3+TS+elementplus创建一个增加按钮

一、前言 在上一篇文章中分享了创建table的过程&#xff0c;详见&#xff08;VUE3TSelementplus创建table&#xff0c;纯前端的table&#xff09;&#xff0c;本文在创建好的table的基础上&#xff0c;再创建一个增加按钮。 二、程序展示 1、前面创建table的程序 <templ…

记一次攻防演练中的若依(thymeleaf 模板注入)getshell

记一次攻防演练中幸运的从若依弱口令到后台getshell的过程和分析。 0x01 漏洞发现 首先我会先把目标的二级域名拿去使用搜索引擎来搜索所用的搜索引擎收集到包含这个目标二级域名的三级域名或者四级域名的网站。 这样子可以快速的定位到你所要测试的漏洞资产。 1、推荐三个…