当前位置: 首页 > news >正文

网络编程基础(1)

目录

网络编程解决是跨主机的进程间通讯

1、网络

2、互联网

3、ip地址

(1)ipv4:

 (2)ipV6:1

(3)IP地址的组成:

(4)Linux查看IP地址:ifconfig

4、mac地址

5、ping  Ip地址

6、端口(软件层面)

(1)查看端口的命令 netstat -natp

7、套接字地址

8、协议

9、tcp协议

10、网络分层模型

11、数据链路层

12、网络层

13、传输层

  (1)TCP协议(传输控制协议)

(2)UDP协议(用户数据报协议)

(3)SCTP协议(流控制传输协议)

14、应用层

15、网络应用程序通讯流程

16、字节序列

17、网络编程头文件


网络编程解决是跨主机的进程间通讯

1、网络

把不同的主机链接起来构成了网络

简单网络示意图

2、互联网

把网络和网络连接起来就是互联网

3、ip地址

IP地址(我在哪里):在网络中需要通讯就需要把网络标识出来

给因特网上的每一主机(路由器)的每一个接口分配的一个在全世界范围内唯一的标识符

(1)ipv4:

    四个字节,每个字节8位,共32位,用十进制表示

 (2)ipV6:1

    28位,用:分成8段,每个段16位,用4个16进制数表示

(3)IP地址的组成:

IP地址组成

有了IP地址寻址特别方便

IP地址不是唯一的,会随着网络环境的变化而变化 

(4)Linux查看IP地址:ifconfig

4、mac地址

Mac地址(我是谁):计算的网卡固化的地址,物理地址,硬件地址,精确定位的一个信息,网络设备的厂家直接烧在网卡上的,理论上mac地址是唯一的,但是因为mac地址可以通过程序修改,所以也又可能会重复,只要不手动更改,他就是全世界唯一的,48位。

5、ping  Ip地址

查看是否联通

6、端口(软件层面)

主机上应用程序的一个代号,表示的是一个进程,通讯是进程之间的

(1)查看端口的命令 netstat -natp

7、套接字地址

套接字对外提供的是一个进程间通信的能力(跨越主机),不跨主机也能做

ip(ip地址)+port(端口)

8、协议

规定,共同遵守的一个规则,在什么场合下使用什么样的协议

9、tcp协议

面向连接 可靠的流式服务

10、网络分层模型

OSI七层模型和tcp/ip协议族体系四层结构

11、数据链路层

数据链路层的主要功能:通过各种控制协议,将有差错的物理信通道变成无差错的、能可靠传输数据帧的数据链路层

12、网络层

实现数据包的选路和转发,通信的两台主机是不直接相连的,而是通过多个中间节点(路由器)连接的,网络层的任务就是选择这些中间节点,以确定两台主机之间的通信路径。

网络层最主要的是IP协议,IP协议根据数据包的IP地址来决定如何投递他,如果数据包不能直接发送给主机,ip协议就会为他找一个合适的路由器,将数据包交给路由器来转发,多次重复这一过程,数据包最终到达主机,或者因为发送失败而丢弃。

网络层另外一个很重要的协议是ICMP协议,他是IP协议的重要补充,主要用于检测网络连接

ip协议为上层协议提供无状态、无连接、不可靠的服务

无状态:通讯双方不同步传输数据的状态,所以IP数据的发送传输、接收都是相互独立、没有上下文关系的,缺点是无法处理乱序、重复的IP数据包。

无连接:IP通信双方都不长久的维持对方的任何信息,这样上层协议每次发送信息都得明确指明对方的IP地址

不可靠:IP协议不能保证数据报准确的到达接收端,他只是承诺尽最大努力

 13、传输层

传输层:为两台主机上的应用程序提供端到端的通信,与网络层使用的逐跳通信不同,传输层只关心起始端和目的端,而不在乎数据包的中转过程

传输层的主要协议有三个:TCP协议  UDP协议和SCTP协议

(1)TCP协议(传输控制协议)

