网络编程先导知识

news2024/10/7 18:28:51

目录

1.什么是网络协议

2.什么是Socket

 Socket主要类型

3.C/S和B/S架构

4.网络字节序和主机字节序

5.局域网和广域网

6.IP地址和端口的概念


1.什么是网络协议

        为了在计算机网络中做到有条不紊地交换数据,就必须遵守一些事先约定好的规则。这些规则明确规定了所交换的数据的格式以及有关的同步问题,这些为进行中的数据交换而建立的规则、标准或约定称为网络协议。

        网络协议主要由以下三个要素组成:

                1.语法:即数据与控制信息的结构或格式

                2.语义:即需要发出何种控制信息,完成何种动作以及做出何种响应

                3.同步:即事件实现顺序的详细说明

2.什么是Socket

        Socket是一套用于不同主机间通信的API, 它可以看成是两个网络应用程序进行通信时,各自通信连接中的端点,这是一个逻辑上的概念。它是网络环境中进程间通信的API(应用程序编程接口),也是可以被命名和寻址的通信端点,使用中的每一个套接字都有其类型和一个与之相连进程。通信时其中一个网络应用程序将要传输的一段信息写入它所在主机的 Socket中,该 Socket通过与网络接口卡(NIC)相连的传输介质将这段信息送到另外一台主机的 Socket中,使对方能够接收到这段信息。 Socket是由IP地址和端口结合的,提供向应用层进程传送数据包的机制。
 

 Socket主要类型:


流套接字(SOCK_STREAM)
        流套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复送,并按顺序接收。流套接字之所以能够实现可靠的数据服务,原因在于其使用了传输控制协议,即TCP(The Transmission Control Protocol)协议 。
数据报套接字(SOCK_DGRAM)
        数据报套接字提供一种无连接的服务。该服务并不能保证数据传输的可靠性,数据有可能在传输过程中丢失或出现数据重复,且无法保证顺序地接收到数据。数据报套接字使用UDP( User DatagramProtocol)协议进行数据的传输。由于数据报套接字不能保证数据传输的可靠性,对于有可能出现的数据丢失情况,需要在程序中做相应的处理 。
原始套接字(SOCK_RAW)
        原始套接字与标准套接字(标准套接字指的是前面介绍的流套接字和数据报套接字)的区别在于:原始套接字可以读写内核没有处理的IP数据包,而流套接字只能读取TCP协议的数据,数据报套接字只能读取UDP协议的数据。因此,如果要访问其他协议发送的数据必须使用原始套接。

3.C/S和B/S架构

        CS即Client/Server(客户机/服务器)结构,C/S结构在技能上非常成熟,它的重要特征就是交互性强、拥有安全的存取形式、网络通信数量低、响应速度快、利于处置大量数据。可是这个结构的程序就是针对性开发,变更不够灵活,维护与管理的难度较大。常常只局限在小型局域网,不利于扩展。而且,因为这个结构的每台客户机全部须要安装相对应的客户端程序,分布功能弱并且兼容性差,不可以完成迅速部署安装与配置,因为这样缺少通用性,拥有比较大的局限性。请求拥有肯定专业水准的技能人员去结束。
        BS即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器(Server),而客户端选用浏览器(Browse)运行软件。B/S结构应用程序相对于传统的C/S结构应用程序就是一个特别大的进步。 B/S结构的重要特征就是分布性强、维护方便、开发简单并且共享性强、总体拥有费用低。但数据安全性问题、对服务器需要过高、数据传输速度慢、软件的个性化特征明显减少,这些缺点就是有目共睹的,难以完成传统形式下的特殊功能请求。比如通过浏览器实行大量的数据输入或实行报表的应答、专用性打印输出全部相对比较困难与不便。另外,完成复杂的应用构造有较大的困难。
两者重要优缺点如下:
CS架构:
(1)优点:
  ●可以足够表现客户端PC的处置才能,很多工作能够在客户端处置以后再提交给服务器,于是CS客户端响应速度快。
  ●操作界面漂亮、形式多样,能够足够满足客户自己的个性化要求。
  ●C/S结构的管理信息系统拥有比较强的事务处置才能,可以完成复杂的业务过程。
  ●安全性能能够非常容易确保,C/S通常面向相比固定的用户群,程序越发注重过程,它能够对权限实行多层次校验,提供了更安全的存取形式,对信息安全的控制才能非常强。通常高度机密的信息系统选用C/S结构适宜。
(2)缺点:
  ●须要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不可以完成迅速部署安装与配置。
  ●兼容性差,关于不一样的开发工具,拥有比较大的局限性。假如选用不一样工具,须要重新改写程序。
  ●开发、维护费用较高,须要拥有肯定专业水准的技术人员才可以结束,发生一次升级,就全部客户端的程序全部须要更改。。
  ●用户群固定。因为程序须要安装就可使用,因为这样不符合面向一些不可知的用户,于是实用面窄,常常用来局域网中。
