网络编程基础(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的基础概…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...

MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...