2.4-网络通信编程你需要掌握的背景知识

一、前言

随着网络通信的发明以被及广泛使用,使得人类从“工业社会”进入到“信息社会”。网络影响了各行各业的运作方式,促使了新行业的诞生,也推进了人类文明前进的步伐。那么就来学习一下网络知识吧。本章介绍的网络编程知识是为了下一节讲实际编码做准备。由于网络相关的知识非常庞大不适合在本书中系统讲解,因此仅解答网络编程中常见且重要的几个问题。本章知识虽然零碎,但是是掌握网络编程必备的背景知识。

二、什么是MAC地址?

MAC地址(Media Access Control Address)的全称叫做媒体访问控制地址,也称作物理地址。MAC地址是网络设备在网络中的唯一地址。也就是说世界上的所有网络设备(一般指网卡,Wi-Fi模块等)都有一个唯一不同的MAC号码。MAC地址共48位(6个字节)。前24位由IEEE决定如何分配,后24位由网卡生产厂商自行制定。因此一些路由器限制用户使用流量总数,就是通过mac地址来识别用户的(但是在电脑系统上可以设置用户自定义mac地址_)。

三、什么是IP协议,什么是“子网掩码”?

  1. IP协议:
    IP是英文Internet Protocol的缩写,是为计算机通过网络相互通信而设计的协议。这个协议规定了计算机在因特网上进行通信时应当遵守的规则。只要遵守IP协议就可以与因特网互连互通。

  2. IP地址:
    IP地址是在ip协议下规定的一种地址格式,它的本义是为互联网上的每一个电脑配置一个唯一的逻辑地址。它与MAC地址是不相关的独立的两种地址。IP地址是由32位的二进制数组成,它们通常被分为4个“8位二进制数”,相当于4个字节,用字符串格式表示为:A.B.C.D。其中,A,B,C,D这四个英文字母表示为0-255的十进制的整数。例:192.168.1.1

  3. 子网掩码:
    子网掩码(subnet mask)也叫地址掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。与IP地址相同子网掩码是由长度为32位的二进制bit组成的。也是4byte。子网掩码的作用就是将某个IP地址划分成网络地址和主机地址两部分。用个常见且简单的例子来举例说明“子网掩码”的作用。比如,给2个部分分别配置一个路由器。给路由器配置自动分配IP地址的时候,一个部门有50人,另一个部门有2000人。那么各部门配置应该如下:

  • 50人部门:
    子网掩码:255.255.255.0 //表示网络地址为192.168.1, 主机地址为0 ~ 255 共256个不同IP地址
    IP:192.168.1.0 ~ 192.168.1.255
  • 2000人部门:
    子网掩码:255.255.0.0 //表示网络地址为192.168, 主机地址为0.0 ~ 255.255 共65535个不同IP地址
    IP:192.168.0.0 ~ 192.168.255.255
    注意1:192.168.1.5/255.255.255.0 与 192.168.1.5/255.255.0.0 并不是同一个ip地址,因为他们的“网络地址”不同。即这两个ip地址不属于同一个网段,不能直接通信(ping不通)。很明显子网掩码增加了ip地址使用率,即一个ip地址在不同子网掩码下表现为不同的多个IP地址。这就是“子网掩码”的作用和意义。
    注意2:子网掩码共由4byte组成。子网掩码不是一次只能变化1byte。它和ip地址一样,一次也可以只变化1bit。比如:192.168.1.5/255.255.15.0 与 192.168.1.5/255.255.0.0也是不同的IP地址。当子网掩码变化是以byte为单位的话,可以简写,比如:192.168.1.5/255.255.0.0简写为:192.168.1.5/16,192.168.1.5/255.255.255.0简写为:192.168.1.5/24。

四、什么是OSI模型?

ISO为了更好的使网络应用更为普及,推出了OSI参考模型。OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)。实际应用中使用“TCP/IP五层模型”,各层有各自的协议且互相不干扰,意味着各个层的设备可以使用单独协议单独生产。从而各个厂商可以更具其所在层次的协议生产自己的设备,并能保证能正确应用到互联网中。模型如下图所示:
在这里插入图片描述

五、什么是UDP协议,什么是TCP协议?

