- 网络结构模式
C/S结构:即客户机/服务器(Client/Server)结构,客户机通过网络与服务器相连,接受用户的请求,并通过网络向服务器提出请求,对数据库进行操作。服务器接受客户机的请求,将数据提交给客户机,客户机将数据进行计算并将结果呈现给用户。
- 优点:充分发挥客户端PC的处理能力,很多工作在客户端处理后再交给服务器;个性化。
- 缺点:维护成本高,对客户端操作系统有限制,无法跨平台。
B/S结构:浏览器/服务器模式(Browser/Server)结构,WEB浏览器是客户端最主要的应用软件,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
- 优点:总体拥有成本低、维护方便、 分布性强、开发简单;客户端零维护,系统的扩展非常容易
- 缺点:通信开销大,个性化低,协议固定(http/https);客户端服务器的交互是请求-响应模式,响应速度低。
MAC地址:用来确认网络设备位置的物理地址,长度为48位(即6个字节),通常表示为12个16进制数;每一个MAC地址都是独一无二的,其位于OSI模型第2层(即数据链路层)。
IP地址:互联网协议地址(Internet Protocal Address), 长度为32位(即4个字节),通常以“点分十进制”来表示。IP地址包括网络主机ID和主机ID两个标识码,同一物理网络的所有主机都是用同一个网络ID。
- A类:以
0
开头1字节的网络ID+3字节主机ID,范围为1.0.0.1-126.255.255.254. - B类:以
10
开头的2字节网络ID+2字节主机ID,范围为128.0.0.1-191.255.255.254. - C类:以
110
开头3字节网络ID+1字节主机ID,范围为:192.0.0.1-223.255.255.254. - D类:多播地址/组播地址,以
1110
开头,范围为224.0.0.0-239.255.255.255. - E类:以
11110
开头,保留用于将来和实验使用,范围为240.0.0.0-247.255.255.255 - 特殊:0.0.0.0表示当前主机,255.255.255.255为当前子网广播地址;127.0.0.0-127.255.255.255用于回路测试.
子网掩码:长度和IP地址一样,均为32位,用于将IP地址中的主机ID和网络ID分离,其中网络ID=IP & mask,而主机ID=IP & (~mask).
端口:port,是设备和外界通讯的出口,分为虚拟端口(特指TCP/IP协议中的逻辑端口)和物理端口,范围为0-65535。
- 周知端口:也叫知名端口、公认端口或常用端口,范围为0-1023.
- 注册端口:范围为1024-49151
- 动态端口/私有端口:49152-65535
- 网络模型
OSI(Open System Interconnection,开放式系统互联)参考模型自底而上为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
- 物理层:定义物理设备标准,传输比特流,数据为比特。
- 数据链路层:建立逻辑连接、进行硬件地址寻址、差错校验等,该层将比特组合为字节从而组成为帧。(提供介质访问和链路管理)
- 网络层:进行逻辑寻址,提供主机间的连接和路径选择
- 传输层:建立、管理、维护端到端的连接,数据格式为段
- 会话层:通过传输层建立数据传输通路(即会话),主要用于发起会话和接收会话请求
- 表示层:数据格式转化、数据加密
- 应用层:为应用程序提供服务
TCP/IP协议把OSI参考模型进行简化,将物理层和数据链路层统一为网络接口层,将会话层、表示层和应用层统一为应用层,因而模型变为4层。
- 协议:为了使数据在网络上从源到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议(protocol),它最终体现为在网络上传输的数据包的格式。协议的三要素为语法、语义、时序。
- UDP协议: 16位源端口号+16位目的端口号+16位长度(包括头部和数据包的长报,单位为字节)+16位校验和+数据
- TCP协议:16位源端口号+16位目的端口号+32位序号+32位确认号+4位头部长度(数据报到头部的偏移量,单位为4字节)+6位保留+6个标志位+16个窗口大小+16位校验和+16位紧急指针(指出紧急数据的字节数)+选项(最多达40字节)
- URG紧急:为1则紧急指针有效,表明数据中有紧急数据
- ACK确认:为1则确认号有效,TCP中连接建立后传送的报文中ACK必须置1
- PSH推送:为1则让接收端尽快将报文交给对应的应用进程,而不是等整个缓存满后再交付
- RST复位:复位TCP连接
- SYN同步:仅在3次握手建立TCP连接时有效,为1时说明报文为连接请求(SYN=1且ACK=0)或连接接受(SYN=1且ACK=1)报文
- FIN终止:为1则表明发送方数据已发送完毕,要求释放连接
- IP协议:4位版本号(4则采用IPv4,6则采用IPv6)+4位头部长度+8位服务类型(为0)+16位总长度(单位为字节数)+16位标识+3位标志(只有前两位有意义)+13位片偏移(单位为8字节)+8位生存时间(TTL,跳数限制)+8位协议(ICMP(1),IGMP(2),TCP(6),UDP(17),IPv6(41))+16位头部校验和+32位远源端IP+32位目的端IP+数据(至多40字节)
- 以太网帧协议:24位目标MAC地址+24位源MAC地址+12位类型(IP(0X800), ARP(0X806), RARP(0X835))+(46~1500)字节数据+32位CRC
- ARP协议:16位硬件类型(MAC(1))+16位类型(IP(0x800))+8位硬件地址长度(6)+8位协议地址长度(4)+16位操作(ARP请求(1),ARP应答(2),RARP请求(3),RARP应答(4))+48位发送端以太网地址+32位发送端IP+48位目的端以太网地址+32位目的端IP
- 封装与分用
应用程序数据在发送到物理网络上之前,将沿着协议栈从上往下依次传递。每层协议都将在上层数据的基础上加上自己的头部信息(有时还包括尾部信息),以实现该层的功能,这个过程就称为封装。
当帧到达目的主机时,将沿着协议栈自底向上依次传递。各层协议依次处理帧中本层负责的头部数据,以获取所需的信息,并最终将处理后的帧交给目标应用程序。这个过程称为分用(demultiplexing)。