【网络编程】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.hqwc.cn/news/99440.html

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

相关文章

How to clean up Graylog Default index set log

一、前言: Graylog 满了,没有自动清理 挤爆硬盘空间,手动清理流程: 二、问题描述: Elasticsearch nodes disk usage above high watermark (triggered a few seconds ago)mree are ast search modes i the use wtm a mos mo re disk ther dsk s saoe me e waemak f ths…

974. 和可被 K 整除的子数组

974. 和可被 K 整除的子数组 C代码:滑动窗口 // 1、最长子数组 2、两个单调队列、求最大值-最小值,判断是否满足条件 3、满足记录长度 // 窗口移动条件:int longestSubarray(int* nums, int numsSize, int limit){int queMax[numsSize];in…

【个人博客系统网站】我的博客列表页 · 增删改我的博文 · 退出登录 · 博客详情页 · 多线程应用

【JavaEE】进阶 个人博客系统(4) 文章目录 【JavaEE】进阶 个人博客系统(4)1. 增加博文1.1 预期效果1.1 约定前后端交互接口1.2 后端代码1.3 前端代码1.4 测试 2. 我的博客列表页2.1 期待效果2.2 显示用户信息以及博客信息2.2.1…

Android 音频框架 基于android 12

文章目录 前言音频服务audioserver音频数据链路hal 提供什么样的作用 前言 Android 的音频是一个相当复杂的部分。从应用到框架、hal、kernel、最后到硬件,每个部分的知识点都相当的多。而android 这部分代码在版本之间改动很大、其中充斥着各种workaround的处理&a…

Java后端开发面试题——JVM虚拟机篇

目录 什么是程序计数器? 你能给我详细的介绍Java堆吗? 什么是虚拟机栈 1. 垃圾回收是否涉及栈内存? 2. 栈内存分配越大越好吗? 3. 方法内的局部变量是否线程安全? 4.什么情况下会导致栈内存溢出? 5.堆栈的区别…

SpringCloud--从零开始搭建微服务基础环境入门教程【一】

😀前言 本篇博文是关于SpringCloud–从零开始搭建微服务基础环境入门教程【一】,希望你能够喜欢😉 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮…

spring集成mybatis

1、新建一个javaEE web项目 2、加入相关依赖的坐标 <dependencies><!--数据系列&#xff1a;mybatis,mysgl,druid数据源,junit--><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</grou…

42、springboot 的 路径匹配 和 内容协商

springboot 的 路径匹配 和 内容协商 对于路径匹配&#xff0c;自己的总结就是&#xff1a; 以前路径匹配时默认不检查后缀&#xff0c;http://localhost:8080/aaa.json 可以直接访问到 RequstMapping(“/aaa”) 的方法。现在不行了。现在会检查后缀了。 内容协商的理解总结&…

智慧公厕是对智慧城市“神经末梢”的有效激活,公共厕所实现可感知、可视化、可管理、可控制

在当今科技迅速发展的时代&#xff0c;智慧城市已经成为人们关注的热点话题。作为城市基础设施的重要组成部分&#xff0c;公共厕所也逐渐融入到智慧城市的建设中&#xff0c;成为城市管理的焦点之一。智慧公厕作为智慧城市的“神经末梢”&#xff0c;通过可感知、可视化、可管…

云计算的三个主要服务模型:IaaS、PaaS 和 SaaS

文章目录 介绍基础设施即服务&#xff08;Infrastructure as a Service&#xff0c;IaaS&#xff09;平台即服务&#xff08;Platform as a Service&#xff0c;PaaS&#xff09;软件即服务&#xff08;Software as a Service&#xff0c;SaaS&#xff09; 区别基础设施即服务&…

基于springboot实现websocket实时通讯启动项目报错

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