计算机网络的介绍
计算机的发展经历了以下几个阶段:
阶段 | 时间 | 物理器件 |
第一阶段 | 1946年到20世纪50年代后期 | 电子管 |
第二阶段 | 20世纪50年代后期到20世纪60年代中期 | 晶体管 |
第三阶段 | 20世纪60年代中期到20世纪70年代初期 | 中小规模集成电路 |
第四阶段 | 20世纪70年代初期至今 | 大规模集成电路 |
1.通信协议
计算机为了联网,就必须规定通信协议,早期的计算机都是由各厂商自己规定的一套协议,互不兼容。
为了把全世界的各种类型的计算机连接起来,就必须规定一套全球通用的协议,为了实现这个目标,互联网协议簇就是通用协议 标准出现了。
网络协议
网络体系结构 | 协议 | 主要用途 |
TCP/IP | IP,ICMP,TCP,UDP,HTTP,TELNET | 互联网、局域网 |
IPX/SPX | IPX,SPX,NPC... | 个人电脑局域网 |
AppleTalk | DDP,RTMP,AEP,ZIP0..... | 苹果公司现有产品的局域网 |
DEcent | DPR,NSP,SCP.... | 前DEC小型机 |
OSI | FTAM,MOTIS,VT,CMIS/CMIP | |
XNS | IDP,SPP,PEP | 施乐公司网络 |
2.TCP协议
互联网包含了上百种协议,其中最重要的两个协议是TCP和IP协议,所以互联网协议简称为TCP/IP协议。
TCP协议是一种可靠的、面向连接的、基于全双工通信和字节流的传输层协议通信。使用TCP的应用有Web浏览器、电子邮件和文件传输程序等。
为了提供可靠的通信服务,TCP通过三次分节建立连接、四次分节关闭连接。
3.IP地址
①IP地址介绍
在通信时,通信双方必须知道对方的标识,好比送快递必须知道对方的地址。互联网上的每个计算机唯一标识就是IP地址。IP地址实际上是一个32位整数以字符串表示的IP地址,把32位整数按8位分组后的数字表示,便于阅读。
②IP地址的作用
IP地址的作用是标识网络中唯一一台设备,也就是说通过IP地址能够找到网络中的某台设备。
4.子网掩码
①子网掩码的介绍
子网掩码又叫做网络掩码、地址掩码,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机位的掩码。
子网掩码不能单独存在着,它必须和IP地址一起使用。子网掩码就只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码是一个32位整数,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。
②子网掩码的表示方法
(1)点分十进制表示法
二进制转换成十进制,每8位用点号分隔开。
(2)CIDR斜线记法
格式:IP地址/n
③子网掩码的分类
(1)缺省子网掩码:也叫做默认的子网掩码,即未划分子网,对应的网络号的位置都为1,主机号都为0
未作子网划分的IP地址格式:网络号+主机号
A类缺省子网掩码:255.0.0.0 CIDR表示为/8
B类缺省子网掩码:255.255.0.0 CIDR表示为/16
C类缺省子网掩码:255.255.255.0 CIDR表示为/24
(2)自定义子网掩码:将一个网络划分为子网后,把原本的主机号的位置的一部分给了子网号,剩余的才是给了子网的主机号。形式如下:
网络号+子网号+子网主机号
例如:192.168.1.100/25,子网掩码表示为 255.255.255.128
④子网掩码和IP地址的关系
子网掩码是用来判断任意两台主机的IP地址是否属于同一网络的依据,就是拿双方主机的IP地址和自己主机的子网掩码进行运算,如果在同一网络就可以直接通信。
5.域名
①域名介绍
因为直接记忆IP地址非常困难,所以我们通常使用域名访问某个特定的服务。域名解析服务器DNS负责把域名翻译成对应的IP地址,客户端再根据IP地址访问服务器。
②用域名取得主机的IP地址
域名是为了便于记忆,用来代替IP地址访问网络的方法。在使用域名访问网络的时候,需要将这个域名转换成相应的IP地址,用域名返回地址的函数是gethostbyname。函数的使用方法如下:
sruct hostent *gethostbyname(const char *name)
6.Socket
①介绍
在网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的其中一端称为一个Socket(套字节),用于描述IP地址和端口。
建立网络通信连接至少要一对端口号,Socket的本质是编程接口(API),对TCP/IP的封装,提供了网络通信能力。
每种服务都打开一个Socket,并且绑定到端口上面,不同的端口对应不同的服务,例如HTTP对应80端口。
②socket()函数
Python中,我们采用socket()函数来创建套字节,其语法格式如下:
socket.socket([family[,type[,proto]]])
7.UDP协议
相对于TCP协议,UDP协议是面向无连接的协议。使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就可以直接发送数据包。但是,无法保证数据包一定被送达。虽然UDP传输数据不可靠,但是它的优势是比TCP协议速度快。对于不要求可靠到达的数据,就可以用UDP协议。
8.Python第三方库
python第三方库是采用额外的安装方式来提供更广泛的Python计算生态,由不同行业的开发者进行维护。第三方库的领域有数据分析、文本处理、机器学习、游戏开发等等。
①requests库
requests库是一个建立在Python语言的urlib3库基础上,简洁而简单的处理HTTP请求的第三方库,其最大的优点是程序编写过程更加接近URL访问过程。requests库支持非常丰富的连接访问功能,包括国际域名和URL获取、HTTP长连接和自动解压缩、自动解码等。
②pandas库
numpy是Python的一种开源数值计算扩展第三方库,用于处理数据库类型相同的多维数组。而pandas是基于numpy扩展的一个重要第三方库,用来解决数据分析任务而创建的,为时间序列分析提供了很好的支持。pandas提供一维数组类型Series和二维数组类型DataFrame。更多介绍请访问:http://pandas.pydata.org/。