杭州专业做网站,自己做一元购网站,邢台市天气预报15天,前端做兼职网站一、计算机网络概述
1、Internet网相关概念及发展
网络#xff08;Network#xff09;有若干结点#xff08;Node#xff09;和连接这些结点的链路#xff08;link#xff09;所组成#xff0c;在网络中的结点可以是计算机、集线器、交换机或路由器等多个网络还可以通…一、计算机网络概述
1、Internet网相关概念及发展
网络Network有若干结点Node和连接这些结点的链路link所组成在网络中的结点可以是计算机、集线器、交换机或路由器等多个网络还可以通过路由器连通起来构成一个覆盖范围更大的计算机网络这些网络称为互连网internet或internetwork因特网Internet是世界上最大的互连网络internet和Internet的区别 internet互联网或互连网是一个通用名词他泛指由多个计算机网络互连而成的网络在这些网络之间的通信协议可以是任意的Internet因特网是一个专用名词指全求最大的开发的有众多网络互连而成的计算机网络采用的是TCP/IP协议族作为通信的规则前身是美国的ARPANET如果用一朵云来表示网络有两种情况 用云表示的网络已经包含了和网络相连的计算机 表示的互连网里面是许多路由器和连接这些路由器的链路把有关的计算机画在外面与网络相连的计算机称为主机 ISP互联网服务提供者例如中国的三大运营商 ISP可以从互联网管理机构申请很多的IP地址互联网主机必须要有IP地址才能上网同时拥有通信线路所以机构或个人向ISP缴纳规定的费用就可以从该ISP获取所需IP地址的试用权通过该isp接入到互联网根据提供服务的覆盖面积和所拥有的IP地址数目的不同可分为主干ISP第一层ISP、地区ISP第二层ISP和本地ISP 2、因特网的组成
2.1 功能划分
1、边缘部分 由所有连接在互联网上的主机端系统组成这部分是用户直接使用的用来通信和资源共享边缘部分可以是手机、电脑、智能摄像头等等
1通信两台主机之间的通信实际上指的是两台主机上的两个程序在通信即“主机A 的某个进程和主机B上的某个进程在进行通信”简称为“计算机之间的通信”通信方式主要分为两类
客户服务器方式c/s方式客户和服务器指通信中设计的两个应用进程客户是服务请求方服务器是服务提供方、 客户程序必须指定服务器程序的IP地址对硬件和操作系统没有要求但是服务器虽不需要指定客户程序的IP地址但其硬件和操作系统要求很高 对等方式 对等方式指两个主机在通信时并不区分是服务方和服务提供方只要两个主机都运行了对等连接的软件就可以进行平等的对等连接通信例如两台主机上的QQ通信 2、核心部分
由大量网络和连接网络的路由器组成为边缘部分提供服务的, 网络的核心部分其特殊作用的是路由器
1三种交换方式
电路交换电话交换机连通电话线的方式 电话交换机可以简单看成是一个有多个开关的开关器可以将需要通信的任意两部电话的电话线路按需截图减少连接的电话线的数量
电话交换的三个步骤建立连接分配通信资源通话一直占用通信资源释放连接归还通信资源
电话交换的缺点是当用户正在输入和编辑一份待传输的文件时用户所用的通信资源暂时未被利用但其他的用户也不能利用被浪费掉因此其其传输效率非常低不适用于计算机和计算机之间的通信
分组交换重要路由器是实现分组交换的关键构件其任务是转发收到的分组是网络核心部分最重要的功能 分组交换采用的是存储转发技术把一个报文划分为几个分组后再进行传送 报文即要发送的整块数据称为报文
分组包把较长的报文划分为一个个更小的等长数据段在每一个数据段前面加上由一些必要的控制信息组成的首部后就构成了一个分组分组的首部称为“包头分组时互联网中传送的数据单元“首部”中包含了诸如目的地址和源地址等重要控制信息每一个分组才能在互联网中独立的选择传输路径并被正确得交付到分组传输终点
分组交换的特点构成原始报文的一个个分组在各个结点路由器上进行存储转发并且可以进行差错校验保证报文的完整性和准确性
报文交换
整个报文线传送到相邻的结点全部储存后查找转发表转发到下一个节点因为对报文的大小没有限制所以对接收报文的设备的缓存空间要求较高
三种交换方式的比较 2.2 计算机网络的分类
1、按照网络的作用范围进行分类
1广域网WAN:作用范围通常为几十到几千公里因而有时称为远程网广域网是互联网的核心部分其任务是通过长距离例如跨越不同的国家运送主机所发送的数据。连通广域网各结点交换机的链路一般都是高速链路具有较大的通信容量
2城域网MAN:城域网可以为一个或几个单位所拥有但也可以是一种公共设施用来将多个局域网进行互连目前很多城域网采用的是以太网技术有事也并入局域网的范围讨论
3局域网LAN局域网一般用于微型计算机或工作站通过高速通信线路相连例如校园网 (4)个人区域网PAN个人区域为就是在个人工作的地方把属于个人使用的电子设备用无线技术连接起来范围很小 2、 按照网络的线路结构分类拓扑结构
1星型 星型拓扑结构是目前局域网普遍采用的一种拓扑结构使用一个结点作为中心节点其他节点直接与中心结点相连构成的网络中心节点可以是服务器也可以是连接设备常见的中心结点为集线器或路由器他属于集中控制型网络整个网络由中心节点执行集中式通行来控制管理各节点间的通信都要通过中心节点每一个要发送数据的节点都要先把数据发到节点中心再由节点中心发送到目的节点所以节点中心很复杂各个节点的通信处理负担小只需要满足链路的简单通信要求 优点
控制简单任何一个站点只和中心结点相连接介质访问控制比较简单所以访问协议也很简单易于网络监控和管理故障争端和隔断容易。中央节点对连接线路可以逐一隔离进行故障检测定位单个连接点的故障只影响一个设备不会影响全网方便服务中央节点可以方便对每个站点提供服务和网络重新配置。
缺点
需要耗费大量的电缆、安装、维护的工作量也骤增中央节点负担重一旦发生故障全网受影响各站点的分布处理能力较低
2总线型 总线型的拓扑图中所有的设备都直接和总线相连介质一般是同轴电缆现在也有采用光缆作为介质的
总线结构各工作站和设备都在一条总线上各工作站的地位都是一样的没有中心节点的控制公用总线上的信息多以基带形式串行传递传递方向都是从发送信息的节点开始向两端扩散因此又称为广播室计算机网络。各节点接收信息时都进行地址检查看是否与自己的工作站的地址相符相符则接收网上的信息。
总线结构特点
结构简单网络各接点通过简单的搭线器即可接入网络走线量小与星形网络相比走线简单成本低总线型因用线量小无需集线器等昂贵的设备不用线槽、接线盒等成本较低扩充灵活星型网络增加节点很复杂而总线型只需增加一个头一个光缆就可以增加一个节点故障诊断和隔离比较复杂当节点发生故障隔离起来比较方便但是传输介质出现故障时就需要将整个总线切段
3环型 环型结构由网络中若干节点通过点对点的链路首尾相连形成的一个闭合的环这种结构使得公共传输电缆组成环型连接数据在环路中沿着一个方向在各个节点间传输信息从一个节点传到另一个节点
这种结构主要应用于令牌网中在这种网络结构中各设备是直接通过电缆来串接的最后形成一个闭环整个网络发送的信息就是在这个环中传递通常吧这类网成为令牌网 实际情况下环的两端是通过一个阻抗匹配器来实现闭环的因为实际组网时因地理位置的限制不方便真的做到环的两端物理连接
令牌环
令牌环网的媒体接入控制机制采用的是分布式控制模式的循环方式在令牌网中有一个令牌沿着环型总线以逆时针的方向在入网节点计算机间依次传递令牌本身不包含信息仅仅控制信道的使用确保在同一时刻只有一个节点能够独占信道。当环上节点都空闲时令牌绕环行进节点计算机只有取得令牌后才能发数据。令牌在环网上顺序传递对入网计算机来说访问权是公平的
令牌在工作中有闲和忙两种状态闲表示令牌没有被占用即网中没有计算机在传送信息忙表示令牌已经被占用即网中有信息正在传送。要传信息的计算机拿到令牌后将闲状态调整为忙状态才可以在令牌后面传送数据目的机收到数据后数据被从网上除去令牌被重置为闲
4网状型 网状拓扑结构主要指各个节点通过传输线互联连接起来并且每一个节点至少与其他两个节点相连网状拓扑结构具有较高的可靠性但其结构复杂实现起来费用较高不易维护和管理不常用于局域网
优点
网络可靠性高一般通信子网中任意两个节点交换机之间存在着两条或两条以上的通信路径当一条路径发生故障时还可以通过另一条路径把信息传送至节点交换机网络可以组建成各种形状采用多种通信信道多种传输速率可选择最佳路径传输延迟小
缺点
控制复杂软件复杂线路费用高不易扩充在以太网中如果设置不当会造成广播风暴甚至网络完全瘫痪
2.3 计算机网络的性能指标
1、速率
计算机发送的信号是以二进制数字形式的一个二进制数字就是一个比特bit字节Byte1Byte 8bit1B8b常用数量单位
8 bit 1Byte
KB 2^10 B
MB K * KB 2^10 * 2^10 B 2^20B
GB 2^30B
TB2^40B
速率连接在计算机网络上的主机在数字信道上传送比特数据的速率也称为比特率或数据常用数据率单位
bit/s (b/s、bps)
kb/s 10^3 b/s
Mb/s k * kb/s 10^3 * 10^3 b/s 10^6b/s
Gb/s 10^9 b/s
Tb/s 10^12 b/s
2、带宽
在计算机网络中带宽用来表示网络中某通道传送数据的能力因此网络带宽表示在单位时间内网络中的某信道所能通过的最高数据率单位b/s(kbs,Mb/s,Gb/s,Tb/s)宽带的带宽是100兆出口网速最高100Mb/s
3、吞吐量
吞吐量表示在单位时间内通过某个网络或信通、借口的数据量吞吐量是对实际网络的测量以便了解实际有多少数据量能够通过网络与带宽相比都是用数据量/单位时间但是一个是衡量标准最大传输速度一个是实际的通过量吞吐量受带宽或定速率的限制 4、时延
时延delay是指数据一个报文或分组、比特从网络或链路的一端传送到另一端所需的时间。时延是很重要的性能指标有时也称为延迟或迟延 计算机中的时延是由以下几个不同的部分组成
1发送时延
主机或路由器发送数据帧所需要的时间也就是从发送数据帧的第一个比特开始到该帧的最后一个比特发完所需要的时间发送时延的计算公式
发送时延 数据帧的长度bit/发送速率bit/s
主机的发送速率和网卡的发送速率、信道的带宽、接口的速率有关通常情况下实际的发送速率取这几者中的最小值 2传播时延
电磁波在信道中的传播一定的距离要花费的时间传播时延的计算公式
传播时延 信道的长度m*电磁波在信道中传播的速率m/s
其中传播速率自由空间3*10^8 m/s; 铜线2.3*10^8m/s; 光纤2.0*10^8m/s
(3)处理时延
处理时延指主机或者路由器在收到分组信息时花费的时间例如分析分组的首部、从分组中提取数据部分、查找合适的路由等通常是由设备来决定的一般无法具体计算。
4思考现忽略处理时延键入有一个长度为100MB的数据块在宽带为1Mbits的信道上连续发送其发送时延是多少
100 * 2^20 * 8 /10^6 838.9s
现把这个数据块用光纤传送到1000km远的计算机。由于在1000km的光线上的传播时延约为5ms则发送100MB的数据块的总时延 838.9s 0.005S 838.9005s。可见这种情况发送时延决定了总时延的数值。
5、往返时间
RTT往返时间表示从发送端将数据发送到传输媒介开始到发送端收到来自接收端的确认总共经历的时间不包含发送时延RTT由三个部分决定链路的传播时间、末端系统的处理时间、路由器的缓存中的排队和处理时间前两个值作为一个TCP连接相对固定路由器的缓存的排队时间和处理时间会随着网络拥塞成都的变化而变化。所以RTT的变化在一定程度上反映了网络拥塞程度的变化 例如A向B发送数据如果数据长度是100MB发送速率是100Mbit/s那么 如果B正确收完100MB的数据后就立即向A发送确认
再假定A只有在收到B的确认信息后才能继续向B发送数据显然这需要等待一个往返时间RTT(这里假定确认信息的数据帧很短只包含了关键信息所以可忽略B发送确认的时间)。如果往返时间 2 s那么可以算出A向B发送数据的有效数据率为80Mbit/s比原来的数据率100Mbit/s小很多 6、利用率
利用率有信道利用率和网络利用率两种 根据排队论当某信道的利用率增大时该信道引起的时延也会迅速增大
如果令Do表示网络空闲时的时延D表示网络当前的时延那么在适当的假定条件下可以用下面的简单公式来表示D、Do和利用率U之间的关系为 这里的U就是网络利用率数值在0-1之间当网络的利用率达到50%时时延就要加倍当U超过50%时时延急剧增大当U接近100%时时延就趋于无穷大因此一些拥有较大主干网的ISP通常会控制他们的信道利用率不超过50%如果超过就要扩容增大线路的带宽。信道利用率并非越大越好 7、丢包率
丢包率即分组丢失率指在一定的时间范围内传输过程中丢失的分组数量与总分组数量的比率
分组丢失的主要原因
分组在传输过程中出现误码被结点丢弃 主机发送的分组在传输过程中出现误码当分组进入传输路径中的结点交换机后被结点交换机检测处出误码即被丢弃
分组到达一台队列已满的分组交换机时被丢弃在通信量大的时候就可能造成网络拥塞
在上图中监视路由器R当前的输入缓冲区已满此时主机发送的分组到达路由器。路由器没有存储空间暂存该分组只能将其丢弃。实际上路由器会依据自身的拥塞控制方法在输入缓存还未满的时候就主动丢弃分组。
因此丢包率反映了网络的拥塞情况无拥塞时路径丢包率为0 轻度拥塞时路径丢包率为1%~4%严重拥塞时路径的丢包率为5%~15% 二、计算机网络体系结构
1、常用的计算机网络体系结构
1.1 OSI体系结构
为了使不同体系结构的计算机网络能够互联国际标准化组织于1997年成立了专门机构研究该问题不久他们就提出了一个试图使各种计算机在世界范围内都能够互连成网的标准框架也就是著名的“开放系统互连参考模型”简称OSIOSI体系结构有时候我们也称为OSI模型
OSI是一个七层协议的体系结构从下往上依次是物理层、数据链路层、网络层、运输层、会话层、表示层、应用层 由于基于TCP/IP的互联网已抢先在全球相当大的范围内成功的运行了而几乎没有厂家生产出符合OSI标准的商用产品因此OSI只获得了一些理论研究的成功但在市场化方面则事与愿违的失败了
现如今规模最大的、覆盖全球的、基于TCP/IP的互联网并未使用OSI标准OSI体系结构是法律上的国家标准TCP/IP体系结构是事实上的国际标准
1.2 具有五层协议的体系结构
1、TCP/IP是一个四层的体系结构他包含应用层、传输层、网际层和网络接口层
2、在学习计算机网络的原理是采用折中的办法综合OSI和TCP/IP的优点采用一种只有五层协议的体系结构。有时也可把最底层的两层称为网络接口层 3、各层主要功能
1应用层(application layer)
最高层其任务是通过应用进程间的交互来完成特定网络应用。其协议定义的是应用进程间通信和交互的规则。此处的进程就是指主机中正在运行的程序对于不同的网络应用需要有不同的应用层协议。例如域名系统DNS支持万维网应用的HTTP协议支持电子邮件的SMTP协议等把应用层交互的数据单元称为报文
2运输层(transport layer)
运输层的任务是负责向两台主机进程之间的通信提供通用的数据传输服务层运输层主要使用的两种协议 传输控制协议TCP (Transmission Control Protocol)提供面向连接的、可靠的数据传输服务用户数据报协议UDP (User Datagram Protocol)提供无连接的、尽最大努力的数据传输服务不保证数据传输的可靠性
(3)网络层(network layer)
主要作用就是实现两个网络系统之间的数据透明传输具体包括路由选择拥塞控制和网际互连等在发送数据时网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中由于网络层使用IP协议因此分组也叫做IP数据报简称为数据报数据在经过网络层时就会加上IP协议的头部
4数据链路层(data link layer)
数据链路层常简称为链路层。数据在两台主机之间的传输是一段一段的链路上传送的。在两个相邻的结点之间传送数据时数据链路层将网络层交下来的IP数据报组装成帧在相邻的节点之间的链路上传送帧每一帧数据和必要的控制信息如同步信息、地址信息、差错控制等
5物理层(physical layer)
利用传输介质为数据链路层提供物理连接实现比特流的透明传输物理层上所传输的数据单位时比特 1.3 物理层
物理层主要解决各种传输媒体上比特0和1的问题进而给数据链路层提供透明传输比特流的服务
由于传输媒体的种类太多如同轴电缆、光纤、无线电波等物理连接方式也有很多例如对点连广播连接等因此物理层协议种类也很多。
传输媒体
1导引型传输媒体电磁波被导引沿着固体媒体传播
a、同轴电缆 同轴电缆的各层都是共圆心的也就是同轴心的
同轴电缆有两种 基带同轴电缆数字传输过去用于局域网宽带同轴电缆模拟传输目的主要用于有线电视
同轴电缆价格比较贵而且布线不够灵活和方便随着集线器的出现在局域网领域基本上都采用双绞线作为传输媒体
b、双绞线
双绞线是最常用的传输媒体把两根相互绝缘的铜导线放在一起然后按照一定的规则绞合起来就构成了双绞线常用的双绞线包含八根铜导线每两根铜导线合成一条双绞线校核组合如下 蓝色线和蓝白双色线绞合橙色线和橙白双色线绞合绿色线和绿白双色线绞合棕色线和棕白双色线绞合绞合的作用 抵御部分来自外界的电磁干扰减少相邻导线的电磁干扰根据有无屏蔽层双绞线分为无屏蔽双绞线和屏蔽双绞线 无屏蔽 屏蔽双绞线 常用的绞合线的类别、带宽及典型的应用 一般情况下家庭一般装5E或6型双绞线即网线
c、光纤 光纤的优点
通信容量大25000~30000GHz的带宽传输损耗小远距离传输时更加经济抗雷电和电磁的干扰性能好。这在大电流脉冲干扰的环境下很重要无串音干扰保密性好不易被窃听体积小重量轻
一般常说的光纤入户说的就是这个光纤一般是预装好的
2非导引型传输媒体非导引型传输媒体是指自由空间 无线电波、微波、红外线、可见光
1.4 数据链路层
1数据链路层概述 a、数据链路层在网络体系结构中所处的位置 如下图主机H1给主机H2发送数据中间要经过三个路由器、电话网、局域网、广域网等多种网络 从五层协议的角度来说主机应该具有体系结构中的各个层次而路由器只需要具有体系结构中的网络层、传输层和物理层。
网络中的各个设备通过传输媒体进行互连主机H1将需要传输的数据逐层封装后通过物理层将构成数据包的各个比特转换成电信号发送到传输媒体
数据包进入到路由器后从下往上逐层解封到网络层路由器根据数据包的目的网络地址和自身的转发表确定数据包的转发端口然后由网络层向下逐层封装数据包最后通过物理层将数据包发送到传输媒体最后到达主机H2H2在接收到数据包后再逐层解封 所谓的链路Link就是从一个结点到相邻结点的一段物理线路而中间没有任何其他的交换结点。要在链路上传输数据仅有链路还是不够的还需要一些通信协议来控制这些数据的传输如果把实现这些协议的软件和硬件加到链路上就构成了数据链路
所以数据链路不止是硬件还有软件和相关协议
在数据链路上传输的数据包又称为帧、数据链路层是以帧为单位传输和处理的 数据链路层的协议有很多种但有三个基本问题是共同的封装成帧、透明传输和差错检测
1封装成帧 封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧
帧头和帧尾包含有重要的控制信息 帧头和帧尾的作用之一就是帧定界 例如PPP帧的第一个字节和最后一个字节就是帧定界通过这两个字节就能够从物理交付的比特流中提取出一个一个的帧 并不是每种数据链路层协议的帧都包含有帧定界标志例如MAC帧的帧头和帧尾是没有包含帧定界的标志的那么接收方是如何从物理层交付的比特流中提取出一个个的以太网帧的呢? 第一步物理链路层封装好MAC帧将其交付给物理层第二步物理层在MAC帧的前面添加8字节的前导码前导码的前7个字节为前同步码其作用是使接收方的时钟同步之后的1个字节为帧的开始定界符表明其后紧跟着的就是MAC帧 2 透明传输
a、透明传输是指数据链路层对上层交付的传输数据没有任何限制就好像数据链路层不存在一样
当数据帧中的数据是帧定界标志时发送端的数据链路层该如何处理呢 1、当物理链路提供的是面向字符的传输服务时物理链路以字符为单位传输数据 SOH即为帧头EOT为帧尾
数据链路层在交付数据给物理层时对帧进行扫描首先扫描到SOH然后每扫描到一个SOH或EOT就在前面加一个转义字符ESC直至扫描到最后一个EOT这种方式称为字节填充byte stuffing或字符填充character stuffing 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符 2、当物理层链路提供的是面向比特的传输服务时物理链路以比特为单位传输数据 在数据发送前采用零比特填充法对数据进行扫描每5个连续的比特1后面就插入1个比特0 b、为了提高帧的传输效率应当使帧的数据部分长度尽可能大些
c、考虑到差错控制等多种因素每一种数据链路层协议都规定了帧的数据部分的长度上限即最大的传送单元MTU(Maximum Transfer Unit) 3差错校验
a、实际的通信链路都是不理想的比特流在传输过程中由于受到各种干扰可能会产生差错1变0或0变1.这称为比特差错或称为误码
b、一段时间内传输错误的比特占所传输比特总数的比率称为误码率
c、接收方使用差错检测码来检测数据在传输过程中是否产生了比特差错是数据链路层所要解决的重要问题之一
d、在封装好的帧中利用若干个字节来表示帧校验序列FCS字段。FCS:Frame Check Sequence(帧校验序列)。FCS字段由一些差错校验算法计算得出常用的校验算法围殴循环冗余校验CRCCRC(CyclicRedundancy Check)。
f、接收方在接收到数据后计算出一个FCS然后将计算机得出的FCS与接收到的数据帧中的FCS进行比较 由于判断FCS是否正确只能检测出帧在传输过程中出现了差错但并不能定位错误因此无法纠正错误接收方可以通过检测重传方式来纠正传输中的差错或者仅仅是丢弃检测到差错的帧这取决于数据链路层向上层提供的是可靠传输服务还是不可靠传输服务 4以太网
a、概念
以太网是一种计算机局域网技术。它规定了包括物理层连线、电子信号和介质访问层协议的内容。以太网是应用最普遍的局域网技术取代了其他局域网技术如令牌环FDDI和ARCNET
以太网是一种有线系统最初使用同轴电缆进行数据传输后来发展到使用双绞线和光纤并延续至今。 b、以太网的两个标准
IEEE 802.3定义了以太网的物理层和数据链路层的介质访问控制部分其中物理层由两个组件组成线缆和设备数据链路层可以分为两部分:逻辑链路控制LLC)、介质访问控制(MAC)
物理层 线缆以太网的通信线缆由最先的同轴电缆发展到今天的双绞线和光纤 双绞线的两端配有RJ45八针连接器这种八针连接器用于在半双工和双工模式下进行数据的发送和接收 半双工模式数据一次沿一个方向传输 全双工模式数据沿两个方向传输以太网的全双工模式可以通过使用一对双绞线实现 设备常用的以太网设备有路由器、交换机、网桥而工作在数据链路层上的设备为交换机、网桥路由器工作在五层体系结构中的网络层
数据链路层 逻辑链路控制LLC为网络层提供统一的接口以便数据在设备间传输。很多厂商生产的适配器上就仅装有MAC协议而没有LLC协议 介质访问MAC使用分配给网接口卡的硬件地址来标识特定的计算机或设备接口通过这种方式来表示数据传输的源地址和目的地址
5以太网的MAC层
a、MAC层的硬件地址
MAC地址英语:Media Access Control Address)直译为媒体存取控制位址也称为局域网地址(LAN Address)MAC位址以太网地址(Ethernet Address或物理地址(Physical Address)
它是一个用来确认网络设备位置的位址是一种48位(6字节)的全球地址这个地址会固化在适配器的ROM中
IEEE的注册管理机构RA负责向厂家分配地址字段的前三个字节。字符中的后三个字节由厂家自行指派称为扩展表示符必须保证生产出的适配器没有重复的地址。
一个地址块可以生成个二百八十万亿不同的地址这种位地址称为MAC他的通用名称是
一般情况下,用户主机会包含两个网络适配器:有限局域网适配器(有线网卡)和无线局域网适配器(无线网卡).每个网络适配器都有一个全球唯一的MAC地址.而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址.所以,严格的说MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识
通过DOS窗口:ipconfig /all,查看本机网卡的MAC地址 b、MAC地址的格式
MAC地址的含义 由于比特位是由右至左读的所以第一字节的b0和b1,分别为第一位和第二位
补充MAC地址的转换逻辑 一个字节是由8个比特组成将八个比特位分为两组四个一组转化为一个16进制数即生成6个字节每个字节两位16进制数共计12个16进制
16进制对应的各组2进制数 c、MAC帧的格式
数据链路层在网络层交付的IP数据包前面加上目的地址、源地址、类型字段,并且在最后加入4字节的FCS字段,组成一个以太网的MAC帧,然后交付给物理层
目的地址:接受主机的MAC地址源地址:发送主机的MAC地址类型:类型字段标志上一层使用的是什么协议,以便把收到的MAC帧数据交给上一层的这个协议 注意:当数据字段的长度小于46字节时,应在数据字段后面加入整数字节的填充字段,以保证以太网的MAC帧不小于46字节
d、MAC地址的识别
当多个主机连接在同一个广播信道上,要实现两个主机之间的通信,每个主机发送的帧中包含了目的地址和源地址,广播信道上的每一个主机都能够收到该帧,接收到帧的主机将帧中的目的地址与保存在网络适配器的电可擦除可编程只读存储器EEPROOM中的MAC地址进行比较,如果匹配则接收该帧,否则丢弃该帧 根据MAC地址为单播MAC地址还是广播MAC地址,在计算机网络发往本站(本主机)的帧分为三种:单播帧(一对一)、广播帧(一对全体)、多播帧(一对多)
单播MAC地址 广播MAC地址(广播地址为FF-FF-FF-FF-FF-FF) 多播MAC地址 多播MAC地址的第一字节为单数即b0为一是多播地址
随机MAC地址
据斯诺登介绍美国国家安全局有一套系统通过监视电子设备的MAC地址来跟踪城市中每个人的行动因此苹果率先在ios系列设备扫描网络时采用随机MAC地址技术
随后Windows10安卓6.0以及内核版本3.18的Linux系统也提供随机MAC地址功能目前大多数移动设备都采用了随机MAC地址技术
(6)以太网交换机 a、以太网交换机的基本功能
以太网交换机是基于以太网传输数据的交换机以太网交换机通常都是有多个接口每个接口是可以直接与一台主机或另一个以太网交换机相连一般都工作在全双工方式此接口可以同时接收和传输
以太网交换机具有并行性能同时连通多个对接口使多对主机能同时通信
以太网交换机工作在数据链路层也包括物理层他收到帧后在帧交换表中查找帧的目的MAC地址所对应的接口号然后通过该接口转发帧。
帧的两种转发方式
存储转发交换机在转发之前必须接收整个帧并进行错误校验如无错误再将这一帧发往目的地址。帧通过交换机的转发时延随帧长度的不同而变化直接交换采用基于硬件的交叉矩阵交换机只要检查到帧头中所包含的目的地址就立即转发该帧而无需等待帧全部的被接受也不进行错误校验。由于以太网帧头的长度总是固定的因此帧通过交换机的转发时延也保持不变
b、以太网交换机自学习和转发帧的流程
首先根据发送信息的源MAC地址来获得帧交换表查看帧中的目标地址是否在表中若在则直接单播转发若不在则广播转发帧交换表中的MAC地址对应信息是动态变动的若将某接口相连的主机改变后会重新进行写入
刚上电时以太网交换机内部的帧交换表是空的随着网络中各主机间的通信通过自学习算法自动的逐渐建立起帧交换表 主机A发送数据给主机B
1、该帧从交换机1的接口1进入交换机交换机1首先进行登记工作将该帧中的源MAC地址A记录到自己的帧交换表中并且将接口号1与MAC地址A相对应也记录到帧交换表中以上的登记工作就称之为交换机的自学习
2、交换机1对该帧进行转发该帧中的目的MAC地址是B在帧交换表中查找MAC地址B发现找不到就对该帧进行盲目地转发也成为泛洪)也就说会将该帧在除接口1以外的其他所有接口进行转发
3、主机B在接收到该帧后根据该帧的目的MAC地址B与自己的MAC地址比较发现相等就说明该帧是发送给自己的于是主机B接受该帧主机C则会丢弃该帧
4、该帧从交换机1的接口4通过交换机2的接口2进入交换机2交换机2首先进行登记工作将该帧中的源MAC地址A记录到自己的帧交换表中并且将接口号2与MAC地址A相对应也记录到帧交换表中
5、交换机2对该帧进行转发该帧中的目的MAC地址是B在帧交换表中查找MAC地址B发现找不到就对该帧进行盲目地转发也成为泛洪)也就说会将该帧在除接口2以外的其他所有接口进行转发
6、主机D、E、F丢弃该帧
7、最后帧交换表为 MAC地址 接口
以太网交换机1A————1
以太网交换机2A————2 1、B→C
交换机1写入B——2的记录而后盲目转发主机A丢弃该帧主机C接收该帧
交换机2写入B——2的记录而后盲目转发主机D、E丢弃该帧
交换机3写入B——2的记录而后盲目转发主机F、H、G丢弃该帧
2、D→A
交换机2写入D——1的记录而后盲目转发主机E丢弃该帧
交换机1写入D——4的记录而后盲目转发主机A接收该帧主机B、C丢弃该帧
交换机3写入D——2的记录而后盲目转发主机F、H、G丢弃该帧
3、G→D
交换机3写入G——4而后由2接口转发给交换机2
交换机2写入G——4而后明确转发至接口1的D主机
交换机1收不到该帧无操作 c、以太网交换机的生成树协议STP
添加冗余链路可以提高以太网的可靠性在交换机B和C之间添加冗余链路。但是冗余链路也会带来负面效应———形成网络环路 网络环路带来的问题
广播风暴广播帧在各个交换机之间反复转发分别按顺时针和逆时针同时兜圈广播风暴会大量消耗网络资源使得网络无法正常转发其他数据帧 主机收到反复的广播帧会大量消耗主机的资源交换机的帧交换表震荡同一个MAC地址的记录在其他错误记录之间反复震荡 由于交换机之间组成一个环路所以帧交换表中的记录会不断的跟新例如交换机B记录由H1发送过来的信息后转发给交换机A、C同时又会不停的接收到来自交换机A、C转发过来的信息H1的对应接口记录就会不断更新 以太网交换机使用生成树协议STP可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题
不论交换机之间采用怎样的物理连接交换机都能够自动计算并构建一个逻辑上没有环路的网络其逻辑拓扑结构必须是树型的无逻辑环路。最终生成的树型逻辑拓扑要确保连通整个网络 当首次连接交换机或网络物理拓扑发生变化时有可能人为改变或故障交换机都将进行生成树的重新计算 如上图橙色方块部分是交换机主动阻塞的接口当目前使用的某条线路出现问题时会重新进行树的计算 7虚拟局域网VLAN
a、广播域
使用一个或多个以太网交换机互连起来的交换式以太网其所有站点都属于同一广播域。随着交换式以太网规模的扩大广播域相应扩大从而形成一个巨大的广播域
但巨大的广播域会带来很多弊端
广播风暴难以管理和维护潜在的安全问题 广播风暴会浪费网络资源和各个主机的CPU资源但是在实际应用中网络中会频繁出现广播信息TCP/IP协议栈中的很多协议都会使用广播
地址解析协议ARP已知IP地址找出对应的MAC地址动态主机配置协议DHCP用于自动配置IP地址
可以使用分割广播域的方法对广播域进行隔离
使用路由器隔离广播域但是路由器的成本较高局域网中如果全部用路由器隔离广播域不大现实。路由器不转发广播帧所以可以在需要隔离的广播域中安装路由器以达到隔离的目的 使用虚局域网VLAN
b、虚拟局域网VLAN概述
虚拟局域网VLAN是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术这些逻辑组具有某种共同的需求。
若网络中有三个局域网我们可以使用一个交换机S4将三个局域网连成一个更大的局域网。原来每个局域网成为新的大的局域网中的各个网段。在S4上将整个局域网划分为两个VLANVLAN1和VLAN2这样两个不同的VLAN之间的广播数据包不会互相传输当然如果是在同一个VLAN中的主机依然是可以进行广播通信的。
注意并非所有的交换机都能进行VLAN划分一般需要企业级交换机才可以 8华为eNSP进行VLAN实验
a、打开软件界面如图左上角可新建项目在拓扑中加入两台S5700的交换机LSW1及LSW2并且每台交换机上接入两台PC b、将四台PC设置IP地址在同一网段从左至右为192.168.1.101至192.168.1.104子网掩码全部设置为255.255.255.0网关全部设置为192.168.1.0
c、设置完成后将所有设备启动包括交换机使用ping命令查看四台PC都能ping通
d、配置交换机LSW1
1、进入命令行输入system-view命令进入系统视图
2、输入display vlan查看交换机的vlan 默认会有一个vlan1我们需要创建vlan2和vlan3
3、创建vlan2 和vlan3直接输入命令即可但是vlan和数字之间要加空格否则会报错
若创建vlan2后quit后在输入vlan 3报错则再通过system-view进入一次试图 4、创建完成后再次通过display vlan查看是否创建成功 5、将连接两台PC的端口设置为access类型通过access端口的数据包都是不带VLAN tag的且只属于一个VLAN在access端口进方向交换机接收到数据包后先判断是否带有VLAN tag有则丢弃数据包没有则打上该端口已经配置的VLAN tag在access端口出方向交换机将打了与端口相同VLAN tag的数据包转发出去并且去掉VLAN tag变成普通数据包一般连接计算机。
输入dis cur查看端口名称 设置access类型并且将端口号分配给不同的VLAN
第一步直接输入要设置的端口号跳转至该目录下
第二步通过port link-type access将端口设置为access模式
第三步通过port default vlan 2将端口分配给vlan2 端口2及配置与端口1 相同只是将其分配给vlan3
此时我们用PC1 ping PC2是不能ping通的因为他们不在一个局域网中了
6、将连接LSW3的端口3设置为trunk类型端口可以承载多个VLAN通过trunk端口的数据包都必须带上VLAN tag在trunk端口进方向交换机接收数据包后先判断是否带有VLAN tag没有则丢弃数据包有责按照对应VLAN进行转发在trunk端口出方向交换机将带VLAN tag的数据包原封不动的转发出去没有带VLAN tag的数据包不会从trunk端口转发出去一般用来接其他交换机
第一步切换到端口3
第二步port link-type trunk设置trunk类型
第三步port trunk allow-pass vlan 2允许vlan2的数据通过
第四步port trunk allow-pass vlan 3允许vlan3的数据通过 7、再次通过dis cur查看端口设置情况 8、设置完成后通过同样的方法设置LSW3设置完成后PC1和PC3属于vlan2PC2和PC4属于vlan3
9、验证 PC1ping同在VLAN2的PC3可以通而不在同一局域网的PC4不能ping通其他PC同理 再接一台交换机同理设置LSW3的端口4也要设置 验证 1.5 网络层
1网络层概述
网络层的主要任务是实现网络互连进而实现数据包在各网络之间的传输 要实现网络层任务需要解决以下主要问题
网络层向传输层提供怎样的服务“可靠传输”还是“不可靠传输” ATM、帧中继和X.25的网络层提供的面向连接的、可靠的虚电服务TCP/IP协议体系结构的网际层提供的是无连接的、不可靠的数据包服务网络层寻址服务 路由选择问题路由器根据路由表选择下一跳 因特网是目前全世界用户数量最多的互联网它使用TCP/IP协议栈。由于TCP/IP协议栈的网络层使用网际协议IP是整个协议栈的核心协议因此在TCP/IP协议栈中网络层常称为网际层。 2IPv4地址概述
在因特网中为了实现计算机之间的互相通信通常要为每台计算机分配一个IP地址。一般有两个版本分别为IPv4和IPv6
IPv4的IP地址就是给因特网上的每一台主机或路由器的每一个接口分配一个在全世界范围内唯一的32比特的标识符地址总数为2^32
IPv6的IP地址采用128比特地址的长度地址总数为2^128个
IP地址由因特网名字和数字分配机构ICANN进行分配。我国用户可向亚太网络信息中心APNIC申请IP地址需要缴费。
由于32位比特IPv4地址不方便因此IPv4地址采用点分十进制表示方法以方便用户使用
八位无符号二进制数转十进制二进制表示从右至左分别表示低比特位和高比特位 如上第一题
000010102 0*2^7 0*2^60*2^50*2^41*2^30*2^21*2^10*2^010
111111102 1*2^71*2^61*2^51*2^41*2^31*2^21*2^10*2^0254
(11111110)2(11111111)2-1255-1254
(00001111)20*2^7 0*2^60*2^50*2^41*2^31*2^21*2^11*2^015
(11110000)21*2^71*2^61*2^51*2^40*2^3 0*2^20*2^10*2^0240
即00001010 11111110 00001111 11110000 10.254.15.240
十进制正整数转8位无符号二进制的方法
①除2取余法直到最后商为0 ②凑值法熟记8位二进制数各位的权值128 64 32 16 8 4 2 1
17110 12803208021101010112
3IPv4地址分类
①IPv4的IP地址由网络号指定主机所属网络和主机号指定被寻址的子网中的某节点组成IP地址可以分为A、B、C、D、E五类 ②注意事项
只有ABC类地址可以分配给网络中的主机或路由器的各接口主机号位“全0”的地址是网络地址不能分配给主机或路由器的各接口主机号为“全1”的地址是广播地址不能分配给主机或路由器的各接口
③各类IP地址的细节
A类地址 A类地址网络号占一个字节即8个比特最高位固定是0网络号有2^7128种组合除去最小网络号00000000即0和最大网络号01111111127不能指派所以最终A类IP地址能够指派的网络数量为 A类 地址每个网络中可以分配的地址数量因为主机号占24比特主机号有2^24种组合因为全0的网络号和全1的广播地址不能指派所以减去2 取值范围因为最小网络号0保留不指派第一个可被指派的网络号为1最大网络号为127作为本地环回测试地址不指派最后一个可指派的网络号为126
又因为主机号全0或全1不指派所以
A类地址的取值范围为1.0.0.1~126.255.255.254
B类地址 B类地址可指派的网络数量因为网络号占16个比特并且最高位固定为10网络号有16384种组合 B类地址的每个网络中可以分配的地址数量因为主机号占16个比特主机号有2^16种组合因为全0和全1的广播地址不能被指派所以需要减2 取值范围因为最小的网络号也是第一个可被指派的网络号为是10000000 00000000即128.0最大的网络号也是最后一个可以被指派的网络号为10111111 11111111191.255; 最大主机号为11111111 111111110即255.254 最小主机号为00000000 00000001即0.1
所以B类IP地址的取值范围为128.0.0.1~191.255.255.254
C类地址 C类地址可指派的网络数量因为网络号占24比特3个字节并且最高位固定为110网络号有2097152种 C类地址每个网络中可以分配的地址数量因为主机号占8个比特主机号有2^8种组合因为全0的网络号和全1的广播地址不能被指派所以减去2 取值范围因为最小网络号也是第一个可被指派的网络号为11000000 00000000 00000000即192.0.0最大网络号也是第一个可被指派的网络号为11011111 11111111 11111111即223.255.255最大主机号为254最小主机号为1
所以C类IP地址的取值范围为192.0.0.1~223.255.255.254 D类、E类 练习 注 1、根据地址左起第一个十进制数的值可以判断出网络类别小于127的为A类0和127不指派128~191为B类192~223的为C类 2、根据网络类别就可以找出地址中的网络号部分和主机号部分A类左起第一个字节B类前两个字节C类前三个字节 3、以下三种情况的地址不能指派给主机或路由器 1A类网络号0和127 2主机号为全0为网络地址 3主机号为全1是广播地址 4一般情况下主机后最后一个字节为1是留给网关的一般也不指派 由于主机号最后一个字节为.1的一般留给网关所以在上图中虽然我们说B类主机号可以有65534种C类主机号可以有254种但是实际上只有65533和253种所以黄色部分只能用A类网络号蓝色部分只能用B类网络号不然主机数量会超出
3子网的划分
①子网掩码
子网掩码是一个32位地址又叫网络掩码、地址掩码用来指明一个IP地址的哪些位标识的之际所在的子网以及那些位标识的是主机。子网掩码不能单独存在必须结合IP地址一起使用。子网掩码将某个IP地址划分为网络地址和主机地址两部分
左边是网络位用二进制数字 1 表示1的数目等于网络位的长度右边是主机位用二进制数字 0 表示0的数目等于主机位的长度。将掩码与IP地址按位与运算时用0遮住原主机位而不改变原网络段数字因为在位与计算中0与任何数计算都得0而且很容易通过0的位数确定子网的主机数
子网掩码的功能 屏蔽IP地址的一部分以区别网络表示和主机标识将一个大的IP网络划分为若干个小的子网络子网掩码的工作流程将32位的子网掩码与IP地址进行二进制形式的按位逻辑‘与’运算得到该IPv4地址所在的网络地址 例如IP地址192.168.1.215 子网掩码255.255.255.0 网络号192.168.1.0
因为十进制255的二进制就是全1IP与其位与运算后为其本身而0与IP与运算后是0
②、子网的划分
子网掩码是为了解决IP地址分配而产生的虚拟IP技术通过子网掩码可以将A、B、C三类地址划分为若干子网提高了IP地址的分配效率还可以人为的将一个较大的企业内部网络划分为更多的小规模的子网再利用三层交换机的路由功能实现子网互联解决网络广播风暴和网络病毒等网络管理方面的问题 上图中为B类IP默认的子网掩码应该为255.255.0.0若用默认子网掩码则子网1、2、3都可互相通信因为他们的网络号都是145.13.0.0但是此处借用主机号中的8位作为子网号则子网掩码位255.255.255.0此时子网1、2、3的网络号分别为145.13.0.0/145.13.1.0/145.12.2.0则分为三个子网进行隔离防止网络风暴或网络病毒的问题
32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号 举例说明划分子网的细节已知某个网络的地址位218.75.230.0使用子网掩码255.255.255.128对其进行子网划分请给出划分细节
流程;
a、因为IP地址左起第一个十进制为218大于192所以她是一个C类的地址C类地址的子网掩码默认为255.255.255.0而此时的子网掩码为255.255.255.128说明此时子网掩码向主机号借用了一个比特作为子网号 b、因为子网掩码向主机号借用了一个比特作为子网号所以可划分出来的子网数量为2^1 2个一位二进制有两种可能为1或为2.因为主机号的最高位被子网掩码借用所以主机号只有7位所以最多可分配2^(8-1)128个地址但是还需除去主机号为全0此时的网络地址为218.75.230.00000000和218.75.230.10000000或全1此时的网络地址为218.75.230.01111111和218.75.230.11111111的广播地址所以还需减去2 c、详细的子网划分 可划分的地址数量计算子网数2^12每-个子网的地址数量2^(8-1)128每个子网有全0和全1 不能分配即每个子网可分配数128-2126共计126*2252
练习题 因为180开头是B类地址所以默认的子网掩码应该是255.255.0.0但是此时在第三个字节借了六位作为子网号所以当第三个字节的最后两个比特及第四个字节的比特全为1时即了作为广播地址
d、子网掩码的CIDR斜线记法
格式为IP地址/n
说明n标识子网掩码所使用的bit数标识子网掩码中网络号的长度通过n的个数确定子网的主机数2^(32-n)-2
例如192.168.1.100/24其子网掩码为255.255.255.0
172.16.198.12/20其子网掩码为255.255.240.0
4IP协议 用户数据在网络层中使用IP协议进行封装然后交付给数据链路层。IP协议提供不可靠无连接的数据报传输服务
使用IP协议封装的数据称为IP数据报
IP数据报的首部IP数据的首部由20个字节组成IP数据包的首部常以32个比特为单位进行描述下图中的每一行都有32个比特即4个字节构成每个小格子称为字段或域 每个域的含义
版本占4比特表示IP协议的版本首部长度占4比特表示IP数据报首部的长度。该字段的取值以4字节为单位。最小十进制取值为5表示IP数据报首部只有20字节固定部分4*5最大十进制取值为15表示IP数据报首部包含20字节固定部分和最大40字节可变部分4*15区分服务8比特一般不使用总长度占16比特表示IP数据报的总长度首部数据载荷。最大取值为十进制的655352^16-1,以字节为单位实际使用中不会传输这么长的IP数据报标识、标志、片偏移这三个字段共同用于IP数据报分片以太网中数据链路层规定MTU即最大传输单元的值为1500字节如果某个IP数据报总长度超过MTU需要将原IP数据报分片成多个小的数据报再将每个小的数据报封装成帧 标识占16比特属于用一个数据报的各分片数据报应该具有相同的标识。IP软件维持一个计数器没产生一个数据报计数器值加一并将此值赋给标识字段标志占3个比特各比特含义DF位1表示不允许分片0表示允许分片MF位1表示“后面还有分片”0表示”这是最后一个分片“保留位必须是0片偏移占13比特指出分片数据报的数据载荷部分偏移其在原数据报的位置还有多少个单位片偏移以8个字节为单位IP数据报分片举例 由于原始数据报超过了MTU所以数据报需要分片分片时每一个分片前都要加上自己对应的首部。其中MF表示自己是否为最后一个分片1表示不是所以分片1、2MF值为1而DF表示是否允许分片因为数据在网络层是要通过很多路由器来传输的在传输分配过程中可能会需要再次分片所以DF值为0片偏移是以8各字节为一个单位的所以都要除8
生存时间占8各比特最初以秒为单位最大生存周期是255秒。路由器转发IP数据报时是将IP数据报首部中的个字段的值减去IP数据报在本路由器上所耗费的时间若不为0则转发否则就直接丢弃。现在”跳数为单位路由器转发IP数据报时将IP数据报首部中的该字段的值减一若不为0就转发否则丢弃 TTL可以防止IP数据报在网络中永久兜圈 如上图R2的路由表中N2对应的下一跳记录错误导致数据一直在R1和R2之间兜圈但是因为有TTL的存在每转发一次这个数据报就把TTl的值减一直到减为0时被路由器丢弃 协议占8比特指明IPv4数据报的数据部分是何种协议数据单元常用的一些协议和相应的协议字段如下 首部检验和占16比特用来检验首部在传输过程中是否出现差错。比CRC检验码简单称为因特网检验和。IP数据报没经过一个路由器路由器都要重新计算首部检验和因为某些字段的取值可能会变化源IP地址占32比特表示发送主机的IP地址目的IP地址占32比特表示目的主机的IP地址
5IP数据报的发送和转发过程
IP数据报的发送和转发过程包含两部分主机发送IP数据报、路由转发数据报
同一个网络中的主机是可以直接通信的叫直接交付而不同网络间的主机是不能直接通信的需要通过路由器进行中转是间接交付。那源主机是如何判断目的主机和自己是否在同一个网络中的呢 例如主机C要和主机F通信主机C将自己IP地址和子网掩码按位与操作得到主机C的网络地址为192.162.0.0然后将目的地址主机的IP地址和自己的子网掩码进行按位与计算得到的目的网络地址192.168.0.128两个网络地址不相等说明主机C和主机F不在同一个网络中不能直接交付主机C将数据发送给路由器R由R再转发给主机F实现主机F与主机C之间的数据通信间接交付 主机C如何知道要将数据发送给路由器R呢我们需要将路由器的接口地址192.168.0.126作为主机C的默认网关这样当主机C发现目的地址与自己不在同一网络时直接将数据发送给设置好的默认网关即路由器。因此可以将左边网络中的所有主机默认网关填写为192.168.0.126右边网络则填写为192.168.0.254 路由器又是如何对数据进行转发的呢假设主机A需要将数据发送给主机D因为主机A与主机D不在同一网络A为192.168.0.0D为192.168.0.128所以主机A将数据发送给路由器R路由器会进行如下操作
首先检查IP数据报首部是否出错若出错则直接丢弃该IP数据报并告知源主机若没有出错则进行转发然后根据IP数据报的目的地址和路由表中查找匹配的条目若找到匹配的条目则转发给条目中指示的下一跳否则丢弃数据报并通告源主机 主机其实在发送数据时也会查自己的路由表因为查不到主机D的地址所以将数据发送给默认的网关即路由器又路由器间接转发路由器收到目的IP地址后是和路由器上的子网掩码进行位与运算得到目的网络的路由器将数据发送给S2交换机后交换机解包得到目的MAC再根据帧交换表得到具体将数据发送给哪台主机
6路由表
路由
路由就是报文从源端到目的端的路径。路由器可以根据路由表中最佳路由进行转发。 路由表
路由表是一个存储在路由器或联网计算机中的电子表格文件或类数据库。路由表存储着指向特定网络地址的路径。路由表建立的主要目的是为了实现路由协议和静态路由选择。路由表就相当于一张地图告诉数据报该如何去往目的地。
路由器会根据路由表进行数据包的转发 在linux里我们可以使用route -n命令查看系统的路由表 在windows下使用route print命令查看路由表 路由表中有一条特殊的路由其目标地址为0.0.0.0子网掩码也为0.0.0.0对应下一跳的地址为网关地址。这条路由的作用是什么呢
计算机或路由器是如何将一条数据通过网络发送出去的首先将目的IP地址与自己的子网掩码进行按位与计算得到目的主机的主机号然后拿该主机号与路由表中的路由进行匹配如果匹配到了则将数据转发给指定的下一跳如果没有匹配到则发送给目标地址为0.0.0.0所对应的下一跳
目标地址为0.0.0.0所对应的那条路由的作用就是这条路由就是默认路由是对IP数据包中的目的地址找不到存在的其他路由时路由器所选择的路由
注当我们发现主机不能够上网或者不能ping通外网的时候加入检查了IP地址、DNS等设置都没问题后依然不能解决可以查看系统路由表中是否没有添加默认路由 不同的路由器查看路由表的命令不一样思科路由器查看路由表的命令为show ip route 华为路由器查看路由表的命令为display ip routing-table
路由表的类型
动态路由指动态路由协议如RIP自动建立路由并且能够根据实际情况的变化适时的进行调整 动态路由之所以能根据网络的情况自动计算路由、选择转发路径是由于当网络发生变化时路由器之间彼此交换的路由信息会告知对方网络的这种变化通过信息扩散使所有路由器都能得知网络变化路由器根据某种算法把收集到的路由信息加工成路由表供路由器在转发IP报文时查阅常见的路由协议有RIP、OSPF、IS-IS、BGP、IGRP/EIGRP静态路由由网络管理员手动配置的路由 Linux系统静态路由操作 添加路由route -n add -net 目标地址/子网掩码位数 gw 下一跳 删除路由rote delete -net 目标地址/子网掩码位数 注上面的-net表示操作的是一个网络而是某台具体的主机则可以直接使用-host 路由器静态路由操作 添加路由ip route 目标地址 子网掩码 下一跳地址例如ip route 192.168.3.0 255.255.255.0 192.168.1.1删除路由no ip route 目标地址 子网掩码 下一跳地址 7ARP高速缓存表
①地址解析协议ARP
在数据链路层封装的MAC帧中需要封装目的地址和源地址。当已知目的的主机的IP地址时可以通过ARP协议获得目的主机的MAC地址
ARP请求报文封装在MAC帧中目的地址为FF-FF-FF-FF-FF-FF并且以广播的形式发送的
ARP协议工作流程 ②ARP高速缓存表
ARP高速缓存表由最近的ARP项组成的一张临时表表中记录了主机IP地址和MAC地址的对应关系 生命周期的存在是以防主机改变而IP地址不会改变但mac地址会改变的情况主机间不断的通信两分钟更迭一次ARP缓存表
注意ARP报文只能在发送主机所在的广播域中被使用 因为路由器有隔离作用所以不会发送广播形式的ARP报文但是主机和路由器之间或路由器与路由器之间是可以使用ARP报文获取MAC地址的
③ARP欺骗
ARP欺骗是一种以ARP地址解析协议为基础的网络攻击方式
ARP欺骗的原理利用ARP协议没有安全认证机制攻击者发送假的ARP数据包到网上尤其是送到网关上。让送至特定的IP地址的流量被错误送到攻击者所取代的地方。因此攻击者可将这些流量另行转送到真正的网关被动式数据报嗅探或是篡改后再转发中间人攻击
ARP欺骗的分类
主机型欺骗攻击者向其他主机发送ARP响应包攻击者在响应包中填入网关的IP地址和自己的MAC地址这样主机A应该发送给网关的数据包就会被发送给主机网关型欺骗攻击者向网关发送ARP响应包攻击者在响应包中填入被攻击主机的IP地址和自己的MAC地址这样网关接收到互联网中发送给主机A的数据时也会转发发给主机B ARP欺骗的危害信息安全受到威胁、网络延迟增加、网络通信中断
ARP欺骗防范方法安装补丁、静态绑定网内的主机与网关做IP和MAC绑定、使用ARP防火墙、不点来开通讯工具中的一些可疑链接图片文件等
8特殊IP地址 ①127.0.0.1
回环地址或称为“localhost”无论是哪个程序一旦使用该地址发送数据协议软件会立即返回不进行任何网络传输除非出错包含该网络号的分组是不能够出现在任何网络上的
②10.*.*.*/172.16.*.*至172.31.*.*/192.168.*.*
上面三个网段都是私有地址可以用于自己组网使用这些地址主要用于企业内部网络中但不能够在Internet网上使用Internet网没有这些地址的路由而使用这三个网段的计算机要上网必须要通过网络地址转换NAT将私有地址翻译成公用合法的IP地址
③255.255.255.255
受限制的广播地址对本机来说这个地址指本网段内同一广播域的所有主机该地址用于主机配置过程中IP数据包的目的地址路由器都会进制转发目的地址为受限的广播地址的数据包这样的数据包仅会出现在本地网络中
④224.0.0.0——239.255.255.255
组播地址
⑤169.254.*.*
如果主机使用了DHCP功能自动获得一个IP地址那么当DHCP服务器发生故障或响应时间太长而超出系统规定的时间Windows系统会分配这样一个地址如果主机IP地址是个诸如此类的地址十有八九时网络不能正常运行了
⑥114.114.114.114
中国电信的DNS
⑦8.8.8.8
谷歌DNS
1.6 运输层 物理层、数据链路层以及网络层共同解决了将主机通过异构网络互联起来所面临的问题实现主机到主机之间的通信。两个主机进行通信实际上就是两个主机中的应用进程在互相通信应用进程之间的通信又称为端对端的通信。
当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端对端的通信时只有位于网络边缘部分的主机的协议栈才有运输层而网络核心部分中的路由器在转发分组时都只用到下三层的功能。如何为运行在不同主机上的应用进程提供直接的通信服务是传输层的任务。 运输层提供的是应用进程间的逻辑通信即运输层之间的通信好像是沿着水平方向传送数据的但事实上这两个运输层之间并没有一条水平方向的物理连接。 根据应用需求的不同因特网的传输层提供了两种不同的传输协议即面向连接的TCP和无连接的UDP
1端口号
TCP/IP体系的运输层使用端口号来区分应用层的不同应用进程
端口号的值
端口号使用16比特表示取值范围0~65535熟知端口号端口号0~1023LANA把这些端口号指派给了TCP/IP体系中最重要的一些应用协议例如FTP使用20/21HTTP使用80DNS使用53登记端口号1024~49151为没有熟知端口号的应用程序使用。使用这类端口号必须要在LANA按照规定的手续等级以防止重复短暂端口号49152~65535留给客户进程选择暂时使用。当服务器进程受到客户进程的报文时就知道了客户进程所使用的动态端口通信结束后这个端口号可提供给其他客户进程以后使用常用端口号及其对应的网络应用程序 在Linux中/etc/service文件中保存了知名的服务器端口 端口号只具有本地意义即端口号只是为了标识本计算机应用层中的各个进程在因特网中不同计算机中的相同端口号是没有联系的。
2传输控制协议TCP
传输控制协议TCP是一种基于连接的可靠的稳定的无重复的传输协议
①TCP头部
TCP头部协议如下 16位源端口号source port发送主机中进程的端口号16位目的端口号destination port接收主机中进程的端口号32位序列号sequence number每一个包中都有一个序列号序列号被系统初始化为某个随机值ISN。后续的TCP报文段中序号加上该报文段所携带数据的第一个字节在整个字节流中偏移。那么该报文的序号值就是ISN1025一般用seq缩写来表示seq是面向字节流的如果在传输的过程中随包没有发送数据即len是零则seq是不消耗的。 32位确认号Acknowledgment Number目的主机返回确认号使源主机知道某个或几个报文段已被接收一般用小写的ack来表示要和大写的ACK区分开四位首部长度header length由于TCP首部包含一个长度可变的选项部分所以需要一个值来指定这个TCP报文段到底有多长URG标志标识紧急指针是否有效ACK标志表示确认号是否有效赋值为1标识确认我们称携带ACK标识的TCP报文为确认报文段PSH标志提示接收端应用程序应该立即从TCP接收缓冲区中读走数据为接收后续数据腾出空间如果应用程序不把接收到的数据读走他们就会一直停留在TCP接收缓冲区中SYN标志标识请求建立一个连接我们称SYN标志的TCP报文为同步报文段RST标志标识要求对方重新建立连接。我们称携带RST标志的TCP报文段为复位报文段FIN标志表示通知对方本端要关闭连接了。称携带FIN标志的TCP报文段为结束报文段16位窗口大小window size是TCP流量控制的一个手段。窗口实际上指接受通告的窗口。可以告诉对方本端的TCP接收缓冲区还能容纳多少个字节的数据对方可以控制发送数据的速度16位检验和TCP check sum由发送端填充接收端对TCP报文段执行CRC算法以检验TCP报文段在传输过程中是否损坏。这个校验不仅包括TCP头部也包括数据部分是TCP可靠传输的一个重要保障16位紧急指针urgent pointer是一个正的偏移量。它和序号字段的值相加表示最后一个紧急数据的下一个字节的序号。因此这个字段是紧急指针相对当前序号的偏移。TCP的紧急指针是发送端向接收端发送紧急数据的方法TCP头部选项TCP头部的最后一个选项字段是可变长的可选信息。这部分最多包含40字节
②TCP运输连接的阶段
建立连接数据传输释放TCP连接 ③TCP连接的建立
TCP连接的建立需要解决以下三个问题
使TCP双方能够确知对方的存在使TCP双方能够协商一些参数如最大窗口值是否使用窗口扩大选项和时间戳选项以及服务质量等使TCP双方能够对运输实体资源如缓存大小、连接表中的项目等进行分配
三次握手过程
由客户端的某个进程主动发起TCP连接建立最初两端的TCP进程都处于关闭状态TCP服务器被动等待客户进程的TCP请求所以TCP服务器进入监听状态TCP客户进程向TCP服务器进程发送TCP建接请求报文段并且进入同步已发送状态TCP连接请求报文段首部中的同步位SYN被设置为1表明这是一个TCP连接请求报文段32位序列号字段seq被设置了一个初始值x作为TCP客户进程所选择的初始序号。 TCP服务器进程接收到TCP连接请求报文段后如果同意建立连接则向TCP客户进程发送TCP连接请求确认报文段并且进入同步已接收状态该报文段首部中的同步位SYN和确认位ACK都设置为1表明这是一个TCP连接请求确认报文段。序号字段seq被设置了一个初始值y作为 TCP服务器进进程选择的初始序号确认号字段ack的值被设置成x1表明接收到了TCP客户进程序号为x的报文。 TCP客户进程收到TCP连接请求确认报文段后还要向TCP服务器进程发送一个普通的TCP确认报文段并且进入连接已建立状态报文段首部中的确认位ACK设置为1表明这是一个普通的 TCP确认报文段。序列号字段seq设置为x1确认号字段ack的值被设置成y1表明接收到了TCP服务进程序号为v的报文TCP服务器进程收到该确认报文段后也进入连接已建立状态。 注seq每次都有因为每次发的包中必须要有一个序列号SNY 表示请求建立一个连接所以是两端第一次主动发出建立连接是要加ACK表示确认ack表示已接收到的序列号
假如TCP连接的建立使用连词握手而不是三次握手可以吗
不可以因为如果两次即完成连接的话若是TCP客户端在发送TCP请求报文段时该报文被滞留而TCP传输过程中两端都有超时重传机制TCP客户端超时未接受到tcp服务端的回复会重传而后和TCP服务端建立连接并传输数据数据传输完成后TCP客户端会进入关闭状态而这是之前发送的请求连接报文传输成功被TCP服务端接收此时他会认为TCP客户端想要和她重新建立连接于是回复确认连接报文而这时TCP客户端已经关闭所以不会加以理会但是TCP服务端会认为连接已完成一直等待TCP客户进程发来的数据会浪费TCP服务器主机的很多资源。所以TCP连接的建立必须要采用三次握手。 四次挥手过程
四次挥手过程即TCP通过四次挥手来释放连接数据通信结束后TCP双方都可以释放连接
假设由客户进程主动关闭TCP连接客户进程发送连接释放报文段并且进入终止等待1状态该报文段中的首部终止位FIN设置为1ACK设置为1表明这是一个连接释放报文段同时也对之前接收打报文段进行确认sequ表示TCP客户进程之前已发送过的数据的最后一个字节的序号1ackv表示客户进程之前已收到的数据的最后一个字节的序号1服务器进程接收到TCP连接释放报文段后会发送一个普通的TCP确认报文段并且进入关闭等待状态此时TCP客户进程到服务器进程这个方向的连接就释放了这时的TCP连接属于半关闭状态也就是TCP客户进程已经没有数据要发送了但是TCP服务器进程如果还有数据需要发送客户进程则还需要接收这个状态可能会持续一段时间直到TCP服务器进程将数据发送完毕。TCP客户进程收到TCP确认报文段后就进入终止等待2状态等待TCP服务器进程发出的TCP连接释放报文段。当TCP服务器进程的没有数据要发送了后释放连接(被动关闭)TCP服务器进程发送TCP连接释放报文段并进入最后确认状态。FIN1ACK1表明这是一个连接释放报文段seqw acku1同时也对之前收到的报文段进行确认。思考:为什么seqw而不是seqv1呢?因为在这一段时间服务器将之前没有传输完成的数据发送给了客户端而每个数据包都要有序号所以seqv1在传输数据时就被用掉了TCP客户进程收到TCP连接释放报文段后必须针对该报文段发送普通的TCP确认报文段之后进入时间等待状态TCP服务器进程收到该报文段后就进入关闭状态而TCP客户进程还需要经过2MSL后才能进入关闭状态。MSL(Maximum Segment Lifetime)意思是最长报文段寿命RFC793建议为2分钟 思考为什么TCP客户进程还需要经过2MSL才能进入关闭状态
因为若是TCP客户进程收到TCP连接释放报文段并且针对该报文段发送普通额度TCP确认报文段后马上进入关闭状态若是这个确认报文段丢失了而TCP服务端会误以为客户端没有收到一直进行超时重传但是此时TCP客户端已经关闭了不会理会那服务端没有收到确认关闭的报文就无法释放掉连接一直发送连接释放报文无法进入关闭状态所以客户端等待2MSL可以确保服务器进程收到最后一个TCP确认报文 ③TCP可靠传输的实现
1、分段传输:应用数据根据MSS(MaxitumSegmentSize最大分段大小这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460)值被分割成TCP认为最适合发送的数据段。 注意:在运输层的分段传输(分组传输)和网络层的IP数据报分片传输的区别:分段传输只有 TCP协议才有的并且分段的依据为MSS分片传输的依据为MTU。 2、超时重传:当TCP发出一个段后它启动一个定时器等待目的端确认收到这个报文段。如果不能及时收到一个确认将重发这个报文段。
3、CRC校验和:TCP将保持它首部和数据的检验和如果收到段的检验和有差错TCP将丢弃这个报文段和不确认收到此报文段。 4、流量控制:TCP提供一种机制可以让「发送方 根据「接收方的实际接收能力控制发送的数据量这就是所谓的流量控制。TCP连接的每一方都有固定大小的缓冲空间TCP的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据能提示发送方降低发送的速率防止包丢失。TCP使用的流量控制协议是可变大小的滑动窗口协议。接收方有即时窗口(滑动窗口)随ACK报文发送。(TCP利用滑动窗口实现流量控制)
5、滑动窗口: 应答机制:假如TCP每发送一个数据报都要进行一次确认应答。当上一个数据包收到了应答了再发送下一个这个模式就有点像面对面聊天。这样的传输方式有一个缺点:数据包的往返时间越长通信的效率就越低。为解决这个问题我们可以使用累计应答 累计应答:接收方在接收到多个数据包后再根据接收到的数据包进行应答也称为累计确认。窗口:窗口的实现实际上是操作系统开辟的一个缓存空间接收方根据实际情况在应答数据包中告知自己的接收窗口大小。窗口大小就是指无需等待确认应答而可以继续发送数据的最大值(以字节为单位)。发送方主机在等到确认应答返回之前必须在缓冲区(发送窗口)中保留已发送的数据。如果按期收到确认应答此时数据就可以从缓存区清除。滑动窗口:如果发送窗口左部的字节已经发送并且收到了确认那么就将发送窗口向右滑动一定距离直到左部第一个字节不是已发送并且已确认的状态;接收窗口的滑动类似接收窗口左部字节已经发送确认并交付主机就向右滑动接收窗口。 假设主机A发送数据给主机B在建立TCP连接时主机B在确认报文中将自己的接收窗口 rwnd告知主机A。(假设接收窗口大小为400)主机A根据主机B的接收窗口大小创建自己的发送窗口(在内存上开辟一块空间缓存一个接收窗口大小的数据)并且假设每个数据包中载荷数据为100Bytes主机A分别将第一组数据(为了方便讲解假设seq1实际上应该为seqISN1)第二组数据(seq101) 第三组数据(seq201) 第四组数据(seq301)发送给主机B中间不需要等待主机B的应答数据报(累计应答)假设第三组数据(seq201)在输出过程中被丢失了尽管主机B接收到了第四组数据但是因为累计应答时只应答最大连续报文所以应答数据包中ack201表示序号201之前的所有数据全部正确接收。假设主机B将接收窗口大小调整为300在应答报文中rwnd300主机A接收到应答数据报后将自己发送窗口中的序号1~200的数据删除发送窗口往前(向右)移动并且将大小重新设置为300(开辟接收窗口大小的缓存序号为201-500的数据)主机B将序号为201301401的数据报发送给主机B假设以上三组数据报没有丢失主机B在接收到所有数据后发送应答数据报ack501并目将窗口调整为100rwnd100A主机A接收到应答数据报后将自己发送窗口中的序号201~500的数据删除发送窗口往前(向右)移动并且将大小重新设置为100(开辟接收窗口大小的缓存序号为501-600的数据)主机A将序号位600的数据报发送给主机B按照以上逻辑知道数据发送完毕 接收窗口为0的处理:当发送窗口被调整为0后发送方就不能再发送数据了假如接收方的接收窗口调整为大于0了如果不采取特殊措施发送方是不知道的因为接收方不会主动告知发送方自己接收窗口的大小。这时就需要持续计数器了当发送方接收到接收窗口为0的应答报文时马上启动一个持续计时器当定时达到时主动向接收方发送一个零窗口探测报文该报文只携带一个字节的数据然后这种逻辑直到接收方回复的接收窗口大于0. 3用户数据报协议UDP
UDPuser datagram protocol是一种无连接的不可靠的传输协议不需要三次握手四次挥手
UDP不提供数据包分组、组装和不能对数据包进行排序的缺点当报文发送后是无法得知其是否安全完整到达的因此适合实时数据传输。例如IP电话、网络视频会议等实时应用。 ①UDP的头部 ②UDP的应用
使用UDP运输协议可以进行单播、多播和广播 单播应用:DNS域名解析域名系统是因特网上作为域名IP(lnternetProtocolAddress)地址相互映射的一个分布式数据库。 浏览器如何通过域名去查询URL对应的IP(对应服务器地址)呢? 浏览器缓存:浏览器会按照一定的频率缓存DNS记录。操作系统缓存:如果浏览器缓存中找不到需要的DNS记录那就去操作系统中找。路由缓存:路由器也有DNS缓存。ISP的DNS服务器:ISP是互联网服务提供商(InternetServiceProvider)的简称ISP有专门的DNS服务器应对DNS查询请求根服务器:ISP的DNS服务器还找不到的话它就会向根服务器发出请求进行递归查询 当两个网络应用进程间需要快速传输大文件音频文件、图片文件等时也可以使用UDP单播 多播应用网络视频会议、教学视频监控等。IP多播多址广播或组播技术是一种允许一台或多台主机发送单一数据包到多台主机的TCP/IP网络技术。IP多播通信必须依赖IP多播地址在IPv4中它是一个D类IP地址范围从244.0.0.0到239.255.255.255 广播的应用ARP数据报广播 注意:在进行UDP编程时UDP包的大小可以达到64k但实际上MTU1500要减去UDP的头部和Ip的头部820~60大小只有1k多如果直接发一个超过MTU大小的包就会在网络层被分片这样的问题是如果只要有一个分片在传输中出错了即校验不正确(这是较容易发生的)整个传输的udp包就被丢弃。注意是整个而不是单个分片。这就是为什么发送UDP包通常也是1k多大小的原因。
4TCP和UDP的区别
①对比 除了上图所展示的区别外使用TCP传输协议时一旦建立好TCP连接后系统需要实时的维护该连接所以TCP所消耗的系统资源比UDP要多
因为TCP的可靠传输机制导致TCP传输数据时要比UDP慢得多
②TCP的长连接和短链接
长连接TCP通信双方在建立号连接后在较长一段时间内保持连接直至某一方主动关闭连接。长连接多用于操作频繁点对点的通讯例如物联网开发中某下位需要定时频繁向服务器发送数据等 短链接通信双方有数据交互时就建立一个TCP连接数据发送完成后则断开此TCP连接短连接多用于操作不频繁点对点的通讯例如在HTTP/1.0中默认使用短连接。也就是说客户端和服务器没进行一次HTTP操作就建立一次连接任务结束后就中断连接 长短连接的对比 UDP的灵活应用
应用项目:高压线覆冰监测系统。 监控中心为了较快显示工业摄像头采集到的高清照片监控子站主机需要使用UDP与监控中心主机进行图像数据的传输但是因为使用了UDP传输协议可能会导致某些数据报丢失。为了保证图像数据的完整性我们需要在应用层设计私有协议为每一组数据编号若服务端收到序号丢失则对丢失的序号组进行重传保障丢失的数据报能够进行重传 4wireshark
a、页面介绍
①网卡选择根据自己的需求选择 ②首页 常用按钮功能 ③数据包列表显示捕获到的数据包从左到右依次为数据包编号、时间戳、源地址、目的地址、协议、长度、数据包信息 ④数据包详细信息在数据包列表中选择指定数据包在数据包详细信息中会显示数据包的所有详细信息内容。数据包详细信息面板是最重要的用来查看协议中的每一个字段。各行信息分别为
Frame:物理层的数据帧概况 Ethernet:数据链路层以太网帧头部信息 Internet ProtocolVersion4互联网层IP包头部信息 User DatagramProtocol:传输层的数据段头部信息此处是UDP
HypertextTransfer Protocol:应用层的信息此处是HTTP协议 ⑤筛选出http协议相关的数据包可以查看tcp包的每个字段 b、wireshark过滤器
①设置数据抓取选项
点击常用按钮中的设置选项就会弹出设置选项对话框。在这个对话框中可以选中需要监听的接口设置混杂模式设置抓取数据包的过滤条件。 首先选中需要监听获取数据包的接口。接口列表区列出了所有可以使用的接口。如果接口前面的 复选框被选中说明对这个接口监听捕获数据包。 其次设置混杂模式。设置混杂模式的作用是将网卡设置到混杂模式。如果不设置混杂模式你的计算机只能获取数据包发往的目标是你计算机和从你计算机出去的数据包。如果设置了混杂模式你就可以捕获局域网中所有的数据包。如果窗口中的Use promiscuous mode onal interfaces前面的复选框被选中说明对所有的接口使用混杂模式。如果想单独设置可以双击接口列表中的接口会弹出如下的对话框。然后选中或者去掉“Capture packetsin promiscuous mode”前面复选框。然后点ok按钮。 ②显示过滤器
显示过滤器应用于捕获文件用来告诉wireshark只显示那些符合过滤条件的数据报。显示过滤比捕获过滤更常用。用来过滤不想看到的数据包但是不会把数据删除。如果想恢复原状只要把过滤条件删除即可。
过滤表达式对话框使wireshark可以很简单的设置过滤表达式。点击expression按钮即可调出 对话框分左中右三部分。左边为可以使用的所有协议域(过滤项)。右边为和协议域相关的条件值(过滤值)。中间为协议域与条件值之间的关系(过滤关系)。
一条基本的表达式由过滤项、过滤关系、过滤值三项组成。 比如:httpcontainsbaiducomhttp为过滤项contains为过滤关系baiducom为过滤值表示显示http协议包中包含关键词“baiducom”的所有数据包
比如:wipaddr192.16811.ipaddr是过滤项是过滤关系19216811是过滤值(整条 表达示的意思是找出所有ip协议中源或目标ip、等于、192168.1.1的数据包) ③ 过滤关系 过滤关系就是大于、小于、等于等几种等式关系我们可以直接看官方表格注意其中有“English”和“C-ike”两个字段这个意思是说“Engish”和“C-like”这两种写法在 wireshark中是等价的、都是可用的。 ④复合过滤表达式
复合过滤表达式就是指多条基本过滤表达式组合而成的表达式。基本过滤表达式是不变的符合过滤表达式多出来的东西是基本过滤表达式的“连接词”。可直接参考官方表达 ⑤常见用显示过滤需求及其对应表达式
数据链路层: 筛选mac地址为04:f9:38:ad:13:26的数据包:ethsrc04:f9:38:ad:13:26筛选源mac地址为04:f9:38:ad:13:26的数据包:ethsrc04:f9:38:ad:13:26网络层: 筛选ip地址为192168 1.1的数据包:ipaddr192.168.1.1筛选192.168.1.0网段的数据:ipcontains1921681筛选192.168.1.1和192.168.1.2之间的数据包:ipaddr192168.1.1ipaddr192.168.1.2筛选从192.168.1.1到192.168.1.2的数据包:ipsrc19216811ipdst192.168.1.2·传输层: 筛选tcp协议的数据包:tcp筛选除tcp协议以外的数据包:!tcp筛选端口为80的数据包:tcpport80筛选12345端口和80端口之间的数据包:tcpport12345tcpport80筛选从12345端口到80端口的数据包:tcpsrcport12345tcpdstport80应用层: 特别说明:http中httprequest表示请求头中的第一行(如GETindexjspHTTP/1.1)httpresponse表示响应头中的第一行(如HTTP/11200OK)其他头部都用 httpheader name形式。筛选url中包含php的http数据包:httprequesturicontainsphp筛选内容包含username的http数据包:httpcontainsusername c、使用wireshark分析TCP三次握手
①设置过滤阿里云服务器的IP地址ip.addr 47.104.157.132 ②使用TCP调试助手连接阿里云服务器上的TCP服务端 ③wireshark会捕获3条TCP数据 第一次握手数据包客户端发送一个TCP标志位为SYN序列号为0代表客户端请求建立连接如下图 第二次握手服务器发回确认包标志位为SYN将确认号ack设置为客户的seq1即011如下图 第三次握手客户端再次发送确认包SYN标志位为0ACK标志位为1如下图 ③使用wireshark分析TCP数据包
使用TCP调试助手向阿里云服务器TCP服务端发送hello并接收到服务器返回的hello world wireshark捕获到四条tcp数据 第一条由客户端发给服务器发送“hello”seq1是因为第三次握手时客户端发给服务端的确认包不消耗序号ACK1确认win517表示窗口大小第二条由服务器发给客户端是一个确认包seq1因为第二次握手时seq0此次1ack8表示收到了上面发给他的7个字符hello在windowshello/r/nwin表示窗口大小第三条服务器发给客户端回复客户端“hello world” seq1因为上一条发送给客户端的确认包不消耗序列号ack8还是表示客户端发的7个字符收到了win表示窗口大小len11即回复的“hello world”的长度第四条客户端发给服务器是一个确认包seq8上次最后一个字符发送完毕是seq7此时1ack12收到了服务器发过来的11个字符
需要注意的是三次握手中的第三次握手中客户端发送给程序端的确认包是不消耗序号的而 1.7 应用层
应用层是网络体系结构中的最上层所有的网络应用程序和服务都工作在应用层常见的网络应用程序有浏览器、手游、即时通信软件、网站的后台程序、网游的主程等
1万维网
万维网WWW(WorldWideWeb)并非某种特殊的计算机网络。它是一个大规模的、联机式的信息储藏所是运行在因特网上的一个分布式应用。 万维网利用网页之间的超链接将不同网站的网页链接成一张逻辑上的信息网。 ①统一资源定位符URL
当我们访问某个网页时在浏览器的地址栏出现的长串字符就是URL称为统一资源定位符URL 我们访问的网页上的内容实际是服务器上的某个资源每个资源在服务器上都对应这一个位置万维网使用的统一资源定位符URL来指明因特网上任何种类“资源”的位置
URL的一般形式由以下四部分组成 将某个网页另存为文件存储后由一个html文件和一个文件夹 文件夹的内容如下 万维网文档由HTMLCSS、Javasaript编写的万维网文档 2HTTP协议
①浏览器发送HTTP请求的过程 ②HTTP协议概述
超文本传输协议HTTPHyper text transfer protocol定义了浏览器即万维网客户进程怎样向万维网服务器请求万维网文档以及万维网服务器怎样把万维网文档传送给浏览器。是处理客户端和服务端之间的通信。 ③HTTP/1.0
HTTP/1.0采用非持续连接方式。在该方式下每次浏览器要请求一个文件都要与服务器建立TCP连接当接受响应后就立即关闭连接。每请求一个文档就要两倍的RTT的文档。若一个网页有很多引用对象例如图片等那么请求每一个对象都要花费2RTT的时间。
为了减少时延浏览器通常会建立多个并行的TCP连接同时请求多个对象。但是会大量占用万维网服务器的资源。特别是万维网服务器往往要同时服务于大量客户的请求会使其负担很重。 ④HTTP /1.1
HTTP/11采用持续连接方式。在该方式下万维网服务器在发送响应后仍然保持这条连接使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。这并不局限于传送同一个页面上引用的对象而是只要这些文档都在同一个服务器上就行。 为了进一步提高效率HTTP/1.1的持续连接还可以使用流水线方式工作即浏览器在收到HTTP的响应报文之前就能够连续发送多个请求报文。这样的一个接一个的请求报文到达服务器后服务器就发回一个接一个的响应报文。这样就节省了很多个RTT时间使TCP连接中的空闲时间减少提高了下载文档的效率。
⑤HTTP报文格式
HTTP是面向文本的其报文中的每一个字段都是一些ASCII码串并且每个字段的长度都是不确定的。 可以利用浏览器的开发者工具查看某个HTTP请求的报文 HTTP协议支持的请求方法 HTTP常见的请求头 connection决定HTTP连接不是TCP连接是否在当前事务完成后关闭 Keep-Alivetimeout5max1000
User-Agent这个字段可以帮助统计客户端用了什么浏览器、操作系统等 Content-Type请求的时候告知服务端数据的媒体类。返回的时候告诉客户端数据的媒体类型 CookieCookie提供一种机制使得万维网服务器能够“记住”用户而无需用户主动提供用户标识信息。也就是说cookie是一种对无状态的HTTP进行状态化的技术
HTTP是无状态的协议对于事务处理没有记忆能力对于同一个URL请求没有上下文关系每次的请求都是独立的他的执行情况和结果与前面和之后的请求是无直接关系的他不会受前面的请求应答情况直接影响也不会直接影响后面的请求应答情况
使用Cookie在服务器上记录用户信息 比如第一次通过浏览器访问B站时登陆了个人账号之后再次访问B站时返回的就是已登录界面
状态码web服务器告诉客户端请求的状态
常见的状态码为以下四类 200状态码 3XX状态码 4XX状态码 5XX状态码