第一弹:计算机网络概述与UDP通信

news2024/10/9 12:26:46

文章目录

  • 计算机网络概述与UDP通信
    • 一、计算机网络发展简史
      • 1.1 最早的广域网与电路交换的局限性
      • 1.2 分组交换的提出与优势
      • 1.3 因特网的发展
        • 三级结构的因特网
        • 多级结构的因特网
    • 二、TCP/IP协议简介
      • 2.1 分层结构
      • 2.2 OSI七层模型与TCP/IP的对比
      • 2.3 IP协议的工作原理
      • 2.4 TCP协议:三次握手与四次挥手
      • 2.5 UDP协议的优势与局限
    • 三、网络通信地址
      • 3.1 网卡和MAC地址
      • 3.2 IP地址的分类与子网掩码
      • 3.3 私有IP与公有IP
      • 3.4 端口号与网络服务
      • 3.5 回环IP地址
    • 四、数据包的组装与拆解
    • 五、网络应用程序开发流程
      • 5.1 C/S架构中的工作流程
      • 5.2 基于TCP与UDP的通信开发
      • 5.3 网络应用程序的常见问题
    • 六、结论


计算机网络概述与UDP通信

一、计算机网络发展简史

计算机网络的发展伴随着通信技术的进步逐步走向成熟。从最早的电路交换网络到分组交换网络,再到现代的因特网,网络技术的变革带来了信息化的飞速发展。

1.1 最早的广域网与电路交换的局限性

最早的广域网基于电路交换技术,在通信双方之间建立一条独占的物理通道,类似于电话通信。电路交换的核心特点在于,通信通道在整个通信过程中是独占的,只有在通信结束后才会释放。然而,这种方式在计算机数据传输中存在明显的局限性:

  1. 资源独占:通信通道一旦建立,无论通信是否持续进行,通道资源都会被占用,造成资源浪费。
  2. 低效率:计算机通信中,数据传输通常是突发式的,而电路交换需要提前建立专用通道,这在没有持续数据流的情况下大大降低了传输效率。因此,电路交换不适合计算机网络的数据传输需求。

1.2 分组交换的提出与优势

为了解决电路交换带来的低效率问题,分组交换技术应运而生。分组交换通过将数据分割为多个独立的小数据包(分组),并通过不同的路由独立传输到目的地,使得通信资源得到了更高效的利用。分组交换的主要优势包括:

  1. 资源共享:通信通道只有在发送数据时才被占用,不同通信任务可以共享同一通道,极大地提升了资源利用率。
  2. 灵活性:分组可以通过不同路由传送,具备高容错能力,即使某些路由失效,数据仍然可以通过其他路径到达。
  3. 高效率:由于数据分组传输,带宽可以动态分配,避免了长时间独占通道的情况。

1.3 因特网的发展

因特网的发展源于美国的ARPANET(高级研究计划署网络),最初是为了将不同类型的计算机连接起来,实现可靠的数据传输。随着时间的推移,ARPANET逐渐演化为现代互联网。

三级结构的因特网

因特网早期采用三级结构,包括主干网、地区网和局域网(如校园网和企业网)。这种结构为网络的扩展提供了良好的基础,确保了从核心网络到局部网络的高效通信。

多级结构的因特网

随着互联网的发展,NSFNET(国家科学基金网络)逐步被商用的因特网主干网所替代,形成了现代多级结构的因特网。这种结构允许不同层次的用户和设备连接到全球网络,保证了互联网的规模扩展和应用普及。

二、TCP/IP协议简介

TCP/IP协议是现代互联网的核心协议体系,它通过分层设计,简化了网络通信的复杂性,每一层为上一层提供服务并屏蔽实现细节。

2.1 分层结构

TCP/IP协议采用了四层模型,分别是链路层、网络层、传输层和应用层。

  • 链路层:负责物理链路上的数据传输,通常包括网络硬件驱动和相关的传输协议。
  • 网络层:负责数据包的路由选择与传输,使用IP协议来保证数据从源地址传输到目的地址。
  • 传输层:为端到端的数据传输提供服务,主要的传输协议包括TCP(传输控制协议)和UDP(用户数据报协议)。
  • 应用层:为用户提供应用服务,如HTTP、FTP、DNS等协议。

2.2 OSI七层模型与TCP/IP的对比

TCP/IP协议相对简单,但OSI七层模型为理解网络协议分层提供了更细致的参考。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。虽然在实际使用中,TCP/IP模型更常见,但OSI模型有助于清晰理解各层功能。

2.3 IP协议的工作原理

