【网络编程】TCP/IP协议(互联网的基石)

  • (꒪ꇴ꒪ ),Hello我是祐言QAQ
  • 我的博客主页:C/C++语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍
  • 快上🚘,一起学习,让我们成为一个强大的攻城狮!
  • 送给自己和读者的一句鸡汤🤔:集中起来的意志可以击穿顽石!
  • 作者水平很有限,如果发现错误,请在评论区指正,感谢🙏

引言

        在当今数字化世界中,网络是不可或缺的一部分。本博客将深入探讨TCP/IP协议以及与网络相关的基础概念,帮助初学者理解网络通信的核心原理。

一、TCP/IP协议的产生

1.1 介绍TCP/IP协议的历史和背景

        TCP/IP协议,全名为传输控制协议/因特网协议(Transmission Control Protocol/Internet Protocol),诞生于20世纪70年代,是因特网的基石之一。它的发展大致分为以下五个部分:

(1)ARPANET的起源:
        TCP/IP协议最早的雏形可以追溯到美国国防部高级研究计划局(DARPA)的ARPANET项目。ARPANET是一个早期的计算机网络,但有个缺点,无法在不同类型的PC端传递。为了打破这种局限,一种能够在不同计算机之间传输数据的协议,于是TCP/IP协议被提出。

(2)分层结构的设计:
        TCP/IP协议是一个分层协议,由多个层次组成,每个层次负责不同的功能。其中,TCP(传输控制协议)和IP(Internet协议)是两个核心的协议TCP负责可靠的数据传输,而IP则负责数据的路由和分发。这种分层结构使得协议更加模块化和可扩展。

(3)1970年代的发展:
        在上世纪70年代初期,TCP/IP协议的开发工作由一些杰出的计算机科学家和工程师共同进行,包括Vinton Cerf和Bob Kahn。他们的工作导致了TCP/IP协议套件的首次实现,这个套件包括了TCP、IP、UDP(用户数据报协议)等子协议。

(4)标准化和广泛应用:
        随着时间的推移,TCP/IP协议经过标准化,并在不断扩展和改进。它被广泛采用,不仅用于ARPANET,还用于后来的互联网。1983年,互联网正式采用了TCP/IP作为其标准协议套件,这一决定为互联网的快速发展奠定了基础。

(5)互联网的崛起:
        TCP/IP协议的广泛应用推动了互联网的崛起。互联网开始连接全球各地的计算机网络,使得信息和资源能够迅速传播和共享。这一过程导致了互联网的普及和快速发展,成为了现代社会中不可或缺的一部分。

1.2 TCP/IP协议的发展和重要性

        TCP/IP协议的发展是互联网快速普及的关键因素之一。它的分层结构和可扩展性使其成为了全球互联网通信的核心。它的发展同时也塑造了互联网的现代形态,还为全球通信和技术创新提供了坚实的基础。它是计算机网络和通信领域的重要里程碑。

二、网络的体系结构

2.1 解释计算机网络的基本组成和层次结构

        计算机网络通常包括硬件(例如路由器、交换机、电缆)和软件(网络协议、应用程序)。网络层次结构包括物理层、数据链路层、网络层、传输层、应用层。

2.2 详细说明计算机网络的基本组成和层次结构

2.2.1 基本组成

硬件:

        路由器(Routers): 路由器是网络中的关键设备,用于在不同子网之间转发数据包,以实现跨网络通信。
        交换机(Switches): 交换机是用于在局域网内交换数据帧的设备,通常用于连接局域网中的多台计算机。
        物理介质: 电缆和物理介质如光纤、铜缆等用于数据传输的媒介。
        网卡(Network Interface Cards): 网卡是计算机连接到网络的接口,负责将数据帧发送到网络中。
        服务器和终端设备: 服务器提供网络服务,终端设备如电脑、手机等连接到网络以访问这些服务。


软件:

        网络协议(Network Protocols): 网络协议是规定数据在网络中如何传输和交换的规则集合。例如,TCP/IP协议套件是互联网中最常用的网络协议。
        应用程序(Applications): 应用程序允许用户与网络交互,包括浏览器、电子邮件客户端、文件传输工具等。

