计算机网络:OSI 七层模型、TCP/IP 四层模型、协议图

1、计算机网络概述

计算机网络的分类

  • 按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN);
  • 按照网络使用者:公用网络、专用网络。

计算机网络的层次结构

OSI 七层 模型

Open System Interconnect (开放式系统互联) 缩写 OSI:20世纪60年代以来,计算机网络得到了飞速增长。各大厂商为了在数据通信网络领域占据主导地 位,纷纷推出了各自的网络架构体系和标准,如IBM公司的SNA,Novell IPX/SPX协议,Apple公司的AppleTalk协议,DEC公司的DECnet,以及广泛流行的TCP/IP协议。同时,各大厂商针对自己的协议生产出了不同的硬件和软件。各个厂商的共同努力促进了网络技术的快速发展和网络设备种类的迅速增长。但由于多种协议的并存,也使网络变得越来越复杂;而且,厂商之间的网络设备大部分不能兼容,很难进行通信。为了解决网络之间的兼容性问题,帮助各个厂商生产出可兼容的网络设备,国际标准化组织ISO于1984年提出了OSI RM(OpenSystem Interconnection Reference Model,开放系统互连参考模型)。OSI 参考模型很快成为计算机网络通信的基础模型。

在设计OSI 参考模型时,各层遵循以下设计原则:

  • 各个层之间有清晰的边界,并且相互独立,实现特定的功能,以避免各个层功能重复。
  • 每一层需要有足够的灵活性;
  • 各层之间完全解耦。

TCP/IP 四层 模型

TCP/IP (transfer control protocol/internet protocol,传输控制协议/网际协议):由于OSI模型和协议比较复杂,所以并没有得到广泛的应用。而 TCP/IP 模型因其开放性和易用性在实践中得到了广泛的应用,TCP/IP 协议栈也成为互联网的主流协议。TCP/IP模型各个层次分别对应于不同的协议。TCP/IP协议栈是数据通信协议的集合 ,包含许多协议。其协议栈名字来源于其中最主要的两个协议 TCP(传输控制协议)和 IP(网际协议)。TCP/IP协议栈负责确保网络设备之间能够通信。它是一组规则,规定了信息如何在网络中传输。

OSI 和 TCP/IP 对应关系

  • OSI 引入了 服务、接口、协议、分层 的概念,TCP/IP借鉴 OSI 的概念建立 TCP/IP 模型。
  • OSI 先有模型,后有协议,先有标准,后进行实践;而 TCP/IP 则相反,先有协议和应用再提出了模型,且是参照的 OSI 模型。
  • OSI 是一种理论下的模型,而 TCP/IP 已被广泛使用,成为网络互联事实上的标准。

TCP:transmission control protocol 传输控制协议。    

UDP:user data protocol 用户数据报协议。

OSI 七层 模型

TCP/IP 四层 模型  

对应网络协议

应用层(Application)

应用层

HTTP、TFTP, FTP, NFS, WAIS、SMTP,SMTP 等

表示层(Presentation)

Telnet, Rlogin, SNMP, Gopher  等

会话层(Session)

SMTP, DNS  等

传输层(Transport)

传输层

TCP, UDP  等

网络层(Network)

网络层

IP, ICMP, ARP, RARP, AKP, UUCP,  OSPF,EIGRP  等

数据链路层(Data Link)

数据链路层

FDDI, Ethernet, Arpanet, PDN, SLIP, PPP  等

物理层(Physical)

IEEE 802.1A, IEEE 802.2到IEEE 802.11  等

  • 应用层:可以认为是各种应用软件。
  • 表示层:用来编码和转化不同格式的应用层数据,以确保以一个系统应用层发送的信息可以被另一个系统应用层识别。
  • 会话层:可以简单认为 "判断是否需要网络传输"。
  • 传输层:识别端口来指定服务,如指定80端口的www服务。同时,向高层提供可靠的端到端的网络数据流服务。传输层的功能一般包括流控、多路传输、虚电路管理及差错校验和恢复。
  • 网络层:提供逻辑地址选路,即发送ip地址到接收的ip地址。
  • 数据链路层:成帧,识别MAC地址来访问媒介,如交换机的功能。
  • 物理层:负责将信息编码成电流脉冲或其它信号,然后在设备之间传输比特流。

计算机网络的性能指标

速率:bps=bit/s
时延:发送时延、传播时延、排队时延、处理时延
往返时间 RTT:数据报文在端到端通信中的来回一次的时间

数据 传输 过程

OSI 七层模型通过七个层次化的结构模型,使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。

传输层及其以下的机制由内核提供,应用层由用户进程提供,应用程序对通讯数据的含义进行解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到另一台计算机。应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)

不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。

图1

图 2

目的主机收到数据包后,依次经过各层协议栈,最后到达应用程序

