网络编程

网络编程  

  网络编程实质上就是网络之间的基于物理传输介质(网线,光纤,广播波通信介质)经行数据发送与接收。网络编程和大多数先进的科技一样源于军事,后来在民用领域进行应用。早期有电话,电脑,到现在的笔记本。网络编程紧跟科技发展而发展。

既然是数据的发送与接收,就需要发送者于接收者。在软件开发架构中发送者与接收者分为C/S架构和B/S架构。C/S架构中C为客服端(client),S为服务端(server)。B/S架构中B为浏览器(browser),S为服务端(server)。C/S架构中我们常见的有手机app,各种应用程序。各种浏览器都是B/S架构。微信小程序,支付宝小程序是属于B/S架构的。

  客服端和服务端各有特点,客户端的工作时间是灵活的,随时都可以发送信息。但是服务端不同,服务端需要不间断的工作,随时准备接受客服端发来的数据。

OSI协议

  信息在整个互联网内传输,计算机之间的交流,都是一些数据在传输,如何能使互联网内的计算机之间能够畅通交流,就需要一种标准,都执行这种标准,就可以和不同局域网,不同国家之间进行交流。这种协议称OSI协议。

  OSI协议又称OSI七层协议(应表会传网数物)。应用层,表示层,会话层,传输层,网络层,数据链路层,物理链路层。在编程开发中又称OSI五成协议。其中分为应用层,传输层(将表示层,会话层和传输层划为一层)网络层,数据链路层,物理链路层。

一)物理链路层

  物理链路层基于电信号(二进制编码0, 1)传输数据

二)数据链路层

  当传输一串2进制编码时,在数据链路层规定划分编码的分组方式。还规定计算机进入互联网的网卡。这两个规定又称以太网协议

  1)网卡

  网卡是一串12位16进制数,前6位是厂商编号,后6位是流水线编号。每一台计算机都有一个网卡编码,且唯一。网卡又称mac地址。

  2)以太网协议

  这是一种通信协议,以太网协议特点是向局域网发送广播。目标计算机在这个局域网就会收到请求,进而回复信息,这种方式又称单播。这种通信方式有缺点,当多台计算机同时发送广播,会造成广播风暴现象。目标计算机不在局域网内无法收到广播信号。

三)网络层

  网络层有IP协议,规定计算机进入互联网都必须有一个IP地址。这个IP地址是点分10进制的,目前有IPv4版,和IPv6版。IP地址是动态分配的。在总端交互输入ipconfig命令即可查看当前IP。

网络编程_第1张图片

  互联网是局域网的一个集合。包含所有局域网,在局域网内广播需要交换机,局域连接其他局域网需要路由器和网关。

四)传输层

  应用层的TCP/UDP协议是基于端口工作的协议。

  一)端口

  端口是计算运行的应用程序唯一标识。且是动态分配的。端口的范围在:0~65535。其中操作系统的的默认端口在0~1024之间。建议在使用端口用8000之后的端口。

  MySQL默认端口号:3308

  flask默认端口号:5000

  Redis默认端口号:6379

  djang默认端口号:8000

五)应用层

  应用层有HTTP协议和FTP协议。

  TCP协议(又称流式协议,可靠协议)

  TCP协议有三次握手和四次挥手之说。TCP协议的三次握手是建立连接,第一次是客户端向服务端发送请求建立于复位端发送通道,第二次是服务端就受请求向客户端发送同意信号,并且发送建立于客户端通道请求,第三次就是客户端回复同意信息。这样客户端于服务端的双向通道进行通信。

  建立完双向通道后客户端发送信息,都会接到服务端的反馈信息。接到反馈信息之后就可以继续发送。如此往复。

  TCP四次挥手是断开连接。第一次客户端向服务端发送断开请求,第二次是服务端发送同意信息,断开客户端向服务端的通道,第三次,客户端计算完处理的信息。也向客户端发送断开信息,,第四次是客户端发送同意请求,断开服务端到客户端的通道。

 

  

  

你可能感兴趣的:(网络编程)