【C#网络编程】基础概念2

文章目录

  • 网络、数据包和协议
    • 网络
    • 数据包
    • 协议
      • TCP、UDP
  • 地址
  • 客户端和服务器
  • 套接字


网络、数据包和协议

    计算机网络通过通信通道互连的机器组成,通常把这些机器称为主机和路由器,主机是是运行应用程序(如 Web 浏览器)的计算机。路由器是其工作是将信息从一个通信通道中继或转发到另一个通信通道的机器。而通信通道是一种将字节序列从一个主机传送到另一个主机的技术。它可能包括了以太网,广播技术、拨号调制解调器连接或更复杂的技术。


网络

    路由器很重要,仅仅是因为将每台主机直接连接到其他每台主机是不切实际的。相反,一些主机连接到路由器,路由器连接到其他路由器,依此类推以形成网络

数据包

    我们可以通过网络发送一些信息,这些信息是由程序构造和解释的字节序列。在计算机网络的上下文中,这些字节序列通常称为数据包。数据包包含网络用于执行其工作的控制信息,有时还包括用户数据。

协议

    协议是关于通过通信程序交换的数据包及其含义的协议。协议说明数据包的结构(例如,目标信息在数据包中的位置和大小)以及如何解释信息。协议通常旨在使用给定的功能解决特定问题。
   实现一个有用的网络需要解决大量问题,为了保持可管理和模块化,设计了不同的协议来解决不同的问题集。而大名鼎鼎的TCP/IP就是这样一种解决方案集合,也叫协议套件。TCP/IP 系列中的主要协议是 Internet 协议 (IP)、传输控制协议 (TCP) 和用户数据报协议 (UDP)。
在这里插入图片描述

图1

    图1显示了主机和路由器中的协议、应用程序和套接字 API 之间的关系,以及从一个应用程序(使用 TCP)到另一个应用程序的数据流。
    在TCP/IP中,底层由底层通信组成,例如以太网或拨号调制解调器连接。这些通道由网络层使用,网络层处理将数据包转发到目的地的问题(即路由器的作用)。TCP/IP 系列中的单个网络层协议是 Internet 协议;它解决了使任意两台主机之间的通道和路由器序列看起来像单个主机到主机通道的问题。
    Internet协议提供数据报服务:每个数据包都由网络独立处理和传递,就像通过邮政系统发送的电报或包裹一样。每个 IP 数据包都必须包含其目的地的地址,就像您邮寄的每个包裹都是寄给某人的一样。

TCP、UDP

     IP之上的层称为传输层。它提供两种协议之间的选择:TCP和UDP。每个 IP 都建立在 IP 提供的服务之上,但它们以不同的方式提供不同类型的通道,这些通道由具有不同需求的应用程序协议使用。TCP和UDP有一个共同的功能:寻址。
    TCP 和 UDP 都使用称为端口号的地址,以便可以识别主机中的应用程序。它们被称为端到端传输协议,因为它们将数据从一个程序一直传输到另一个程序。TCP 旨在检测 IP 提供的主机到主机通道中可能发生的丢失、重复和其他错误,并从中恢复。TCP 提供了一个可靠的字节流通道,因此应用程序不必处理这些问题。它是一个面向连接的协议:在使用它进行通信之前,两个程序必须首先建立 TCP 连接,这涉及在两台通信计算机上的 TCP 实现之间完成握手消息的交换。UDP 不会尝试从 IP 遇到的错误中恢复;它只是扩展了 IP 尽力而为的数据报服务。因此在使用UDP的应用程序要准备好处理丢失、重新排序等问题。
   &nbsp总得来说TCP是一种安全可靠的传输协议,而UDP是一种快速但可能会丢失数据等错误的传输协议。

地址

    邮寄信件时需要收件人的地址。同样,在一个程序与另一个程序通信之前,它必须告诉网络在哪里可以找到另一个程序。在TCP/IP中,也需要这样的地址信息,地址由两部分构成:IP地址和端口号。
    IP地址是32位二进制数。我们通常将它们显示为一个由句点分隔的四个十进制数字的字符串(例如,10.1.2.3);这称为点分四边形表示法。点分四元组字符串中的四个数字表示 IP地址的四个字节的内容,因此每个数字都是介于 0 和 255 之间的数字。
    如果说IP地址是酒店地址,端口号就是酒店的房间号,两个者组合则可以精准得找到你。端口号是 16 位无符号二进制数,因此每个端口号都在 1 到 65,535 的范围内(保留 0)

