网络编程基础(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地址 (1)ipv4: (2)ipV6:1 (3)IP地址的组成: (4)Linux查看IP地址:ifconfig 4、mac地址 5、ping Ip地址 6…...
Linux驱动开发(Day4)
思维导图: 字符设备驱动分步注册:...
LVS负载均衡群集部署(LVS-NAT模型实例)
一、集群 1.1集群的含义 Cluster,集群、群集,为解决某个特定问题将多台计算机组合起来形成的单个系统。 由多台主机构成,但对外只表现为一个整体。 1.2群集的三种类型 1.2.1负载均衡群集 LB: Load Balancing,负载均衡&#x…...
【仿写tomcat】五、响应静态资源(访问html页面)、路由支持以及多线程改进
访问html页面 如果我们想访问html页面其实就是将本地的html文件以流的方式响应给前端即可,下面我们对HttpResponseServlet这个类做一些改造 package com.tomcatServer.domain;import com.tomcatServer.utils.ScanUtil;import java.io.IOException; import java.io…...
stm32单片机/51单片机蜂鸣器不响(proteus模拟)
蜂鸣器不发生原因就1个:电压不够 所以需要提高蜂鸣器2端的电压:可以采用的方法有: 1提高蜂鸣器电阻,这样根据分压原理,可以提升蜂鸣器2段电压 2更改蜂鸣器的工作电压为更小的值,这个可以通过在proteus内…...
BERT、ERNIE、Grover、XLNet、GPT、MASS、UniLM、ELECTRA、RoBERTa、T5、C4
BERT、ERNIE、Grover、XLNet、GPT、MASS、UniLM、ELECTRA、RoBERTa、T5、C4 ELMOBERTERNIEGroverXLNetGPTMASSUniLMELECTRARoBERTaT5C4ELMO BERT...
主机防护的重要性和方式
01 主机防护的重要性 主机防护是网络安全的重要组成部分。在互联网时代,网络攻击成为了一种常见的威胁,而主机防护则是保护计算机系统免受网络攻击的重要手段。 主机防护可以防范各种网络攻击,如病毒、木马、黑客攻击等,从而保…...
聚观早报 | 抢先体验阿维塔11座舱;本田和讴歌采用NACS充电标准
【聚观365】8月21日消息 抢先体验阿维塔11鸿蒙座舱 本田和讴歌采用特斯拉NACS充电标准 华为秋季新品发布会将于9月12日举行 iQOO Z8即将到来 三星Galaxy S24系列外观或更改 抢先体验阿维塔11鸿蒙座舱 当前,智能座舱成了各大巨头跑马圈地的重要领域。根据毕马威…...
思科计算机网络答案(包含第1~11章节)
第一章 1.在以下哪个场景中推荐使用 WISP? 选择一项: A.城市里的网吧 B.没有有线宽带接入的农村地区的农场 C.任何有多个无线设备的家庭 D.通过有线连接访问 Internet 的大厦公寓 2.一位员工希望以尽可能最安全的方式远程访问公司网络。 下列哪种网络特征将允许员工获得对…...
所见即所得,「Paraverse平行云」助力万间打造智能建造新图景
在城市建设行业中,数字化逐渐成为其主导力量。 新一代信息基础设施建设也迎来了新的里程碑。数据显示,截至今年,我国已全面推进城市信息模型(CIM)基础平台建设,为城市规划、建设管理提供了多场景应用的强大…...
AI图片处理功能演示
例如,这是一张不错的图片,但是有3只手。 我们可以选择有问题的区域,然后要求 niji 进行重新绘制。 根据我们选择的区域,我们可以以不同的方式修复结果。 创意修复 修复并不仅限于纠正错误。我们可以要求 niji 添加额外的元素&…...
CentOS系统环境搭建(六)——使用docker-compose安装redis
centos系统环境搭建专栏🔗点击跳转 关于Docker-compose安装请看CentOS系统环境搭建(三)——Centos7安装Docker&Docker Compose,该文章同样收录于centos系统环境搭建专栏。 Docker-compose安装redis 文章目录 Docker-compose安…...
个人论坛项目测试报告
目录 0.项目概述及部分测试用例展示 以下是部分测试用例: 进行一般的性能测试性能测试 1.摘要及版本修订记录 2.功能介绍 3.测试范围 3.1.功能性 3.2.可靠性 3.3.易用性 4.测试资源 4.1.人员介绍 4.2.测试环境 4.2.测试工具 5.测试策略 5.2.功能测试…...
一起来学shiny把(4)—调控控件进行输出
什么是shiny?Shiny是一个R包,可让您轻松地直接从 R 构建交互式 Web 应用程序(应用程序)。本系列是个长教程,带你由浅入深学习shiny。 上一节我们在文章《R语言系列教程—–一起来学shiny吧(3)》…...
VBIC卡管理系统设计与实现
摘要 IC卡管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 经过分析,我们使用 MICROSOFT公司的 …...
八种架构演进
日升时奋斗,日落时自省 目录 1、单机架构 2、应用数据分离架构 3、应用服务集群架构 4、读写分离/主从分离架构 5、冷热分离架构 6、垂直分库架构 7、微服务架构 8、容器编排架构 9、小结 1、单机架构 特征:应用服务和数据库服务器公用一台服务…...
商城-学习整理-高级-分布式事务(十九)
目录 一、本地事务1、事务的基本性质2、事务的隔离级别3、事务的传播行为4、SpringBoot 事务关键点 二、分布式事务1、为什么有分布式事务2、CAP 定理与 BASE 理论1、CAP 定理2、面临的问题3、BASE 理论4、强一致性、弱一致性、最终一致性 3、分布式事务几种方案1)、…...
Java学习笔记(三):面向对象
文章目录 1.类与对象1.1 定义构造器1.2 定义成员变量1.3 定义方法1.4 static关键字 2. 面向对象的三大特征:封装、继承和多态2.1 封装2.2 继承2.2.1 子类重写父类的方法 2.3 多态 1.类与对象 类(class)和对象(object, 也被称为实例 instance…...
电商项目part02 电商后台多数据源
电商后台项目需要访问的数据源 多数据源方法(读写分离) 方法1:jdk自带的dynamicdatasource 方法2:Mybatis 方式 方法3:dynamicdatasource框架 <!--Druid连接池--><dependency><groupId>com.aliba…...
【C# 基础精讲】LINQ 基础
LINQ(Language Integrated Query)是一项强大的C#语言特性,它使数据查询和操作变得更加简洁、灵活和可读性强。通过使用LINQ,您可以使用类似SQL的语法来查询各种数据源,如集合、数组、数据库等。本文将介绍LINQ的基础概…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
