网络编程基础(一)

Android网络编程基础(一) - 基础知识 内容介绍:Android网络编程基础 博客地址:http://blog.youkuaiyun.com/kevindgk 版权声明:本文为原创文章,未经允许不得转载 联系方式:815852777@qq.com 前言 推荐书籍 基础知识 计算机网络概述 OSI参考模型和TCPIP模型 IP地址和端口号 端口号 单播组播广播 Android基本网络支持 获取网络基本信息 Socket相关 TCP通 阅读详情

1.网络的发展背景
1)最开始的计算机是为了计算导弹的弹道,当时计算机没有网络,数据只能从一台计算机拷贝到令一台,由于很麻烦,就出现了交换机,而交换机每次传输数据的方向都是固定的,于是出现了路由器。
路由器:有自我选择传输方向的功能。
2)网络规模:按照覆盖范围来分
局域网:一千米以下
城域网:10千米以下
广域网: 大于10公里
因特网:互联网(范围更加大一些)
以太网(走网方式)
令牌环网(走网方式,快被淘汰),大量的主机通信时 有一个令牌 ,为了防止冲突,谁有令牌谁传输消息;
3)通信
①ip地址:在网络中唯一标识一台主机(一个ID,一个整数),— uint32 — 无符号32位的整数,决定了IP地址的个数有限。
②在网络通信中的每一条数据中都应该包含有目的IP地址(我要到哪里去)+源IP地址(我从哪里来)
③IPV4 IP地址无符号32位整数决定了IP地址的个数,2的32次方,不到42亿,不够用,首先出来的是DHCP–动态地址分配(谁上网给谁分配IP地址),还是不够用,再来NAT–网络地址转换技术,将数据中的源IP地址转换为中间转发设备的IP地址-数据按照什么路径出去就应该按照什么路径回来(路由器,在自己的私网下从新分配ip地址)
具体发送过程:一个路由器下的私IP 通过路由器往外发送数据,而路由器先把发送数据的源IP地址改为了自己的,然后再把数据往外发生,同时把原本的源地址存了起来,这样数据回来的时候就知道是谁的了。 数据怎么出去,怎么回来。
④IPV6:uint8_t ip16—不向前兼容IPV4—导致IPV6推广使用很慢
⑤端口号:IP地址虽然可以让消息到达目的地点,但是不知道该给那个进程。此时就要用到端口号
在一条主机上标识一个进程–当计算机收到一个数据之后能通过数据中的目的端口信息来决定这个数据应该由哪一个进程来处理
每条网络中的数据都应该包含有:源端口+目的端口
端口号的范围:uint16_t 0~65535
特征:一个端口号只能被一个进程占用;一个进程可以使用多个端口号(一个端口号相当于一个通道)
⑥**协议:**通信双方数据格式的约定,如果不相同那么就可能出现错误
协议分层:例如打电话 人和人之间用普通话,而在手机传输中用的4G网,那么这两个就相当于分层(封装),在通信中对每一层提供的服务以及接口还有使用的协议进行封装,使通信环境层次更加清晰,更加容易实现标准化;更加容易使用;实现网络互联
osl将整个网络通信环境分为七层,七层参考模型:应用层-》表示层-》会话层-》传输层-》网络层-》链路层-》物理层
TCP/IP五层模型:应用层-》传输层-》网络层-》链路层-》物理层
①应用层:负责应用程序之间的数据沟通;常用协议 HTTP(浏览器,超文本传传输协议)/FTP(传输文件)/DNS/DHCP(动态地址分配)/SMTP
②传输层:负责端与端之间的数据传输;TCP/UDP
③网络层:负责地址管理与路由选择;目的IP,源IP;路由器
④链路层:负责相邻设备(两个相邻网卡之间的传输,再详细一点可以时主机和路由器)之间数据的传输;以太网协议:Ether;交换机(专门用于交换数据)
⑤物理层:负责光电信号的传输:以太网协议,集线器,信号放大
网络通信数据传输流程
例如QQ发送流程
1.QQ自身在前方加密自己协议(应用层)-> 操作系统封装发送协议QQ为tcp(传输层) -> IP协议(网络层) -> 封装一个以太头,和以太尾(链路层)之后发送光电信号 ->对方网卡就会接收之后通过(h_proto)解析出要交给上一次的那种协议解析->之后再IP协议上通过protocol->" tcp " 之后再交给给tcp解析->tcp再解析出那些数据要交给应用程序。