客户端和服务器

    客户端程序启动通信,而服务器程序被动等待然后响应与其联系的客户端。
     一旦建立连接,服务器和客户端之间的区别就会消失。

套接字

套接字是一种抽象,应用程序可以通过它发送和接收数据,其方式与打开的文件允许应用程序将数据读写到稳定存储的方式大致相同。目前 TCP/IP 中的主要套接字类型是流套接字和数据报套接字。流套接字使用 TCP 作为端到端协议(底层有 IP),从而提供可靠的字节流服务。数据报套接字使用 UDP(同样,端到端,底层为 IP),因此提供尽力而为的数据报服务,应用程序可以使用该服务发送长度高达 65,500 字节的单个消息。其他协议套件也支持 Stream 和 Datagram 套接字,

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

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

相关文章

决战Linux操作系统

前言: 你是否也曾经为Linux所困扰过,在网上找的资料零零散散,是否学完Linux后还是懵懵懂懂,别怕,这篇博客是博主精心为你准备的,现在,就让我们一起来走进Linux的世界,决战Linux&…

一文详解数据库范式

背景 在开发中,我们经常需要考虑如何设计合适的表结构,而则往往需要考虑数据库的范式。数据库的三范式(3NF)是数据库设计过程中用来减少数据冗余和提高数据一致性的重要规则。它们分别是第一范式(1NF)、第二…

oracle数据坏块处理(一)-通过rman备份修复

表有坏块时,全表查询会报错: 这时候如果有前面正常的rman备份,那么我们就可以通过rman备份直接对数据文件块做恢复 先对数据文件做个逻辑检查: RMAN> backup check logical VALIDATE DATAFILE EXB_DATA/exb/datafile/cuteinf…

C#中Assembly3个获取路径的方法

在C#中,经常要获取路径 ,可以通过Assembly的三个重载方法来获取,如下所示这三个分别是GetCallingAssembly、GetEntryAssembly和GetExecutingAssembly。 string tmpEntryPath Assembly.GetEntryAssembly().Location;string tmpExeasmPath As…

STM32CubeIDE使用ADC采用DMA重大BUG

问题描述 STM32CubeIDE 1.8.0问题 大牛攻城狮最近调试STM32L151CBT6。由于项目上使用该款芯片做控制电源使用,其中涉及到多路ADC的数据采样。使用STM32CubeIDE 1.8.0版本详细如下图所示 这里大概率是STM32CubeMX版本太低了,从图上看才是6.4.0 注意这里…

五、UI弹窗提示

一、制作弹窗UI 二、创建脚本 1、继承WindowRoot(UI基类) 获取UI上面的组件 2、初始化 将这个文本失活 3、写一个提示出现的方法 这个派生类中,继承了基类的两个方法,设置显示和设置文本 对应基类的这两个方法 将动画赋值给动…

25.1 降低采集资源消耗的收益和无用监控指标的判定依据

本节重点介绍 : 降低采集资源消耗的收益哪些是无用指标,什么判定依据 通过 grafana的 mysql 表获取所有的 查询表达式expr通过 获取所有的prometheus rule文件获取所有的 告警表达式expr通过 获取所有的prometheus 采集器接口 获取所有的采集metrics计算可得到现在…

机器学习、深度学习评价指标汇总:TP、TN、FP、FN、AP、mAP、IoU、mAP@3、Prec@10、 Acc@10

系列文章目录 文章目录 系列文章目录一、真正例(True Positive)、假正例(False Positive)、真负例(True Negative)和假负例(False Negative)是评估分类模型性能的重要概念。1. 定义2…

前端学习-css的元素显示模式(十五)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 什么是元素显示模式 块元素 常见的块元素 块元素的特点 注意 行内元素 行内元素的特点 注意 行内块元素 行内块元素的特点 元素显示模式的转换 语法格…