为应用层提供可靠的面向连接的和基于流的服务,TCP协议使用超时重传,确认应答等方式来确保数据包被正确的发送至目的端,TCP协议是可靠的,使用TCP协议通讯的双方必须先建立TCP连接,并在内核中为该连接维持一些必要的数据结构,比如连接状态、读写缓冲区等,等通讯结束后,双方必须关闭连接以释放这些内核数据,TCP服务是基于流的,基于流的数据没有长度限制,他远远不断的从通讯的一端流向另外一端,发送端可以逐个字节的向数据流中写入数据,接收端也可以逐个字节的将他们读出。

(2)UDP协议(用户数据报协议)

与TCP协议完全相反,他为应用层提供不可靠、无连接,基于数据报的服务,UDP协议无法保证数据从发送端正确的传输到目的端,如果发送失败,UDP也只是通知应用程序发送失败,使用UDP协议,应用程序通常要自己处理数据确定、超时重传。UDP协议是无连接的,每次通讯都需要指定接收端的地址,基于数据报的服务是相对于基于流的服务来说的,每次UDP数据报都有一个长度,接收端必须以该长度为最小单位,将其内容一次性读出,否则数据将被截断

(3)SCTP协议(流控制传输协议)

为了在因特网上传输电话信号而设计的

14、应用层

应用层负责处理应用程序的逻辑

15、网络应用程序通讯流程

1、发送数据,从应用层到传输层

2、传输层在数据前面加上TCP/UDP的报头,再发送给网络层

3、网络层再添加自己的IP报头后,发送给数据链路层

4、数据链路层将数据封装成能够在网络中独立传输的数据单元,即数据帧(加帧头和帧尾),将数据帧通过网络传输给另外一台主机

5、从下到上依次拆包,送到应用层,得到数据

16、字节序列

大端、小端

大端为网络字节序列

17、网络编程头文件

#include<sys/socket.h>
#include<netinet/in.h>
#include <arpa/inet.h>

相关文章:

网络编程基础(1)

目录 网络编程解决是跨主机的进程间通讯 1、网络 2、互联网 3、ip地址 &#xff08;1&#xff09;ipv4: &#xff08;2&#xff09;ipV6:1 &#xff08;3&#xff09;IP地址的组成&#xff1a; (4)Linux查看IP地址&#xff1a;ifconfig 4、mac地址 5、ping Ip地址 6…...

Linux驱动开发(Day4)

思维导图&#xff1a; 字符设备驱动分步注册&#xff1a;...

LVS负载均衡群集部署(LVS-NAT模型实例)

一、集群 1.1集群的含义 Cluster&#xff0c;集群、群集,为解决某个特定问题将多台计算机组合起来形成的单个系统。 由多台主机构成&#xff0c;但对外只表现为一个整体。 1.2群集的三种类型 1.2.1负载均衡群集 LB&#xff1a; Load Balancing&#xff0c;负载均衡&#x…...

【仿写tomcat】五、响应静态资源(访问html页面)、路由支持以及多线程改进

访问html页面 如果我们想访问html页面其实就是将本地的html文件以流的方式响应给前端即可&#xff0c;下面我们对HttpResponseServlet这个类做一些改造 package com.tomcatServer.domain;import com.tomcatServer.utils.ScanUtil;import java.io.IOException; import java.io…...

stm32单片机/51单片机蜂鸣器不响(proteus模拟)

蜂鸣器不发生原因就1个&#xff1a;电压不够 所以需要提高蜂鸣器2端的电压&#xff1a;可以采用的方法有&#xff1a; 1提高蜂鸣器电阻&#xff0c;这样根据分压原理&#xff0c;可以提升蜂鸣器2段电压 2更改蜂鸣器的工作电压为更小的值&#xff0c;这个可以通过在proteus内…...

BERT、ERNIE、Grover、XLNet、GPT、MASS、UniLM、ELECTRA、RoBERTa、T5、C4