在这里插入图片描述

Windows网络编程基础(一) Table of Contents准备工作socketC/S模式源代码服务端 Server.cpp客户端 Client.cpp源码分析数据传输关闭连接 准备工作 Windows网络编程一般是指 Windows Socket 编程(winsocket),它从UNIX Socket 发展而来。进行Windows网络编程,首先需要添加依赖库WS2_32.lib 或 WSOCK_32.lib,加载动态库... 阅读详情

相关推荐

Windows网络编程(一)基础

Table of Contents准备工作socketC/S模式源代码服务端客户端源码分析数据传输关闭连接符号解释WSAStartupsin_familysin_portinet_addrhtonl / htonsaftypeC/S 通信 准备工作 Windows网络编程一般是指 Windows Socket 编程(winsocket),它从UNIX Socket 发展而来。进行Windows网络...

_IronMan's 博客 797

C++的基础内容总结概括一

1.什么是C++? C++是基于C语言产生的,它既可以进行C语言的过程化程序设计,又可以进行抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。 C++的发展史:C++98.C++11 C++98是第一个C++标准第一个版本,有63个关键字 C++11是C+98的升级版关键字多了些 https://blog.youkuaiyun.com/u012679707/article/details/...

Advsance的博客 1317

Halcon实战:5分钟搞定灰度图转热力图(附完整代码)

本文提供了一份Halcon实战指南,详细讲解如何在5分钟内将灰度图转换为直观的热力图。通过核心代码演示了利用HSV颜色模型进行色彩映射的原理与步骤,包括图像归一化、通道构建与空间转换,并附赠了深度图可视化等进阶应用技巧,帮助工程师快速提升图像分析效果。

weixin_29240343的博客 282

一.网络编程基础

计算机网络:计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。简单来说,网络就是一种辅助双方或者多方连接在一起的工具。IP是整个TCP/IP协议族的核心,也是构成互联网的基础IP 地址就是标识网络中设备的一个地址。通过IP地址能够找到网络中某台设备。IP地址分为两类:IPv4和IPv6IPv4 是目前使用的IP地址IPv6 是未来使用的IP地址。

金灰的博客 870

七段数码管动态显示技术:分时复用与使能端优化

本文深入解析了七段数码管动态显示技术的核心原理,重点阐述了分时复用与使能端优化如何协同工作。通过利用人眼视觉暂留效应,分时复用技术以一套数据线驱动多个数码管,而合理的使能端控制则是消除鬼影、保证亮度均匀的关键。文章提供了从硬件基础到Verilog代码实战的完整指南,帮助开发者实现稳定高效的动态显示系统。

lilh34434的博客 212

Excel基金净值自动更新:手把手教你用Power Query抓取天天基金网数据(含常见错误修复)

本文详细介绍了如何利用Excel内置的Power Query工具,从天天基金网自动抓取基金净值数据,实现表格数据的自动刷新。通过手把手教程,您将学会构建参数化查询、整合多基金数据、计算持仓盈亏,并解决网页结构变动等常见错误,最终打造一个专属的、可自动更新的基金监控仪表盘,彻底告别手动更新。

xx56789的博客 728

一、网络编程的基础