以太网驱动程序首先根据以太网首部中的“上层协议”字段确定该数据帧的有效载荷(payload,指除去协议首部之外实际传输的数据)是IP、ARP还是RARP协议的数据报,然后交给相应的协议处理。假如是IP数据报,IP协议再根据IP首部中的“上层协议”字段确定该数据报的有效载荷是TCP、UDP、ICMP还是IGMP,然后交给相应的协议处理。假如是TCP段或UDP段,TCP或UDP协议再根据TCP首部或UDP首部的“端口号”字段确定应该将应用层数据交给哪个用户进程。IP地址是标识网络中不同主机的地址,而端口号就是同一台主机上标识不同进程的地址,IP地址和端口号合起来标识网络中唯一的进程。

注意,虽然IP、ARP和RARP数据报都需要以太网驱动程序来封装成帧,但是从功能上划分,ARP和RARP属于链路层,IP属于网络层。虽然ICMP、IGMP、TCP、UDP的数据都需要IP协议来封装成数据报,但是从功能上划分,ICMP、IGMP与IP同属于网络层,TCP和UDP属于传输层。

网络设备 层级 判断

一个网络设备工作在哪一层,关键看它工作时利用那一层的数据头部信息网桥工作时,是以MAC头部来决定转发端口的,因此显然它是数据链路层的设备。总结:网络设备设备使用的是那一层的数据头部信息就属于哪一层。具体说:

  • 物理层:网卡,网线,集线器,中继器,调制解调器
  • 数据链路层:网桥,交换机
  • 网络层:路由器
  • 网关工作在第四层传输层及其以上

集线器:物理层设备,采用广播的形式来传输信息。
交换机:用来进行报文交换的机器。多为链路层设备(二层交换机),能够进行地址学习,采用存储转发的形式来交换报文.。
路由器:作用是连通不同的网络,另一个作用是选择信息传送的线路。选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率。 

交换机的工作原理

交换机拥有一条很高带宽的内部总线和内部交换矩阵。交换机的所有的端口都挂接在这条总线上,控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口,目的MAC若不存在则广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部MAC地址表中。 使用交换机也可以把网络“分段”,通过对照MAC地址表,交换机只允许必要的网络流量通过交换机。通过交换机的过滤和转发,可以有效的隔离广播风暴,减少误包和错包的出现,避免共享冲突。 交换机在同一时刻可进行多个端口对之间的数据传输。每一端口都可视为独立的网段,连接在其上的网络设备独自享有全部的带宽,无须同其他设备竞争使用。当节点A向节点D发送数据时,节点B可同时向节点C发送数据,而且这两个传输都享有网络的全部带宽,都有着自己的虚拟连接。总之,交换机是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备。交换机可以"学习"MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。

集线器

集线器的英文称为“Hub”。集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它 工作于OSI(开放系统互联参考模型)参考模型第一层,即“物理层”。集线器与网卡、网线等传输介质一样,属于局域网中的基础设备,采用 CSMA/CD(即带冲突检测的载波监听多路访问技术)介质访问控制机制。集线器每个接口简单的收发比特,收到1就转发1,收到0就转发0,不进行碰撞检 测。集线器属于纯硬件网络底层设备,基本上不具有类似于交换机的"智能记忆"能力和"学习"能力。它也不具备交换机所具有的MAC地址表,所以它发送数据 时都是没有针对性的,而是采用广播方式发送。也就是说当它要向某节点发送数据时,不是直接把数据发送到目的节点,而是把数据包发送到与集线器相连的所有节 点。HUB是一个多端口的转发器,当以HUB为中心设备时,网络中某条线路产生了故障,并不影响其它线路的工作。所以HUB在局域网中得到了广泛的应用。 大多数的时候它用在星型与树型网络拓扑结构中。

集线器 和 交换机 的区别

首先说 HUB,也就是集线器。它的作用可以简单的理解为将一些机器连接起来组成一个局域网。而交换机(又名交换式集线器)作用与集线器大体相同。但是两者在性能上有区别:集线器采用的式共享带宽的工作方式,而交换机是独享带宽。这样在机器很多或数据量很大时,两者将会有比较明显的。

  • 工作位置不同。集线器工作在物理层,而交换机工作在数据链路层。
  • 工作方式不同。集线器是一种广播方式,当集线器的某个端口工作时其他端口都能收听到信息。交换机工作时端口互不影响。
  • 带宽不同。集线器是所有端口共享一条带宽,在同一时刻只能有两个端口传输数据;而交换机每个端口独占一条带宽。
  • 性能不同。交换机以MAC地址进行寻址,有一定额外的寻址开销;集线器以广播方式传输数据,流量小时性能下降不明显,适用于共享总线的局域网。

路由器交换机 的区别

