8.6 网络编程7层协议

一。软件开发架构

  在所有软件中有两种结构模式

  1.c/s架构(client/server)

  c代表的是客户端

  s代表的是服务端

  2.b/s架构(browser/server)

  b代表的是浏览器

  s代表的是服务端

  当然,bs架构的本质也是cs架构。

  在现在手机中,软件中多有网站的链接等等,是c/s中b/s的体现。

二。七层协议

  应用层

  表示层

  会话层

  传输层

  网络层

  数据链路层

  物理层

  五层协议

  应用层

  传输层

  网络层

  数据链路层

  物理连接层

三。各个层的分析

  1.物理连接层

  在这一层,通常是指电信号的传输,以010101001010这种二进制的数据进行传输的的物理层。

  2.数据链路层

  这一层的协议表示的是:

  1规定了电信号的分组方式

  2.规定了任何一台接入互联网的计算机都有一块网卡,每一块网卡上,都刻有世界上独一无二的编号。

  是由12位16进制数组成,前6位是厂商编号,后六位是流水线编号。

  这十二位数共同组成了mac地址。

  这种协议被称为‘以太网协议’

  以太网协议通信的特点:

  通信广播。就是当在局域网中以以太网进行协议传输,当用户1需要对用户2进行访问时,需要广播其请求,使得在其局域网中的所有人都收到这个请求,但是只有用户2能够响应这个访问,然后与之建立连接。

  在局域网中,使用交换机进行集合,各个pc端通过交换机进行连接。交换机是基于以太网协议通信的。但是不能跨局域网进行通信。

  互联网:互联网是由多个局域网彼此之间连接而成。

  3.网络层

  在这一层使用的协议是ip协议。

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

  这类IP地址类似于255.255.255.0,是由点分十进制,

  最小的 是0.0.0.0,最大的是255.255.255.255。

  其中有ipv4和ipv6两种协议,开发ipv6的原因是v4不够使用。

  广域网与路由器。

  要使得局域网与局域网之间实现通信,需要使用路由器,将交换机连接至路由器,就可以和其他连入路由器的交换机进行通信。

  路由器与交换机之间有网关。

  ip地址是动态分配的。每当你重新连入一次网络后,都有可能会改变。

 

  4.传输层

  tcp

  udp

  在这一层中使用这两种协议,这些协议都是基于端口号(port)的协议。

  端口号是用来唯一表示一台计算机上的某个应用程序的。

  端口范围是0——65535

  假设一个pc机上有65536个应用程序启动,当启动地65537个时,会报错,因为没有端口给它使用了。

  注意:0~1024这些都是操作系统默认使用的端口号

  建议:使用8000之后的端口

  MySQL默认端口:3306

  Redis默认端口:6379

  django默认端口:8000

  flask默认端口:5000

  tomcat默认端口号:8080

  端口号也是动态分配的。

  我们通常使用ip+port唯一标识接入网络的软件。

  

  5.应用层

  http协议

  ftp协议 

  

  tcp协议

  TCP协议时一个流式协议,是可靠的协议。

  是基于TCP协议通信,必须先建立双向通信。

  其中包括三次握手 和四次挥手。

  三次握手:

 

  在三次握手时,客户端先发送连接请求向服务器,当服务器接受到请求后,返回收到请求的报告,并向其发送连接请求,这两个可以一起发送,最后客户端再返回一个收到服务器请求的反馈信息。这样双向通道就建立完毕了。

  四次挥手:

 

  四次挥手是在连接断开时的动作,一开始,客户端需要向服务器发送断开连接请求,服务器收到请求后,向客户端发送收到请求的消息,但不立即发送断开服务器与客户端之间的连接,因为,数据传输工作可能没有结束,需要完成传输工作后,再发送断开连接请求,当客户端收到断开连接请求后,再向服务器发送收到断开请求的消息,这时候双向通道才算完全断开。

  总共流程:

 

,  

 

posted on 2019-08-06 21:36  一只萌萌哒的提莫  阅读(131)  评论(0编辑  收藏  举报