一文带你了解TCP/IP模型以及封装和分用

news2024/12/29 10:52:05

文章目录

  • 1. 网络协议
  • 2. OSI七层网络模型
  • 3.TCP/IP (五层/四层)
  • 4. 封装和分用

在这里插入图片描述

1. 网络协议

网络协议是计算机网络中用于规定数据在网络中传输和处理的规则,它定义了在网络中通信的格式、规范和顺序。网络协议可以分为不同的层次,每个层次负责不同的功能和任务,通过协议栈的方式实现网络通信。

常见的网络协议包括:

  1. 传输控制协议(TCP):TCP协议是一种面向连接的、可靠的传输协议,它通过建立连接、数据分段、流量控制、拥塞控制等机制来实现可靠的数据传输。
  2. 网络互联协议(IP):IP协议是一种无连接的、不可靠的协议,它负责将数据包从源主机传输到目标主机,并为它们分配唯一的IP地址。
  3. 超文本传输协议(HTTP):HTTP协议是一种用于在Web上传输超文本的协议,它定义了浏览器和服务器之间的通信规则,包括请求和响应的格式、状态码、请求方法等。
  4. 网际组管理协议(ICMP):ICMP协议是一种用于传输与IP协议相关的消息的协议,它用于网络异常、错误、路由信息等的传输和通知。
  5. 动态主机配置协议(DHCP):DHCP协议是一种用于自动分配IP地址的协议,它允许在局域网上自动分配和管理IP地址,避免了手动配置的繁琐性。
  6. 域名系统(DNS):DNS协议是一种用于将域名转换为IP地址的协议,它通过将域名映射到相应的IP地址,实现了人类可读的域名与计算机可理解的IP地址之间的转换。
  7. 文件传输协议(FTP):FTP协议是一种用于在计算机之间传输文件的协议,它支持文件上传、下载、删除、重命名等操作。
  8. 简单邮件传输协议(SMTP):SMTP协议是一种用于在计算机之间传输电子邮件的协议,它定义了邮件的传输格式和通信规则。

网络协议分层有两种: OSI七层网络模型和TCP/IP(五层/四层)

2. OSI七层网络模型

  1. 应用层:负责处理用户应用程序之间的通信和数据交换。这包括应用程序协议(如HTTP、FTP、SMTP等)、资源定位和身份验证等功能。
  2. 表示层:负责数据格式的转换和加密解密等。它可确保不同计算机之间的数据能够正确交换和解释,并处理数据的压缩和加密。
  3. 会话层:负责建立、管理和终止会话(会话是应用程序之间的通信会话)。它提供了会话控制和同步功能,以确保数据在不同应用程序之间的有序传输。
  4. 传输层:负责在网络中的端到端通信提供可靠性和数据流控制(如TCP),或者提供无连接的、不可靠的数据传输(如UDP)。它还处理数据的分段和重组以及错误检测和纠正。
  5. 网络层:负责处理不同网络之间的路由和转发,以及数据包的传输。这包括IP地址的分配和路由选择。
  6. 数据链路层:负责将数据包转换为比特流并在网络的物理媒介上进行传输。它通过物理地址(如MAC地址)来识别网络设备,提供了数据帧的传输和错误检测等功能。
  7. 物理层:负责在物理媒介上传输比特流。它定义了电压、电缆规范、传输速率等细节,确保数据能够在物理媒介上正确传输。

OSI七层网络模型其实并不适用,了解即可

3.TCP/IP (五层/四层)

对于TCP/IP是五层还是四层,其实都是对的.有的地方说五层是因为把"物理层"算进去了. 这一层属于"硬件". 而其它四层都属于"软件". 所以导致有的地方没把物理层算进去.

与OSI七层模型相比,TCP/IP模型更简洁:

  1. 应用层
  2. 传输层
  3. 网络层
  4. 数据链路层

4. 封装和分用

假设张三要在微信上给李四发一句"hello"

在这里插入图片描述
上述就是一个简单的封装过程

  • 应用层对应着应用程序
  • 传输层是操作系统内核实现的,操作系统会提供一系列API给应用程序,调用这些系统API就可以把应用层的数据交给传输层
  • 传输层有很多协议,最典型的就是TCP,以TCP为例,TCP协议就要在原来数据的基础上添加TCP协议报头.传输层再把数据交给网络层
  • 网络层中最典型的协议就是IP协议,IP协议把整个TCP数据报视为整体,作为载荷部分,再添加IP协议报头
    数据链路层中的协议也很多,最典型的就是"以太网"

封装是由上往下,依次添加信息,

在这里插入图片描述
当李四这个客户端收到张三发来的数据报时

  • 数据链路层会根据以太网协议,去除帧头和帧尾,拿到载荷部分并交给网络层
  • 网络层会根据IP协议,去除IP协议报头,拿到载荷部分并交给传输层
  • 传输层根据TCP协议,再去除TCP报头,再交给应用层
  • 应用层再把数据进行解析,再显示在应用程序上

而分用则是从下往上,依次去除添加的信息.

在这里插入图片描述

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

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

相关文章

常用正则表达式总结(一)