总的来说,路由器交换机 的主要区别体现在以下几个方面:

  • (1)工作层次不同。最初的的交换机是工作在数据链路层,而路由器一开始就设计工作在网络层。由于交换机工作在数据链路层,所以它的工作原理比较简单,而路由器工作在网络层,可以得到更多的协议信息,路由器可以做出更加智能的转发决策。
  • (2)数据转发所依据的对象不同。交换机是利用物理地址或者说MAC地址来确定转发数据的目的地址。而路由器则是利用IP地址来确定数据转发的地址。IP地址是在软件中实现的,描述的是设备所在的网络。MAC地址通常是硬件自带的,由网卡生产商来分配的,而且已经固化到了网卡中去,一般来说是不可更改的。而IP地址则通常由网络管理员或系统自动分配。
  • (3)传统的交换机只能分割冲突域,不能分割广播域;而路由器可以分割广播域。由交换机连接的网段仍属于同一个广播域,广播数据包会在交换机连接的所有网段上传播,在某些情况下会导致通信拥挤和安全漏洞。连接到路由器上的网段会被分配成不同的广播域,广播数据不会穿过路由器。虽然第三层以上交换机具有VLAN功能,也可以分割广播域,但是各子广播域之间是不能通信交流的,它们之间的交流仍然需要路由器。
  • (4)交换机负责同一个网段的通信,而路由器负责不同网段的通信。路由器提供了防火墙的服务。路由器仅仅转发特定地址的数据包,不传送不支持路由协议的数据包传送和未知目标网络数据包的传送,从而可以防止广播风暴。

2、协议图

七层结构记忆方法:应、表、会、传、网、数、物
应用层协议需要掌握的是:HTTP(Hyper text transfer protocol)、FTP(file transfer protocol)、SMTP(simple mail transfer rotocol)、POP3(post office protocol 3)、IMAP4(Internet mail access protocol)

网络 通讯 协议图

图 1

图 2

图 3:

科来网络通讯协议图:https://www.colasoft.com.cn/download/protocols_map.php
在线PDF转JPG图片:http://www.pdfdo.com/pdf-to-image.aspx
在线图片压缩:https://imagecompressor.com/zh/

3、OSI 七层协议 模型

物理层

物理层(Physical Layer)是 OSI 模型的最低层。物理层的作用是连接不同的物理设备,传输比特流,实现相邻计算机节点之间数据的传送。物理层尽可能屏蔽掉具体传输介质和物理设备的差异。并为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各种物理媒体上传输。

物理层标准规定了物理介质和用于将设备与物理介质相连的接头。局域网常用的物理层标准有IEEE指定的以太网标准802.3、令牌总线标准802.4、令牌环网标准802.5以及美国国家标准组织ANSI的X3T9.5委员会制订的光缆标准FDDI(fiber distributed data interface,光纤分布式数据接口)等。广域网常用的物理层标准有电子工业协会和电信工业协会EIA/TIA制定的公共物理层接口标准EIA/TIA-232(即RS-232)、国际电信联盟ITU制定的串行线路接口标准V.24和V.35、以及有关各种数字接口的物理和电气特性的标准G.703等。

物理层设备:

  • 中继器【Repeater,也叫放大器】:同一局域网的再生信号;两端口的网段必须同一协议
  • 集线器:同一局域网的再生、放大信号(多端口的中继器);半双工,不能隔离冲突域也不能隔离广播域。

信道 概念:信道是传输信息的媒体,一条通信电路包含一个发送信道和一个接受信道。

  1. 单工通信信道:只能一个方向通信,没有反方向反馈的信道;
  2. 半双工通信信道:双方都可以发送和接受信息,但不能同时发送也不能同时接收;
  3. 全双工通信信道:双方都可以同时发送和接收。

物理层 传输介质:

  • 同轴电缆(coaxical cable)
  • 双绞线(twisted pair):双绞线采用了一对互相绝缘的金属导线互相绞合的方式来抵御一部分外界电磁波干扰。把两根绝缘的铜导线按一定密度互相绞在一起,可以降低信号干扰的程度,每一根导线在传输中辐射的电波会被另一根线上发出的电波抵消,“双绞线”的名字也是由此而来的。
    双绞线(twistedpair)与 同轴电缆 相比具有更低的制造和部署成本,因此在企业网络中被广泛应用。双绞线可分为屏蔽双绞线(shieldedtwisted pair,STP)和非屏蔽双绞线(unshieldedtwisted pair,UTP)。屏蔽双绞线在双绞线与外层绝缘封套之间有一个金属屏蔽层,可以屏蔽电磁干扰。
    双绞线有很多种类型,不同类型的 双绞线所支持的传输速率一般也不相同。例如,3类双绞线支持10Mbps传输速率;5类双绞线支持100Mbps传输速率,满足快速以太网标准;超5类双绞线及更高级别的双绞线支持千兆以太网传输。
  • 光纤(fiber)
  • 无线电波(wireless raido)

双绞线 线序(568A 的线序不常用,现主流用的都是 568B 的线序):

  • 568A线序: 1-绿白,2-绿,3-橙白,4-蓝,5-蓝白,6-橙,7-棕白,8-棕
  • 568B线序: 1-橙白,2-橙,3-绿白,4-蓝,5-蓝白,6绿,7-棕白,8-棕

