网络编程即 使用套接字来达到进程间通信
一、C/S和B/S架构
-
1、CS即
Client/Server
(客户机/服务器)架构,C/S架构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。但是该架构的程序是针对性开发,变更不够灵活,维护和管理的难度较大。通常只局限于小型局域网,不利于扩展。并且,由于该架构的每台客户机都需要安装相应的客户端程序,分布功能弱且兼容性差,不能实现快速部署安装和配置,因此缺少通用性,具有较大的局限性。 -
2、BS即
Browser/Server
(浏览器/服务器)架构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。B/S架构应用程序相对于传统的C/S架构应用程序是一个非常大的进步。 B/S结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低,这些缺点是有目共睹的,难以实现传统模式下的特殊功能要求。例如通过浏览器进行大量的数据输入或进行报表的应答、专用性打印输出都比较困难。此外,实现复杂的应用构造有较大的困难
- 3、总结:
- CS 优点:
本地响应速度快,在硬件和网络环境不好的情况下用CS能提高效率(其实是降低用户愤怒值)
- CS 缺点:
如果二次开发较多,投入很大。首先你不能保证不继续修改二次开发方案,那么CS 的兼容性就会不断接受挑战
- BS 优点:
部署简单,打开就用,不用太担心二次开发带来的兼容性
- BS 缺点:
给用户的感觉就是反应慢
- CS 优点:
二、两台机器如何通信?
1、IP地址
-
IP地址: ⽤来在⽹络中标记⼀台电脑的⼀串数字, ⽐如192.168.1.1(c类); 在同一⽹络上是惟⼀的(用来标记唯一的一台电脑)
-
每⼀个IP地址包括两部分: **⽹络地址和主机地址 **
-
主机号0,255两个数不能使用(网络号、广播地址)
-
详情解释
-
A类IP地址由1个字节的⽹络地址和3个字节的主机地址组成,
⽹络地址的最⾼位必须是“0”
,地址范围1.0.0.1-126.255.255.254 ,可⽤的A类⽹络有126个, 每个⽹络能容纳1677214个主机
-
B类IP地址由2个字节的⽹络地址和2个字节的主机地址组成,
⽹络地址的最⾼位必须是“10”
,地址范围128.1.0.1-191.255.255.254 ,可⽤的B类⽹络有16384个, 每个⽹络能容纳65534主机
-
C类IP地址由3个字节的⽹络地址和1个字节的主机地址组成,
⽹络地址的最⾼位必须是“110”
,地址范围192.0.1.1-223.255.255.254 ,可用的C类⽹络可达2097152个, 每个⽹络能容纳254个主机
-
D类IP地址
第⼀个字节以“1110”开始
, 它是⼀个专⻔保留的地址。它并不指向特定的⽹络, ⽬前这⼀类地址被⽤在多点⼴播(一对多) 中多点⼴播地址⽤来⼀次寻址⼀组计算机地址范围224.0.0.1-239.255.255.254
-
E类IP地址
以“1111”开始
, 为将来使⽤保留 E类地址保留, 仅作实验和开发⽤
-
2、注意:
私有IP:本地局域网上的IP,专门为组织机构内部使用
在这么多⽹络IP中, 国际规定有⼀部分IP地址是⽤于我们的局域⽹使⽤, 属于私⽹IP, 不在公⽹中使⽤的, 它们的范围是:
- 10.0.0.0~10.255.255.255
- 172.16.0.0~172.31.255.255
- 192.168.0.0~192.168.255.255
私有IP禁止出现在Internet中,来自于私有IP的流量全部都会阻止并丢掉。公有IP可以全球访问
IP地址127. 0. 0.1代表本机IP地址, ⽤ http://127.0.0.1 就可以测试本机中配置的Web服务器
常用来ping 127.0.0.1来看本地ip/tcp正不正常
三、子网掩码
用于测量两个IP地址是否属于同一个网段的工具
-
⼦⽹掩码不能单独存在, 它必须结合IP地址⼀起使⽤
-
⼦⽹掩码只有⼀个作⽤, 就是将某个IP地址划分成⽹络地址和主机地址两部分
-
⼦⽹掩码的设定必须遵循⼀定的规则:与IP地址相同,⼦⽹掩码的长度也是32位,左边是⽹络位, ⽤⼆进制数字“1”表示;右边是主机位, ⽤⼆进制数字“0”表示
-
假设IP地址为“192.168.1.1”⼦⽹掩码为“255.255.255.0”
- “1”有24个, 代表与此相对应的IP地址左边24位是⽹络号
- “0”有8个, 代表与此相对应的IP地址右边8位是主机号
- 即C类ip
四、端口号:用来标记区分进程
-
⼀台拥有IP地址的主机可以提供许多服务, ⽐如HTTP(万维⽹服务) 、 FTP(⽂件传输) 、 SMTP(电⼦邮件) 等, 这些服务完全可以通过1个IP地址来实现。 那么, 主机是怎样区分不同的⽹络服务呢?
-
显然不能只靠IP地址, 因为IP地址与⽹络服务的关系是⼀对多的关系。实际上是通过
“IP地址+端⼝号”
来区分不同的服务的
注意:端⼝号是一个数字,只有整数, 范围是从0到65535 (分为知名和动态两种)
- 知名端⼝是众所周知的端⼝号(用来做固定事情), 范围从0到1023,例如:
- 80端⼝分配给HTTP服务(网站)
- 21端⼝分配给FTP服务(文件下载)
- 可以理解为, ⼀些**常⽤的功能使⽤的号码是固定的 **
- 动态端⼝的范围是从1024到65535之所以称为动态端⼝
- 之所以称为动态端⼝,是因为它⼀般不固定分配某种服务, ⽽是动态分配
- 动态分配是指当⼀个系统进程或应⽤程序进程需要⽹络通信时, 它向主机申请⼀个端⼝, 主机从可⽤的端⼝号中分配⼀个供它使⽤
五、网卡
网卡(网络适配器,网络接口卡)是一块被设计用来允许计算机在网络上进行通讯的计算机硬件
六、mac地址
-
每一个网卡都有一个被称为MAC地址的独一无二的48位串行号
-
也叫物理地址(实际地址):由网络设备制造商生产时写在硬件内部
-
IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而**MAC地址则是48位的(6个字节)
如:08:00:20:0A:8C:6D就是一个MAC地址,其中前3组16进制数08:00:20代表网络硬件制造商的编号**,它由IEEE(电气与电子工程师协会)分配
而后3组16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号
- MAC地址在世界是惟一的
(可以直接理解为网卡的序列号)
七、交换机
-
集线器(HUB)是计算机网络中连接多个计算机或其他设备的连接设备,是对网络进行集中管理的最小单元。英文Hub就是中心的意思,像树的主干一样,它是各分支的汇集点。HUB是一个共享设备,主要提供信号放大和中转的功能,它把一个端口接收的所有信号向所有端口分发出去
-
交换机(Switch)是一种基于MAC(网卡的硬件地址)识别,能完成封装转发数据包功能的网络设备。交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址
- arp协议:地址解析协议(arp在七层中的第三层,mac在第二层)
通过一台机器的IP地址获取到了它的mac地址,用到了交换机:
主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址
收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源 - 注:
第一次是广播,后面是单播
八、路由器
-
路由器:确定一条路径的设备,路由器是连接因特网中用来链接网络号不同的网络,相当于中间人;各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号的设备。
路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路 -
同一个局域网当中的终端之间进行通讯的基础是处于同一个网段中,一个路由器至少有两个网卡,能够链接不同网段的网络使之可以通信
-
选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率