UDP和TCP都是网络传输协议,主要用于一个网络设备与另一个网络设备之间的数据传输。是应用程序开发者在开发中实际需要关注的开发协议。

  1. UDP:
    用户数据报协议(UDP,User Datagram Protocol)为应用程序提供了一种无需建立连接就可以发送数据的方法。
    特点:
  • 无连接,即没有连接状态,直接发送数据包到网络中。
  • 面向报文,收到应用层发来的数据后,加上udp包头后即发送给网络层发送。并不对收到的数据做合并和拆分操作。适用于自定义开发协议的情况(保证一个包能一次性发出,且被一次性收到,不会出现数据包被拆开的情况,前提条件是自己的封包大小不能大于UDP封包的大小)。
  • 没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。很多的实时应用(如语音通话、视频直播)要求源主机以恒定的速率发送数据,并且允许在网络发生拥塞时丢失一些数据,但却不允许数据有太多的时延。UDP正好符合这种要求。
  • 支持一对一、一对多、多对一和多对多的交互通信
  • UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。
  1. TCP:
    传输控制协议(TCP,Transmission Control Protocol)是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。
    特点:
  • 有连接,即有连接状态,且网络意外断开后能及时检查到,网络断开后发送数据会返回失败标示。
  • 面向数据流,收到应用层的数据,会重新组合到TCP封包中,以数据流的形式传递到网络层。接收方也以流的方式接收。
  • 有拥塞控制,在网络出现拥挤的情况下,发送方会降低发送速率,主要是为了保证数据不丢失。因此TCP适用于对实时性要求不高,但是不能丢失数据的使用场合。
  • 仅支持一对一通信。
  • 有三次握手建立连接机制,即通信链路建立之后才进行数据通信。有容错机制,即丢失数据包后会有重传机制。