根据网线两端连接网络设备的不同,网线又分为 直通线(平行线)交叉线 两种:

  • 直通线(平行线):就是按照前面介绍的568A标准或568B标准制作(即双绞线两端的线序一样)
  • 交叉线:一端保持原来的线序,另一端把 1 和 3 对调,2 和 6 对调。即 1-3、2-6 交叉 接法

直通线交叉线 的应用:

  • 1. 同种类型设备之间使用交叉线连接,不同类型设备之间使用直通线连接;
  • 2. 路由器 和 PC 属于 DTE(DataTerminal Equipment,数据终端设备)类型设备,交换机 和 HUB 数据 DCE(Data Circuit-terminatingEquipment,数据通信设备)类型设备。

数据链路层

数据链路层(Data Link Layer)是OSI模型的第二层,是在物理层提供的服务的基础上,向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。数据链路层在不可靠的物理介质上提供可靠的传输。

该层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。数据链路层的具体工作是接收来自物理层的位流形式的数据,并封装成帧,传送到上一层;同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层;并且,还负责处理接收端发回的确认帧的信息,以便提供可靠的数据传输。

该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等

有关数据链路层的重要知识点:

  1. 数据链路层为网络层提供可靠的数据传输
  2. 基本数据单位为帧
  3. 主要的协议:以太网协议
  4. 两个重要设备名称:网桥和交换机

封装成帧:“帧”是数据链路层数据的基本单位

数据链路层的差错检测:奇偶校验码、循环冗余校验码CRC

  1. 奇偶校验码–局限性:当出错两位时,检测不到错误。
  2. 循环冗余检验码:根据传输或保存的数据而产生固定位数校验码

最大传输单元MTU:最大传输单元MTU(Maximum Transmission Unit),数据链路层的数据帧不是无限大的,数据帧长度受MTU限制。

路径MTU:由链路中MTU的最小值决定。

以太网协议详解

  • MAC地址:每一个设备都拥有唯一的MAC地址,共48位,使用十六进制表示。
  • 以太网协议:是一种使用广泛的局域网技术,是一种应用于数据链路层的协议,使用以太网可以完成相邻设备的数据帧传输:

局域网分类:

Ethernet以太网IEEE802.3:

  1. 以太网第一个广泛部署的高速局域网
  2. 以太网数据速率快
  3. 以太网硬件价格便宜,网络造价成本低

以太网帧结构:

  1. 类型:标识上层协议(2字节)
  2. 目的地址和源地址:MAC地址(每个6字节)
  3. 数据:封装的上层协议的分组(46~1500字节)
  4. CRC:循环冗余码(4字节)
  5. 以太网最短帧:以太网帧最短64字节;以太网帧除了数据部分18字节;数据最短46字节;

MAC地址(物理地址、局域网地址)

  1. MAC地址长度为6字节,48位;
  2. MAC地址具有唯一性,每个网络适配器对应一个MAC地址;
  3. 通常采用十六进制表示法,每个字节表示一个十六进制数,用 - 或 : 连接起来;
  4. MAC广播地址:FF-FF-FF-FF-FF-FF。

网络层

网络层(Network Layer)是OSI模型的第三层,它是OSI参考模型中最复杂的一层。它在下两层的基础上,向上层提供服务。其主要任务是:通过路由选择算法,为报文或分组数据包选择最适当的通信子网路径。具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。一般地,数据链路层是解决同一网络内节点之间的通信,而网络层主要解决不同子网间的通信。例如在广域网之间通信时,必然会遇到路由(即两节点间可能有多条路径)选择问题。 

网络层中涉及众多的协议,其中包括最重要的协议,也是TCP/IP的核心协议 --- IP协议。IP协议非常简单,仅仅提供不可靠、无连接的传送服务。IP协议的主要功能有:无连接数据报传输、数据报路由选择和差错控制。与IP协议配套使用实现其功能的还有地址解析协议ARP、逆地址解析协议RARP、因特网报文协议ICMP、因特网组管理协议IGMP。具体的协议我们会在接下来的部分进行总结,有关网络层的重点为:

  • 1. 网络层负责对子网间的数据包进行路由选择。 还可以实现拥塞控制、网际互连等功能;
  • 2. 基本数据单位为IP数据报;
  • 3. 包含的主要协议
    IP协议(Internet Protocol,因特网互联协议);
    ICMP协议(Internet Control Message Protocol,因特网控制报文协议);
    ARP协议(Address Resolution Protocol,地址解析协议);
    RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)。

IP协议详解

IP网际协议是 Internet 网络层最核心的协议。虚拟互联网络的产生:实际的计算机网络错综复杂;物理设备通过使用IP协议,屏蔽了物理网络之间的差异;当网络中主机使用IP协议连接时,无需关注网络细节,于是形成了虚拟网络。

IP协议使得复杂的实际网络变为一个虚拟互联的网络;并且解决了在虚拟网络中数据报传输路径的问题

其中,版本指IP协议的版本,占4位,如IPv4和IPv6;首部位长度表示IP首部长度,占4位,最大数值位15;总长度表示IP数据报总长度,占16位,最大数值位65535;TTL表示IP数据报文在网络中的寿命,占8位;协议表明IP数据所携带的具体数据是什么协议的,如TCP、UDP。

