admin 管理员组

文章数量: 887017

1.网络基础知识

  1. 广域网(WAN)与局域网(LAN)
  2. OSI(Open Systems Interconnection)开放式通信系统互联参考模型:
  3. TCP/IP是通信协议的统称

1.5 协议分层与OSI参考模型

1.5.1 协议的分层

  • 每个分层都接收由它下一层提供的指定服务
  • 上下层之间进行交互时所遵守的约定叫做“接口”
  • 同一层之间的交互所遵守的约定叫做“协议”

1.5.3 OSI参考模型

  • 将通信功能划分为7个分层
  • OSI协议以OSI参考模型为基础界定了每个阶层的协议和每个阶层之间接口相关的标准
  • 遵守OSI协议的产品叫OSI产品

1.5.4 OSI参考模型中各个分层的作用

  • 应用层:为应用程序提供服务并规定应用程序中通信相关的细节。针对特定应用的协议,电子邮件协议,远程登录协议,文件传输协议;
  • 表示层:主要负责格式转换。接受不同表现形式的信息,文字流,图像,声音等。将应用处理的信息转换为适合网络传输的格式,或者将来自下一层的数据转换为上层能够处理的格式;
  • 会话层:负责建立和断开通信连接,以及数据的分割和传输。何时建立连接,何时断开,以及保持多久连接;
  • 传输层:可靠传输的作用。是否有数据丢失;
  • 网络层:经过哪个路由传递到目标地址;
  • 数据链路层:数据帧与比特流之间的转换;
  • 物理层:比特流与电子信号之间的切换;

1.6 OSI参考模型通信处理举例

以发送邮件为例:A给B发送一份邮件写上“早上好”:

  • 从功能上讲,分为2大类:一部分与通信相关的,另一部分是与通信无关的。本例中:“早上好”即无关内容。
  • 应用层:“输入的电子邮件内容后发送给目标地址”即为应用层内容。通过应用层后加上首部信息,“早上好”+B地址;
  • 表示层:如果用户A与用户B的邮件客户端不同,使用不同编码的话,B就无法正常阅读A的邮件。所以需要表示层来将A的邮件内容翻译成“网络通用标准格式”发送出去,比如“UTF-8”,通过表示层后,内容变为,“早上好”+“B地址”+“UTF-8”;
  • 会话层:决定采用何种连接方式,比如一次连接一次发送,一次连接多次发送,还是多次连接多次发送。比如我们采用一次连接一次发送,那么内容变为, “早上好”+“B地址”+“UTF-8”+“一连一发”;
  • 从应用层到会话层一直在加工内容,并没有涉及到实际的传输数据功能;
  • 传输层:建立通信连接确保数据送达,会在通信两端进行确认,如未送达则重发。通信端的确认是通过网络层完成。通过传输层,“早上好”+“B地址”+“UTF-8”+“一连一发”+“确保传输”。
  • 网络层:将数据从发送端送至接收端,目标地址非常重要。但是网络层并不能保持数据的可达性,因此需要传输层确保正确的传输。“早上好”+“B地址”+“UTF-8”+“一连一发”+“确保传输”+“目标地址”;
  • 数据链路层与物理层:将数据的0,1转换为电压和脉冲光信号传输给无力的传输介质,相互直连的设备之间使用地址传输,这个地址为MAC地址(Media Access Control),采用MAC地址是为了识别连接到同一个传输介质上的设备。通过数据链路层,“早上好”+“B地址”+“UTF-8”+“一连一发”+“确保传输”+“目标地址”+“MAC地址”;
  • 主机B端通过物理层接收到信息,“早上好”+“B地址”+“UTF-8”+“一连一发”+“确保传输”+“目标地址”+“MAC地址”,从底层一步步解除首部获取最终信息“早上好”。

1.7 传输方式分类

1.7.1面向有连接型与面向无连接型

  • 是否需要预先建立连接分类:

  • 面向有连接型:发送数据之前需要在收发主机之间连接一条通信线路,例如电话;

  • 面向无连接型:发送端于任何时候自由发送数据,接收端也永远不知道自己会在何时从哪接受数据,此时接收端需要时常确认是否接受了数据,例如发邮包;

