一、网络基础

一、网络基础
网络结构模式C/S结构简介服务器 - 客户机即Client - ServerC/S结构。C/S 结构通常采取两层结构。服务器负责数据的管理客户机负责完成与用户的交互任务。客户机是因特网上访问别人信息的机器服务器则是提供信息供人访问的计算机。客户机通过局域网与服务器相连接受用户的请求并通过网络向服务器提出请求对数据库进行操作。服务器接受客户机的请求将数据提交给客户机客户机将数据进行计算并将结果呈现给用户。服务器还要提供完善安全保护及对数据完整性的处理等操作并允许多个客户机同时访问服务器这就对服务器的硬件处理数据能力提出了很高的要求。在C/S结构中应用程序分为两部分服务器部分和客户机部分。服务器部分是多个用户共享的信息与功能执行后台服务如控制共享数据库的操作等客户机部分为用户所专有负责执行前台功能在出错提示、在线帮助等方面都有强大的功能并且可以在子程序间自由切换。优点能充分发挥客户端 PC 的处理能力很多工作可以在客户端处理后再提交给服务器所以 C/S 结构客户端响应速度快操作界面漂亮、形式多样可以充分满足客户自身的个性化要求C/S 结构的管理信息系统具有较强的事务处理能力能实现复杂的业务流程安全性较高C/S 一般面向相对固定的用户群程序更加注重流程它可以对权限进行多层次校验提供了更安全的存取模式对信息安全的控制能力很强一般高度机密的信息系统采用 C/S 结构适宜缺点客户端需要安装专用的客户端软件。首先涉及到安装的工作量其次任何一台电脑出问题如病毒、硬件损坏都需要进行安装或维护。系统软件升级时每一台客户机需要重新安装其维护和升级成本非常高对客户端的操作系统一般也会有限制不能够跨平台B/S结构简介B/S 结构Browser/Server浏览器/服务器模式是 WEB 兴起后的一种网络结构模式WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端将系统功能实现的核心部分集中到服务器上简化了系统的开发、维护和使用。客户机上只要安装一个浏览器如 Firefox 或 InternetExplorer服务器安装 SQL Server、Oracle、MySQL 等数据库。浏览器通过 Web Server 同数据库进行数据交互优点B/S 架构最大的优点是总体拥有成本低、维护方便、 分布性强、开发简单可以不用安装任何专门的软件就能实现在任何地方进行操作客户端零维护系统的扩展非常容易只要有一台能上网的电脑就能使用缺点通信开销大、系统和数据的安全性较难保障个性特点明显降低无法实现具有个性化的功能要求协议一般是固定的http/https客户端服务器端的交互是请求-响应模式通常动态刷新页面响应速度明显降低MAC地址网卡网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件又称为网络适配器或网络接口卡NIC。其拥有 MAC 地址属于OSI模型的第 2 层它使得用户可以通过电缆或无线相互连接。每一个网卡都有一个被称为 MAC 地址的独一无二的48 位串行号网卡的主要功能1.数据的封装与解封装、2.链路管理、3.数据编码与译码MAC地址MAC 地址Media Access Control Address直译为媒体存取控制位址也称为局域网地址、以太网地址、物理地址或硬件地址它是一个用来确认网络设备位置的位址由网络设备制造商生产时烧录在网卡中在OSI模型中第三层网络层负责 IP 地址第二层数据链路层则负责 MAC 地址MAC 地址用于在网络中唯一标识一个网卡一台设备若有一或多个网卡则每个网卡都需要并会有一个唯一的 MAC 地址IP地址简介IP 协议是为计算机网络相互连接进行通信而设计的协议。在因特网中它是能使连接到网上的所有计算机网络实现相互通信的一套规则规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统只要遵守IP 协议就可以与因特网互连互通。各个厂家生产的网络系统和设备如以太网、分组交换网等它们相互之间不能互通不能互通的主要原因是因为它们所传送数据的基本单元技术上称之为“帧”的格式不同IP 协议实际上是一套由软件程序组成的协议软件它把各种不同“帧”统一转换成IP 数据报格式这种转换是因特网的一个最重要的特点使所有各种计算机都能在因特网上实现互通即具有“开放性”的特点。正是因为有了 IP 协议因特网才得以迅速发展成为世界上最大的、开放的计算机通信网络。因此IP 协议也可以叫做“因特网协议”IP 地址Internet Protocol Address是指互联网协议地址又译为网际协议地址。IP 地址是 IP协议提供的一种统一的地址格式它为互联网上的每一个网络和每一台主机分配一个逻辑地址以此来屏蔽物理地址的差异IP 地址是一个 32 位的二进制数通常被分割为 4 个“ 8 位二进制数”也就是 4 个字节IP 地址通常用点分十进制表示成a.b.c.d的形式其中a,b,c,d都是 0~255 之间的十进制整数。例点分十进IP地址100.4.5.6实际上是 32 位二进制数01100100.00000100.00000101.00000110IP地址编址方式最初设计互联网络时为了便于寻址以及层次化构造网络每个 IP 地址包括两个标识码ID即网络ID和主机 ID。同一个物理网络上的所有主机都使用同一个网络 ID网络上的一个主机包括网络上工作站服务器和路由器等有一个主机 ID 与其对应Internet 委员会定义了 5 种 IP 地址类型以适合不同容量的网络即 A 类~ E 类其中 A、B、C 3类如下表格由 InternetNIC 在全球范围内统一分配D、E 类为特殊地址A类最高位不能为1所以是272^727主机数要减去2是因为去掉x.x.x.0和x.x.x.255这两个特殊的地址类别最大网络数IP地址范围单个网段最大主机数私有IP地址范围A126(27−12^7-127−1)1.0.0.1~126.255.255.25416777214(224−22^{24}-2224−2)10.0.0.0~10.255.255.255B16384(2142^{14}214)128.0.0.1~191.255.255.25465534(216−22^{16}-2216−2)172.16.0.0~172.31.255.255C2097152(2212^{21}221)192.0.0.1~223.255.255.254254(28−22^8-228−2)192.168.0.0~192.168.255.255A类IP地址一个 A 类 IP 地址是指 在 IP 地址的四段号码中第一段号码为网络号码剩下的三段号码为本地计算机的号码如果用二进制表示 IP 地址的话A 类 IP 地址就由 1 字节的网络地址和 3 字节主机地址组成网络地址的最高位必须是0A 类 IP 地址中网络的标识长度为 8 位主机标识的长度为 24 位A类网络地址数量较少有 126 个网络每个网络可以容纳主机数达 1600 多万台A 类 IP 地址 地址范围1.0.0.1 - 126.255.255.254二进制表示为00000001 00000000 00000000 00000001 - 01111111 11111111 11111111 11111110最后一个是广播地址A 类 IP 地址的子网掩码为 255.0.0.0每个网络支持的最大主机数为224−22^{24}-2224−2B类IP地址一个 B 类 IP 地址是指在 IP 地址的四段号码中前两段号码为网络号码剩下的两段号码为本地计算机的号码如果用二进制表示 IP 地址的话B 类 IP 地址就由 2 字节的网络地址和 2 字节主机地址组成网络地址的最高位必须是10B 类 IP地址中网络的标识长度为 16 位主机标识的长度为 16 位B 类网络地址适用于中等规模的网络有16384 个网络每个网络所能容纳的计算机数为 6 万多台B 类 IP 地址地址范围128.0.0.1 - 191.255.255.254二进制表示为10000000 00000000 00000000 00000001 - 10111111 11111111 11111111 11111110 最后一个是广播地址B 类 IP 地址的子网掩码为 255.255.0.0每个网络支持的最大主机数为216−22^{16}-2216−2C类IP地址一个 C 类 IP 地址是指在 IP 地址的四段号码中前三段号码为网络号码剩下的一段号码为本地计算机的号码如果用二进制表示 IP 地址的话C 类 IP 地址就由 3 字节的网络地址和 1 字节主机地址组成网络地址的最高位必须是110C 类 IP 地址中网络的标识长度为 24 位主机标识的长度为 8 位C 类网络地址数量较多有 209 万余个网络。适用于小规模的局域网络每个网络最多只能包含254台计算机C 类 IP 地址范围192.0.0.1-223.255.255.254二进制表示为:11000000 00000000 00000000 00000001 - 11011111 11111111 11111111 11111110最后一个是广播地址C类IP地址的子网掩码为 255.255.255.0每个网络支持的最大主机数为28−22^8-228−2D类IP地址D 类 IP 地址在历史上被叫做多播地址multicast address即组播地址在以太网中多播地址命名了一组应该在这个网络中应用接收到一个分组的站点。多播地址的最高位必须是1110范围从224.0.0.0 - 239.255.255.255划分IP地址说明224.0.0.0~224.0.0.255局部链接多播地址是为路由协议和其它用途保留的地址路由器并不转发属于此范围的IP包224.0.1.0~224.0.1.255预留多播地址公用组播地址可用于Internet使用前需要申请224.0.2.0~238.255.255.255预留多播地址用户可用组播地址(临时组地址)全网范围内有效239.0.0.0~239.255.255.255本地管理组播地址可供组织内部使用类似于私有 IP 地址不能用于 Internet可限制多播范围特殊的网址每一个字节都为 0 的地址0.0.0.0对应于当前主机IP 地址中的每一个字节都为 1 的 IP 地址255.255.255.255是当前子网的广播地址IP 地址中凡是以11110开头的 E 类 IP 地址都保留用于将来和实验使用IP地址中不能以十进制127作为开头该类地址中数字127.0.0.1 ~ 127.255.255.255用于回路测试如127.0.0.1可以代表本机IP地址子网掩码子网掩码subnet mask又叫网络掩码、地址掩码、子网络遮罩它是一种用来指明一个 IP 地址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码子网掩码不能单独存在它必须结合 IP 地址一起使用子网掩码只有一个作用就是将某个 IP 地址划分成网络地址和主机地址两部分子网掩码是一个32 位地址用于屏蔽 IP 地址的一部分以区别网络标识和主机标识并说明该 IP地址是在局域网上还是在广域网上子网掩码是在 IPv4 地址资源紧缺的背景下为了解决 lP 地址分配而产生的虚拟 lP 技术通过子网掩码将A、B、C 三类地址划分为若干子网从而显著提高了 IP 地址的分配效率有效解决了 IP 地址资源紧张的局面。另一方面在企业内网中为了更好地管理网络网管人员也利用子网掩码的作用人为地将一个较大的企业内部网络划分为更多个小规模的子网再利用三层交换机的路由功能实现子网互联从而有效解决了网络广播风暴和网络病毒等诸多网络管理方面的问题在大多数的网络教科书中一般都将子网掩码的作用描述为通过逻辑运算将 IP 地址划分为网络标识(Net.ID) 和主机标识(Host.ID)只有网络标识相同的两台主机在无路由的情况下才能相互通信根据 RFC950 定义子网掩码是一个 32 位的 2 进制数 其对应网络地址的所有位都置为 1对应于主机地址的所有位置都为 0。子网掩码告知路由器地址的哪一部分是网络地址哪一部分是主机地址使路由器正确判断任意 IP 地址是否是本网段的从而正确地进行路由。网络上数据从一个地方传到另外一个地方是依靠 IP 寻址。从逻辑上来讲是两步的。第一步从 IP 中找到所属的网络好比是去找这个人是哪个小区的第二步再从 IP 中找到主机在这个网络中的位置好比是在小区里面找到这个人子网掩码的设定必须遵循一定的规则。与二进制 IP 地址相同子网掩码由 1 和 0 组成且 1 和 0 分别连续。子网掩码的长度也是 32 位左边是网络位用二进制数字 “1” 表示1 的数目等于网络位的长度右边是主机位用二进制数字 “0” 表示0 的数目等于主机位的长度。这样做的目的是为了让掩码与 IP 地址做按位与运算时用 0 遮住原主机数而不改变原网络段数字而且很容易通过 0 的位数确定子网的主机数 2 的主机位数次方 - 2因为主机号全为 1 时表示该网络广播地址全为 0 时表示该网络的网络号这是两个特殊地址。通过子网掩码才能表明一台主机所在的子网与其他子网的关系使网络正常工作端口简介端口是英文 port 的意译可以认为是设备与外界通讯交流的出口端口可分为虚拟端口和物理端口虚拟端口指计算机内部或交换机路由器内的端口不可见是特指TCP/IP协议中的端口是逻辑意义上的端口例如计算机中的 80 端口、21 端口、23 端口等物理端口又称为接口是可见端口计算机背板的 RJ45 网口交换机路由器集线器等 RJ45 端口。电话使用 RJ11 插口也属于物理端口的范畴端口是通过端口号来标记的端口号只有整数范围是从 0 到655352162^{16}216端口类型周知端口Well Known Ports周知端口是众所周知的端口号也叫知名端口、公认端口或者常用端口范围从 0 到 1023它们紧密绑定于一些特定的服务例如 80 端口分配给 WWW 服务21 端口分配给 FTP 服务23 端口分配给Telnet服务等等我们在 IE 的地址栏里输入一个网址的时候是不必指定端口号的因为在默认情况下WWW 服务的端口是 “80”网络服务是可以使用其他端口号的如果不是默认的端口号则应该在地址栏上指定端口号方法是在地址后面加上冒号“:”半角再加上端口号。比如使用 “8080” 作为 WWW服务的端口则需要在地址栏里输入网址:8080有些系统协议使用固定的端口号它是不能被改变的比如 139 端口专门用于 NetBIOS 与 TCP/IP 之间的通信不能手动改变注册端口Registered Ports端口号从 1024 到 49151它们松散地绑定于一些服务分配给用户进程或应用程序这些进程主要是用户选择安装的一些应用程序而不是已经分配好了公认端口的常用程序。这些端口在没有被服务器资源占用的时候可以用用户端动态选用为源端口动态端口 / 私有端口Dynamic Ports / Private Ports动态端口的范围是从49152 到 65535之所以称为动态端口是因为它一般不固定分配某种服务而是动态分配网络模型OSI七层参考模型七层模型亦称OSIOpen System Interconnection参考模型即开放式系统互联。参考模型是国际标准化组织ISO制定的一个用于计算机或通信系统间互联的标准体系一般称为 OSI 参考模型或七层模型它是一个七层的、抽象的模型体不仅包括一系列抽象的术语或概念也包括具体的协议物理层主要定义物理设备标准如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流就是由1、0转化为电流强弱来进行传输到达目的地后再转化为1、0也就是我们常说的数模转换与模数转换。这一层的数据叫做比特数据链路层建立逻辑连接、进行硬件地址寻址、差错校验等功能。定义了如何让格式化数据以帧为单位进行传输以及如何让控制对物理介质的访问。将比特组合成字节进而组合成帧用MAC地址访问介质网络层进行逻辑地址寻址在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet的发展使得从世界各站点访问信息的用户数大大增加而网络层正是管理这种连接的层传输层定义了一些传输数据的协议和端口号 WWW 端口 80 等如TCP传输控制协议传输效率低可靠性强用于传输可靠性要求高数据量大的数据UDP用户数据报协议与TCP 特性恰恰相反用于传输可靠性要求不高数据量小的数据如 QQ 聊天数据就是通过这种方式传输的。 主要是将从下层接收的数据进行分段和传输到达目的地址后再进行重组。常常把这一层数据叫做段会话层通过传输层端口号传输端口与接收端口建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求表示层数据的表示、安全、压缩。主要是进行对接收的数据进行解释、加密与解密、压缩与解压缩等也就是把计算机能够识别的东西转换成人能够能识别的东西如图片、声音等应用层网络服务与最终用户的一个接口。这一层为用户的应用程序例如电子邮件、文件传输和终端仿真提供网络服务TCP/IP四层模型简介现在 Internet因特网使用的主流协议族是TCP/IP 协议族它是一个分层、多协议的通信体系。TCP/IP协议族是一个四层协议系统自底而上分别是数据链路层、网络层、传输层和应用层。每一层完成不同的功能且通过若干协议来实现上层协议使用下层协议提供的服务OSI七层与TCP/IP四层四层介绍应用层应用层是 TCP/IP 协议的第一层是直接为应用进程提供服务的对不同种类的应用程序它们会根据自己的需要来使用应用层的不同协议邮件传输应用使用了 SMTP 协议、万维网应用使用了 HTTP 协议、远程登录服务应用使用了有 TELNET 协议应用层还能加密、解密、格式化数据应用层可以建立或解除与其他节点的联系这样可以充分节省网络资源传输层作为 TCP/IP 协议的第二层运输层在整个 TCP/IP 协议中起到了中流砥柱的作用。且在运输层中 TCP 和 UDP 也同样起到了中流砥柱的作用网络层网络层在 TCP/IP 协议中的位于第三层。在 TCP/IP 协议中网络层可以进行网络连接的建立和终止以及 IP 地址的寻找等功能网络接口层在 TCP/IP 协议中网络接口层位于第四层。由于网络接口层兼并了物理层和数据链路层所以网络接口层既是传输数据的物理媒介也可以为网络层提供一条准确无误的线路协议简介协议网络协议的简称网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定计算机之间才能相互通信交流。它的三要素是语法、语义、时序为了使数据在网络上从源到达目的网络通信的参与方必须遵循相同的规则这套规则称为协议protocol它最终体现为在网络上传输的数据包的格式协议往往分成几个层次进行定义分层定义是为了使某一层协议的改变不影响其他层次的协议常见协议应用层协议FTP协议File Transfer Protocol 文件传输协议HTTP协议Hyper Text Transfer Protocol 超文本传输协议NFSNetwork File System 网络文件系统传输层协议TCP协议Transmission Control Protocol 传输控制协议UDP协议User Datagram Protocol 用户数据报协议网络层协议IP 协议Internet Protocol 因特网互联协议ICMP 协议Internet Control Message Protocol 因特网控制报文协议IGMP 协议Internet Group Management Protocol 因特网组管理协议。网络接口层协议ARP协议Address Resolution Protocol 地址解析协议RARP协议Reverse Address Resolution Protocol 反向地址解析协议UDP协议源端口号发送方端口号目的端口号接收方端口号长度UDP用户数据报的长度最小值是8仅有首部校验和检测UDP用户数据报在传输中是否有错有错就丢弃TCP协议源端口号发送方端口号目的端口号接收方端口号序号本报文段的数据的第一个字节的序号确认号期望收到对方下一个报文段的第一个数据字节的序号头部长度数据偏移TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远即首部长度。单位32位即以 4 字节为计算单位保留占 6 位保留为今后使用目前应置为 0紧急URG此位置 1 表明紧急指针字段有效它告诉系统此报文段中有紧急数据应尽快传送确认ACK仅当 ACK1 时确认号字段才有效TCP 规定在连接建立后所有传达的报文段都必须把 ACK 置1推送PSH当两个应用进程进行交互式的通信时有时在一端的应用进程希望在键入一个命令后立即就能够收到对方的响应。在这种情况下TCP 就可以使用推送push操作这时发送方TCP 把 PSH 置 1并立即创建一个报文段发送出去接收方收到 PSH 1 的报文段就尽快地即“推送”向前交付给接收应用进程而不再等到整个缓存都填满后再向上交付复位RST用于复位相应的 TCP 连接同步SYN仅在三次握手建立 TCP 连接时有效。当 SYN 1 而 ACK 0 时表明这是一个连接请求报文段对方若同意建立连接则应在相应的报文段中使用 SYN 1 和 ACK 1。因此SYN 置1 就表示这是一个连接请求或连接接受报文终止FIN用来释放一个连接。当 FIN 1 时表明此报文段的发送方的数据已经发送完毕并要求释放运输连接窗口指发送本报文段的一方的接收窗口而不是自己的发送窗口校验和校验和字段检验的范围包括首部和数据两部分在计算校验和时需要加上 12 字节的伪头部紧急指针仅在 URG 1 时才有意义它指出本报文段中的紧急数据的字节数紧急数据结束后就是普通数据即指出了紧急数据的末尾在报文中的位置注意即使窗口为零时也可发送紧急数据选项长度可变最长可达 40 字节当没有使用选项时TCP 首部长度是 20 字节IP协议版本号IP 协议的版本。通信双方使用过的 IP 协议的版本必须一致目前最广泛使用的 IP 协议版本号为 4即IPv4)头部长度单位是 32 位4 字节服务类型一般不适用取值为 0总长度指首部加上数据的总长度单位为字节标识identificationIP 软件在存储器中维持一个计数器每产生一个数据报计数器就加 1并将此值赋给标识字段标志flag目前只有两位有意义标志字段中的最低位记为 MF。MF 1 即表示后面“还有分片”的数据报。MF 0 表示这已是若干数据报片中的最后一个标志字段中间的一位记为 DF意思是“不能分片”只有当 DF 0 时才允许分片片偏移指出较长的分组在分片后某片在源分组中的相对位置也就是说相对于用户数据段的起点该片从何处开始。片偏移以 8 字节为偏移单位生存时间TTL表明是数据报在网络中的寿命即为跳数限制由发出数据报的源点设置这个字段。路由器在转发数据之前就把 TTL 值减一当 TTL 值减为零时就丢弃这个数据报常见为64和128协议指出此数据报携带的数据时使用何种协议以便使目的主机的 IP 层知道应将数据部分上交给哪个处理过程常用的 ICMP(1)IGMP(2)TCP(6)UDP(17)IPv641首部校验和只校验数据报的首部不包括数据部分源地址发送方 IP 地址目的地址接收方 IP 地址以太网帧协议类型0x800表示 IP0x806表示 ARP0x835表示 RARPARP协议硬件类型1 表示 MAC 地址协议类型0x800 表示 IP 地址硬件地址长度6协议地址长度4操作1 表示 ARP 请求2 表示 ARP 应答3 表示 RARP 请求4 表示 RARP 应答网络通信流程封装与分用发送端通过TCP/IP中每一层时需要将消息封装对应信息然后接收端通过过TCP/IP中每一层时需要将消息分用解封装对应信息封装上层协议是如何使用下层协议提供的服务的呢其实这是通过封装encapsulation实现的。应用程序数据在发送到物理网络上之前将沿着协议栈从上往下依次传递。每层协议都将在上层数据的基础上加上自己的头部信息有时还包括尾部信息以实现该层的功能这个过程就称为封装分用当帧到达目的主机时将沿着协议栈自底向上依次传递。各层协议依次处理帧中本层负责的头部数据以获取所需的信息并最终将处理后的帧交给目标应用程序。这个过程称为分用demultiplexing。分用是依靠头部信息中的类型字段实现的网络通信的过程arp请求封装