IP协议的转发流程

IP地址的子网划分

IPv4的IP地址长度为4字节,通常采用点分十进制表示法(dotted decimal representation)例如0xc0a80002 表示为 192.168.0.2。Internet 被各种路由器和网关设备分隔成很多网段,为了标识不同的网段,需要把32位的IP地址划分成网络号和主机号两部分,网络号相同的各主机位于同一网段,相互间可以直接通信,网络号不同的主机之间通信则需要通过路由器转发。

  • A类(8网络号+24主机号):0.0.0.0 到 127.255.255.255
  • B类(16网络号+16主机号):128.0.0.0 到 191.255.255.255
  • C类(24网络号+8主机号):192.0.0.0 到 223.255.255.255
  • D类地址作为组广播地址:224.0.0.0 到 239.255.255.255
  • E类是地址保留:240.0.0.0 到 247.255.255.255

一个A类网络可容纳的地址数量最大,一个B类网络的地址数量是65536,一个C类网络的地址数量是256。D类地址用作多播地址,E类地址保留未用。

随着Internet的飞速发展,这种划分方案的局限性很快显现出来,大多数组织都申请B类网络地址,导致B类地址很快就分配完了,而A类却浪费了大量地址。这种方式对网络的划分是flat的而不是层级结构(hierarchical)的,Internet上的每个路由器都必须掌握所有网络的信息,随着大量C类网络的出现,路由器需要检索的路由表越来越庞大,负担越来越重。

针对这种情况提出了新的划分方案,称为CIDR(Classless Interdomain Routing)。网络号和主机号的划分需要用一个额外的子网掩码(subnet mask)来表示,而不能由IP地址本身的数值决定,也就是说,网络号和主机号的划分与这个IP地址是A类、B类还是C类无关,因此称为Classless的。这样,多个子网就可以汇总(summarize)成一个Internet上的网络,例如,有8个站点都申请了C类网络,本来网络号是24位的,但是这8个站点通过同一个ISP(Internet service provider)连到Internet上,它们网络号的高21位是相同的,只有低三位不同,这8个站点就可以汇总,在Internet上只需要一个路由表项,数据包通过Internet上的路由器到达ISP,然后在ISP这边再通过次级的路由器选路到某个站点。

IP地址与子网掩码做与运算可以得到网络号,主机号从全0到全1就是子网的地址范围。IP地址和子网掩码还有一种更简洁的表示方法,例如140.252.20.68/24,表示IP地址为140.252.20.68,子网掩码的高24位是1,也就是255.255.255.0。

如果一个组织内部组建局域网,IP地址只用于局域网内的通信,而不直接连到Internet上,理论上使用任意的IP地址都可以,但是RFC 1918规定了用于组建局域网的私有IP地址,这些地址不会出现在Internet上,如下表所示。

  • 10.*,前8位是网络号,共16,777,216个地址
  • 172.16.* 到172.31.*,前12位是网络号,共1,048,576个地址
  • 192.168.*,前16位是网络号,共65,536个地址

使用私有IP地址的局域网主机虽然没有Internet的IP地址,但也可以通过代理服务器或NAT(网络地址转换)等技术连到Internet上

还有一些不能用作主机IP地址的特殊地址:

  • 目的地址为255.255.255.255,表示本网络内部广播,路由器不转发这样的广播数据包。

  • 主机号全为0的地址只表示网络而不能表示某个主机,如192.168.10.0(假设子网掩码为255.255.255.0)。

  • 目的地址的主机号为全1,表示广播至某个网络的所有主机,例如目的地址192.168.10.255表示广播至192.168.10.0网络(假设子网掩码为255.255.255.0)。

网络地址转换NAT技术

用于多个主机通过一个公有IP访问访问互联网的私有网络中,减缓了IP地址的消耗,但是增加了网络通信的复杂度。

NAT 工作原理:

  1. 从内网出去的IP数据报,将其IP地址替换为NAT服务器拥有的合法的公共IP地址,并将替换关系记录到NAT转换表中
  2. 从公共互联网返回的IP数据报,依据其目的的IP地址检索NAT转换表,并利用检索到的内部私有IP地址替换目的IP地址,然后将IP数据报转发到内部网络。

ARP协议 与 RARP协议

在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址,而数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。因此在通讯前必须获得目的主机的硬件地址。ARP协议就起到这个作用。源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播),目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中。

每台主机都维护一个ARP缓存表,可以用arp -a命令查看。缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址。

  • ARP(Address Resolution Protocol)地址解析协议 :为网卡(网络适配器)的IP地址到对应的硬件地址提供动态映射。可以把网络层32位地址转化为数据链路层MAC48位地址。ARP 是即插即用的,一个ARP表是自动建立的,不需要系统管理员来配置。
  • RARP(Reverse Address Resolution Protocol)协议指逆地址解析协议,可以把数据链路层MAC48位地址转化为网络层32位地址。

