如何理解TCP/IP协议?

news2024/10/6 20:35:17

一、是什么

TCP/IP,传输控制协议/网际协议,是指能够在多个不同网络间实现信息传输的协议簇

  • TCP(传输控制协议)

一种面向连接的、可靠的、基于字节流的传输层通信协议

  • IP(网际协议)

用于封包交换数据网络的协议

TCP/IP协议不仅仅指的是TCP IP两个协议,而是指一个由FTPSMTPTCPUDPIP等协议构成的协议簇,

只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以通称为TCP/IP协议族(英语:TCP/IP Protocol Suite,或TCP/IP Protocols)

二、划分

TCP/IP协议族按层次分别了五层体系或者四层体系

五层体系的协议结构是综合了 OSI 和 TCP/IP 优点的一种协议,包括应用层、传输层、网络层、数据链路层和物理层

五层协议的体系结构只是为介绍网络原理而设计的,实际应用还是 TCP/IP 四层体系结构,包括应用层、传输层、网络层(网际互联层)、网络接口层

如下图所示:

五层体系

应用层

TCP/IP 模型将 OSI 参考模型中的会话层、表示层和应用层的功能合并到一个应用层实现,通过不同的应用层协议为不同的应用提供服务

如:FTPTelnetDNSSMTP 等

传输层

该层对应于 OSI 参考模型的传输层,为上层实体提供源端到对端主机的通信功能

传输层定义了两个主要协议:传输控制协议(TCP)和用户数据报协议(UDP)

其中面向连接的 TCP 协议保证了数据的传输可靠性,面向无连接的 UDP 协议能够实现数据包简单、快速地传输

网络层

负责为分组网络中的不同主机提供通信服务,并通过选择合适的路由将数据传递到目标主机

在发送数据时,网络层把运输层产生的报文段或用户数据封装成分组或包进行传送

数据链路层

数据链路层在两个相邻节点传输数据时,将网络层交下来的IP数据报组装成帧,在两个相邻节点之间的链路上传送帧

物理层

保数据可以在各种物理媒介上进行传输,为数据的传输提供可靠的环境

四层体系

TCP/IP 的四层结构则如下表所示:

层次名称单位功 能协 议
网络接口层负责实际数据的传输,对应OSI参考模型的下两层HDLC(高级链路控制协议)PPP(点对点协议) SLIP(串行线路接口协议)
网络层数据报负责网络间的寻址数据传输,对应OSI参考模型的第三层IP(网际协议) ICMP(网际控制消息协议)ARP(地址解析协议) RARP(反向地址解析协议)
传输层报文段负责提供可靠的传输服务,对应OSI参考模型的第四层TCP(控制传输协议) UDP(用户数据报协议)
应用层负责实现一切与应用程序相关的功能,对应OSI参考模型的上三层FTP(文件传输协议) HTTP(超文本传输协议) DNS(域名服务器协议)SMTP(简单邮件传输协议)NFS(网络文件系统协议)

三、总结

OSI 参考模型与 TCP/IP 参考模型区别如下:

相同点:

  • OSI 参考模型与 TCP/IP 参考模型都采用了层次结构
  • 都能够提供面向连接和无连接两种通信服务机制

不同点:

  • OSI 采用的七层模型; TCP/IP 是四层或五层结构
  • TCP/IP 参考模型没有对网络接口层进行细分,只是一些概念性的描述; OSI 参考模型对服务和协议做了明确的区分
  • OSI 参考模型虽然网络划分为七层,但实现起来较困难。TCP/IP 参考模型作为一种简化的分层结构是可以的
  • TCP/IP协议去掉表示层和会话层的原因在于会话层、表示层、应用层都是在应用程序内部实现的,最终产出的是一个应用数据包,而应用程序之间是几乎无法实现代码的抽象共享的,这也就造成 OSI 设想中的应用程序维度的分层是无法实现的

三种模型对应关系如下图所示:

参考文献

  • https://zh.wikipedia.org/wiki/TCP/IP协议族
  • https://zhuanlan.zhihu.com/p/103162095
  • https://segmentfault.com/a/1190000039204681
  • https://leetcode-cn.com/leetbook/detail/networks-interview-highlights/
  • https://vue3js.cn/interview

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

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

相关文章

npm常用命令与操作篇

npm简介 npm是什么 npm 的英文是,node package manager,是 node 的包管理工具 为什么需要npm 类比建造汽车一样,如果发动机、车身、轮胎、玻璃等等都自己做的话,几十年也做不完。但是如果有不同的厂商,已经帮我们把…

《windows核心编程》第1章 错误处理

一、错误信息的获取 1.1 C库错误信息 1、获取错误信息 #include <stdio.h> #include <stdlib.h> #include <string.h>int main() {fopen("D:\\ASC", "r");printf("%s\n", strerror(errno));getchar();return 0; } 2、设置错…

nodejs+vue 校园通勤车-计算机毕业设计

在此情况下开发一款校园通勤车可视化系统小程序&#xff0c;于是乎变得非常合乎时宜。 经过网上调查和搜集数据,我们可以发现校园通勤车可视化管理方面的小程序在并不是相当普及,同时在校园通勤车可视化管理方面的可以有许多改进。目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪…

Android切换主题生命周期流程与onSaveInstanceState和onRestoreInstanceState,Kotlin

Android切换主题生命周期流程与onSaveInstanceState和onRestoreInstanceState&#xff0c;Kotlin import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivityclass MainActivity : AppCompatActivity() {private val TAG "fly&…

基于nodejs+vue 校园通勤车系统