BS架构:
(1)优点:
  ●分布性强,客户端零维护。只需有网络、浏览器,能够随时随地实行查询、浏览等业务处理。
  ●业务扩展简单便利,通过添加网页就可以添加服务器功能。
  ●维护简单便利,只须要更改网页,就可以完成全部用户的同步更新。
  ●开发简单,共享性强。
(2)缺点:
  ●个性化特征明显减少,没办法完成拥有个性化的功能要求。
  ●在跨浏览器上,BS架构不尽如人意。
  ●客户端服务器端的交互就是请求-响应形式,常常动态刷新页面,响应速度明显减少(Ajax能够肯定程度上处理这个问题)。没办法完成分页显示,给数据库访问导致较大的压力。
  ●在速度与安全性上须要花费超大的设计费用。
  ●功能弱化,难以完成传统形式下的特殊功能需要。

4.网络字节序和主机字节序

        网络字节序,也称为大端字节序,是指在多字节数据存储时,字节序列的高位字节存储在内存的低地址处,而低位字节存储在高地址处。这种存储方式符合人的阅读习惯,例如数字"1234"在大端字节序中的存储方式为"\x12\x34",先存储高位数字"1",后存储低位数字"4"。

        主机字节序,也称为小端字节序,是指在多字节数据存储时,字节序列的低位字节存储在内存的低地址处,而高位字节存储在高地址处。例如数字"1234"在小端字节序中的存储方式为"\x34\x12",先存储低位数字"4",后存储高位数字"1"。

具体采用哪种字节序则取决于计算机的架构和处理器的设计。在现代计算机中,常用的是小端字节序。

5.局域网和广域网

        局域网(Local Area Network,LAN)是指在一个相对较小的地域范围内的计算机网络,比如一个公司、学校或家庭内部使用的网络。局域网通常由多台计算机、服务器和其他网络设备组成,并通过物理连接或者无线电波连接在一起。

        广域网(Wide Area Network,WAN)则是指覆盖更大地域范围的计算机网络,通常在不同的地域之间通过计算机、路由器、通讯线路等设备连接起来,比如跨城或跨国的网络。广域网通常由多个局域网连接起来,能够实现不同地域之间的数据交换和通信。

6.IP地址和端口的概念

        IP地址是一个标识网络接口的数字地址,它用来标识网络上的设备,并且能够使这些设备进行通讯。IP地址通常由32位二进制数字组成,通常被表示为四个用点分隔的十进制数。例如,192.168.0.1就是一个常见的IP地址。

        端口是一种与IP地址组合使用的数字,它用于标识特定的应用程序或服务。端口号通常是16位的数字,可以取值范围从0到65535。其中,0到1023的端口号是已经被标准化的端口号,用于一些常见的服务和应用程序,例如HTTP(80端口)和FTP(21端口)等。剩下的端口号则可以被应用程序使用。当两个设备进行网络通讯时,需要使用IP地址和端口号来确定数据的发送和接收方,并且保证数据能够准确地被传输。

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

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

相关文章

【P30】JMeter 事务控制器(Transaction Controller)