ICMP 协议 详解

网际控制报文协议(Internet Control Message Protocol),可以报告错误信息或者异常情况,ICMP报文封装在IP数据报当中。

ICMP协议的应用:

  • Ping应用:网络故障的排查;
  • Traceroute应用:可以探测IP数据报在网络中走过的路径。

网络层 路由(选路)

几个名词:

  • 路由(名词):数据包从源地址到目的地址所经过的路径,由一系列路由节点组成。
  • 路由(动词):某个路由节点为数据报选择投递方向的选路过程。
  • 路由节点:一个具有路由能力的主机或路由器,它维护一张路由表,通过查询路由表来决定向哪个接口发送数据包。
  • 接口:路由节点与某个网络相连的网卡接口。
  • 路由表:由很多路由条目组成,每个条目都指明去往某个网络的数据包应该经由哪个接口发送,其中最后一条是缺省路由条目。
  • 路由条目:路由表中的一行,每个条目主要由目的网络地址、子网掩码、下一跳地址、发送接口四部分组成,如果要发送的数据包的目的网络地址匹配路由表中的某一行,就按规定的接口发送到下一跳地址。
  • 缺省路由条目:路由表中的最后一行,主要由下一跳地址和发送接口两部分组成,当目的地址与路由表中其它行都不匹配时,就按缺省路由条目规定的接口发送到下一跳地址。

路由表是指路由器或者其他互联网网络设备上存储的一张路由信息表,该表中存有到达特定网络终端的路径,在某些情况下,还有一些与这些路径相关的度量。路由器的主要工作就是为经过路由器的每个数据包寻找一条最佳的传输路径,并将该数据有效地传送到目的站点。由此可见,选择最佳路径的策略即路由算法是路由器的关键所在。路由算法的要求:正确的完整的、在计算上应该尽可能是简单的、可以适应网络中的变化、稳定的公平的。路由算法计算的后的结果一条条路由,存储路由的表就是路由表。在路由器中保存着各种传输路径的相关数据——路由表(Routing Table),供路由选择时使用,表中包含的信息决定了数据转发的策略。路由表可以是由系统管理员固定设置好的,也可以由系统动态修改,可以由路由器自动调整,也可以由主机控制。

静态路由:人工配置,一般由系统管理员事先设置好固定的路由表称之为静态(static)路由表,一般是在系统安装时就根据网络的配置情况预先设定的,它不会随未来网络结构的改变而改变。

动态路由:动态(Dynamic)路由表是路由器根据网络系统的运行情况而自动调整的路由表。路由器根据路由选择协议(Routing Protocol)提供的功能,自动学习和记忆网络运行情况,在需要时自动计算数据传输的最佳路径。

  1. 链路状态路由选择算法LS:向所有隔壁路由发送信息收敛快;全局式路由选择算法,每个路由器计算路由时,需构建整个网络拓扑图;利用Dijkstra算法求源端到目的端网络的最短路径;Dijkstra(迪杰斯特拉)算法
  2. 距离-向量路由选择算法DV:向所有隔壁路由发送信息收敛慢、会存在回路;基础是Bellman-Ford方程(简称B-F方程)

自治系统AS:指处于一个管理机构下的网络设备群,AS内部网络自治管理,对外提供一个或多个出入口,其中自治系统内部的路由协议为内部网关协议,如RIP、OSPF等;自治系统外部的路由协议为外部网关协议,如BGP。

路由器通常依靠所建立及维护的路由表来决定如何转发。路由表能力是指路由表内所容纳路由表项数量的极限。路由表中的表项内容包括:

  • destination mask pre costdestination:目的地址,用来标识IP包的目的地址或者目的网络。
  • mask:网络掩码,与目的地址一起标识目的主机或者路由器所在的网段的地址。
  • pre:标识路由加入IP路由表的优先级。可能到达一个目的地有多条路由,但是优先级的存在让他们先选择优先级高的路由进行利用。
  • cost:路由开销,当到达一个目的地的多个路由优先级相同时,路由开销最小的将成为最优路由。
  • interface:输出接口,说明IP包将从该路由器哪个接口转发。nexthop:下一跳IP地址,说明IP包所经过的下一个路由器。[1]

RIP 协议

路由信息协议 RIP(Routing Information Protocol)【应用层】,基于距离-向量的路由选择算法,较小的AS(自治系统),适合小型网络;RIP报文,封装进UDP数据报。

RIP协议特性:

  1. RIP在度量路径时采用的是跳数(每个路由器维护自身到其他每个路由器的距离记录);
  2. RIP的费用定义在源路由器和目的子网之间;
  3. RIP被限制的网络直径不超过15跳
  4. 和隔壁交换所有的信息,30主动一次(广播)。

OSPF 协议

开放最短路径优先协议 OSPF(Open Shortest Path First)【网络层】,基于链路状态的路由选择算法(即Dijkstra算法),较大规模的AS ,适合大型网络,直接封装在IP数据报传输。

