网络编程简介
一 网络介绍
- 网络介绍
网络:可以将终端的设备,通过中间的连接设备,最终可以连接在一起,进行数据的交互。
终端设备:连接到网络中的那些硬件设备。例如:电脑,手机,电视机等。
中间设备:负责连接终端设备的其他硬件。路由器,交换机,调制解调器,网线,光钎,卫星等
2、网络模型介绍
由于网络中的设备众多,老美他们将网络中的所有的设备工作时所处理的任务进行划分。于是将网络划分成7层:
OSI(Open System Interconnection开放系统互连)参考模型:
1.层物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。
2.层数据链路层:主要将从物理层接收的数据进行MAC地址(网卡的地址)的封装与解封装。常把这一层的数据叫做帧。在这一层工作的设备是交换机,数据通过交换机来传输。
3.层网络层:主要将从下层接收到的数据进行IP地址(例192.168.0.1)的封装与解封装。在这一层工作的设备是路由器,常把这一层的数据叫做数据包。
4.层传输层:定义了一些传输数据的协议和端口号(WWW端口80等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如普通聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段。
5.会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)
6.表示层:主要是进行对接收的数据进行解释、加密与解密、压缩与解压缩等(也就是把计算机能够识别的东西转换成人能够能识别的东西(如图片、声音等)。
7.应用层: 主要是一些终端的应用,比如说FTP(各种文件下载),WEB(IE浏览),QQ之类的(可以把它理解成我们在电脑屏幕上可以看到的东西.就是终端应用)。
网络三要素
IP介绍
我们连接到网络中的终端设备,最终它们之间需要进行数据的交互。交互之前,设备之间需要进行连接。连接到网络中的所有终端设备都会给其分配一个网络中唯一的数字标识,被称为IP地址。而我们进行通信的时候,就需要依赖这个唯一的数字标识。
IP地址:它是连接到网络中任何设备的唯一的标识,只能通过的ip地址找到网络中的这个设备,然后连接起来进行数据传递。
扩展:可以在dos窗口中,输入 ping命令,连接某个网址下的电脑,显示其ip地址。很多网站都拒绝直接使用ip访问。
扩展:网卡地址,任何设备只连网,都需要物理硬件网卡。而所有的网卡在出厂的时候,都分配了一个固定的物理地址(全球唯一)。
ip和网卡地址介绍:
IP是连接网络的所有设备的唯一的数字标识。
网卡是连接网络中的设备的物理设备的标识。
上述的ip和网卡可以理解成手机中的手机的唯一的数字标识和手机号码。
任何手机出厂的时候都有一个唯一的数字标识 *#06# , 理解成网卡地址。
每个手机又可以使用一个独立的手机号码 ,手机号码可以理解我们讲解的IP地址,
本地回环地址:所有网卡出厂的时候,都会有一个网卡地址,同时还给这个网卡上已经绑定好了一个唯一的ip地址127.0.0.1.
域名解析
平时上网的时候访问任何的网站,都没有通过IP地址访问,而是通过网站的网址在进行访问。其实在网络中任何的网址都被称为域名,而在域名的背后对应的ip地址。
域名:baidu、jd、itcast、taobao等这些都属于域名,而任何的域名都需要购买。
主机:host(电脑),每个主机都有一个IP地址。需要到网络中专门的DNS服务器上进行域名和主机的绑定操作。
平时使用电脑上网的时候,通过域名访问某个网站,而在访问的时候,需要经过2步操作:
- 本地域名解析(将域名解析成IP地址过程)
在输入完域名之后,操作系统会在本地的hosts文件中查找有没有IP地址和域名对应关系,如果有,就使用当前这个ip进行访问, 如果没有,才会到DNS服务器上进行解析。
C:\Windows\System32\drivers\etc\hosts
2、DNS服务器域名解析
本地域名解析失败之后,这时会到DNS服务器上进行域名解析。如果DNS服务器上有域名和IP的对应关系,就会使用这个ip地址访问,如果没有设置提示DNS配置错误等其他的网络连接错误。
端口介绍
通过ip地址一定可以连接到网络中这个设备上。最终需要和这个设备中具体的软件进行数据的交互。而一个电脑里面可以运行很多的软件,怎么区分每个不同的软件呢?
在电脑中运行的任何软件,都有一个唯一的标识。这个标识被称为端口号。
IP是连接在网络中的设备的标识,端口是运行在设备中的软件的标识。
通过ip找到网络中的设备,通过端口找到设备中的软件,这样就可以和设备中的软件进行交互。
端口相关的信息:
在设备中运行的任何软件都必须绑定到一个端口上。端口号从0~65535之间,一般0~1024默认分配给操作系统的软件使用。如果我们自己开发程序需要绑定端口号,建议使用1025~65535之间的。
如果有的端口正在被其他程序占用,这时自己运行的程序如果也需要绑定这个端口,那么自己的程序启动的时候就会发生异常(端口绑定异常)。
总结:
连接访问信息:必须是 IP:端口
协议介绍
协议:主要功能的规定双方应该遵守的规则。
网络编程传输层的协议:
它是在规定通信的双方应该根据什么样的规则进行数据交互。
通过ip找到通信的另外一端,通过端口找设备中的软件,最终需要和软件进行数据交互,数据必须遵守一定的通信规则。
UDP协议:用户数据报文包协议(面向无连接的协议)
如果通信双方使用UDP协议进行通信,这时发送的一方不用关心接收方双方正在接收数据,只要发送方发送数据即可,如果接收方正在接收数据,就可以将数据接收到。如果接收方没有在接收数据,数据就被丢弃。
UDP传输的速度比TCP快,效率稍高,但是因为发送和接收不受约束,所以安全性非常的低。一般使用在对数据安全性要求较低的通信中。
比如:实时不分服务器和客户端的一对一聊天系统,对讲机系统等。
TCP协议:传输控制协议(面向有连接的协议)
通信双方必须经过三次握手建立通信的通道,然后双方在这个通道进行数据的交互,如果有任何一方断开,通道就被破坏,双方无法在继续通信。
TCP 传输的速度比UDP慢,但是安全性高。因此对数据安全性只要有要求的交互都使用TCP协议。
例如:传输文件底层,打电话等。
总结:
只要进行网络的通信:必须具备三个要素:
IP:网络中的设备的唯一标识。
端口:设备中的软件标识。
协议:通信双方需要遵守的协议规则。