IP、端口、网络协议、TCP-IP五层模型

目录

IP地址

端口号 

网络协议

协议分层(TCP/IP五层模型) 

应用层 

传输层(也叫运输层)

网络层

数据链路层 

物理层

A用户通过qq给B发送一个字符串所经历的过程 


IP地址

ip地址是一台主机的网络地址。

ip地址主要是用来标识网络主机。

如果一个主机想要和另一台主机进行网络通信,那么就需要知道对方的ip地址 。

本机与本机通信的ip:127.0.0.1(环回IP)

IP地址采用点分十进制方式表示(a.b.c.d)比如环回IP:127.0.0.1

端口号 

端口号是用来标识一台主机当中的进程的。

在网络通信的过程中,进程通过绑定一个端口号来进行发送和接收网络数据。

比如我们常说的MySQL数据库的端口号3306,如果需要本地连接云端的MySQL数据库,就需要知道该云端的网络地址(ip地址)+端口号(3306)。

形象点说就是IP地址相当于是楼号,而端口号相当于是门号,你要找到几号楼哪个房间,就是这样找的,比如2号楼303。

网络协议

所谓的网络协议就是网络通信经过的网络设备他们之间都必须遵守的一个规定,约定。怎么建立连接,怎么识别设备等等都需要在网络协议中约定

网络协议三要素:语法+语义+时序 

语法:数据和控制信息的格式(比如班级中有很多地方的人,说的方言都听不懂,所以统一规定使用普通话)

语义:需要对发出的信息完成什么动作来响应(这个主要是说通信双方应该怎么做) 比如班级中按照规定老师布置了作业,学生就要去完成作业,学生完成了作业就是对该规定的一个响应

时序:对事件的实现顺序进行详细说明 

时序定义了什么时候通信。通信时要先说什么,后说什么,以及通信的传输速度等等。简单来说就是对通信的顺序进行一个简单的规定。

协议分层(TCP/IP五层模型) 

 

上述模型越往上走越接近应用程序,越往下走越接近硬件。

应用层,表示层和会话层统称为应用层 

应用层 

应用层的作用就是为用户提供应用功能和负责应用程序之间的沟通 

常见的应用层协议:HTTP、DNS、SMTP,FTP等等。

当数据需要进行传输的时候就会把数据向下层传递,也就是传输层。

应用层工作在操作系统的用户态,其他层都在内核态。 

传输层(也叫运输层)

传输层的作用就是负责两台主机之间的数据传输。 

传输层注重端到端的传输 ,常见的传输层协议:TCP、UDP等等

传输层协议是为不同主机上的进程通信提供逻辑通信功能。

比如A要发送消息给B上的qq,A需要知道B的IP地址,以及qq这个进程占用的端口号是哪个,这样才能成功发送消息。

需要注意的是发送方和接收方的协议需要一致,如果用UDP,就都用UDP,如果用TCP,就都用TCP.

网络层

网络层负责地址管理和路由器选择 

网络层就相当于选择一个合适的通道,来进行数据的传递,怎么选择传输最快最好,也就是路线规划 

比如我现在写了一封信,信上的字就是应用层的报文,也就是需要传递的信息,传输层就相当于邮政公司(这里约定发送方和接收方都需要接受该协议,也就是邮政快递),邮政公司送的时候需要选择合适的路线进行送达,这里的选择路线就是网络层要做的事情。

总结:传输层工作在端系统,传输层协议将来自应用层的数据传递给网络层,网络层就负责了主机与主机之间的数据传输 

数据链路层 

数据链路层负责设备之间的数据帧的传递和识别 

数据链路层负责节点和节点之间的通信,节点就是数据链上的一个个节点,比如主机,路由器,交换机等等,将这些节点串起来就构成了链路 

交换机是在数据链路层完成转发的

路由器是在网络层完成转发的 

传输层和数据链路层:传输层是建立两个不同主机端口之间的联系,它不纠结端口之间的细分的链路是怎么传输的,这部分是数据链路层来进行负责的。

物理层

物理层是负责光/电信号的传递,比如说网线,网口等等,我们平时使用的都是相同的规格的,主要是为了方便网络通信而做出的统一。 

网络分层这里是上层协议调用下层协议,下层协议给上层协议提供服务 

总结: 

A用户通过qq给B发送一个字符串所经历的过程 

应用层:

假设存在这样的一个应用层的协议格式:发送方的QQ号,接收方的QQ号,发送的时间,发送字符串的内容: 

发送者接收者发送时间聊天内容
123456776543212023-1-14"hello"

 应用层是以文件为单位进行传输的 

传输层:

假如此处使用的是UPD协议。首先会在应用层需要传输的数据的基础上面构造出一个UDP报头 

UDP报头(包含源端口和目的端口)123456776543212023-1-14"hello"

  除了UPD报头,往后的数据,也就是应用层传输来的数据,被称为"UDP载荷"。

包装好之后,会把UDP报头+UDP载荷封装成一个UDP数据段 

不建议直接在程序当中指定范围<1024的端口号

因为,在(0,1023)这个范围的端口,被称为"知名端口",这一些端口号属于已经分配给了一些知名的广泛使用的进程来使用

网络层 :

网络层比较知名的协议就是IP协议。 

IP协议,会针对传输来UDP数据报,打包成一个IP数据报:针对UDP数据报,再次拼接了一个IP报头

IP报头,也是一个字符串。其中,包含的比较核心的信息就是源IP目的IP

IP报头(包含源IP、目的IP)UDP报头(包含源端口和目的端口)123456776543212023-1-14"hello"

  网络层是以为单位进行数据传输到数据链路层的

数据链路层:

网络层的数据包准备好了,就需要交给数据链路层进行进一步地"打包"。