OSPF协议优点:

  1. 安全;
  2. 支持多条相同费用路径;
  3. 支持区别化费用度量;
  4. 支持单播路由和多播路由;
  5. 分层路由。

RIP与OSPF的对比(路由算法决定其性质):

BGP 协议

BGP(Border Gateway Protocol)边际网关协议【应用层】:是运行在AS之间的一种协议,寻找一条好路由:首次交换全部信息,以后只交换变化的部分,BGP封装进TCP报文段.

传输层

传输层(Transport Layer)是OSI模型的第4层。该层的主要任务是:向 端到端 (即主机到主机的层次) 提供可靠的端到端的差错控制和流量控制,以保证报文的正确传输。传输层向高层屏蔽下层数据通信的细节,将上层数据分段并提供端到端的、可靠的或不可靠的传输。传输层及其以下的机制由内核提供。在 传输层,传送的 "协议数据单元" 称为 "段或报文"。

网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。

  1. 传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题;
  2. 包含的主要协议:TCP协议(Transmission Control Protocol,传输控制协议)、UDP协议(User Datagram Protocol,用户数据报协议);
  3. 重要设备:网关。

传输层 常见的协议:TCP/IP中的TCP协议和UDP协议。

UDP 协议

UDP(User Datagram Protocol: 用户数据报协议),是一个非常简单的协议,

UDP协议的特点:

  • UDP是无连接协议;
  • UDP不能保证可靠的交付数据
  • UDP是面向报文传输的;
  • UDP没有拥塞控制
  • UDP首部开销很小。

TCP 协议

TCP(Transmission Control Protocol: 传输控制协议),是计算机网络中非常复杂的一个协议。

TCP协议的功能:

  1. 对应用层报文进行段和重组;
  2. 面向应用层实现用与分解;
  3. 实现端到端的量控制;
  4. 塞控制;
  5. 传输层址;
  6. 对收到的报文进行差错检测(首部和数据部分都检错);
  7. 实现进程间的端到端可靠数据传输控制。

TCP协议的特点:

  • TCP是面向连接的协议;
  • TCP是面向字节流的协议;
  • TCP的一个连接有两端,即点对点通信;
  • TCP提供可靠的传输服务;
  • TCP协议提供全双工通信(每条TCP连接只能一对一);

可靠传输的基本原理

基本原理:

  • 不可靠传输信道在数据传输中可能发生的情况:比特差错、乱序、重传、丢失
  • 基于不可靠信道实现可靠数据传输采取的措施
    • 差错检测:利用编码实现数据包传输过程中的比特差错检测
    • 确认:接收方向发送方反馈接收状态
    • 重传:发送方重新发送接收方没有正确接收的数据
    • 序号:确保数据按序提交
    • 计时器:解决数据丢失问题;

停止等待协议:是最简单的可靠传输协议,但是该协议对信道的利用率不高
连续ARQ(Automatic Repeat reQuest:自动重传请求)协议:滑动窗口+累计确认,大幅提高了信道的利用率

TCP协议的可靠传输:基于连续ARQ协议,在某些情况下,重传的效率并不高,会重复传输部分已经成功接收的字节

TCP协议的流量控制

流量控制:发送方发送速率不要太快,TCP协议使用滑动窗口实现流量控制。

TCP协议的拥塞控制

拥塞控制与流量控制的区别:流量控制考虑点对点的通信量的控制,而拥塞控制考虑整个网络,是全局性的考虑。拥塞控制的方法:慢启动算法+拥塞避免算法

慢开始和拥塞避免:

  1. 慢开始】拥塞窗口从1指数增长;
  2. 到达阈值时进入【拥塞避免】,变成+1增长;
  3. 【超时】,阈值变为当前cwnd的一半(不能<2);
  4. 再从【慢开始】,拥塞窗口从1指数增长。

快重传和快恢复:

  1. 发送方连续收到3个冗余ACK,执行【快重传】,不必等计时器超时;
  2. 执行【快恢复】,阈值变为当前cwnd的一半(不能<2),并从此新的ssthresh点进入【拥塞避免】

TCP三次握手、四次挥手

面试常客:为什么需要三次握手?

  1. 第一次握手:客户发送请求,此时服务器知道客户能发;
  2. 第二次握手:服务器发送确认,此时客户知道服务器能发能收;
  3. 第三次握手:客户发送确认,此时服务器知道客户能收。

TCP 建立连接(三次握手):

  • 第一次:客户向服务器发送连接请求段,建立连接请求控制段(SYN=1),表示传输的报文段的第一个数据字节的序列号是x,此序列号代表整个报文段的序号(seq=x);客户端进入 SYN_SEND (同步发送状态)
  • 第二次:服务器发回确认报文段,同意建立新连接的确认段(SYN=1),确认序号字段有效(ACK=1),服务器告诉客户端报文段序号是y(seq=y),表示服务器已经收到客户端序号为x的报文段,准备接受客户端序列号为x+1的报文段(ack_seq=x+1);服务器由LISTEN进入SYN_RCVD (同步收到状态);
  • 第三次:客户对服务器的同一连接进行确认.确认序号字段有效(ACK=1),客户此次的报文段的序列号是x+1(seq=x+1),客户期望接受服务器序列号为y+1的报文段(ack_seq=y+1);当客户发送ack时,客户端进入ESTABLISHED 状态;当服务收到客户发送的ack后,也进入ESTABLISHED状态;第三次握手可携带数据;