1.7.2 交换方式分类:电路交换和分组交换

  • 电路交换:交换机主要负责数据的中转处理。计算机首先被连接到交换机上,而交换机与交换机之间则由众多的通信线路再继续连接,计算机之间发生数据时需要先通过交换机与目标主机建立通信电路。
  • 分组交换:
    • 为了防止电路交换中,两台计算机独占线路,实现并发交换。连接到通信电路上的计算机所要发送的数据分成多个数据包,按照一定的顺序排列之后分别发送。由于每个数据包都写入了发送端与接收端的地址,所以即使在同一条线路也可以同时为多个用户提供服务。
    • 分组交换中,分组交换机连接通信线路,发送端计算机将数据分组发送给路由器,路由器收到这些分组数据以后缓存到自己的缓冲区的队列中,然后再转发给目标计算机。也叫“蓄积交换”。
    • 由于网络拥堵,路由器可能发生缓存饱和或者溢出,甚至出现分组数据丢失。

1.7.3 根据接收端数量分类

  • 单播(Unicast):1对1通信;
  • 广播(Broadcast):对应的能接受到广播的计算机范围成为广播域,如果频段信息;
  • 多播(Multicast):指定特定的一组主机作为接收端,如电视会议;
  • 任播(Anycast):在特定的多台主机中选出一台作为接收端。类似多播在特定的一组主机中任选。在DNS根域名解析服务器中有应用。

1.8地址

  • 唯一性:一个地址必须明确地表示一个对象;
  • 层次性:通过分层树状结构实现快速检索,如电话号码,实际住址。也有无层次的地址,如MAC地址。
  • MAC与IP在标识一个主体时都具有唯一性,但只有IP有层次性;MAC虽然是最终通信的地址,但寻址过程中IP地址必不可少;
  • IP地址的分层:
    • IP地址由网络号和主机号两部分组成;
    • 网络号相同的主机在组织结构,提供商类型和地域分布上都比较集中。
  • 网络传输中,每个节点会根据分组数据的地址信息,来判断该报文应该由哪个网卡发送出去。为此,各个地址会参考一个发出接口列表。MAC寻址是地址转发表,IP寻址是路由控制表

1.9网络的构成要素

1.9.1 通信媒介与数据链路

  • 根据数据链路的不同选用的电缆类型。
  • 传输速率与吞吐量:
    • 传输速率:两个设备之间数据流动的物理速度成为传输速率,传输速率(又成为带宽 Bandwidth)指的是单位时间内传输的数据量有多少。
    • 吞吐量:主机之间实际的传输速率被称为吞吐量。吞吐量不仅衡量带宽,还衡量主机的CPU处理能力,网络的拥堵程度等等。

1.9.2 网卡

  • 网卡(网络接口卡(Network Information Center, NIC),网络适配器,LAN卡):连网必须要网卡。

1.9.3 中继器

  • 中继器(Reapter):物理层延长网络的设备。将电缆传过来的电信号或者光信号的波形调整和方法再传给另一个电缆。多个端口的中继器称为集线器。

1.9.4 网桥/2层交换机

网桥/2层交换机(MAC地址):数据链路层面上连接2个网络设备。它能识别数据链路层的数据帧,并将这些数据帧临时存储于内存,再重新生成信号作为一个全新的帧转发给相连的另一个网段,丢弃错误的数据帧。

  • 能连接不同传输速率的数据链路,并且不限制连接网段个数;
  • 数据帧中FCS,用以校验数据是否正确送达目的地。网桥通过检查FCS的值将损坏的数据丢弃,从而避免发送给其他的网段。
  • 网桥还能通过地址自学机制和过滤功能控制网络流量;
  • 以太网中经常用到的交换集线器(Hub),也属于网桥的一种,每个端口相当于一个网桥。

1.9.5 路由器/3层交换机

路由器/3层交换机(IP地址):网络层面上连接两个网络,并对分组报文进行转发的设备,判断网络路径,转发至目标地址。

  • 网桥根据MAC地址进行处理,路由器根据IP地址进行处理。
  • 路由器可以连接不同的数据链路,例如一个以太网和一个FDDI。
  • 路由器还有分担负荷的作用。

1.9.6 4到7层交换机

4到7层交换机:处理传输层到应用层的数据。分析收发数据并对其进行特定的处理。

  • 负载均衡器。用于分摊大量请求到后台多个服务器中;
  • 带宽控制。优先处理对及时性要求高的通信请求。例如,语音,视频;放缓要求低的请求。例如,邮件,留言。

1.9.7 网关