文章目录 前言 一、元字符----字符集 1、[ns] 只匹配n或s。注意:这里[ ]里面的字符与字符之间是或的关系。 2、[a-z]只匹配abcd....xyz,的小写字母。注意:这里的“-”字符是叫做:连字符。是一种简写。只是在括号里生效。 3、[A…

C++运算符重载详解(赋值、流插入流提取、前置后置++、取地址)

C运算符重载详解 基本介绍运算符重载案列1. 赋值运算符重载2. 前置和后置重载3. cout,cin(流插入,流提取重载)4. 取地址重载 基本介绍 C为了增强代码的可读性引入了运算符重载,运算符重载是具有特殊函数名的函数,也具有其 返回值…

Java超级玛丽小游戏制作过程讲解 第一天 创建窗口

package com.sxt;import javax.swing.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener;public class MyFrame extends JFrame implements KeyListener {//设置窗口的大小为800*600public MyFrame() {this.setSize(800, 600);//设置窗口中显示this.setLo…

MySQL日志——查询日志

1.查询日志 show variables like %general%;修改mysql的配置文件 /etc/my.cnf文件,添加如下内容: #该选项用来开启查询日志,可选值:0或者1;0代表关闭,1代表开启 general_log1 #设置日志的文件名&#xff0…

数组中的第K个最大元 O(N)

给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入: [3,2,1,5,6,4], k 2…

c语言实现八大排序详细解析

首先先看排序算法的整体分类 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录&#xff…

上海市第十人民医院胃肠外科沈通一:以菌为药,非药而愈

6月29日,2023主动健康与临床营养高峰论坛在西安国际会展中心盛大召开,会议汇集了来自国内医学与营养领域杰出的专家学者,交流分享行业的先进理念和研究成果,为主动营养业界与学界能量交换搭建了新接口,以凝聚学术力量&…

嘉立创EDA画爱心

需要用:折线(L),两点圆弧,三点圆弧(A),园形(U)等功能 如下就是画出的图形 2D 3D 去除丝印pcb 2d 3d

RocketMQ安装和简单使用

说明:RocketMQ与RabbitMQ一样,是分布式架构中的一个组件,用来解决微服务之间的异步调用。同类的还有两个,各自的特点如下: Rocket结构 服务启动时 发送消息时 其中各个部分的功能如下: (1&…

Kubernetes高可用集群二进制部署(三)部署api-server

Kubernetes概述 使用kubeadm快速部署一个k8s集群 Kubernetes高可用集群二进制部署(一)主机准备和负载均衡器安装 Kubernetes高可用集群二进制部署(二)ETCD集群部署 Kubernetes高可用集群二进制部署(三)部署…

【C#学习笔记】引用类型(2)

文章目录 ObjectEqualsGetTypeToStringGetHashCode string逐字文本复合格式字符串字符串内插 StringBuilderStringBuilder 的工作原理StringBuilder提供的方法访问字符迭代字符查询字符 dynamic Object 支持 .NET 类层次结构中的所有类,并为派生类提供低级别服务。…

设计模式行为型——迭代器模式

什么是迭代器模式 迭代器模式(Iterator Pattern)属于行为型模式,其提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示,即不需要知道集合对象的底层表示。编程环境中非常常用的设计模式。 迭代…

leetcode每日一练-第102题-二叉树的层序遍历

一、思路 BFS 二、解题方法 通过广度优先搜索(BFS)的方式,按层遍历二叉树节点,并将每层的节点值保存在一个一维数组中,然后再将所有的一维数组存储在二维数组中,最后返回二维数组作为层序遍历的结果。 …

音视频--DTMF信号发送及检测

参考资料 https://zh.wikipedia.org/wiki/%E5%8F%8C%E9%9F%B3%E5%A4%9A%E9%A2%91https://www.cnblogs.com/lijingcheng/p/4454932.html 1. DTMF是什么 1.1 DTMF定义 双音多频信号(英语:Dual-Tone Multi-Frequency,简称:DTMF&a…

当“国潮”遇见“双语” 以传承之心种下一颗文化的种子

看,活灵活现的纸片人在“跳舞”。光影的辉映下,两个形神兼备的“齐天大圣”究竟孰真孰假?舞台上,京西皮影非遗传承人王熙和5岁的Mona小朋友正在用双语为大家带来一段“真假美猴王”的好戏。生动的皮影造型和精彩的故事演绎看得台下…

【BEV感知】3-BEV开源数据集

3-BEV开源数据集 1 KITTI1.1 KITTI数据怎么采集?1.2 KITTI数据规模有多大?1.3 KITTI标注了哪些目标?1.4 转换矩阵1.5 标签文件 2 nuScenes2.1 nuScenes Vs KITTI2.2 标注文件 1 KITTI KITTI 1.1 KITTI数据怎么采集? 通过车载相机、激光雷达等传感器采集。 只提供了相机正…

bagging集成与boosting集成的区别是什么?

bagging集成与boosting集成的区别 区别一:数据方面 Bagging:对数据进行采样训练; Boosting:根据前一轮学习结果调整数据的重要性。 区别二:投票方面 Bagging:所有学习器平权投票; Boosting:对学习器进行加权投票。 区别三:…

接口相似数据结构复用率高?Apipost这招搞定!

在API设计和开发过程中,存在许多瓶颈,其中一个主要问题是在遇到相似数据结构的API时会产生重复性较多的工作:在每个API中都编写相同的数据,这不仅浪费时间和精力,还容易出错并降低API的可维护性。 为了解决这个问题&a…

排序八卦炉之冒泡、快排

文章目录 1.冒泡排序1.1代码实现1.2复杂度 2.快速排序2.1人物及思想介绍【源于百度】2.2hoare【霍尔】版本1.初识代码2.代码分析3.思其因果 3.相关博客 1.冒泡排序 1.1代码实现 //插入排序 O(N)~O(N^2) //冒泡排序 O(N)~O(N^2) //当数据有序 二者均为O(N) //当数据接近有序或…

linux大神Brendan Gregg 性能之巅 第二版(systems performance)阅读心得(第一章)

笔者从事某副省级市政务云系统运维7年,最近被下面这张图吸引开始阅读Brendan Gregg的《性能之巅 第二版》,下面将结合自己的运维经验一起来看看这本700多页的书。 1、绪论 1.1 系统性能 系统性能的影响因素涉及软件和硬件,CPU、内存、磁盘io…