六、什么是Http/Https协议?

  1. Http
    HTTP协议(HyperText Transfer Protocol,超文本传输协议)HTTP是基于TCP/IP通信协议来传递数据的C/S架的应用层协议。主要用于传输超文本数据。主要用于web服务器端与浏览器端传递数据。web服务端有:Apache、nginx等
    客户端的实现程序主要是Web浏览器、APP端。

  2. Https
    HTTPS (Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS是在HTTP的基础下加入SSL加密层。主要用在用户登录验证、金融交易等需要保证数据不被泄露且不被篡改的数据通信中。

七、什么是互联网、广域网、局域网?

  1. 局域网:
    局域网(LAN:Local Area Network)是一种私有网络局域网将一定区域内的各种计算机、答应机等网络设备连接起来形成计算机通信网。局域网为封闭型网络,一般可以通过一跟网线和其他局域网或广域网连接。典型的局域网由路由器和个人计算机等网络设备组成。

  2. 无线局域网:
    局域网(WLAN:WLAN是WirelessLocal Area Network)是指通过无线通信技术实现的局域网。无线局域网本质的是不再使用通信电缆将计算机与网络连接起来,而是通过无线的方式连接,从而使网络设备之间的连接与移动更加灵活。

  3. 广域网:
    广域网(WAN:Wide Area Network),又称广域网、外网、公网。是连接不同地区局域网或城域网计算机通信的远程网。通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个地区、城市和国家,或横跨几个洲并能提供远距离通信,典型代表是“网络运营商”。比如:“中国电信”,“中国联通”。

  4. 互联网:
    互联网(internet),又称国际网络,指的是网络与网络之间所串连成的庞大网络,形成逻辑上的单一巨大国际网络。

八、什么是单播、组播、广播?

单播、组播、广播指的是几种网络设备间数据的传递形式。

  1. 单播
    单播(Unicast),指信息的接收和传递只在两个节点之间进行。单播在网络中得到了广泛的应用,网络上绝大部分的数据都是以单播的形式传输的。比如,发邮件、web浏览器、App传递数据。

  2. 组播
    组播(Multicast)也叫多播,指一次发送数据,多个网络设备端可以收到数据。避免单独给多个网络设备发送数据。其应用场合不多,主要用于类似“视频会议”的场合。

  3. 广播
    广播(Broadcast),是指一个发送,局域网内的所有网络设备都会收到数据。由于其特点,滥用广播会形成“网络风暴”,好在广播只在局域网内传播,不会影响到广域网。广播的的Ip地址为:255.255.255.255。即只要给这个ip地址发送数据,局域网内的所有网络设备都会收到这条数据。基于这个特点,广播常用于在局域网内实现网络设备查找。

九、什么是公有IP,什么是私有IP?

  1. 公有IP地址
    从ip地址的设计与定义可以知道,地球上的IP地址是有限的,不够给地球上的每个人每个设备都分配一个地址。因此呢地球上就有一个专门的机构来给分配这些地址,这个机构叫做Internet NIC(Internet Network Information Center因特网信息中心)。有需要Ip地址的人或公司都要向这个机构申请。从这个机构申请的IP地址就是公网IP地址。一般你在向“电信运营商ISP”申请宽带接入的时候,分配给你的就是公网IP(有动态的和静态的)。如果你到搭建一个服务器,想要全球或全国都能访问你的服务,就需要向“电信运营商ISP”申请一个固定的公网IP地址。
    公有IP地址,一共分成了5类,范围分别如下:
    A类IP:从0.0.0.0 – 127.255.255.255,共有16777216个IP
    B类IP:从128.0.0.0 – 191.255.255.255,共有65536个IP
    C类IP:从192.0.0.0 – 223.255.255.255,共有256个IP
    D类IP:从224.0.0.0 – 239.255.255.255
    E类IP:从2240.0.0.0 – 255.255.255.255
    而其中,能在Internet或被用户使用的A、B、C三类,而D类用作组播地址,E类作为科研保留地址段

  2. 私有IP地址
    私有IP地址是指,在你自己搭建局域网(并启动路由器服务)所使用的IP地址。由于路由器对数据的转发功能。实际上局域网内的这个IP地址可以是任意IP地址(当然需在一个子网网段内,不然就不叫局域网了)。因为你的这个局域网内的私有ip地址并不会对局域网以外暴漏。因此不和公有IP地址冲突。即便可以随意使用,但是一般为了规范,同时也能明确的表示这个Ip地址是私有地址,因此对私有地址也做了如下规范:
    私有IP地址的范围:
    A类私有IP地址:
    10.0.0.0~10.255.255.255
    B类私有IP地址:
    172.16.0.0~172.31.255.255
    C类私有IP地址:
    192.168.0.0~192.168.255.255

十、什么是交换机?

以太网交换机(Switch)是用于连接多台网络设备并完成联入的设备之间交换数据的一种设备。一般用于多台网络设备同时联入网络主机。使用交换机的效果是,相当于多台网络设备单独连接到主机。表面上看起来相当于集线器,单交换机远不仅仅是集线器。以太网交换机的每个端口都直接与主机相连,并且一般都工作在全双工方式。以太网交换机工作于OSI网络参考模型的第二层(即数据链路层),是一种基于MAC(Media Access Control,介质访问控制)地址识别、完成以太网数据帧转发的网络设备。

十一、什么是路由器?

路由器(Router)是工作在OSI网络层的一种网络数据分发、转接设备。现实中用的路由器其实是由路由服务NAT、动态分配IP地址服务DHCP、部分交换机功能这几个部分组合而成的。因其主要功能是“路由(数据转发)”因此叫做“路由器”。以下更具路由器的组成部分分别说明:

  • NAT服务:把局域网内网络数据包中的本机IP地址转换为公有IP地址的一种服务,即把局域网内拥有私有IP地址设备的对互联网的请求“假扮”成路由器所拥有的公有IP对互联网的请求。因此连接在局域网内的拥有私有IP地址的设备也能像公有IP地址那样同样访问互联网。因此不必给连接互联网的每个人都分配一个公网IP,也就节省了公网IP地址。这种技术被普遍使用在有多台电脑但只通过一个公有IP地址访问因特网的私有网络中。
  • DHCP服务:给局域网内的设备自动分配IP地址的服务。
  • 交换机功能:把局域网内的网络设备连接到一起形成一个局域网。同时其中一个端口连接到对局域网以外的公网线路上,这口在路由器上表示为“WAN”。而路由器上连接局域网电脑的口叫做LAN口。而通过无线连接到路由器的设备在路由器上有个指示灯旁边表示为“WLAN”。

十二、一些路由器接线技巧

在这里插入图片描述

十三、上位机与下位机的常用网络接线方式

在这里插入图片描述

十四、上位机和下位机,哪个端应该作为“网络服务端”?

根据以下条件判断,那个端做服务端:

  1. 谁先开机(打开)谁做“网络服务端”
  2. 谁处于打开时间长(生命周期长)谁做“网络服务端”
  3. 谁会经常主动断开,稍后需要再次连接,谁做“网络客户端”

更具以上规则综合判断即可,根据以上依据一般是下位机做“服务端”。

  • 15
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值