计算机网络--网络传输基本概念

什么是IP地址?


在计算机出厂的时候,有一个唯一标识的物理地址。但是因为厂商不同等各种原因,用来标识一台计算机在网络中是比较麻烦的,于是出现了IP地址,IP地址是互联网协议地址的意思,是“Internet Protocol Address”的缩写,也被称为网际协议地址;IP地址是ip协议提供的一种统一的地址格式,可以为互联网上的每一个网络和每一台主机分配一个逻辑地址,用来标识你的主机以此来进行网络通信。IP地址的出现能屏蔽物理地址的差异。


什么是端口号?


在我们计算机上有许多的应用程序,如果电脑上只有唯一的应用程序进行交流是不需要端口号来标识的,有了IP地址就能进行通信。但是这是不可能的。比如说我电脑上同时运行着网游,又运行着微信。此时对方电脑的微信与你进行交流。如果仅凭IP地址只能找到你电脑在哪。无法知道这个信息是送给游戏的还是送到微信的。因此端口号的出现,是用来更明确的标识与谁进行通信。有了IP地址与端口号的结合,就能唯一标识一个应用程序进行网络通信。


什么是协议?


协议就是双方约定好的规矩。什么是网络,网络就是用来交流通信的。人与人之间的交流也是通信。计算机与计算机之间的交流也是通信。只不过通信的方式不一样而已。人与人之间通信的协议最基本的协议就是语言。两个人都说中文相互就能进行信息交流。但是一个说西班牙语一个说阿拉伯语那他们两谁都听不懂谁说话。计算机也是如此。为了实现通信的统一标准化。我们需要制定一些规则来进行计算机之间的通信也就是我们所说的协议。计算机中有非常多的协议,分别在不同的层之中。


OSI七层模型

 OSI七层模型是最早提出的概念。但是在现实中并没有用到七层模型,而是四层模型,参考上图,将应用层,表示层,会话层统一归结于应用层。其余的基本不变。有些会把物理层与数据链路层归结于一层。应用层主要是应用程序一类的网络协议。传输层和网络层属于操作系统内核提供的协议,也就是我们熟知的TCP/UDP/IP协议。再到数据链路层就是属于物理层,也就是物理硬件。我们一般不关心。


一个网络通信的例子:

QQ实现A-?B之间的信息传递过程是如何实现的

1.假设我现在有一个这样的网络拓扑图。小明向小美通过QQ发送一句“hello”,首先QQ这个应用程序会把hello这个字符串打包成一个应用层数据报。 这个应用层协议肯定也是有自己的格式的比如说这个协议的格式为:

发送方的QQ号码;发送时间

接收方的QQ号码;接收时间

数据内容。。。

那么我们就能构造这个数据报:

这是我们假设的,现实中这个应用程序的格式是不确定的。构造好了数据包之后,程序要调用操作系统提供的API接口,把这个应用层的数据报传递给传输层。进入传输层相当于进入了操作系统内核。


2.进入传输层,就会把上述应用层打包好的数据报在加一点信息封装成传输层的数据报。传输层的协议就是我们熟知的TCP/UDP协议了。比如此时我们用UDP协议传输。我们就会构造成UDP的报文。

 在报头里会涉及到源端口,目的端口。


 3.接下来传输层构造好的数据报会传输给网络层。网络层中有个著名的协议是IP协议。此时又会在原有的基础上添加一些信息再次封装起来:

 在这次IP报头里会涉及到源IP地址,目的IP地址。


4.打包好后这个数据报又会传输给数据链路层,数据链路层最知名的协议就是”以太网“。上面的数据将会打包成一个”以太网数据帧“他是一头一尾的封装上去的:


 5.接着将上述打包好的数据报传输到物理层。物理层会把数据报的二进制转换成电信号/光信号。通过传输介质发送到对方电脑的物理层。


6.对方电脑收到这个二进制数据报的的时候,又会进行封装的逆操作,就是通过层层脱去对应层添加的报文,解析就能得到hello。


这就是网络传输的大体思路。也就是我们常听的计算机网络模型中下层为上层提供服务。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

H.264帧结构和RTSP协议源码框架

目录 1、H264编码原理和基本概念 1.1、h.264编码原理 1.2、h.264编码相关的一些概念 2、H264的NAL单元详解 2.1、VCL和NAL的关系 2.2、H.264视频流分析工具 2.3、h264视频流总体分析 2.4、相关概念 3、H264的NAL单元---sps和pps 3.1、sps和pps详解 3.2、H264的profil…

InnoDB的三种行锁(提供具体sql执行案例分析)

InnoDB存储引擎有3种行锁的算法,其分别是: Record Lock(记录锁):单个行记录上的范围 (锁住某一行记录)Gap Lock(间隙锁):间隙锁,锁定一个范围,但不包含记录本…

人工智能(pytorch)搭建模型14-pytorch搭建Siamese Network模型(孪生网络),实现模型的训练与预测