2.2.2 层次结构

        计算机网络通常按照层次结构进行组织,以便将复杂的网络功能分解为不同的层次,每个层次负责特定的任务。这种层次结构通常被称为 OSI(开放式系统互连)模型,它包括七个层次,而TCP/IP模型是一种更常用的模型,它包括四个主要层次(合并而来)。

        应用层(Application Layer): 应用层是用户与网络互动的层次,包括各种应用程序和协议,如HTTP、SMTP、FTP等。

        表示层(Presentation Layer): 表示层主要负责数据的编码、加密和压缩,以确保数据在不同系统之间的互操作性。这一层次的协议处理数据格式、字符编码、数据加密和解密等任务。

        会话层(Session Layer): 会话层用于建立、管理和终止网络中的会话或连接。它处理会话控制、同步和恢复等功能。这一层次的协议允许两个系统之间建立会话,以确保数据在传输过程中的正确顺序和完整性。

        传输层(Transport Layer): 传输层提供端到端的数据传输,确保数据的可靠性和完整性。TCP(传输控制协议)和UDP(用户数据报协议)是常见的传输层协议。

        网络层(Network Layer): 网络层负责在不同网络之间路由数据包。IP协议位于这一层,它负责寻址和路由数据。

        数据链路层(Data Link Layer): 数据链路层负责在物理层之上建立直接的数据链路,确保数据可靠传输。它通常包括子层:MAC(媒体访问控制)和LLC(逻辑链路控制)。     

        物理层(Physical Layer): 物理层处理网络的硬件连接,包括传输媒体和数据的物理传输方式。它主要关注电压、信号等物理细节。

三、TCP/IP协议

3.1 详细介绍TCP/IP协议套件的组成        

        TCP/IP协议套件是一个广泛用于计算机网络通信的协议簇,它包括了多个协议,每个协议都有特定的功能和作用。

3.1.1 应用层协议

        HTTP(超文本传输协议): HTTP是用于在客户端和服务器之间传输超文本文档的协议,是万维网的基本协议。它支持Web浏览器向Web服务器请求和接收HTML页面、图像、视频和其他资源。

        HTTPS(HTTP + SSL/TLS) HTTPS是基于HTTP协议的安全版本,通过SSL/TLS加密通信,确保数据传输的安全性和机密性。它在敏感数据传输中广泛使用,如在线支付和登录。

        TelnetTelnet是一种用于远程登录到远程计算机的协议。它允许用户在本地计算机上通过终端访问远程计算机系统,执行命令和操作远程资源。

        FTP(文件传输协议): FTP是用于在网络上传输文件的协议,支持文件上传、下载和管理。它通常用于网站维护和文件共享。

        DNS(域名服务协议): DNS是用于将域名转换为IP地址的协议,它在互联网上解析域名并将用户请求路由到正确的服务器。它是互联网中的地址翻译器。

3.1.2 传输层协议

        TCP(传输控制协议): TCP是一种可靠的、面向连接的协议,它确保数据可靠地传输,提供流量控制和拥塞控制。它用于应用程序之间的可靠数据传输,如Web浏览、电子邮件等。

        UDP(用户数据报协议): UDP是一种无连接的协议,它提供了一种简单的数据传输机制,但不保证可靠性。它适用于需要低延迟的应用,如音频和视频流传输。

        这里简单总结一下,提及TCP协议你一听停听过“三次握手”,正是这个机制决定了TCP的可靠性,但降低了速度,而UDP就像是一个叛逆期的小孩,无论何时发完就走,绝不回头,更适合于低延迟的应用,最常见的莫过于视频通话。

注:

        (1) SYN : 建立连接;
        (2) ACK : 表示响应、确认;
        (3) PSH : 表示有数据传输。

3.1.3 网络层协议

        IP(互联网协议): IP是互联网的基础协议,负责数据的路由和分发。它定义了一种统一的地址格式(IPv4或IPv6),以便在网络上唯一标识设备,使数据能够正确传递到目的地。
网络接口与物理层:

        在TCP/IP协议套件中,网络接口与物理层通常不被视为协议,而是用于实际数据传输的硬件和物理介质,包括网卡、以太网电缆、光纤等。这些层次提供了数据的物理传输和电信号处理。

        总之,TCP/IP协议套件的各个组成部分共同构成了互联网通信的基础,允许不同类型的设备和应用程序在全球范围内进行通信和数据交换。

3.2 解释TCP和UDP协议的区别和应用场景

3.2.1 TCP协议

        可靠性: TCP是一种可靠的协议,它确保数据的可靠传输。它使用确认机制和重传策略,以确保数据在传输过程中不会丢失或损坏。如果数据包在传输过程中丢失或乱序,TCP会负责重新发送它们,直到接收方确认接收完整的数据。

        面向连接: TCP是面向连接的协议,通信的双方需要建立连接,然后进行数据传输,最后关闭连接。这个连接的建立和断开会消耗一定的时间和资源。

        流量控制和拥塞控制: TCP具有流量控制和拥塞控制机制,它可以调整数据传输的速率,以避免网络拥塞,并确保高效的数据传输。

        适用场景: TCP适用于对数据完整性和可靠性要求较高的应用场景,如文件传输、电子邮件、Web浏览等,其中数据的准确性至关重要。