需要打包成一个"以太网数据帧"。以太网数据帧,会对网络层传输过来的数据据包进行进一步的"包装”,又多了两个部分:以太网帧头以太网帧尾

以太网帧头IP报头(包含源IP、目的IP)UDP报头(包含源端口和目的端口)123456776543212023-1-14"hello"以太网帧尾

数据链路层是按照为单位进行传输的 

物理层:

到了物理层,就会把数据帧转化为二进制信号(0100001....)这样,然后传输出去。 

从应用层-------------》》》物理层的这一个过程称为封装 

接收方,也需要把数据进行"分用"。 分用就是把打包的东西不断拆卸掉的过程。

接收方的物理层会接收到01000111......的电信号,然后交给接收方的数据链路层,然后去掉帧头、帧尾并且把数据传输到网络层,再由网络层解析IP等等的信息,去掉IP头之后,交给接收方的传输层,再由接收方的传输层解析端口信息等等,解析完毕之后,再去掉TCP/UP头,这个时候就只剩下应用数据了,因此就可以反馈给接收设备的应用层

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【教程】谈一谈 IPA 上传到 App Store Connect 的几种方法

【教程】谈一谈 IPA 上传到 App Store Connect 的几种方法 引言 在应用开发过程中&#xff0c;将应用程序上传到 App Store Connect 是一个关键的环节。本文将探讨几种常见的 IPA 文件上传方法&#xff0c;包括 Xcode、Application Loader、altool、Appuploader以及Transport…

【React】react组件传参

【React】react组件传参 一、props&#xff1a;父组件向子组件传参1、将普通的参数作为props传递2、将jsx作为props传递&#xff08;组件插槽&#xff09; 二、自定义事件&#xff1a;子父组件向父组件传参三、context进行多级组件传参四、redux全局状态管理 一、props&#xf…

Day06-Linux下目录命令讲解及重要文件讲解

Day06-Linux下目录命令讲解及重要文件讲解 1. Linux目录文件1.1 Linux系统目录结构介绍1.1.1 Linux与Windows目录结构对比 1.2 重要的Linux配置文件介绍1.2.1 /etc系统初始化及设置相关重要文件1.2.2 /usr目录的重要知识介绍------应用程序目录1.2.3 /var目录下的路径知识-----…

使用apifox创建一个Mock Server Api 接口

安装 下载 Apifox - API 文档、调试、Mock、测试一体化协作平台。拥有接口文档管理、接口调试、Mock、自动化测试等功能&#xff0c;接口开发、测试、联调效率&#xff0c;提升 10 倍。最好用的接口文档管理工具&#xff0c;接口自动化测试工具。 创建mock api项目中使用 创建项…

【二进制漏洞】缓冲区溢出漏洞

天命&#xff1a;好像复现成功了&#xff0c;又好像没有完全成功 学习视频&#xff1a;抓住漏洞&#xff01;缓冲区溢出漏洞利用实例&#xff0c;如何利用溢出执行Shell Code_哔哩哔哩_bilibili 漏洞复现 实验环境&#xff1a;kali &#xff08;其实啥都试过&#xff0c;windo…

数据结构------算法时间复杂度

通俗的理解一下算法的时间复杂度 主要是看这个速发的时间性能&#xff0c;从这个算法规模入手&#xff0c;具体的看一下这个算法的所需时间与这个算法规模的关系 关系有 O(1) 常数次 1次 2次。。。。。。 O(n)一个for循环 O(n^2)两个for循环&#xff08;嵌套&#xff09; O(mn)…

EasyX图形库学习(一)

目录 一、easyX图形库基本介绍 1、easyX的原理 2、easyX的安装 3、easyX的颜色&#xff08;RGB颜色模型&#xff09; 颜色模型相关函数: 4、easyX的坐标 二、相关函数介绍: 绘图设备相关函数&#xff1a; 图形颜色及样式设置相关函数: 图形绘制相关函数: 文字输出相关…

real-time-emotion-detection 排坑记录

real-time-emotion-detection 排坑记录 任务踩坑回顾CV2包版本问题症状描述解决方法 模型文件路径问题症状描述解决办法 tensorflow版本问题症状描述解决办法 其他 任务 我之前跑了一个CNN情绪识别的开源代码&#xff0c;现在我想尝试把他用到我的另一个项目里。但当时那个项目…

BioTech - 小分子药物设计与优化 概述

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/135998902 小分子药物设计与优化&#xff0c;是利用计算机辅助技术&#xff0c;根据特定的生物学靶点&#xff0c;发现和改进具有治疗作用的小分子…

深入了解键盘:分类、工作原理与操作指南

键盘 键盘是计算机使用的主要输入设备之一&#xff0c;键盘主要由创建字母、数字和符号并执行附加功能的按钮组成&#xff0c;通常用于向计算机或其他数字设备输入文本、命令和各种控制信号。 键盘是计算机中最重要的字符输入设备&#xff0c;其基本组成元件是按键开关&#…

主机安全加固之-openssh版本升级

升级openssh之前&#xff0c;为了保证能正常通过工具连接主机&#xff0c;咱们开启telnet服务&#xff0c;通过telnet的方式登录主机 一&#xff1a;开启telnet服务 1.安装telnet服务 [rootlocalhost ~]# yum install –y telnet telnet-server xinetd2.修改telnet服务配置文…

24.云原生ArgoCD高级之数据加密seale sealed

云原生专栏大纲 文章目录 数据加密之seale sealedBitnami Sealed Secrets介绍Bitnami Sealed Secrets工作流程安装sealed-secrets和kubeseal安装sealed-secrets-controller安装kubeseal通过kubeseal将sealed-secrets公钥拿出来通过kubeseal加密secrets替换kustomize下secret为…