IP协议是网络层的核心协议,用于数据包的路由选择和传输。IP协议的特点是无连接和不可靠传输,即不保证数据包按顺序到达目的地,也不提供纠错机制。因此,IP协议只提供“尽力而为”的传输服务,目标主机需要根据需要自行重组或处理数据包。

2.4 TCP协议:三次握手与四次挥手

TCP(传输控制协议)是面向连接的协议,保证了数据传输的可靠性。TCP通过三次握手建立连接,确保双方通信正常,数据传输过程中还会对数据进行排序和错误检测。

  • 三次握手:客户端发送SYN包,服务器响应SYN+ACK包,客户端再确认ACK包,至此连接建立。
  • 四次挥手:客户端发送FIN请求,服务器响应ACK,然后服务器再发送FIN,客户端再回应ACK,连接断开。

这种设计保证了数据的有序性和完整性,适用于如HTTP、FTP等需要高可靠性的应用。

2.5 UDP协议的优势与局限

UDP(用户数据报协议)是一种面向无连接的传输协议。它的特点是无需建立连接即可传输数据,因此传输速度快、效率高。然而UDP不保证数据的可靠性、顺序性,也没有重传机制,因此适合用于不要求严格可靠性的场景,如DNS、视频流等。

三、网络通信地址

3.1 网卡和MAC地址

网卡(NIC)是计算机进行网络通信的物理设备,每张网卡都有一个全球唯一的物理地址,即MAC地址。MAC地址是48位的二进制数,前24位由IEEE分配,用于标识制造商,后24位由制造商自行分配,确保每个设备的MAC地址唯一。

3.2 IP地址的分类与子网掩码

IP地址用于标识网络中的每台主机。IPv4地址由32位组成,分为网络ID和主机ID两部分,常见的分类有A类、B类、C类。为了划分网络和优化资源,IP地址还需要配合子网掩码使用。

  • 子网掩码用于将IP地址分成网络部分和主机部分。通过子网掩码,管理员可以将大网络划分为多个子网,便于网络管理。

3.3 私有IP与公有IP

IP地址还可以分为公有IP和私有IP。公有IP地址用于在全球互联网中唯一标识设备,而私有IP地址则用于局域网内部通信,不能直接访问互联网。常见的私有IP地址范围包括:

  • A类:10.0.0.0 - 10.255.255.255
  • B类:172.16.0.0 - 172.31.255.255
  • C类:192.168.0.0 - 192.168.255.255

3.4 端口号与网络服务

在网络通信中,端口号用于标识计算机中不同的进程。TCP/IP协议使用16位端口号来区分不同的网络服务,端口号范围为0到65535。其中1到1023是系统保留的知名端口,如HTTP使用80端口,DNS使用53端口。1024到65535为动态端口,常用于用户自定义的应用程序。

3.5 回环IP地址

回环地址是专门用于本地主机通信的特殊地址,最常用的回环地址为127.0.0.1,它通常用于测试本机的网络配置。如果主机能够ping通127.0.0.1,则说明主机的网络接口配置正常。回环地址的IP范围为127.0.0.1到127.255.255.254。

回环IP地址的主要特点:

  • 不属于任何特定网络类型。
  • 通常用于测试和诊断本地系统的网络配置。

四、数据包的组装与拆解

在计算机网络中,数据传输是通过封装和解封装来实现的。发送数据时,数据会经过链路层、网络层、传输层等多个层次的封装,每一层会添加特定的头部信息。在接收数据时,目标主机会按照相反的顺序逐层解封装,最终得到应用层的数据。

  • 链路层:负责将数据打包成帧,帧中包含源MAC地址和目标MAC地址。
  • 网络层:负责将帧封装为数据包,添加源IP地址和目标IP地址。
  • 传输层:根据使用的协议

(TCP或UDP)封装数据,添加序列号、确认号(TCP)或简单的头部(UDP)。

五、网络应用程序开发流程

5.1 C/S架构中的工作流程

网络应用程序通常采用客户端/服务器(C/S)架构,客户端发出请求,服务器进行响应。在TCP协议中,服务器通过绑定特定的端口等待客户端连接,连接建立后,双方通过套接字进行数据传输。UDP则不需要连接建立,直接发送数据包。

5.2 基于TCP与UDP的通信开发