3.2.2 UDP协议

        不可靠性: UDP是一种不可靠的协议,它不提供数据传输的可靠性保证。UDP将数据包发送到目的地,但不确保它们的完整性和顺序性。如果数据包丢失或损坏,UDP不会重新发送。

        面向无连接: UDP是面向无连接的协议,通信的双方之间不需要建立持久的连接。每个数据包都是独立的,发送者和接收者之间没有持续的通信状态。

        实时性: 由于UDP不需要建立连接和维护状态信息,它的传输速度较快,适用于实时性要求较高的应用,如音频和视频流传输。

        适用场景: UDP适用于那些对实时性要求较高且能够容忍一些数据丢失的应用场景,如在线游戏、音频/视频通信、DNS查询等。在这些应用中,速度和即时性比数据的完整性更为重要。

        该篇文章续集链接:

网络基础概念_祐言QAQ的博客-CSDN博客

        更多C/C++语言Linux系统数据结构ARM板实战相关文章,关注专栏:

   手撕C语言

            玩转linux

                    脚踢数据结构

                            系统、网络编程

                                     探索C++

                                             6818(ARM)开发板实战

📢写在最后

  • 今天的分享就到这啦~
  • 觉得博主写的还不错的烦劳 一键三连喔~
  • 🎉🎉🎉感谢关注🎉🎉🎉

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

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

相关文章

实时操作系统Freertos开坑学习笔记:(四):临界段保护、列表与列表项

前言 废话不多说,直接看主要要探究的问题: 一、临界段代码保护 1.什么是临界段? 图里面说,临界区的代码是不能被打断的,它运行时不能被中断打断,也不能由于非阻塞任务延时而切换到其他任务去。 比如说…

bash: cmake: command not found...+++++++lsb_release: command not found

一 .bash: cmake: command not found… centos中安装那个cmake。 1、问题 [rootPC3 home]# cmake bash: cmake: command not found... Similar command is: make当前系统: [rootPC3 home]# lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx…

蝶形运算法

蝶形运算法是一种基于FFT(Fast Fourier Transform)算法的计算方法,其基本思想是将长度为N的DFT分解成若干个长度为N/2的DFT计算,并通过不断的合并操作得到最终的结果。该算法也称为“蝴蝶算法”,因为它的计算过程中需要…

[Android 四大组件] --- Activity

1 Activity是什么 ​​Activity​​是一个Android的应用组件,它提供屏幕进行交互。每个Activity都会获得一个用于绘制其用户界面的窗口,窗口可以充满哦屏幕也可以小于屏幕并浮动在其他窗口之上。 一个应用通常是由多个彼此松散联系的Activity组成&…

vue3学习笔记

语句直接写在<script setup></script>内 1.父组件向子组件传值 子组件&#xff08;名字cs.vue&#xff09;&#xff1a; <template><h1 >{{ msg }}</h1> </template><script setup> defineProps({msg: String }) </script>父…

LeetCode--HOT100题(47)

目录 题目描述&#xff1a;105. 从前序与中序遍历序列构造二叉树&#xff08;中等&#xff09;题目接口解题思路代码 PS: 题目描述&#xff1a;105. 从前序与中序遍历序列构造二叉树&#xff08;中等&#xff09; 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preo…

【AI测试】python文字图像识别tesseract

[AI测试]python文字图像识别tesseract github官网&#xff1a;https://github.com/tesseract-ocr/tesseract python版本&#xff1a;https://github.com/madmaze/pytesseract OCR&#xff0c;即Optical Character Recognition&#xff0c;光学字符识别&#xff0c;是指通过扫…

工程制造领域:企业IT架构

一、IT组织规划架构图 1.1 IT服务保证梯队与指导思想 二、整体业务规划架构图 三、数据化项目规划架构图 四、应用系统集成架构图

CSS Flex布局

前言 Flex布局&#xff08;弹性盒子布局&#xff09; 是一种用于在容器中进行灵活和自适应布局的CSS布局模型。通过使用Flex布局&#xff0c;可以更方便地实现各种不同尺寸和比例的布局&#xff0c;使元素在容器内自动调整空间分配。 目录 容器属性 &#x1f341;display属性 &…

