网络编程前戏

1.网络编程的软件开发架构

  软件的开发架构主要有两种:C/S架构和 b/s架构,其中b/s架构在本质上也是C/S架构。

  C/S架构(Client/Server):客户端/服务端。建立在局域网的基础上。服务端可以看成是24小时提供服务的机器,客户端需要先安装好应用程序,然后根据自己的需求寻找合适的服务端享受服务。c/s架构的应用如QQ、微信、淘宝等。

  b/s架构(Browser/Server):浏览器/服务器。建立在广域网的基础上。b/s架构可以不依赖于应用软件,只需在浏览器上沟通HTTP就可以获取到网页资源,手机软件里面的小程序中便就是用的这种架构如微信小程序。

2.网络基础

  想要实现远程通信需要具备的条件是:物理连接介质。比如说,人与人之间想要无障碍的交流,就需要统一一门语言,而计算机与计算机之间要实现远程通信,不仅需要物理连接介质,还需要一套公共的标准或协议,也就是OSI协议。

OSI七层协议为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理链路层。为了便于记忆,便有人将应用层、表示层、会话层统称为应用层,这就是OSI五层协议的来源。

1).物理链路层

  常指基于电信号传输的二进制数据。

2).数据链路层

  规定了电信号的分组方式,也规定了任意一台接入互联网的计算机都要具备一块网卡,每一块网卡上面都有一串(12位数的16进制)编号,前6位数表示的厂商名字,后6位是流水线编号,我们管这12位数叫mac地址。这两个规定合称为“以太网协议”。

  交换机是基于以太网协议通信,不能跨局域网通信,互联网可以看成是由多个局域网之间连接而成的。

3).网络层

  网络层的目的是为了实现两个端系统之间的数据传送,其核心为IP协议。

  IP协议规定了只要是接入互联网的计算机都必须要有一个IP地址;

  IP地址是以点分十进制的方式来设置,IP地址的范围是在0.0.0.0到255.255.255.255之间。

  IP地址目前有两个版本ipv4,ipv6(ipv6的出现是因为IPv4已经不足以表示目前的计算机了)。IP地址是动态随机分配的。

4).传输层

  TCP\UDP都是基于端口(port)工作的协议,计算机与计算机之间的通信其实是计算机上的应用程序之间的互相通信。

  TCP协议类似于打电话。UDP协议类似于发短信。

  端口:用来唯一标识一台计算机上的某个应用程序。端口号的范围是0~65536,其中要注意的是端口号为0~1024的这些都是操作系统默认使用的端口号。

  MySQL默认端口:3306

  Redis默认端口:6379

  Django默认端口:8000

  flask默认端口:5000

  端口号是动态分配的,比如说第一次分配到QQ的端口号是9999,等你关闭QQ再次重启以后端口号可能就变了。IP地址:用来唯一标识一台计算机上的某个应用程序;port端口:用来唯一标识一台计算机上的某个应用程序,那么ip+port就是:唯一标识接入互联网一台计算机上的某个应用程序。

5).应用层

  HTTP协议

  FTP协议 

3.TCP协议

  TCP协议可以理解为流式协议或者是可靠协议。如果要基于TCP协议通信,必须要先建双向通道。

  三次握手四次挥手

  三次握手连接

 

  四次挥手连接

  

  

 

posted @ 2019-08-06 21:21  kuanglinfeng  阅读(108)  评论(0编辑  收藏  举报