在基于TCP的通信中,服务器和客户端通过三次握手建立可靠的通信通道,数据在传输过程中会被重新排序并检查错误,确保数据传输的可靠性。而在基于UDP的通信中,数据以无连接方式发送,速度快但不保证可靠性,适合实时性要求高的场景。

  • TCP通信流程

    1. 建立连接:服务器监听特定端口,客户端尝试与服务器建立连接,双方通过三次握手确认连接。
    2. 数据传输:客户端和服务器通过双向通信传输数据,确保数据包按序到达且无错误。
    3. 连接释放:数据传输完成后,双方通过四次挥手断开连接。
  • UDP通信流程

    1. 数据发送:客户端直接将数据封装为数据报文,通过UDP协议发送到服务器指定的端口。
    2. 接收与响应:服务器接收到数据报文后处理数据,并根据需要返回响应数据。

5.3 网络应用程序的常见问题

在开发网络应用程序时,可能会遇到以下常见问题:

  1. 端口冲突:多个应用程序试图占用同一端口,导致无法绑定端口。
  2. 网络延迟与丢包:尤其在UDP通信中,网络拥堵可能导致数据包延迟甚至丢失。
  3. 连接管理:TCP连接的创建和释放需要额外的系统资源管理,处理不当可能导致连接过多或内存溢出问题。

六、结论

计算机网络的核心在于高效、可靠的数据通信。通过分组交换技术和TCP/IP协议,现代网络得以在全球范围内连接数十亿台设备。分层设计、分组交换、TCP和UDP等技术为网络提供了可靠性和灵活性。理解这些基础知识和工作原理是开发稳定高效网络应用程序的前提。

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

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

相关文章

RDD的介绍、RDD的特点、创建RDD数据

文章目录 1. RDD介绍1.1 Spark开发方式1.1.1 交互式开发1.1.2 脚本式开发 1.2 Spark支持的开发语言1.3 RDD介绍 2. RDD特性3. 创建RDD数据3.1 Python数据转化为RDD3.2 文件数据HDFS转化为RDD3.3 RDD分区3.4 小文件数据读取 1. RDD介绍 1.1 Spark开发方式 1.1.1 交互式开发 通…

【LeetCode】动态规划—712. 两个字符串的最小ASCII删除和(附完整Python/C++代码)

动态规划—712. 两个字符串的最小ASCII删除和 前言题目描述基本思路1. 问题定义2. 理解问题和递推关系3. 解决方法3.1 动态规划方法3.2 空间优化的动态规划 4. 进一步优化5. 小总结 代码实现PythonPython3代码实现Python 代码解释 CC代码实现C 代码解释 总结: 前言 在字符串处…

【已解决】endnote只显示十条文献/licence失效/this license has been suspended

问题:打开endnote后弹窗显示 Were sorry,this license has been suspended due to ...... 关闭弹窗发现只剩10条文献显示了 解决方法: ①关闭杀毒软件 ②找到endnote源文件夹下的License.dat文件(找不到的话直接在“此电脑”中搜索&#x…

倒计时3天!飞凌嵌入式邀您共聚第90届CMEF

10月12日~15日,第90届中国国际医疗器械博览会(CMEF)即将在深圳国际会展中心(宝安)隆重举行,4000品牌企业将携数万款产品集中亮相,为全球健康产业带来探析前沿、洞见未来的医疗盛宴。 飞凌嵌入式作为业界领先的嵌入式解决方案提供商&#xff…

七、InnoDB数据存储结构

文章目录 1. 数据库的存储结构:页1.1 磁盘与内存交互基本单位:页1.2 页结构概述1.3 页的大小1.4 页的上层结构2. 页的内部结构2.1 第1部分:File Header(文件头部)和 File Trailer(文件尾部)2.1.1 File Header(文件头部)2.1.2 File tRAILER(文件尾部)2.2 第2部分:Fr…

电商价格监测的创新之路

在当今数字化高速发展的时代,电商如汹涌的浪潮席卷了商业的每一个角落。品牌们在这片广阔的电商海洋中奋力前行,而价格监测则成为了他们手中至关重要的罗盘。 力维网络以其专业的价格监测服务,为品牌在电商之海的航行点亮了一盏明灯。然而&a…

【北京迅为】《STM32MP157开发板嵌入式开发指南》-第二十一章 makefile基本语法(下)

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐…

韦东山老师linux快速入门otg检测不到方案总结

我是如何解决, 第二节, otg 串口检测不到的, 开发手册链接: https://wwyz.lanzoul.com/iF1TA2c21uoh 我首先按照评论区, 老师说的, 根据完全开发手册, 搜索otg, 然后找到老师当时 烧写系统的时候, 利用usb启动, 然后otg链接, 然后 安装了两个驱动, 往后翻, 就可以翻到 然后重…

多系统数据交换与共享技术方案(医疗行业为例,Doc原件)

目录 1 方案概述 1.1 背景 1.2 参考规范 2 需求分析 2.1 交换内容 2.2 功能需求 1) 消息传输 2) 数据整合 3) 服务集成 4) 流程整合 5) 管理功能 3 总体建设方案 3.1 实现思路 3.1.1 交换方案比选 3.1.2 技术优势 3.2 总体架构 3.3 数据交换与共享基本模型 3.…