数据结构与算法复杂度介绍

目录 一、基本概念 二、时间复杂度 【2.1】时间复杂度概念 【2.2】大O的渐进表示法 【2.3】举例时间复杂度计算 三、空间复杂度 一、基本概念 数据结构&#xff1a;相互之间存在一种或者多种特定关系的数据元素的集合。在逻辑上可以分为线性结构&#xff0c;散列结构、树…

单片机电子元器件-按键

电子元器件 按键上有 四个引脚 1 2 、 3 4 按下之后 导通 1 3 、 2 4 初始导通 通常按键开关为机械弹性开关&#xff0c;开关在闭合不会马上稳定的接通&#xff0c;会有一连串的抖动 抖动时间的长短有机械特性来决定的&#xff0c;一般为5ms 到10 ms 。 消抖的分类 硬件消…

【大数据Hive】hive 加载数据常用方案使用详解

目录 一、前言 二、load 命令使用 2.1 load 概述 2.1.1 load 语法规则 2.1.2 load语法规则重要参数说明 2.2 load 数据加载操作演示 2.2.1 前置准备 2.2.2 加载本地数据 2.2.3 HDFS加载数据 2.2.4 从HDFS加载数据到分区表中并指定分区 2.3 hive3.0 load 命令新特性 …

vue项目配置MongoDB的增删改查操作

在Vue中配置MongoDB的增删改查操作&#xff0c;需要先安装mongoose模块来连接MongoDB数据库。 1. 在Vue项目的根目录中&#xff0c;使用命令行安装mongoose模块&#xff1a; npm install mongoose --save 2. 找到启动node的app.js文件&#xff08;我这里是在server文件中&…

Java开发之Redis(面试篇 持续更新)

文章目录 前言一、redis使用场景1. 知识分布2. 缓存穿透① 问题引入② 举例说明③ 解决方案④ 实战面试 3. 缓存击穿① 问题引入② 举例说明③ 解决方案④ 实战面试 4. 缓存雪崩① 问题引入② 举例说明③ 解决方案④ 实战面试 5. 缓存-双写一致性① 问题引入② 举例说明③ 解决…

Linux执行命令

命令格式 主命令 选项 参数&#xff08;操作对象&#xff09;例如&#xff1a; 修改主机名 hostname set-hostname 新名称显示/目录下的文件的详细信息 ls -l /命令 内置命令&#xff08;builtin&#xff09;&#xff1a;shell程序自带的命令。 外部命令&#xff1a;有独立…

多通道振弦数据记录仪应用桥梁安全监测的关键要点

多通道振弦数据记录仪应用桥梁安全监测的关键要点 随着近年来桥梁建设和维护的不断推进&#xff0c;桥梁安全监测越来越成为公共关注的焦点。多通道振弦数据记录仪因其高效、准确的数据采集和处理能力&#xff0c;已经成为桥梁安全监测中不可或缺的设备。本文将从以下几个方面…

【JavaEE】_HTML

目录 1.HTML结构 2. HTML常用标签 2.1 注释标签 2.2 标题标签&#xff1a;h1~h6 2.3 段落标签&#xff1a;p 2.4 换行标签&#xff1a;br 2.5 格式化标签 2.6 图片标签&#xff1a;img 2.7 超链接标签&#xff1a;a 2.8 表格标签 2.9 列表标签 2.10 表单标签 2.10…

PPO算法

PPO算法 全称Proximal Policy Optimization&#xff0c;是TRPO(Trust Region Policy Optimization)算法的继承与简化&#xff0c;大大降低了实现难度。原论文 算法大致流程 首先&#xff0c;使用已有的策略采样 N N N条轨迹&#xff0c;使用这些轨迹上的数据估计优势函数 A ^ …

TCP 和 UDP 的区别、TCP 是如何保证可靠传输的?

先来介绍一些osi七层模型 分为应用层、表示层、会话层、运输层、网络层、链路层、物理层。 应用层(数据)&#xff1a;确定进程之间通信的性质以及满足用户需要以及提供网络和用户应用&#xff0c;为应用程序提供服务&#xff0c;DNS&#xff0c;HTTP&#xff0c;HTTPS&#xf…

【LeetCode】剑指 Offer <二刷>(7)

目录 题目&#xff1a;剑指 Offer 14- I. 剪绳子 - 力扣&#xff08;LeetCode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 题目&#xff1a;剑指 Offer 14- II. 剪绳子 II - 力扣&#xff08;…