BERT、ERNIE、Grover、XLNet、GPT、MASS、UniLM、ELECTRA、RoBERTa、T5、C4 ELMOBERTERNIE![在这里插入图片描述](https://img-blog.csdnimg.cn/274e31d0f8274c748d05abe2ec65fc73.png)GroverXLNetGPTMASSUniLMELECTRARoBERTaT5C4ELMO BERT...

主机防护的重要性和方式

01 主机防护的重要性 主机防护是网络安全的重要组成部分。在互联网时代&#xff0c;网络攻击成为了一种常见的威胁&#xff0c;而主机防护则是保护计算机系统免受网络攻击的重要手段。 主机防护可以防范各种网络攻击&#xff0c;如病毒、木马、黑客攻击等&#xff0c;从而保…...

聚观早报 | 抢先体验阿维塔11座舱;本田和讴歌采用NACS充电标准

【聚观365】8月21日消息 抢先体验阿维塔11鸿蒙座舱 本田和讴歌采用特斯拉NACS充电标准 华为秋季新品发布会将于9月12日举行 iQOO Z8即将到来 三星Galaxy S24系列外观或更改 抢先体验阿维塔11鸿蒙座舱 当前&#xff0c;智能座舱成了各大巨头跑马圈地的重要领域。根据毕马威…...

思科计算机网络答案(包含第1~11章节)

第一章 1.在以下哪个场景中推荐使用 WISP? 选择一项: A.城市里的网吧 B.没有有线宽带接入的农村地区的农场 C.任何有多个无线设备的家庭 D.通过有线连接访问 Internet 的大厦公寓 2.一位员工希望以尽可能最安全的方式远程访问公司网络。 下列哪种网络特征将允许员工获得对…...

所见即所得,「Paraverse平行云」助力万间打造智能建造新图景

在城市建设行业中&#xff0c;数字化逐渐成为其主导力量。 新一代信息基础设施建设也迎来了新的里程碑。数据显示&#xff0c;截至今年&#xff0c;我国已全面推进城市信息模型&#xff08;CIM&#xff09;基础平台建设&#xff0c;为城市规划、建设管理提供了多场景应用的强大…...

AI图片处理功能演示

例如&#xff0c;这是一张不错的图片&#xff0c;但是有3只手。 我们可以选择有问题的区域&#xff0c;然后要求 niji 进行重新绘制。 根据我们选择的区域&#xff0c;我们可以以不同的方式修复结果。 创意修复 修复并不仅限于纠正错误。我们可以要求 niji 添加额外的元素&…...

CentOS系统环境搭建(六)——使用docker-compose安装redis

centos系统环境搭建专栏&#x1f517;点击跳转 关于Docker-compose安装请看CentOS系统环境搭建&#xff08;三&#xff09;——Centos7安装Docker&Docker Compose&#xff0c;该文章同样收录于centos系统环境搭建专栏。 Docker-compose安装redis 文章目录 Docker-compose安…...

个人论坛项目测试报告

目录 0.项目概述及部分测试用例展示 以下是部分测试用例&#xff1a; 进行一般的性能测试性能测试 1.摘要及版本修订记录 2.功能介绍 3.测试范围 3.1.功能性 3.2.可靠性 3.3.易用性 4.测试资源 4.1.人员介绍 4.2.测试环境 4.2.测试工具 5.测试策略 5.2.功能测试…...

一起来学shiny把(4)—调控控件进行输出

什么是shiny&#xff1f;Shiny是一个R包&#xff0c;可让您轻松地直接从 R 构建交互式 Web 应用程序&#xff08;应用程序&#xff09;。本系列是个长教程&#xff0c;带你由浅入深学习shiny。 上一节我们在文章《R语言系列教程—–一起来学shiny吧&#xff08;3&#xff09;》…...

VBIC卡管理系统设计与实现

摘要 IC卡管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 经过分析,我们使用 MICROSOFT公司的 …...

八种架构演进

日升时奋斗&#xff0c;日落时自省 目录 1、单机架构 2、应用数据分离架构 3、应用服务集群架构 4、读写分离/主从分离架构 5、冷热分离架构 6、垂直分库架构 7、微服务架构 8、容器编排架构 9、小结 1、单机架构 特征&#xff1a;应用服务和数据库服务器公用一台服务…...

商城-学习整理-高级-分布式事务(十九)

目录 一、本地事务1、事务的基本性质2、事务的隔离级别3、事务的传播行为4、SpringBoot 事务关键点 二、分布式事务1、为什么有分布式事务2、CAP 定理与 BASE 理论1、CAP 定理2、面临的问题3、BASE 理论4、强一致性、弱一致性、最终一致性 3、分布式事务几种方案1&#xff09;、…...

Java学习笔记(三):面向对象

文章目录 1.类与对象1.1 定义构造器1.2 定义成员变量1.3 定义方法1.4 static关键字 2. 面向对象的三大特征&#xff1a;封装、继承和多态2.1 封装2.2 继承2.2.1 子类重写父类的方法 2.3 多态 1.类与对象 类&#xff08;class&#xff09;和对象(object, 也被称为实例 instance…...

电商项目part02 电商后台多数据源

电商后台项目需要访问的数据源 多数据源方法&#xff08;读写分离&#xff09; 方法1&#xff1a;jdk自带的dynamicdatasource 方法2&#xff1a;Mybatis 方式 方法3&#xff1a;dynamicdatasource框架 <!--Druid连接池--><dependency><groupId>com.aliba…...

【C# 基础精讲】LINQ 基础

LINQ&#xff08;Language Integrated Query&#xff09;是一项强大的C#语言特性&#xff0c;它使数据查询和操作变得更加简洁、灵活和可读性强。通过使用LINQ&#xff0c;您可以使用类似SQL的语法来查询各种数据源&#xff0c;如集合、数组、数据库等。本文将介绍LINQ的基础概…...

ChatGPT成为工作工具,具体都应用在哪些地方?

Verified Market Research估计&#xff0c;到2030年&#xff0c;人工智能写作辅助软件市场将达到约65亿美元&#xff0c;复合年增长率为27%。生成式人工智能的浪潮正在席卷世界各地的营销部门。 Botco对美国1000名工作人员进行的调查发现&#xff0c;73%的人表示他们会利用生成…...

Shader学习(三)(片元着色器)

1、在片元着色器处理漫反射 // Upgrade NOTE: replaced _World2Object with unity_WorldToObjectShader "Custom/specularfragement" {properties{_sp("Specular",color) (1,1,1,1)_shiness("Shiness",range(1,64)) 8}SubShader{pass {tags{&…...

谷歌推出首款量子弹性 FIDO2 安全密钥

谷歌在本周二宣布推出首个量子弹性 FIDO2 安全密钥&#xff0c;作为其 OpenSK 安全密钥计划的一部分。 Elie Bursztein和Fabian Kaczmarczyck表示&#xff1a;这一开源硬件优化的实现采用了一种新颖的ECC/Dilithium混合签名模式&#xff0c;它结合了ECC抵御标准攻击的安全性和…...

前端常用的三种加密方式(MD5、base64、sha.js)

作为一名优秀的前端开发工程狮&#xff0c;保障用户的信息安全、密码义不容辞&#xff0c;废话不多说&#xff0c;由我来介绍三种日常开发中经常用到的加密方式。 一、MD5加密 介绍&#xff1a; MD5中文含义为信息-摘要算法5&#xff0c;就是一种信息摘要加密算法&#xff0c…...

alpine镜像时区设置

alpine镜像是一个完整的操作系统镜像&#xff0c;因为其小巧、功能完备的特点&#xff0c;非常适合作为容器的基础镜像。 如ubuntu、centos镜像动辄几百M的体积下&#xff0c;只有5M的alpine简直是一股清流。 当然alpine在维持体积小的情况下&#xff0c;必然牺牲一些东西。比…...

Java导入Excel,保留日期格式为文本格式

Java 读取Excel文件&#xff0c;防止日期格式变为数字 import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.*;import java.io.FileInputStream; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date;public cla…...

uploadifive php上传进度条插件 解决动态传参数问题

uploadifive默认只能在加载时,静态传递参数.如果想让用户输入参数.再动态读取.传到后端,是没有直接的办法的 效果图 但我们可以通过settings.formData 来修改配置的方式传参数,完整演示 <form id"file_form{$v.id}" style"display:none"><hr/>…...

Lombok生成的Getter和Setter的名称对于“eMail”或“xAxis”等属性存在大小写转换异常

问题 最新开发中&#xff0c;遇到一个字段映射问题。我们先看问题案例&#xff1a; 明明代码中第二个字母是大写&#xff0c;结果测试接口时发现变成了小写字母。 分析 通过网上查询发现&#xff0c;这属于Lombok的bug。而且早在2015年就有人在GitHub上提出了issues。 Names o…...

Redis基础概念和数据类型详解

目录 1.什么是Redis&#xff1f; 2.为什么要使用Redis&#xff1f; 3.Redis为什么这么快&#xff1f; 4.Redis的使用场景有哪些&#xff1f; 5.Redis的基本数据类型 5.1 5种基础数据类型 5.1.1 String字符串 5.1.2 List列表 5.1.3 Set集合 5.1.4 Hash散列 5.1.5 Zset有序集…...

C语言之extern “C“详解与使用方法

前言 在你工作过的系统里&#xff0c;不知能否看到类似下面的代码。 这好像没有什么问题&#xff0c;你应该还会想&#xff1a;“嗯⋯是啊&#xff0c;我们的代码都是这样写的&#xff0c;从来没有因此碰到过什么麻烦啊&#xff5e;”。 你说的没错&#xff0c;如果你的头文件…...

成都网站建制作/重庆seo代理计费

当需要查询的条目数太多&#xff0c;一页显示不全&#xff0c;需要分页提交sql请求 语法&#xff1a; SELECT 查询列表 FROM 表 LIMIT offset,size;offset代表的是起始的条目索引&#xff0c;也可以省略&#xff0c;默认从0开始 size代表的是显示的条目数 案例&#xff1a;查询…...

韶关企业网站建设公司/精准营销名词解释

回到目录 一些概念 在大叔框架里总觉得缺点什么&#xff0c;在最近的项目开发中&#xff0c;终于知道缺什么了&#xff0c;分布式文件存储组件&#xff0c;就是缺它&#xff0c;呵呵&#xff0c;对于分布式文件存储来说&#xff0c;业界比较公认的是FastDFS组件&#xff0c;它自…...

全屋定制十大名牌排行2023/北京seo推广外包

在上一篇文章里&#xff0c;我介绍了如何对一个简单的Activity进行单元测试。&#xff08;参见上一篇&#xff09;我们为Activity提供了两个参数LastName和FirstName&#xff0c;Activity会根据这两个参数生成一个Email地址。在上一篇中&#xff0c;我们输入了两个“合法”的参…...

网站建设 鼠标/东莞seo建站哪家好

事件类型: 错误 事件来源: VsJITDebugger 事件种类: 无 事件 ID: 4096 日期: 2012-11-16 事件: 5:10:19 用户: NT AUTHORITY\SYSTEM 计算机: MT-9808 描述:mysqld-nt.exe [9148] 中发生未处理的 win32 异常。 对此异常的实时调试失败&…...

包头北京网站建设/淘宝seo优化是什么意思

例如&#xff1a;数据库中的STATE字段对应的数字是1与0&#xff0c;当要将1显示在gridview上&#xff0c;显示为‘是’&#xff0c;0显示为‘否’&#xff0c;可以通过下面的语句实现。BZZT是STATE的别名&#xff0c;gridview绑定的时候(fieldname)&#xff0c;要绑定到BZZT上。…...

建站培训/今日军事新闻头条

2019年高考平行志愿录取规则及填报技巧2019年高考即将开启&#xff0c;接下来就是填志愿的事了。高考平行志愿录取规则是“分数优先&#xff0c;遵循志愿”&#xff0c;到2018年&#xff0c;全国绝大部分省市已经实行平行志愿(少部分仅在一本实施平行志愿)&#xff0c;只有几个…...