计算机网络基础(四)—— 什么是TCP/IP协议?是两种网络协议?

news2024/10/7 14:32:28

字面上的意思,很多人看到会以为TCP/IP协议说的就是两种协议TCP和IP。
它指的确实是这两种协议,但很多时候,他还有另一个说法“TCP/IP协议簇”,指的是利用IP进行通信时所必须用到的协议群的统称,诸如IP、HTTP、FTP等都属于其中的一种协议。

01 | 🍓 概念 \color{red}{概念} 概念🍓

TCP/IP是Internet的核心协议,是互联网中最常用的协议之一,它是一组用于在网络中实现通信的网络协议。它包含了许多重要的特性,主要表现在以下五个方面:

  1. 逻辑编址 \color{red}{逻辑编址} 逻辑编址:每一块网卡出厂时就由厂家分配一个独一无二的MAC地址。在Internet中,为每台因特网中的计算机分配一个逻辑地址,这个逻辑地址就是IP地址;

  2. 路由选择 \color{red}{路由选择} 路由选择:在TCP/IP中包含了专门用于定义路由器如何选择网络路径的协议,即IP数据包的路由选择;

  3. 域名解析 \color{red}{域名解析} 域名解析:TCP/IP采用32位的IP地址,但是不易于记忆,所以实际上在网络中还有一种字母式的地址结构,就是前面所学到的DNS(或域名),域名稳定而IP易变;(将域名映射为IP地址的操作

  4. 错误检测和流量控制 \color{red}{错误检测和流量控制} 错误检测和流量控制:TCP/IP具有分组交换确保信息数据在网络上的可靠传输的特性,这些特性包括检测数据信息的错误,确认已传输的信息被成功接收,监测网络中的信息流量,防止出现网络拥塞

02 | 🍊 T C P / I P 分层模型 \color{orange}{TCP/IP分层模型} TCP/IP分层模型🍊

协议是对数据在计算机或设备之间传输时的表示方法进行定义和描述的标准。协议规定了进行传输、检测错误以及传送确认信息等内容。TCP/IP是个协议族,它包含了多种协议。

在这里插入图片描述

不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”。

上图将TCP/IP协议分为四个层次: 应用层、传输层、网络层和数据链路层 \color{orange}{应用层、传输层、网络层和数据链路层} 应用层、传输层、网络层和数据链路层

  1. 应用层 \color{orange}{应用层} 应用层:应用层主要是针对具体的应用程序进行设计的,包含HTTP、FTP、SMTP、TELNET和DNS等协议。

  2. 传输层 \color{orange}{传输层} 传输层:传输层主要是负责数据的传输,包括TCP和UDP两种协议。TCP协议提供可靠的传输,保证数据的完整性和正确性;UDP协议则提供了一种快速传输的方式,但不保证数据的可靠性。

  3. 网络层 \color{orange}{网络层} 网络层:网络层主要是负责在各个网络之间进行数据传输,包括IP协议和ICMP协议。IP协议规定了数据在网络上的传输规则和寻址方式,ICMP协议则用于错误控制和报文发送。接收传输层的请求,传送某个具有目的地址信息的分组,完成如下功能:

    1. 把分组封装到IP数据报(IP Datagram)中,填入数据报的首部,使用路由算法选择把数据报直接送到目标机或把数据报发送给路由器,然后再把数据报交给下面的数据链路层中对应的网络接口模块;

    2. 处理接收到的数据报,检验其正确性。使用路由算法来决定是在本地进行处理,还是继续向前发送。如果数据报的目标机处于本机所在的网络,该层软件就把数据报的报头剥去,再选择适当的传输层协议软件来处理这个分组;

    3. 适时发出ICMP的差错和控制报文,并处理收到的ICMP报文;

  4. 数据链路层 \color{orange}{数据链路层} 数据链路层:(又称网络接口层)数据链路层主要是负责物理层与网络层的连接和信息的传输,包括以太网协议、PPP协议和SLIP协议等。

总之,TCP/IP协议是网络通信中的基础,它通过将数据切分为多个数据包,在不同的网络中进行传递,最终实现了数据的可靠传输和应用程序之间的协作。

03 | 🍋 数据链路层协议 \color{yellow}{数据链路层协议} 数据链路层协议🍋

链路:就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他交换结点。
数据链路:是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路

TCP/IP协议不包含具体的物理层和数据链路层,只定义了数据链路层(网络接口层)作为物理层与网络层的接口规范。
这个物理层可以是广域网,例如X.25公用数据网,也可以是局域网,例如Ethernet、,Token-Ring和 FDDI等。任何物理网络只要按照这个接口规范开发网络接口驱动程序,就能够与TCP/IP协议集成起来。数据链路层(网络接口层)处在TCP/IP协议的最底层,主要负责管理为物理网络准备数据所需的全部服务程序和功能。
在这里插入图片描述

04 | 🍐 网络层协议—— A R P / R A R P \color{green}{网络层协议 —— ARP/RARP} 网络层协议——ARP/RARP🍐

在这里插入图片描述

地址解析协议(Address Resolution Protocol,ARP)及反地址解析协议(RARP)是驻留在网际层中的另一个重要协议。
A R P 的作用是将 i P 地址转换为物理地址, R A R P 的作用是将物理地址转换为 I P 地址 \color{green}{ARP的作用是将iP地址转换为物理地址,RARP的作用是将物理地址转换为IP地址} ARP的作用是将iP地址转换为物理地址,RARP的作用是将物理地址转换为IP地址
网络中的任何设备,主机、路由器和交换机等均有唯一的物理地址,该地址通过网卡给出,每个网卡出厂后都有不同的编号,这意味着用户所购买的网卡有着唯一的物理地址。另一方面,为了屏蔽底层协议及物理地址上的差异,IP协议又使用了IP地址,因此,在数据传输过程中,必须对IP地址与物理地址进行相互转换。
用ARP进行IP地址到物理地址转换的过程为:

  1. 当计算机需要与任何其他的计算机进行通信时,首先需要查询ARP高速缓存,如果ARP高速缓存中这个P地址存在,便使用与它对应的物理地址直接将数据报发送给所需的物理网卡;

  2. 如果ARP高速缓存中没有该IP地址,那么ARP便在局域网上以广播方式发送一个ARP请求包。如果局域网上IP地址与某台计算机中的IP地址相一致,那么该计算机便生成一个ARP应答信息,信息中包含对应的物理地址。

  3. ARP协议软件将IP地址与物理地址的组合添加到它的高速缓存中,这时即可开始数据通信。

RARP负责物理地址到IP地址的转换,这主要用于无盘工作站。网络上的无盘工作站在网卡上有自己的物理地址,但无P地址,因此必须有一个转换过程。为了完成这个转换过程,网络种有一个RARP服务器,网络管理员事先必须把网卡上的IP地址和对应的MAC地址存储到IP RARP服务器的数据库中。

05 | 🍆 网络层协议—— I C M P 协议 \color{blue}{网络层协议 —— ICMP协议} 网络层协议——ICMP协议🍇

在这里插入图片描述

Internet控制信息协议(Internet Control Message Protocol,ICMP)是网际层的另一个比较重要的协议。由于IP是一种尽力传送的通信协议,即传送的数据报可能丢失、重复、延迟或乱序,因此IP需要一种避免差错并在发生差错时报告的机制。

ICMP就是一个专门用于发送差错报文的协议。ICMP定义了5种差错报文(源抑制、超时、目的不可达、重定向和要求分段)和4种信息报文(回应请求、回应应答、地址屏蔽码请求和地址屏蔽码应答)
IP在需要发送一个差错报文时要使用ICMP,而ICMP也是利用IP来传送报文的。ICMP是让IP更加稳固、有效的一种协议,它使得IP传送机制变得更加可靠。而且ICMP还可以用于测试因特网,以得到一些有用的网络维护和排错的信息。例如,著名的ping 工具就是利用ICMP报文进行目标是否可达测试。

06 | 🍧 网络层协议—— I P 协议 \color{cyan}{网络层协议 —— IP协议} 网络层协议——IP协议🍧

在这里插入图片描述

网络层是整个TCP/IP协议族的重点。在网络层定义的协议除了ICMP、ARP和RARP等几个重要的协议外,还有一个重点协议 —— IP协议。
IP所提供的服务通常被认为是无连接的(Connectionless)和不可靠的(Unreliable)

事实上,在网络性能良好的情况下,IP传送的数据能够完好无损地到达目的地。
所谓无连接的传输,是指没有确定目标系统在已做好接收数据准备之前就发送数据

与此相对应的就是面向连接的(Connection Oriented)传输(如TCP),在该类传输中,源系统与目的系统在应用层数据传送之前需要进行三次握手。
至于不可靠的服务,是指目的系统不对成功接收的分组进行确认,IP只是尽可能地使数据传输成功

但是只要需要,上层协议必须实现用于保证分组成功提供的附加服务。
由于IP只提供无连接、不可靠的服务,所以把差错检测和流量控制之类的服务授权给了其他的各层协议,这正是TCP/IP能够高效工作的一个重要保证。这样,可以根据传送数据的属性来确定所需的传送服务以及客户应该使用的协议。例如,传送大型文件的FTP会话需要面向连接的、可靠的服务(因为如果稍有损坏,就可能导致整个文件无法使用)。

  • IP的主要功能包括:

    1. 将上层数据(如TCP、UDP数据)或同层的其他数据(如ICMP数据)封装到P数据报中;

    2. 将IP数据报传送到最终目的地;

    3. 为了使数据能够在链路层上进行传输,对数据进行分段;

    4. 确定数据报到达其他网络中的目的地的路径。

  • IP协议软件的工作流程:

    1. 当发送数据时,源计算机上的IP协议软件必须确定目的地是在同一个网络上,还是在另一个网络上;

    2. IP通过执行这两项计算并对结果进行比较,才能确定数据到达的目的地。如果两项计算的结果相同,则数据的目的地确定为本地,否则,目的地应为远程的其他网络。

    3. 如果目的地在本地,那么IP协议软件就启动直达通信;

    4. 如果目的地是远程计算机,那么IP必须通过网关(或路由器)进行通信,在大多数情况下,这个网关应当是默认网关。

    5. 当源IP完成了数据报的准备工作时,它就将数据报传递给网络访问层,网络访问层再将数据报传送给传输介质,最终完成数据帧发往目的计算机的过程。

    当数据抵达目的计算机时,网络访问层首先接收该数据。网络访问层要检查数据帧有无错误,并将数据帧送往正确的物理地址。假如数据帧到达目的地时正确无误,网络访问层便从数据帧的其余部分中提取数据有效负载(Payload),然后将它一直传送到帧层次类型域指定的协议。在这种情况下,可以说数据有效负载已经传递给了IP。

07 | 🍇 应用层协议 \color{purple}{应用层协议} 应用层协议🍇

随着计算机网络的广泛应用,人们也已经有了许多基本的、相同的应用需求。为了让不同平台的计算机能够通过计算机网络获得一些基本的、相同的服务,也就应运而生了一系列应用级的标准,实现这些应用标准的专用协议被称为应用级协议,相对于OSI参考模型来说,它们处于较高的层次,所以也称为高层协议。应用层的协议有$\color{purple}{NFS、Telnet、SMTP、DNS、SNMP和FTP等
这里简单介绍一下域名服务以及远程登陆服务

  1. 域名服务 \color{purple}{域名服务} 域名服务
    在这里插入图片描述

    I n t e r n e t 中的域名地址和 I P 地址是等价的,它们之间是通过域名服务来完成映射变换的 \color{purple}{Internet 中的域名地址和 IP 地址是等价的,它们之间是通过域名服务来完成映射变换的} Internet中的域名地址和IP地址是等价的,它们之间是通过域名服务来完成映射变换的
    实际上,DNS 是一种分布式地址信息数据库系统,服务器中包含整个数据库的某部分信息,并供客户查询。DNS 允许局部控制整个数据库的某些部分,但数据库的每一部分都可通过全网查询得到。
    域名系统采用的是客户端/服务器模式,整个系统由解析器和域名服务器组成。解析器是客户方,它负责查询域名服务器、解释从服务器返回来的应答、将信息返回给请求方等工作。城名服务器是服务器方,它通常保存着一部分域名空间的全部信息,这部分域名空间称为区(Zone)。一个城名服务器可以管理一个或多个区。域名服务器可以分为主服务器、Caching Only服务器和转发服务器 (Forwarding Server)。
    域名系统是一个分布式系统,其管理和控制也是分布式的。一个用户 A 在查找另一用户 B时,域名系统的工作过程如下:

    1. 解析器向本地域名服务器发出请求查阅用户 B 的域名。
    2. 本地域名服务器向最高层域名服务器发出查询地址的请求
    3. 最高层域名服务器返回给本地域名服务器一个 地址
    4. 本地域名服务器向组域名服务器发出查询地址的请求
    5. 组域名服务器返回给本地域名服务器一个IP 地址。
    6. 本地服务器向刚返回的域名服务器发出查询域名地址请求
    7. 地址返回给本地域名服务器。
    8. 本地域名服务器将该地址返回给解析器。

    因此,本地域名服务器为了得到一个P地址常常需要查询多个域名服务器。于是,在查询地址的同时,本地域名服务器也就得到了许多其他域名服务器的信息,像它们的 I 地址、所负

  2. T e l n e t \color{purple}{Telnet} Telnet
    在这里插入图片描述

    远程登录服务是在 Telmet 协议的支持下,将用户计算机与远程主机连接起来,在远程计算机上运行程序,将相应的屏幕显示传送到本地机器,并将本地的输入送给远程计算机。由于这种服务基于 Telmet 协议且使用 Telnet 命令进行远程登录,故称为 Telnet 远程登录。
    T e l m e t 是基于客户端 / 服务器模式的服务系统,由客户端 / 服务器软件以及 T e l m e t 通信协议三部分组成 \color{purple}{Telmet 是基于客户端/服务器模式的服务系统,由客户端/服务器软件以及 Telmet 通信协议三部分组成} Telmet是基于客户端/服务器模式的服务系统,由客户端/服务器软件以及Telmet通信协议三部分组成
    远程计算机又称为 Telnet 主机或服务器,本地计算机作为 Telmet 客户端来使用,它起到远程主机的一台虚拟终端(仿真终端)的作用,通过它用户可以与主机上的其他用户一样共同使用该主机提供的服务和资源。
    当用户使用 Telnet 登录远程主机时,该用户必须在这个远程主机上拥有合法的账号和相应的密码,否则远程主机将会拒绝登录。在运行 Telnet 客户程序后,首先应该建立与远程主机的TCP 连接,从技术上讲,就是在一个特定的 TCP 端口(端口号一般为 23)上打开一个套接字如果远程主机上的服务器软件一直在这个众所周知的端口上侦听连接请求,则这个连接便会建立起来,此时用户的计算机就成为该远程主机的一个终端,便可以进行联机操作了,即以终端方式为用户提供人机界面。然后将用户输入的信息通过 Telmet 协议便可以传送给远程主机,主机在众所周知的 TCP 端口上侦听到用户的请求并处理后,将处理的结果通过 Telmet 协议返回给客户程序。最后客户端接收到远程主机发送来的信息,并经过适当的转换显示在用户计算机的屏幕上。

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

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

相关文章

景区剧本杀小程序

景区剧本杀具有以下几个方面的前景: 景区旅游升级:随着人们对于景区旅游体验的多样化需求增加,景区剧本杀作为一种互动性强、参与感强的旅游体验项目,将会得到越来越多游客的喜爱和关注。 移动互联网应用:景区…

C++ 有元 内部类 匿名对象

有元 使用有元就可以突破封装,可以直接对类当中 私有的 成员 成员函数等等进行访问,在某一次上提供了遍历,但是这增大的 耦合性,破坏了封装,所以建议有元不要多用。 所谓耦合性就是 ,某两个 东西的 关系&a…

程序员开发Linux常用命令

本文对程序开发过程中常用的Linux命令进行总结,随时进行补充,属于科普篇,希望对大家有所帮助 file命令 该命令用于查看文件的基本信息,比如编码格式,文件类型等信息,对于可执行程序或者动态链接库文件&am…

【Python入门知识】类和对象,要想学的好基础得打好

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! Python 类/对象 Python 是一种面向对象的编程语言。 Python 中的几乎所有东西都是对象,拥有属性和方法。 类(Class)类似对象构造函数,或者是用于创建对象的“蓝图”。 创建…

Java 判空的常见方法

一、 对象判空 if (obj ! null) {// 进行对象非空判断 }Object obj null; // 或者 obj new Object(); if (obj null) {// 对象为空 }另外,Guava 库还提供了一个更方便的方法,使用方式如下: import com.google.common.base.Objects;if (O…

SOLIDWORKS 30个实用小技巧

很多人在学习SolidWorks时,会有很多疑问,都不知道如何解答,所以走了很多弯路。今天,我们就来讲讲在学习SolidWorks中的那些小技巧吧! 1、SOLIDWORKS技巧之按“空格键:”弹出快捷菜单双击某一视图&#xff0…

webSocket介绍及项目实战【在线聊天系统】

文章目录 一:消息推送常用方式介绍1.1 轮询:浏览器以指定的时间间隔向服务器发出HTTP请求,服务器实时返回数据给浏览器1.2 长轮询:浏览器发出ajax请求,服务器端接收到请求后,会阻塞请求直到有数据或者超时才…

学习之-Spring Cache缓存框架应用本地缓存

此文章用于个人学习记录,原文地址:https://zhuanlan.zhihu.com/p/452315531 如果想了解springCache与redis的交互请看其他文章 缓存是web项目不可或缺的一部分,通过缓存能够降低服务器数据库压力,提高服务器的稳定性及响应速度。…

Rust + 嵌入式:强力开发组合

Rust 的由来 Rust 编程语言的灵感诞生于一次意外。2006年,当 Graydon Hoare 回到位于温哥华的公寓时,发现电梯又因为软件崩溃出了故障。住在 21 楼的他无奈爬楼时,不禁心想,“我们搞计算机的,怎么连个能正常运行的电梯…

接口测试要会什么技能?测试老鸟总结,从接口到接口自动化全面盲扫...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Python自动化测试&…

YOLOv5改进:引入DenseNet思想打造密集连接模块,彻底提升目标检测性能

目录 一、密集连接模块的介绍1、密集连接的概念2、密集连接与残差连接的对比3、DenseNet的结构 二、 YOLOv5中引入密集连接模块的原因1、密集连接模块对于目标检测的优势2、密集连接模块对目标检测性能的影响 三、 YOLOv5中密集连接模块的具体实现1、使用DenseNet的基本单元Den…

怎样才能尽快从开发岗转到产品经理岗位?

越来越多的开发同学随着工作年限的增长都会产生类似的想法。 当然,背后的原因也是多种多样,像薪资上的限制、行业前景的担忧等等,很多同学则踌躇在原地不敢转产品岗位,而有的同学则是通过各种不同方式顺利转岗到产品经理岗位&…

树莓派从源码构建安装Git最新版

1、查看Git版本 首先我们通过SSH客户端连接树莓派,在树莓派中通过查看 Git 版本信息,我们只能看到最高版本显示为 2.30.2,并且通过apt安装也无法将Git更新到最新版。 git --version sudo apt upgrade git那么我们只能通过从源代码来构建安装Git了&…

单片机复习题第二章

1.在AT89S52单片机中,如果采用6MHz晶振,一个机器周期为2us。 时钟周期的振荡频率为fosc,则时钟周期T1/fosc。 一个机器周期包括12个时钟周期。 2.内部RAM中,位地址为40H,88H的位,该位所在字节的字节地址分别…

scrollIntoView 的使用

描述 将调用此方法的元素滚动到浏览器窗口的可见区域。 scrollIntoView 官方文档 用法 element.scrollIntoView() 用法同 element.scrollIntoView(true) element.scrollIntoView(alignToTop) true 表示 element 元素顶部与可见区域的顶部对齐,默认值false 表示 el…

基于html+css的图展示56

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

Packet Tracer - 第 2 层 VLAN 安全

Packet Tracer - 第 2 层 VLAN 安全 目标 在 SW-1 和 SW-2 之间连接新的冗余链路。 启用中继,并在 SW-1 和 SW-2 之间的新中继链路上 配置安全。 创建新的管理 VLAN (VLAN 20) 并将管理 PC 连接到 该 VLAN。 实施 ACL 以阻…

Java学习-GUI编程-JFrame窗口

Java学习-GUI编程-JFrame窗口 public class TestJFrame {public void init(){JFrame jf new JFrame("这是一个JFream窗口");jf.setVisible(true);jf.setBounds(100,100,400,400);JLabel label new JLabel("这是一个label");label.setHorizontalAlignmen…

Linux之shell函数和正则表达式(八)

1、函数 1、函数概述 shell 中允许将一组命令集合成语句形成一段可用代码,这些代码块称为 shell 函数,给这段代码起个名字称为函数名,后续可以直接调用该段代码的功能 2、定义函数 函数名() {函数体(一堆命令的集合&#xff0…

程序员的下一个风口

面对近一年的裁员潮,以及 GPT 出现带来的 AI 颠覆潮流,各种话题出现:「前端已死」、「后端已死」、「Copy/Paste 程序员将被 AI 取代」。程序员行业是否还有发展空间? 这一两年的就业机会是因为经济衰落周期内造成的,不…