1.概念 计算机网络:把分布在不同区域的计算机与专门的外部设备连接起来,使用通信线路相互之间连接成一个规模庞大,而且功能比较的强的网络系统,好处:不同的计算机之间可以互相传递信息,共享数据,软件等 网络编程:在同一个网络中,实现不同机器之间的通信 2.计算机之间实现通信的必要条件 1>ip地址 Internet Protocol Address,互联网协议地址,是联网设备和互...

dede19911205的博客 98

基于Simulink/Matlab的VSG并网系统单相接地与相间短路故障仿真建模与特性分析

本文详细介绍了基于Simulink/Matlab搭建虚拟同步发电机(VSG)并网系统仿真模型的方法,并重点分析了单相接地与相间短路故障下的系统特性。通过设置三相故障模块参数,模拟了故障发生时的电压、电流变化及VSG动态响应,为理解故障机理、优化控制策略及设计继电保护提供了仿真依据与实践指导。

t8u9v0w1x的博客 514

网络编程基础(一)

为什么要学习网络编程?1.进程间通信方式1. 内核提供三种:无名管道有名管道信号2.system V提供三种:消息队列共享内存信号灯集上述通信方式中,只能实现同意主机之间多个进程之间的通信,并不能实现跨主机的通信方式所以,引入了socket套接字通信。

slander_1120的博客 1795

无人机飞控传感器全解析:从IMU到光流传感器的实战应用

本文深入解析了无人机飞控系统的核心传感器,从IMU、气压计、磁力计到光流传感器,详细阐述了其工作原理、数据融合策略及常见挑战。结合ICF5、Pixhawk 6C等主流飞控硬件,提供了从传感器校准、滤波器调优到应对室内光流定位、强磁干扰等实战场景的系统性优化指南,帮助开发者突破飞控“黑箱”,实现更稳定、可靠的飞行控制。

weixin_28396629的博客 167

YOLOv11 Neck革新:当SDI遇上BiFPN,带你打造精度飙升的特征融合网络

对于科研:这是一个新颖的特征融合思路,能做出差异化的实验,发论文、做项目都很有价值;对于工程:它能解决小目标漏检、大目标定位不准的痛点,让你的检测系统在工业质检、智能安防等场景下更可靠;对于技术成长:掌握了SDI和BiFPN的设计逻辑,你再去看其他特征融合方法(比如FPN、PAN),会有“一通百通”的感觉,以后优化任何检测模型都能举一反三。如果你之前在目标检测的精度上遇到了瓶颈,不妨试试SDI+BiFPN——它就像给YOLOv11装上了“透视眼”,让模型能看清每一个细节。

FJN110的博客 301

Java基础(一) 网络编程

什么是网络编程,简单来说网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据。程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据来进行处理。

这里是阿安的博客 544

【OS】AUTOSAR架构下MCAL Modules软件分区问题分析

AUTOSAR架构下MCAL Modules软件分区问题分析

qq_36056498的博客 939

网络编程【一】网络编程基础概念

网络编程基础概念 软件开发的架构 我们了解的涉及到两个程序之间通讯的应用大致可以分为两种: 第一种是应用类:qq、微信、网盘、优酷这一类是属于需要安装的桌面应用 第二种是web类:比如百度、知乎、博客园等使用浏览器访问就可以直接使用的应用 这些应用的本质其实都是两个程序之间的通讯。而这两个分类又对应了两个软件开发的架构~ C/S架构 C/S即:Client与S...

baoduan1886的博客 108

强化学习:从经典强化学习理解强化学习

1. 背景介绍 强化学习(Reinforcement Learning,RL)作为机器学习领域的重要分支,近年来取得了长足的进步。其核心思想是让智能体通过与环境的交互学习最优策略,从而最大化累积奖励。不同于监督学习和非监督学习,强化学习无需预先标注数据,而是通过试错的方式逐步学习,具有更强的适应性和泛化能力。

AI架构师小马 1800

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Netty基础—网络编程基础一