大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型14-pytorch搭建Siamese Network模型(孪生网络),实现模型的训练与预测。孪生网络是一种用于度量学习(Metric Learning)和比较学习(Compariso…

基于深度学习的人脸面部表情识别系统【含Python源码+PyqtUI界面+原理详解】

功能演示 摘要:面部表情识别(Facial Expression Recognition)是一种通过技术手段识别人物图像中人脸面部表情的技术。本文详细介绍了其实现的技术原理,同时给出完整的Python实现代码、训练好的深度学习模型,并且通过Py…

GO语言使用最简单的UI方案govcl

接触go语言有一两年时间了。 之前用Qt和C#写过桌面程序,C#会被别人扒皮,极度不爽;Qt默认要带一堆dll,或者静态编译要自己弄或者找库,有的库还缺这缺那,很难编译成功。 如果C# winform可以编译成二进制原生…

商品减库在Redis中的运用

一.商品减库中存在问题 1.传统的代码 1.1引入jar包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.…

基于tensorflow深度学习的猫狗分类识别

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

机器学习之K-means聚类算法

目录 K-means聚类算法 算法流程 优点 缺点 随机点聚类 人脸聚类 旋转物体聚类 K-means聚类算法 K-means聚类算法是一种无监督的学习方法&#xff0c;通过对样本数据进行分组来发现数据内在的结构。K-means的基本思想是将n个实例分成k个簇&#xff0c;使得同一簇内数据相…

基于小程序的用户服务技术研究

目录 1. 小程序开发技术原理 2. 用户服务设计3. 数据库设计和管理4. 安全和隐私保护5. 性能优化和测试总结 关于基于小程序的用户服务技术研究&#xff0c;这是一个非常广泛和复杂的领域&#xff0c;需要涉及多个方面的知识和技术。一般来说&#xff0c;基于小程序的用户服务技…

怎么学习数据库连接与操作? - 易智编译EaseEditing

学习数据库连接与操作可以按照以下步骤进行&#xff1a; 理解数据库基础知识&#xff1a; 在学习数据库连接与操作之前&#xff0c;首先要了解数据库的基本概念、组成部分和工作原理。 学习关系型数据库和非关系型数据库的区别&#xff0c;了解常见的数据库管理系统&#xff…

HTTP协议

HTTP协议专门用于定义浏览器与服务器之间交互数据的过程以及数据本身的格式 HTTP概述 HTTP是一种客户端&#xff08;用户&#xff09;请求和服务器&#xff08;网站&#xff09;应答的标准&#xff0c;它作为一种应用层协议&#xff0c;应用于分布式、协作式和超媒体信息系统…

【springboot】—— 后端Springboot项目开发

后端Springboot项目开发 步骤1 先创建数据库&#xff0c;并在下面创建一个user表&#xff0c;插入数据&#xff0c;sql如下&#xff1a; CREATE TABLE user (id int(11) NOT NULL AUTO_INCREMENT COMMENT ID,email varchar(255) NOT NULL COMMENT 邮箱,password varchar(255)…

王益分布式机器学习讲座~Random Notes (1)

0 并行计算是什么&#xff1f;并行计算框架又是什么 并行计算是一种同时使用多个计算资源&#xff08;如处理器、计算节点&#xff09;来执行计算任务的方法。通过将计算任务分解为多个子任务&#xff0c;这些子任务可以同时在不同的计算资源上执行&#xff0c;从而实现加速计…

ChatGLM2-6B发布,位居C-Eval榜首

ChatGLM-6B自2023年3月发布以来&#xff0c;就已经爆火&#xff0c;如今6月25日&#xff0c;清华二代发布&#xff08;ChatGLM2-6B&#xff09;&#xff0c;位居C-Eval榜单的榜首&#xff01; 项目地址&#xff1a;https://github.com/THUDM/ChatGLM2-6B HuggingFace&#xf…

Sequential用法

目录 1.官方文档解释 1.1原文参照 1.2中文解释 2.参考代码 3.一些参考使用 3.1生成网络 3.2 感知机的实现 3.3组装网络层 1.官方文档解释 1.1原文参照 A sequential container. Modules will be added to it in the order they are passed in the constructor. A…

【书】《Python全栈测试开发》——浅谈我所理解的『自动化』测试

目录 1. 自动化测试的What and Why?1.1 What1.2 Why2. 自动化的前戏需要准备哪些必备技能?3. 自动化测试类型3.1 Web自动化测试3.1.1 自动化测试设计模式3.1.2 自动化测试驱动方式3.1.3 自动化测试框架3.2 App自动化测试3.3 接口自动化测试4. 自动化调优《Python全栈测试开发…

Springboot钉钉免密登录集成(钉钉小程序和H5微应用)

欢迎访问我的个人博客:www.ifueen.com RT&#xff0c;因为业务需要把我们系统集成到钉钉里面一个小程序和一个H5应用&#xff0c;并且在钉钉平台上面实现无感登录&#xff0c;用户打开我们系统后不需要再输入密码即可登录进系统&#xff0c;查阅文档实际操作过之后记录一下过程…

Qt6.2教程——4.QT常用控件QPushButton

一&#xff0c;QPushButton简介 QPushButton是Qt框架中的一种基本控件&#xff0c;它是用户界面中最常见和最常用的控件之一。QPushButton提供了一个可点击的按钮&#xff0c;用户可以通过点击按钮来触发特定的应用程序操作。比如&#xff0c;你可能会在一个对话框中看到"…

VMware Tools安装“保熟“技巧

网上关于如何安装VMware Tools也有很多帖子,但是基本很难对症下药。下面笔者给出两种情况&#xff0c;读者可根据自己概况定位自己的问题&#xff0c;从而进行解决。 如果读者安装操作系统时是如笔者如下截图 那么读者可参考这个解决方案 安装VMware Tools选项显示灰色的正确解…

高等数学下拾遗+与matlab结合

如何学好高等数学 高等数学是数学的一门重要分支&#xff0c;包括微积分、线性代数、常微分方程等内容&#xff0c;它是许多理工科专业的基础课程。以下是一些学好高等数学的建议&#xff1a; 扎实的基础知识&#xff1a;高等数学的内容很多&#xff0c;包括初等数学的一些基…
最新文章