嵌入式学习笔记-linux应用编程和网络编程-3.8 网络基础

一、再论进程
1、从进程间通信说起
  • 网络域套接字socket,网络通信其实就是位于网络中不同主机上面的2个进程之间的通信。
2、网络通信概述
  • 硬件部分:网卡
  • 操作系统底层:网卡驱动
  • 操作系统API:socket接口
  • 应用层:低级(直接基于socket接口编程)
  • 应用层:高级(基于网络通信应用框架库)
  • 应用层:更高级(http、网络控件等)
3、网络通信概述
  • 重点1:掌握网络通信的架构层次和基本原理
  • 重点2:掌握socket及其相关函数的使用
  • 重点3:掌握服务器和客户端程序通信的方法
二、网络通信基础知识1
1、网络通信的发展历程
  • 单机阶段
  • 局域网阶段(有限台)
  • 广域网internet阶段(多个局域网,主要是有线的)
  • 移动互联网阶段(无线,手机)
  • 物联网阶段
2、三大网络
  • 电信网、电视网络、互联网
3、网络通信的传输媒介
  • 无线传输:WIFI、蓝牙(近距离)、zigbee、4G/5G/GPRS等
  • 有线通信:双绞线(网线)、同轴电缆、光纤(通信快,上下行一样)等
三、网络通信基础知识2
1、OSI 7层网络模型(详见百度介绍)
  • 7层名字和顺序要记住,有时候笔试题目经常遇到。
  • 网络搜索资料,自己看自学,逐步去理解。
    嵌入式学习笔记-linux应用编程和网络编程-3.8 网络基础_第1张图片
2、网卡
  • 计算机上网必备硬件设备,CPU靠网卡来连接外部网络
  • 串(串行、全双工、差分)转并设备
  • 数据帧封包和拆包(网卡之间才有的,驱动拿到的是有效数据了)
  • 会封装包头包尾用于标识是谁发的、要发给谁、信息是否完整、等信息(为了保证信息的传输安装,就像快递包装一样)
  • 网络数据缓存和速率适配
3、集线器(HUB)
  • 信号中继放大,相当于中继器
  • 组成局域网络,用广播方式工作。
  • 注意集线器是不能用来连接外网的
4、交换机
  • 包含集线器功能,但更高级
  • 交换机中有地址表,数据包查表后直达目的通信口而不是广播
  • 找不到目的口时广播并学习
四、网络通信基础知识3
1、路由器
  • 路由器是局域网外部网络通信的出入口
  • 路由器将整个internet划分成一个个的局域网,却又互相联通。
  • 路由器对内管理子网(局域网),可以在路由器中设置子网的网段,设置有线端口的IP地址,设置dhcp功能等,因此局域网的IP地址是路由器决定的
  • 路由器对外实现联网,联网方式取决于外部网络(如ADSL拨号上网、宽带帐号、局域网等)。这时候路由器又相当于是更高层级网络的其中一个节点而已。
  • 所以路由器相当于有2个网卡,一个对内做网关、一个对外做节点。
  • 路由器的主要功能是为经过路由器的每个数据包寻找一条==最佳路径(路由)==并转发出去。其实就是局域网内电脑要发到外网的数据包,和外网回复给局域网内电脑的数据包。
  • 路由器技术是网络中最重要技术,决定了网络的稳定性和速度。
2、DNS(Domain Name Service 域名服务)
  • 网络世界的门牌号:IP地址
  • IP地址的缺点:难记、不直观
  • IP地址的替代品:域名,譬如www.zhulaoshi.org
  • DNS服务器就是专门提供域名和IP地址之间的转换的服务的,因此域名要购买的
  • 我们访问一个网站的流程是:先使用IP地址(譬如谷歌的DNS服务器IP地址为8.8.8.8)访问DNS服务器(DNS服务器不能是域名,只能是直接的IP地址),查询我们要访问的域名的IP地址,然后再使用该IP地址访问我们真正要访问的网站。这个过程被浏览器封装屏蔽,其中使用的就是DNS协议。
  • 浏览器需要DNS服务,而QQ这样的客户端却不需要(因为QQ软件编程时已经知道了腾讯的服务器的IP地址,因此可以直接IP方式访问服务器)
五、网络通信基础知识4
1、DHCP(dynamic host configuration protocl,动态主机配置协议)
  • 每台计算机都需要一个IP地址,且局域网内各电脑IP地址不能重复,否则会地址冲突。
  • 计算机的IP地址可以静态设定,也可以动态分配
  • 动态分配是局域网内的DHCP服务器来协调的,很多设备都能提供DHCP功能,譬如路由器。
  • 动态分配的优势:方便接入和断开、有限的IP地址得到充分利用
2、NAT(network address translation,网络地址转换协议)
  • IP地址分为公网IP(internet范围内唯一的IP地址)和私网IP(内网IP),局域网内的电脑使用的都是私网IP(常用的就是192.168.1.xx)
  • 网络通信的数据包中包含有目的地址的IP地址(也含有自己的IP地址,就像快递中的发件人和收件人,在回复时,收件人和发件人颠倒)
  • 当局域网中的主机要发送数据包给外网时,路由器要负责将数据包头中的局域网主机的内网IP替换为当前局域网的对外外网IP。这个过程就叫NAT
  • NAT的作用是缓解IPv4的IP地址不够用问题,但只是类似于打补丁的形式,最终的解决方案还是要靠IPv6。
  • NAT穿透简介(P2P下载,服务器做中介)
六、网络通信基础知识5
1、IP地址分类(IPv4)
  • IP地址实际是一个32位二进制构成,在网络通信数据包中就是32位二进制(0xffffffff),而在人机交互中使用点分十进制方式显示(255.255.255.255)。
  • IP地址中32位实际包含2部分,分别为:网络地址和主机地址。子网掩码,用来说明网络地址和主机地址各自占多少位。(子网掩码为255.255.255.0时表示前24位为网络地址,后8位为主机地址;子网掩码为255.255.0.0时表示前16位为网络地址,后16位为主机地址)
  • 网络地址决定了这种网络中一定可以有多少个网络,譬如子网掩码为255.255.255.0时表示我们这一种网络一共最多可以有2^ 24 个,每个这种网络中可以有2^8个主机。
  • 如果子网掩码为255.255.0.0时,表示我们这种网络可以有2^ 16个网络,每个这种网络中最多可以有2^16个主机。
  • 由网络地址和主机地址分别占多少位的不同,将IP地址分为5类,最常用的有3类
2、三类IP地址
  • A类。
  • B类
  • C类
  • 127.0.0.0用来做回环测试loopback
3、如何判断2个IP地址是否在同一子网内
  • 网络标识 = IP地址 & 子网掩码
  • 192.168.1.0 = 192.168.1.102 & 255.255.255.0
  • 192.168.1.0 = 192.168.1.253 & 255.255.255.0
  • 2个IP地址的网络标识一样,那么就处于同一网络
  • 192.168.1.4和192.168.12.5,如果子网掩码是255.255.255.0那么不在同一网段,如果子网掩码是255.255.0.0那么就在同一个网段

——资料来源于朱老师物联网大讲堂

你可能感兴趣的:(linux应用编程和网络编程,网络,路由器)