本文目录

  • CS架构与BS架构
  • 网络通信
  • OSI七层协议/网络七层协议
  • 简单理解版本,五层协议
  • 对数据链路层的一点补充
  • 对网络层的一点补充
  • 对传输层的一点补充
  • 三次握手建立链接
  • 四次挥手断开链接
  • tcp协议的半连接池
  • 对应用层的一点补充


CS架构与BS架构

CS架构
服务器-客户机,即Client-Server(C/S)结构。C/S结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。
客户机通过局域网与服务器相连,接受用户的请求,并通过网络向服务器提出请求,对数据库进行操作。服务器接受客户机的请求,将数据提交给客户机,客户机将数据进行计算并将结果呈现给用户。服务器还要提供完善安全保护及对数据完整性的处理等操作,并允许多个客户机同时访问服务器,这就对服务器的硬件处理数据能力提出了很高的要求。
在C/S结构中,应用程序分为两部分:服务器部分和客户机部分。服务器部分是多个用户共享的信息与功能,执行后台服务,如控制共享数据库的操作等;客户机部分为用户所专有,负责执行前台功能,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。
C/S结构在技术上已经很成熟,它的主要特点是交互性强、具有安全的存取模式、响应速度快、利于处理大量数据。但是C/S结构缺少通用性,系统维护、升级需要重新设计和开发,增加了维护和管理的难度,进一步的数据拓展困难较多,所以C/S结构只限于小型的局域网

BS架构
B/S架构即浏览器和服务器架构模式,是随着Internet技术的兴起,对C/S架构的一种变化或者改进的架构。在这种架构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。B/S架构是WEB兴起后的一种网络架构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server同数据库进行数据交互。 这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

网络通信

网络存在的意义就是跨地域数据传输,我们将这个过程称之为通信
网络是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。通信是人与人之间通过某种媒体进行的信息交流与传递。网络通信是通过网络将各个孤立的设备进行连接,通过信息交换实现人与人,人与计算机,计算机与计算机之间的通信。
网络通信中最重要的就是网络通信协议。当今网络协议有很多,局域网中最常用的有三个网络协议:MICROSOFT的NETBEUI、NOVELL的IPX/SPX和TCP/IP协议。应根据需要来选择合适的网络协议。

简单理解:网络=物理链接介质+互联网通信协议

OSI七层协议/网络七层协议

OSI是一个开放性的通信系统互连参考模型,它是一个定义得非常好的协议规范。OSI模型有7层结构,每层都可以有几个子层。 OSI的7层从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层 ;其中高层(即7、6、5、4层)定义了应用程序的功能,下面3层(即3、2、1层)主要面向通过网络的端到端,点到点的数据流。

各层的功能
应用层
与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序就需要实现OSI的第7层。示例:TELNET,HTTP,FTP,NFS,SMTP等。
表示层
这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。示例:加密,ASCII等。
会话层
它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的, 在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。示例:RPC,SQL等。
传输层
这层的功能包括是选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCP,UDP,SPX。
网络层
这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。 为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。
数据链路层
它定义了在单个链路上如何传输数据。 这些协议与被讨论的各种介质有关。示例:ATM,FDDI等。
物理层
OSI的物理层规范是有关传输介质的特性,这些规范通常也参考了其他组织制定的标准。 连接头、帧、帧的使用、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范完成对所有细节的定义。示例:Rj45,802.3等。

简单理解版本,五层协议

协议指的是规定数据的组织格式
一般的格式:头部+数据部分

五层协议
应用层
传输层
网络层
数据链路层(ethernet以太网协议)
物理层(负责发送电信号,单纯的电信号毫无意义,必须对其进行分组)

简单理解就是一个快递被打包然后输送然后收货,再拆包的过程


打包的过程:数据外加头
拆包的过程:拆掉头获取数据

ethernet头+ip头+tcp头+应用层的头+应用层数据

对数据链路层的一点补充

  • 规定1:一组数据称为一个数据帧
  • 规定2:数据帧分成两部分:头+数据
    头包含:源地址与目标地址,该地址是mac地址(每台电脑的唯一标识)
    数据包含:包含的是网络层发过来的整体的内容
  • 规定3:规定但凡接入互联网的主机必须有一块网卡,每块网卡在出厂时都烧制好一个全世界独一无二的地址,该地址称之为mac地址

以太网协议的工作方式是广播(即通讯靠吼)

对网络层的一点补充

目的:
划分广播域,以期降低网络负担
每个广播域要想接通外部网络,一定要有一个网关帮内部的计算机转发包到公网
网关与外界通信依靠是路由协议

  • 规定1:一组数据称为一个数据包
  • 规定2:数据帧分成两部分:头+数据
    头包含:源地址与目标地址,该地址是IP地址
    数据包含的:传输层发过来的整体的内容

对传输层的一点补充

tcp\udp:基于端口
端口范围0-65535,0-1023为系统占用端口
ip+port=全世界范围内独一无二的一个基于网络通信的应用程序的标识
比如我可以通过该信息判断当前的请求来自哪台电脑的哪个客户端

基于tcp协议建立通信之前:必须有一个双向通信的链接

三次握手建立链接

建立链接是为了传数据做准备的,三次握手即可

第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户端的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

四次挥手断开链接

断开链接时,由于链接内有数据传输,所以必须分四次断开
(1) TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。
(2) 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
(3) 服务器关闭客户端的连接,发送一个FIN给客户端。
(4) 客户端发回ACK报文确认,并将确认序号设置为收到序号加1。

tcp是可靠传输的
发送数据必须等到对方确认后才算完成,才会将自己内存中的数据清理掉,否则重传

ps:当服务端大量处于TIME_WAIT状态时意味着服务端正在经历高并发

tcp协议的半连接池

限制的是同一时刻的请求数,而非连接数
backlog
[链接请求1,链接请求2,链接请求3,链接请求5]

对应用层的一点补充

可以自定义协议→头+数据
自定义协议需要注意的问题

  • 两大组成部分:头部+数据部分
    -头部:放对数据的描述信息
    比如:数据要发的目标,数据的类型,数据的大小
    数据部分:想要发的数据的内容
  • 头的长度必须固定
    因为接收端要通过头部获取所接接收数据的详细信息

常见的协议有:http https ftp