但是管理好校园通勤车可视化又面临很多麻烦需要解决, 信息化已经成为主流,开发一个校园通勤车可视化系统小程序一方面的可能会更合乎时宜,困扰管理层的许多问题当中,校园通勤车 管理也是不敢忽视的一块。另一方面来说也可以提高在校园通勤车可视化管理方面的效率给相关管理人员…

【力扣周赛】第 367 场周赛(⭐二维数组当成一维数组,前后缀分解)

文章目录 竞赛链接Q1&#xff1a;100096. 找出满足差值条件的下标 I竞赛时代码——暴力双循环 Q2&#xff1a;100084. 最短且字典序最小的美丽子字符串竞赛时代码——双指针 Q3&#xff1a;100101. 找出满足差值条件的下标 II竞赛时代码——记录可用最大最小值下标 Q4&#xff…

MATLAB模拟的电磁学时域有限差分法(电子书PDF)

摘要: MATLAB语言具有编程简单&#xff0c;并可以给出精美图像的特点&#xff0c;它已成为理工科大学生必备的系统工具平台。其完备的工具箱功能&#xff0c;使得MATLAB日益受到大学生和工程师们的喜爱。《MATLAB模拟的电磁学时域有限差分法》 目录 第1章 FDTD简介 1.1 时域有限…

Bootstrap的列表组相关知识

目录 01-列表组的相关基础知识02-一个简单的列表组示例03-激活或禁用列表组的一行或多行04-设置列表项的颜色05-给列表项添加徽章 01-列表组的相关基础知识 Bootstrap的list-group是一个用于创建列表组件的CSS类&#xff0c;通常用于显示一个项目列表&#xff0c;如导航菜单或…

Spark内核

环境准备及提交流程 底层通信协议 Akka通信协议&#xff0c;收发邮箱是一体的Netty通信协议&#xff0c;收发邮箱是分开的 任务调度 任务的最小单位是线程。失败重试&#xff0c;会记录失败的次数&#xff0c;如果超过最大重试次数&#xff0c;宣告Application失败。失败的…

knife4j-openapi3 无法使用swagger注解@ApiModelProperty

问题描述 当使用knife4j springboot3&#xff0c; 发现无法使用 swagger注解ApiModelProperty需要单独导入一个包但是即使导入这个包也不生效&#xff0c;即使配置了description也为空 原因 简单来说&#xff1a;swagger2 > swagger3的时候出现了破坏性的更新 将ApiMode…

Docker(五)、容器间数据共享~volume

容器间数据共享&#xff5e;volume 一、简单了解二、有两种通过命令设置数据卷的方法一&#xff09;、方式1. 通过 -v 挂载宿主机目录1、格式2、浅实践下 二&#xff09;、方式2.实现形式&#xff1a;通过共享容器内挂载点--volumes-from&#xff0c;其他容器指定此挂载点1、格…

基于nodejs+vue中学信息技术线上学习系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

Java操作Elasticsearch(新增数据)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

vscode使用CSScomb插件

1. 安装 在设置中搜索csscomb&#xff0c;把Csscomb: Format On Save勾上 然后去edit in settings.json配置 2.使用 2.1 用官网提供的三种方法 https://github.com/csscomb/csscomb.js/tree/master/config 2.2 自定义 CSS 书写顺序规则可以参考这个荐腾讯 AollyTeam 团队的…

CI2454 2.4g无线MCU芯片应用

Ci2454集成MCU芯片 | Ci2454是一款集成无线收发器和 8 位 RISC&#xff08;精简指令集&#xff09;MCU 的SOC芯片。 #Ci2454芯片 集成MCU芯片# 中国芯片# 无线收发器特性&#xff1a; 工作在 2.4GHz ISM 频段 调制方式&#xff1a;GFSK/FSK 数据速率&#xff1a;2Mbps/1Mbps…

交换机控制在同一个网段内的终端,用hybrid接口实现不同的IP通和不通。

实验效果&#xff1a;pc1和pc2不能通&#xff0c;但pc1和pc2分别可以和pc3通。 通过这个实验可以彻底掌握数据包在交换机上的进去的类型状态。 sw1配置&#xff1a; [sw1]dis current-configuration sysname sw1 vlan batch 10 20 100 interface GigabitEthernet0/0/1 port h…

南丁格尔玫瑰图

目录 由来 效果图 echarts官网找相似图 将南丁格尔玫瑰图引进html页面中 引入echarts 准备容器 初始化echarts实例对象 指定配置项和数据&#xff08;官网给的option&#xff09; 将配置项给echarts 自定义南格丁尔玫瑰图 修改颜色 修改玫瑰图大小 修改图的模式为半…

springBoot--web--路径匹配

路径匹配 前言在配置文件中配置路径匹配结果 前言 spring5.3之后加入了更多的请求路径匹配的实现策略 以前只支持antPathMatcher策略&#xff0c;现在提供了PathPatternParse策略&#xff0c;并且可以让我们指定到底使用哪种策略 PathPatternParser: 在jmh基准测试下&#xff…

SAP-MM-收货操作报错123

以下的报错都是收货时产生的&#xff1a; 1、消息号M7097&#xff1a;该物料不可能有库存记账 这个消息可以初步判断是因为物料类型的双更新没有勾选 用TCODE&#xff1a;OMS2,找到对应的物料类型&#xff0c;维护双更新。 2、消息号&#xff1a;M8147 不能为条目7333 GBB确立…

使用C#和Flurl.Http库的下载器程序

根据您的要求&#xff0c;我为您编写了一个使用C#和Flurl.Http库的下载器程序&#xff0c;用于下载凤凰网的图片。以下是一个简单的示例代码&#xff1a; using System; using Flurl.Http;namespace DownloadImage {class Program{static void Main(string[] args){string url…