网关(gateway):OSI模型中负责将从传输层到应用层的数据进行转换和转发的设备。使用一个表示层或者应用层网关,在两个不同协议之间进行翻译,最终实现通信。

  • 网站后端:将前端Http请求转发为对SQL语言对数据库进行修改;
  • 代理服务器:控制网络流量和安全考虑;有了代理服务器,客户端与服务端不需要在网络层上直接通信,而是从传输层到应用层对数据和访问进行控制和处理。
  • 代理服务器也是网关的一种,称为应用网关
  • 防火墙也是一种网关。

1.10 现代网络实态

  • 核心网:计算机网络中的“高速公路”;使用高速路由器快速传输大量数据。
  • 边缘网络:“高速公路”的出入口;常用多功能路由器和3层交换机。
  • 接入层(汇聚层):计算机网络中连接边缘网络的部分,常用2层交换机和3层交换机。
  • 互联网通信:用户A - 接入层 - 【边缘网络】 - 【主干网】 - 【边缘网络】 - 接入层 - 用户B。有时候在接入层就可以完成通信。
  • 移动通信:手机终端A - 基站 - 通信控制中心 - 声音主干网/数据主干网 - 通信控制中心 - 基站 - 手机终端B。
  • 信息发布者:信息发布者将信息发布到数据中心,数据中心内部的网络分布着3层交换机和高速路由器。数据中心通常接入主干网或边缘网络可以实现大带宽高速数据传输,以此处理对该信息的大量访问。

虚拟化技术与云

  • 虚拟化技术:当一个网站需要调整运营所使用的资源时,并不增减服务器,存储设备,网络等实际的物理设备,而是通过软件将这些物理设备虚拟化,在有必要的时候进行增减。以此达到按需分配,按比例分配,对外提供可靠的服务。
  • 云:利用虚拟化技术根据使用者的情况动态调整必要资源的机制为“云”。

2.TCP/IP基础知识

2.4.1 TCP/IP与OSI参考模型

应用层:HTTP,SMTP,FTP,TELNET,SNMP;
传输层:TCP,UDP
网络层:IP,ICMP,ARP
路由控制协议:RIP,OSPF,BGP
  1. IETF/RFC:TCP/IP协议由IETF讨论制定,需要标准化的协议被列入RFC(Request For Comment)
  2. 互联网中的每个网络都是由骨干网(BackBone)和末端网(Stub)组成的。每个网络之间通过NOC(Network Operation Center)相连。如果网络运营商不同,网络连接方式和使用方法也会不同,连接这种异构网络需要IX(Internet Exchange)支持。互联网是一个由众多异构网络通过IX连接起来的一个巨型网络。
  3. OSI七层
  • 由谁实现:
    • 应用程序:应用层,表示层,会话层;
    • 操作系统:传输层,网络层;
    • 设备驱动与网络接口:数据链路层,物理层。

2.4.2 硬件(物理层):以太网或者电话线

2.4.3 网络接口层(数据链路层)

  • 相当于NIC(网卡)的驱动程序,驱动程序是操作系统与硬件之间的桥梁,直接插入硬件是无法正常工作的。

2.4.4 互联网层(网络层)

  • IP协议的作用是将分组数据包发送到目的主机,通过互联网层可以忽略网络结构的细节,从相互通信的主机角度看,对端主机就如同在一个云层对面。
  • 连接互联网的所有主机跟路由器都实现IP的功能。但网桥,中继器和集线器可以不用实现IP或TCP功能,因为它们处于第3层以下。
    • IP:是分组交换的协议,但不具备重发机制。可能出现丢包,属于非可靠传输协议。
    • ICMP:IP数据包发送途中一旦发生异常导致无法到达对面地址时,无药给发送端返回一个异常通知。这便是ICMP的作用。例如:ping命令。
    • ARP:从分组数据包的IP地址中解析出物理地址(MAC)的一种协议。

2.4.5 传输层:让应用程序之间实现通信

  • 通过端口号识别。对于正在通信的2个程序而已,中间细节全被忽略如同一朵云。
    • TCP:面向有连接的传输协议。可以正确处理丢包,传输乱序等异常,还可以有效利用带宽。但建立与断开至少需要7次发包收包(3次握手,4次挥手),浪费网络流。不适合视频会议。
    • UDP:面向无连接传输层协议。用于多播或者广播等视频通信领域