文章目录 一、事务控制器(Transaction Controller)参数说明二、测试计划设计2.2.1、勾选 Generate parent sample2.2.1、勾选 Include duration of timer and pre-post processors in generated sample 一、事务控制器(Transaction Controlle…

Ubuntu22.04安装MySQL8

在 Ubuntu 22.04 上安装 MySQL 8,可以按照以下步骤进行: 安装MySQL需要在root用户下 sudo su -更新软件包列表: sudo apt update安装 MySQL 8: sudo apt install mysql-server安装过程中会提示设置 MySQL root 用户的密码。 确认…

STL-函数对象

目录 一、函数对象 1、基本概念 2、使用 二、谓词 1、基本概念 2、一元谓词 3、二元谓词 三、内建函数对象 1、基本概念 2、算数仿函数 3、关系仿函数 4、逻辑仿函数 一、函数对象 1、基本概念 概念: ①重载函数调用操作符的类,其对象常称…

关于Sql 中 on和where的粗略理解

先看到题:统计复旦用户8月练题情况 牛客中的 原地址 通过这个题我们来探讨where和on 描述 题目: 现在运营想要了解复旦大学的每个用户在8月份练习的总题目数和回答正确的题目数情况,请取出相应明细数据,对于在8月份没有练习过的…

【Ansys Fluent】All cell zones in Fluent may be automatically set to Fluid.

一、问题背景 在ansys meshing中保存划分完网格之后的结果时,弹出警报——All cell zones in Fluent may be automatically set to Fluid. 如果你忽视这个警报,打开fluent时。 接着就会将你想要设置为solid的区域识别成flow,从而生成一些错…

docker4_创建容器

docker4_搭建hadoop集群 1集群规划进入容器base_centos 2创建容器创建三个docker容器,分别作为三个结点(注意端口的设置)gpb_hdp_node3 容器gpb_hdp_node2 容器删除容器查看已经创好的容器gpb_hdp_node1容器(最后创建)问题1:容器名和 hostnam…

代码随想录算法训练营第十六天 | 104.二叉树的最大深度 559.n叉树的最大深度,111.二叉树的最小深度,222.完全二叉树的节点个数

代码随想录算法训练营第十六天 | 104.二叉树的最大深度 559.n叉树的最大深度,111.二叉树的最小深度,222.完全二叉树的节点个数 1.1 104.二叉树的最大深度 思路: 采用后序遍历确定递归函数的参数和返回值,确定终止条件&#xff…

AJAX 教程---菜鸟教程

文章目录 AJAX 简介AJAX 实例XHR 创建对象XHR 请求向服务器发送请求GET 还是 POST?GET 请求POST 请求url - 服务器上的文件 XHR 响应responseText 属性responseXML 属性 XHR readyState使用回调函数 AJAX 简介 AJAX 是一种在无需重新加载整个网页的情况下&#xff0…

CTR预估之DNN系列模型:FNN/PNN/DeepCrossing

前言 在上一篇文章中 CTR预估之FMs系列模型:FM/FFM/FwFM/FEFM,介绍了FMs系列模型的发展过程,开启了CTR预估系列篇章的学习。FMs模型是由线性项和二阶交互特征组成,虽然有自动学习二阶特征组合的能力,一定程度上避免了人工组合特征…

【Springboot】集成百度地图实现定位打卡功能

目录 第一章 需求分析 第二章 概要设计 第三章 详细设计 3.1 环境搭建 3.1.1 获取百度地图ak 3.1.2 创建springboot项目 3.2 配置application.properties 3.3 配置pox.xml 3.4 创建定位接口 3.5 创建前端页面 3.6 映射静态文件 第一章 需求分析 如图,当…

BERT论文核心点记录

BERT适合分类任务(整段分类后者词分类),对生成任务不友好 使用BERT的方法:只需要在预训练好的BERT基础上新增一个输出层,然后用标记好的数据进行有监督微调 Bidirectional Encoder双向Encoder实质上就是指Transforme…

【分享】用java和pathon实现小红书(Red Booklet)客服自动回复功能、技术实现分析

技术栈:python、java、android,进程管理、socket通信 客户需求: 客户需要在Red Booklet平台做一个可以24小时自动回复用户私信、评论、回关用户等行为的客服软件。他说他们公司有50个小红书号,十几个客服,急需一款代…

正则表达式和文本三剑客题型练习

​ 1、显示/etc/passwd文件中以bash结尾的行; 解释:使用 grep 工具来搜索文件 /etc/passwd 中匹配模式 bash$ 的行。bash$ 是一个正则表达式,其中 $ 表示行结尾。因此,bash$ 匹配以 bash 结尾的行。 grep bash$ /etc/passwd 运…

四元数转换为欧拉角(多解问题)

车辆行驶状态估计(4)中车辆横摆角信息在顺时针转向时存在明显的错误,进行记录输出 2023-05-25-aft02.txt 四元数: -0.00201210.00115721 -0.0005967610.999997 欧拉角:3.14039四元数: -0.00170584 -0.00…

RabbitMQ(2)、MQ的问题、消息可靠性

一、MQ的问题 基于上篇存在的问题 1. 问题说明 MQ在分布式项目中是非常重要的, 它可以实现异步、削峰、解耦,但是在项目中引入MQ也会带来一系列的问题。 今天我们要解决以下几个常见的问题: 消息可靠性问题:如何确保消息被成功送…

MySQL — SQL 优化

文章目录 SQL 优化一、插入数据二、主键优化2.1 数据组织方式2.2 页分裂2.3 页合并2.4 主键设计原则 三、 Order by 优化3.0 排序方式讲解3.1 升序/降序联合索引结构图示3.2 总结 四、Group by优化五、limit优化六、 count优化七、update优化七、update优化 SQL 优化 一、插入…

【MySQL 数据库】5、存储引擎

目录 一、MySQL 体系结构二、存储引擎简介三、InnoDB 存储引擎四、MyISAM五、Memory六、三大存储引擎比较七、存储引擎的选择 一、MySQL 体系结构 连接层 最上层是一些客户端和链接服务,包含本地sock 通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主…

07:MYSQL----多表查询

目录 1:多表查询概述 2:多表查询分类 3:内连接 3:外连接 4:自连接 5:联合查询-union,union all 6:子查询 1:多表查询概述 select * from emp , dept; emp:表中有6条数据, dept表中有5条数据只查询出来的数据为:30条 概述:指从多张表中查询数据 笛卡尔积…

在vite或者vue-cli中使用.env[mode]环境变量

在项目中总会遇到一些默认的配置,需要我们配置到静态文件中方便我们去获取,这时候就可以用到这个.env环境变量文件,在cli创建的项目中顶层的nodejs会有一个process对象,这个对象可以根据不同的环境获取不同的环境配置文件,但是vite中获取变量的方式不一样。 创建变量文件.env.…

如何编写接口自动化框架系列之requests详解(三)

目录 1.http协议 2.requests介绍 3.requests的主要功能 3.requests的主要功能 3.1 场景1-常用方法 3.2 场景2-通用方法 3.3 场景3-cookies认证方式 4.requests 在项目中的实践 4.1 在接口层实现一个接口 4.2 在测试用例层调用 4.3 项目总结 本文是接口自动化测试框架…