ATAM需求说明-系统架构师(七十六)

1体系结构权衡分析法ATAM(Architecture Trade Off Analyzer Method)是一种常见的结构权衡分析法,该框架主要关注系统的(),针对性能、安全性、可用性和可修改性,在系统开发前进行分析、评价和这种。 A 需求说明 B 架构…

大型生物制药企业如何实现安全又高效地跨网域数据传输?

大型生物制药企业由于组织结构庞大、业务覆盖研发、生产及销售,因此内部会再细分为多个管理单位,包括研发部门、生产部门、质量控制部门、供应链管理部门及营销部和日常业务支撑部门等。在物理区域划分上,大型生物制药企业会设立实验室、研发…

Java—逻辑控制与输入输出

各位看官:如果您觉得这篇文章对您有帮助的话 欢迎您分享给更多人哦 感谢大家的点赞收藏评论,感谢您的支持!!! 一.顺序结构: 我每天起床,躺在床上玩手机,然后吃中午饭,睡…

[C++ 核心编程]笔记 2 栈区和堆区

栈区: 由编译器自动分配释放&#xff0c;存放函数的参数值,同部变量等 注意事项&#xff1a;不要返回局部变量的地址&#xff0c;栈区开辟的数据由编译器自动释放 #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std;//栈区数据注意事项 不要…

【架构师】系统架构相关知识

本文仅做技术交流&#xff0c;转载请注明来源&#xff0c;切勿商用。 参考&#xff1a;系统架构师考纲及教材 1、系统架构的概念 架构是一种表达&#xff0c;而非可运行的软件。 1&#xff09;分析设计在满足所规定的需求方面的有效性 2&#xff09;在设计变更相对容易的阶段…

【读书笔记·VLSI电路设计方法解密】问题4:今天的设计环境中使用的主要工艺技术是什么

主流的工艺技术是互补金属氧化物半导体&#xff08;CMOS&#xff09;技术。其他技术还包括双极性、双极CMOS&#xff08;biCMOS&#xff09;、绝缘体上硅&#xff08;SOI&#xff09;和砷化镓&#xff08;GaAs&#xff09;。 在CMOS技术中&#xff0c;"互补对称"指的…

Android开发:日志功能备忘

临时记一下吧&#xff0c;以后就直接复制粘贴这里面的好了。 实现一个日志记录程序的运行状态&#xff0c;并且带上时间信息&#xff0c;可以写一个类灵活调用。 MyLog.java package com.example.networkaccessrestrictions;import static android.content.ContentValues.TAG;i…

目标检测实战教程Day1(原创)

原创不易&#xff0c;转载请标明本文地址 目标检测一直是计算机视觉领域的核心问题之一&#xff0c;它就像是让计算机拥有了一双“鹰眼”&#xff0c;能在复杂的图像中迅速锁定和识别出各种有趣的目标&#xff0c;比如人、汽车、动物或者任何其他特定物体。在这一章&#xff0c…

【汇编语言】寄存器(CPU工作原理)(五)—— 段寄存器以及CS和IP

文章目录 前言1. 段寄存器2. CS 和 IP结语 前言 &#x1f4cc; 汇编语言是很多相关课程&#xff08;如数据结构、操作系统、微机原理&#xff09;的重要基础。但仅仅从课程的角度出发就太片面了&#xff0c;其实学习汇编语言可以深入理解计算机底层工作原理&#xff0c;提升代码…

产品推介——AC晶体管光耦KL814

KL814产品系列&#xff0c;由苏州晶台光电有限公司研发生产的一款采用交流输入的晶体管光耦。它结合了两个反向并联的红外发射二极管与一个光电晶体管&#xff0c;构成了一个高效且稳定的光电耦合器。 产品特点Product features ◆交流输入响应 ◆电流传输比 (CTR&#xff1…

vs2022调试cmake工程时,添加命令行参数

第一步&#xff1a; 第二步&#xff1a;在launch.vs.json文件里添加 至此可以在调试当前工程时&#xff0c;可以传入命令行参数。