天天看点

网络编程

什么是网络:

现如今网络的普及性已经非常的高了,大部分人也都非常熟悉网络,基本上也是天天离不开网络,比如逛逛微信朋友,聊聊qq撩撩妹,上个淘宝剁个手什么的。网络是将所有的计算机连接在一起的一张庞大的络脉,当然也并不都是连接计算机,还有手机、车载系统、智能手表等等,不过其实这些设备都属于计算机的一种。

在以前还没有网络的时候,计算机都是独立模式的,计算机之间的数据交互只能通过硬件、存储介质来实现。那是20世纪50年代的事情,称之为批处理时代。

后来出现了一种分时系统,也就是多个终端连接一个计算机,使得计算机的交互性进阶了一步,所以称之为分时系统时代,那是20世纪60年代左右出现的。

自分时系统时代之后在20世纪70年代左右开始研究发展计算机通信,那时候的计算机与计算机之间和每个终端之间开始用通信线路连接,并且计算机的个子已经逐渐往小型化。所以在一些企业、学校、大型商场也逐渐开始使用计算机,计算机不再是研究机关的专属用品,这种发展推动着计算机通信技术的研究。

20世80年代一种能够互联多种计算机的网络随之诞生,它能够让各种各样的计算机互相连接。然后网络逐渐的发展至今,并且个人计算机的网络硬件都已经非常的小巧发达,在十年前网卡还只能是独立式的,那时候还可以利用电话线拨号上网,现在网卡基本都集成在电脑主板上了,一般现在用独立网卡的都是为了性能和网络的连接速度,一般也就工作室之类的会用得上。

以前的网络示意图:

网络编程

现在的网络分为广域网、城域网、局域网,广域网就是国家骨干网,是最核心的网络。也是最先进的网络,连接着海底光缆,网络运营公司和一些国企是从骨干网里分享的网络。城域网就是一些运营商架构在城镇之间的网络,能够在城镇范围互相连接。局域网则是个人庭或个人公司、超市等,通过路由器所形成的小型网络叫局域网。

示意图:

网络编程

  在操作系统中网络处理最好的系统是Unix和Linux操作系统,因为TCP/IP协议是固化在Linux内核里面的,网络处理性能要强于windows操作系统,所以服务器基本都是使用的Unix/Linux操作系统。

IP地址:

  Ip地址是用于识别某台计算机的唯一地址,就像每个人家的门口都有门牌号一样。但是ip地址分为广域网的ip地、城域网的ip地址、局域网的ip地址。广域网的ip地址和城域网的ip地址一般都是由网络运营商分配的,局域网的ip地址则是由路由器分配的。

私有地址(局域网地址):

网络编程

Ip分为ipv4和ipv6,目前ipv4比较普遍,ipv6则是在推行中。

  ipv4由四个字节(32位)组成 :255.255.225.255  ipv4总共有43亿个ip地址;本地地址(localhost):127.0.0.1

  ipv6由十六个字节(128位)组成,ipv6总共有2^128个ip地址,不过还没有完全普及下来:

网络编程

IPV6的格式可以在cmd中使用ipconfig命令查看:

网络编程

端口:

  Ip地址用于识别计算机,端口则是用于识别计算机里的应用程序的。计算机中每一个应用程序需要连接互联网交互数据,都需要有一个端口,端口就像一个应用程序唯一的身份象征,如果没有端口,怎么知道接收回来的数据交给哪个应用程序?

所以这就是端口在计算机中的作用,端口的格式就是一串数字。

网络编程

4000以上的端口都可以申请,4000以下的是系统保留端口,端口可以给不同的协议占用,但是一个端口不可以给同一个协议占用。

端口映射:

  已经知道了端口是怎么回事,那么端口映射又是什么?在连接互联网上的服务器时,是通过路由器再通过光猫出去的,在一个路由器下面可以连接着好几台计算机,而且每台计算机里都有很多的应用程序会通过端口连接互联网,所以当互联网上的服务器要反馈数据到某台计算机的某个应用程序里怎么办?如果通过广域网ip的话只能够找得到路由器,通过局域网ip就根本是无效ip不可能连接得到,这个时候就需要端口映射来解决这个问题了,当某个局域网的计算机里的应用程序向互联网上的服务器交互数据的时候,通过路由器时是带有一个局域网ip和一个端口号的,这时候就会在路由器中给在这段带有局域网ip和一个端口号的字符串映射一个端口上去,这个映射就像给这个字符串加上唯一的标识身份,当互联网上的服务器往计算机上的那个应用程序反馈数据的时候,就可以通过这个唯一标识一般的端口映射找到那个局域网下的计算机里面的那个应用程序。这就是端口映射的意义和作用所在,虽然有点绕,不过思考多几次就能理解的了。

  端口映射可以分为手动映射和自动映射,手动映射就是自己手动配置映射的端口号,自动映射则是路由器自动分配映射的端口。一般情况下的使用过程中都是采取自动端口映射的方式,除非是自己需要构建服务器就需要手动去映射。

  示意图:

网络编程