MySQL 删除数据库

1.使用命令行删除一个数据库 1.1 首先登陆进入 MySQL 操作界面,命令如下: 命令 : mysql -utest -p;1.2 登陆成功之后可以使用如下命令查看当前已有数据库: 命令 : SHOW DATABASES; 执行结果如下图: 如图所示当前已包含 MySQL 系统数据库和…

盛元广通化学实验室样品LIMS管理系统

盛元广通化学实验室样品LIMS管理系统旨在提高实验室样品管理的效率、准确性和可追溯性。通过自动化和智能化的手段,系统能够简化样品管理流程,减少人为错误,确保样品的安全性和完整性。样品管理的具体实施方法包括样品接收与登记、样品储存与…

「Ubuntu」文件权限说明(drwxr-xr-x)

我们在使用Ubuntu 查看文件信息时,常常使用 ll 命令查看,但是输出的详细信息有些复杂,特别是 类似与 drwxr-xr-x 的字符串,在此进行详细解释下 属主:所属用户 属组:文件所属组别 drwxr-xr-x 7 apps root 4…

基于SSM的商场鞋店管理系统的设计与实现

文未可获取一份本项目的java源码和数据库参考。 题目简介: 服装鞋帽在我国的国民经济的发展中有着重要的地位,是发展规模较为宏大的行业。随着我国制鞋企业的发展和规模的扩大,经营区域分散,传统的管理模式严重制约了企业的快速…

非洲秃鹫算法(AVOA)的MATLAB代码复现

目录 1 非洲秃鹫算法优化BP神经网络代码复现 2 非洲秃鹫算法优化支持向量机代码复现 3 非洲秃鹫算法优化长短期记忆神经网络代码复现 1 非洲秃鹫算法优化BP神经网络代码复现 1)单输出回归预测:单输出回归预测:非洲秃鹫算法优化BP神经网络…

华为Eth-trunk链路聚合加入到E-trunk实现跨设备的链路聚合

一、适用场景(注:e-trunk与eth-trunk是2个不同的概念) 1、企业中有重要的server服务器业务不能中断的情况下,可将上行链路中的汇聚交换机,通过eth-trunk链路聚合技术,实现链路故障后,仍有可用的…

灵当CRM data/pdf.php 任意文件读取漏洞复现

0x01 产品简介 灵当CRM是一款专为中小企业打造的智能客户关系管理工具,由上海灵当信息科技有限公司开发并运营。广泛应用于金融、教育、医疗、IT服务、房地产等多个行业领域,帮助企业实现客户个性化管理需求,提升企业竞争力。无论是新客户开拓、老客户维护,还是销售过程管…

vue3 高德地图标注(飞线,呼吸点)效果

装下这两个 npm 忘了具体命令了&#xff0c;百度一下就行 “loca”: “^1.0.1”, “amap/amap-jsapi-loader”: “^1.0.1”, <template><div id"map" style"width: 100%;height: 100%;"></div> </template><script setup> …

Cesium 区域高程图

Cesium 区域高程图 const terrainAnalyse new HeightMapMaterial({viewer,style: {stops: [0, 0.05, 0.5, 1],//颜色梯度设置colors: [green, yellow, blue , red],}});

NVIDIA Bluefield DPU上的启动流程4个阶段分别是什么?作用是什么?

文章目录 Bluefield上的硬件介绍启动流程启动流程&#xff1a;eMMC中的两个存储分区&#xff1a;ATF介绍ATF启动的四个阶段&#xff1a; 四个主要步骤&#xff1a;各个阶段依赖的启动文件 一次烧录fw失败后的信息看启动流程综述 Bluefield上的硬件介绍 本文以Bluefield2为例&a…

计算机是如何输入存储输出汉字、图片、音频、视频的

计算机是如何输入存储输出汉字、图片、音频、视频的 为了便于理解&#xff0c;先了解一下计算机的组成。 冯诺依曼计算机的五大组成部分。分别是运算器、控制器、存储器、输入设备和输出设备。参见下图&#xff1a; 一、运算器 运算器又称“算术逻辑单元”&#xff0c;是计算…