TCP 释放连接(四次挥手)

  • 第一次:客户向服务器发送释放连接报文段,发送端数据发送完毕,请求释放连接(FIN=1),传输的第一个数据字节的序号是x(seq=x);客户端状态由ESTABLISHED进入FIN_WAIT_1(终止等待1状态)
  • 第二次:服务器向客户发送确认段,确认字号段有效(ACK=1),服务器传输的数据序号是y(seq=y),服务器期望接收客户数据序号为x+1(ack_seq=x+1);服务器状态由ESTABLISHED进入CLOSE_WAIT(关闭等待); 客户端收到ACK段后,由FIN_WAIT_1进入FIN_WAIT_2
  • 第三次:服务器向客户发送释放连接报文段,请求释放连接(FIN=1),确认字号段有效(ACK=1),表示服务器期望接收客户数据序号为x+1(ack_seq=x+1);表示自己传输的第一个字节序号是y+1(seq=y+1);服务器状态由CLOSE_WAIT 进入 LAST_ACK (最后确认状态)
  • 第四次:客户向服务器发送确认段,确认字号段有效(ACK=1),表示客户传输的数据序号是x+1(seq=x+1),表示客户期望接收服务器数据序号为y+1+1(ack_seq=y+1+1);客户端状态由FIN_WAIT_2进入TIME_WAIT,等待2MSL时间,进入CLOSED状态服务器在收到最后一次ACK后,由LAST_ACK进入CLOSED

为什么需要等待2MSL?

  1. 最后一个报文没有确认;
  2. 确保发送方的ACK可以到达接收方;
  3. 2MSL时间内没有收到,则接收方会重发;
  4. 确保当前连接的所有报文都已经过期。

会话层

会话层(Session Layer)是OSI模型的第5层,是用户应用程序和网络之间的接口,主要任务是:向两个实体的表示层提供建立和使用连接的方法。将不同实体之间的表示层 的连接称为会话。因此会话层的任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理。 用户可以按照半双工、单工和全双工的方式建立会话。当建立会话时,用户必须提供他们想要连接的远程地址。而这些地址与MAC(介质访问控制子层)地址或网络层的逻辑地址不同,它们是为用户专门设计的,更便于用户记忆。

表示层

表示层(Presentation Layer)是OSI模型的第六层,它对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。其主要功能是“处理用户信息的表示问题,如编码、数据格式转换和加密解密”等

应用层

应用层(Application Layer)是 OSI 参考模型的最高层,它是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。它在其他6层工作的基础上,负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及 应用所需的监督、管理和服务等各种协议。此外,该层还负责协调各个应用程序间的工作。

用层由用户进程提供,应用程序对通讯数据的含义进行解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到另一台计算机。应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)

应用层重点:

  1. 数据传输基本单位为报文;
  2. 包含的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议),HTTP协议(Hyper Text Transfer Protocol)。

DNS(Domain Name System:域名系统)【C/S,UDP,端口53】:解决IP地址复杂难以记忆的问题,存储并完成自己所管辖范围内主机的 域名 到 IP 地址的映射。

域名解析的顺序:【1】浏览器缓存,【2】找本机的hosts文件,【3】路由缓存,【4】找DNS服务器(本地域名、顶级域名、根域名)->迭代解析、递归查询。

1.IP—>DNS服务—>便于记忆的域名
  2.域名由点、字母和数字组成,分为顶级域(com,cn,net,gov,org)、二级域(baidu,taobao,qq,alibaba)、三级域(www)(12-2-0852)

DHCP(Dynamic Configuration Protocol:动态主机设置协议):是一个局域网协议,是应用UDP协议的应用层协议。 作用:为临时接入局域网的用户自动分配IP地址。

文件传输协议(FTP):控制连接(端口21):传输控制信息(连接、传输请求),以7位ASCII码的格式整个会话期间一直打开。

HTTP(HyperText Transfer Protocol:超文本传输协议)TCP,端口80】:是可靠的数据传输协议,浏览器向服务器发收报文前,先建立TCP连接,HTTP使用TCP连接方式(HTTP自身无连接)

HTTP请求报文方式:

  1. GET:请求指定的页面信息,并返回实体主体;
  2. POST:向指定资源提交数据进行处理请求;
  3. DELETE:请求服务器删除指定的页面;
  4. HEAD:请求读取URL标识的信息的首部,返回报文头;
  5. OPETION:请求一些选项的信息;
  6. PUT:在指明的URL下存储一个文档。

HTTPS (Secure)是安全的HTTP协议,端口号443。基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护。

  • 17
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值