2.4.6应用层(会话层以上)

  • 会话层,表示层,应用层都由应用程序实现。
  • TCP/IP应用架构多数属于客户端/服务端模型。
    • WWW,万维网:是一种互联网上数据读写规范
      • 浏览器与服务端之间用HTTP通信(应用层);
      • 传输数据主要格式是HTML(表示层)。
    • E-mail
      • 发送电子邮件协议为SMTP(Simple Mail Transfer Protocol);
      • 电子邮件格式由MIME协议(表现层)拓展。
    • FTP(文件传输协议)
      • 传输可以选择二进制还是文本格式。在Windows和macOS或Unix等系统间进行文件传输时会自动修改换行符,这时由于表示层;
      • FTP进行文件传输时会建立2个TCP协议,一个用于发出请求时需要的控制连接,一个是实际传输连接。这个是会话层功能。
    • 远程登录(TELNET和SSH,UNIX的rlogin,Windows的X协议)
    • 网络管理(SNMP,Simple Network Management Protocol)
      • 使用SNMP管理的主机,网桥,路由器称作SNMP代理(agent)而进行管理的那一段叫做管理器(Manager);
      • 在SNMP的代理端,保存着网络接口的信息…
      • 可以通过表示层协议MIB(Management Information Base)访问网络接口的信息,通信数据量以及设备温度等信息。
      • SNMP属于应用协议

2.5 TCP/IP分层模型与通信

2.5.1数据包首部

  • 每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信息
  • 为协议提供的信息为包首部,所发送的内容为数据
  • 网络中传输的数据包由两部分组成:一部分是协议所要用到的首部,另一部分是上层传过来的数据。在数据包的首部,明确标明了协议应该如何读取数据。
  • 数据单位:
    • 包:全能性术语
    • 帧:表示数据链路层中包的单位
    • 数据包:IP和UDP等网络层以上分层中包的单位
    • 段:TCL数据流中的信息
    • 消息:应用协议中数据的单位

2.5.2发送数据包的例子

  1. 应用程序处理
    • 填写收件人邮箱(应用层,SMTP);
    • 邮件内容编码(表示层);
    • 群发还是单发(会话层);
  2. TCP模块的处理
    • 根据会话层的指示,建立连接,发送数据以及断开连接;
    • 在应用层数据的前端加上TCP首部,包括:1)源端口号和目标端口号(用于识别发送主机和接受主机上的应用),
      2)序号(用于确定发送包的哪部分数据),3)校验和(Check Sum)(用于判断数据是否损坏)。
  3. IP模块的处理
    • IP将“TCP首部 + TCP应用层数据”合起来当作自己的数据,并在TCP首部前端加上IP首部;IP首部中包含发送和接受端的IP地址,后面还有用来判断其后数据是TCP还是UDP的信息。
    • IP包生成后,参考路由控制表决定IP包的路由或主机。发送给连接这些路由器或主机的驱动程序。
    • 如不知道接收端MAC地址,可以用ARP(Address Resolution Protocol)查找。只要知道了对端的MAC地址,IP和MAC就可以给以太网驱动程序实现传输。
  4. 网络接口(以太网驱动)处理
    • 附加上以太网首部:包含接收端与发送端的MAC地址,标志以太网类型的以太网数据协议。
    • 并由硬件计算FCS(Frame Check Sequence),添加到包的最后用以判断数据包是否由于噪声而被破坏。

2.5.3经过数据链路的包

  • 以太网包首部,IP包首部,TCP(UDP)包首部,以及以太网包尾;
  • 包的首部包含:
    • 识别发送端接收端的地址(以太网/MAC,IP/IP,TCP(UDP)/端口号);
    • 上一层的协议类型;
    • 协议自身信息
  • 每个分层的包首部中包含一个识别位,它是用来识别上一层协议的种类信息(以太网/以太网类型,IP/协议类型,TCP(UCP)端口号

2.5.4数据包接收处理

  • 包的接收流程是发送流程的逆序过程
  1. 网络接口:先判断接受端MAC地址是不是自己的MAC地址,如不是则丢弃。如果是则先查看数据类型,如果是IP包则传给IP子程序,如果是ARP则给ARP。如果无法识别数据类型则丢弃;
  2. IP模块:同样先查看IP地址是否与自己的匹配,后查看数据类型TCP/UDP;在有路由器的情况下,会根据路由控制表调查该送达的主机和路由进行转发。
  3. TCP模块:先计算校验和,判断数据是否损坏。然后检查是否在按照顺序接受数据,完成后返回确认回执给发送端;最后查看端口号把数据给相应的程序;
  4. 应用程序的处理:接受TCP传来的数据处理并作出响应(正常/异常)

本文标签: 笔记 TCP IP