网络编程

Posted kevin-red-heart

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络编程相关的知识,希望对你有一定的参考价值。

一.客户端与服务端架构---------网络通信的用武之地

  (1) c/s 架构:客户端(client)/服务端(server)架构

  (2) b/s 架构:浏览器(browser)/服务端(server)架构

      其中b/s架构本质上从属于c/s架构(避免了大量的App应用程序,提供统一入口,现在越来越火的微信小程序和公众号)

       实例:

      软件cs架构:浏览器,QQ,微信,陌陌

      硬件cs架构:打印机    

    注:  架构:就是不同的组成结构;

       server服务端一直运行,随时准备服务别人,比如说百度,你一访问,它就回复你.Client :客户端,使用服务的端口.

二.网络通信的整个流程

  集线器:将所有电脑联通起来

  交换机:升级版的集线器

  网卡:接受处理电信号

  Mac地址:物理地址,网络设备的全球唯一标识(是你网络设备的身份证号)

      物理地址:1C-1B-0D-74-43-9A  ,其中前四位为厂商编号,后四位为生产编号.

 

  IP地址:IPv4地址:192.168.12.11 (四个点分十进制)  划分广播域;ip地址段:192.168.12.0----192.168.12.255,叫ip同一地址段,同一子网,前两位相同或前三位相同.

 

  最开始时,网络通信通过广播的形式.广播:给每个人发一份,是自己的就要,不是自己的,就扔掉. 广播形式引起广播风暴,可能一年后才收到,且可能伪造Mac,数据不安全,网络拥堵.

  

技术分享图片技术分享图片

  但存在广播风暴的危险(每次发消息都会给所有人发一份,造成网络堵塞),后来规定,在局域网(同一地址段)内用广播的方式通信(在一个子网内),    

  Ip地址段:192.168.12.0 --- 192.168.12.255 同一ip地址段,称为同一子网,以广播的形式通信.192.168.0.0 -- 192.168.255.255  

  通信必须通过IP地址来通信,不用直接找MAC地址,iP地址必须携带MAC地址,因为Mac地址才是唯一标识,但IP地址是可以变的(例如电脑在不同地方插网线,被分配的IP不同),本质上mac不同地址进行交流通信.

        DHCP协议:自动获取IP地址.  交换机分配IP地址

  那IP地址是如何找到Mac地址呢?通过ARP协议来从IP地址找到MAC地址.

  在你发出一个消息时,带着自己的IP地址和对方的IP地址,这时交换机会计算两个对象是否在同一地址段.这里涉及到子网掩码.

  子网掩码:计算是否IP地址是否在同一地址段,网段,同一子网等.255.255.255.0

    目标ip地址是:192.168.12.16

          11000000.10101000.00001100.00010000

          255.255.255.0

          11111111.11111111.11111111.00000000

          11000000.10101000.00001100.00000000

          192.168.12.0  

  当交换机计算后,在同一网段内则用广播通信,如果不是同一网段,那么就扔给路由器,路由器管着所有交换器,广播给所有交换器.------这是内网.路由器管辖范围内的是局域网

  技术分享图片

 

 

 

 

 

 

 

 

 

 

 

    外网:如京东;域名:www.jd.com  域名转换为京东服务器的IP地址,

      DNS:域名解析(存着很多的键值对)

      路由器先将域名(网址)扔给DNS转换为IP地址.注:因为IP地址很难记,所以产生了好记的域名.

          路由器的局域网IP地址只供局域网(内网用),外网找不到你,而要想上网,需要外网IP地址,其实就是路由器上的网关ip地址(收费).网络地址转换由NAT转换实现.

    路由器除了管理内网,还有转发消息功能(转发到要访问IP地址的路由器上),转发消息时会计算最优路径.路由协议:计算最优路径.然后按照最优路径进行转发消息.

      此处小结:     

          路由器:转发消息,管理内网

          路由协议:计算路由转发的最优路径

    到达目标路由器后(京东),需要端口号和IP地址.即路由器处发生端口号映射

          端口:标示电脑上某个应用程序 ;0~65535      

          Ip地址+端口 = 能够唯一锁定一台电脑和这个电脑上的某个应用程序

      网关:把关用的,意思就说所有对外的请求都要经过网关

       NAT技术:网络地址转换,内网ip地址转换为公网或者说外网的ip地址.

 

以上是关于网络编程的主要内容,如果未能解决你的问题,请参考以下文章

Linux高级网络编程系列教程

Linux高级网络编程系列教程

面向对象编程面向组件编程面向方面编程面向服务编程

编程范式:命令式编程(Imperative)声明式编程(Declarative)和函数式编程(Functional)

少儿编程教育未来前景如何?我想加入少儿编程这行。

TCP/IP网络编程——理解网络编程和套接字编程