OSI是Open System Interconnect的简称,即开放系统互连参考模型。OSI为开放系统的计算机互连提供了一个共同的基础和标准框架,并为保持相关标准的一致性和兼容性提供了共同的参考。OSI采用了分层的结构化技术,共分七层,分别是:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。(应表会传网数物)物理层并不是指物理媒体本身,而是指开放系统中利用物理媒体实现物理连接的功能描述,物理层的媒体包括架空明线、平衡电缆、光纤、无线信道等。功能一:为数据端设备提供传送数据的通路。

sdgfafg_25的博客 403

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【Linux网络编程】网络基础一

本篇博文重点 : 1. 了解网络发展背景, 对局域网/广域网的概念有基本认识; 2.了解网络协议的意义, 重点理解TCP/IP五层结构模型; 3. 学习网络传输的基本流程, 理解封装和分用;

fight_p的博客 1816

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Linux网络编程基础(一)

转自:http://blogold.chinaunix.net/u/4502/showart.php?id=13285 初等网络函数介绍(TCP)及示例程序 1、socket     int socket(int domain, int type,int protocol)     domain:说明我们网络程序所在的主机采用的通讯协族(AF_UNIX和AF_INET等). AF_UNIX只能...

weixin_33898233的博客 102

网络编程fhd的基础学习一

编程搞了很久,但总感觉不太深入,什么都会一点,工作也能处理下来。 网络编程我之前接触过,这次希望能系统的学习遍,并以后在不断的整理学习,以到达融会贯通的境界,:) 刚看了篇文章:http://www.cnblogs.com/duzouzhe/archive/2009/06/19/1506699.html,吸收总结下: (一)Linux网络编程 TCP/UDP介绍

我的技术生活 1028

Java基础——网络编程(一)

网络编程:在网络通信协议下,不同计算机上运行的程序,进行的数据传输应用场景:即时通信、网游对战、金融证券、国际贸易、邮件……BS架构的优缺点:1、不需要开发客户端,只需要页面+服务端2、用户不需要下载,打开浏览器就能使用3、如果应用过大,用户体验收到影响CS架构的优缺点:1、画面可以非常精美,用户体验好2、需要开发客户端,也需要开发服务端3、用户需要下载和更新的时候太麻烦。

2301_79368422的博客 1149

java网络编程基础——TCP网络编程一

基于TCP协议的网络编程 TCP/IP协议是一种可靠的网络协议,它的通信的两端各自建立一个Socket,从而在通信的两端之间形成网络虚拟链路。 Java使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信。 1、ServerSocket java中能接收其他通信实体连接请求的类是ServerSocket,他会监听来自客户端Socket连接,如果没有连接,它...

weixin_30708329的博客 101

Netty基础—1.网络编程基础一

首先作为发送端的客户端在应用层(HTTP协议)发出一个HTTP请求,然后在传输层(TCP协议)把从应用层处收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层,接着在网络层(IP协议)增加作为通信目的地的MAC地址后转发给链路层。在确认报文中,ACK=1,ack=w+1,序列号seq=u+1。物理层如果要形成适合数据传输所需的实体来为数据传输进行服务,那么一要保证数据能在其上正确通过,二要提供足够的带宽来减少信道上的拥塞,其中带宽指的是每秒能通过的比特(Bit)数。

mjunz的博客 727

Java网络编程(一)——基础知识

一、概述 随着互联网的兴起,网络编程不再专家性的研究领域,已经成为了很多开发人员都必须掌握的内容。在开发过程中,网络的程序已然很多。除了经典的应用程序(如电子邮件、浏览器等),不少应用程序都在某种程度上与网络功能有些联系。 Java一开始就为网络应用而进行了设计,目前Java已成为非常适合构建网络应用程序的语言了。因为个人学习和工作的学习,需要学习网...

小羽毛的博客 681
上一篇: 关于兔子的问题
下一篇: 网络字节序,与内存对齐
Advsance
博客等级 码龄8年 37粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值