Fork me on GitHub

网络原理

计算机网络概述

发展过程

  1. 计算机网络的发展主要经历了四个阶段,可概括为:第一阶段为面向终端的计算机网络,第二阶段为多台计算机互连的计算机网络,第三阶段面向标准化的计算机网络,第四阶段为面向全球互连的计算机网络。
  2. 计算机网络可定义为把分布在不同地点且具有独立功能的多个计算机,通过通信设备和线路连接起来,在功能完善的网络软件运行环境下,以实现网络中资源共享为目标的系统。它由终端系统和通信子网组成。
  3. 计算机网络可以根据不同的分类方法进行分类,根据网络覆盖的地理范围可以将计算机网络分为个人区域网、局域网、城域网和广域网。根据网络的拓扑结构,可以将计算机网络分为星型、树型、总线型、环型和网状型等类型。根据使用的通信传输媒介的不同,可以把计算机网络分为有线网和无线网。
  4. 第一台分组交换网 - - - 阿帕网(ARPANET)

网络类型及特征

  1. 拓扑结构分类: 星型网 , 树型网 , 总线型网, 环型网, 网状网
  2. 覆盖范围分类:个人区域网, 局域网, 城域网, 广域网
  3. 传输媒介分类:有线网, 无线网

网络协议与网络体系

网络协议

  1. 网络中计算机的硬件和软件存在各种差异,为了保证相互通信及双方能够正确地接收信息,必须事先形成一种约定,即网络协议。协议是指通信双方必须遵循的、控制信息交换的规则的集合,是一套语义和语法规则,用来规定有关功能部件在通信过程中的操作,它定义了数据发送和接收工作中必经的过程。协议规定了网络中使用的格式、定时方式、顺序和差错控制。一般说,一个网络协议主要由语法、语义和同步三个要素组成。

  2. 计算机网络体系结构是计算机网络的各层及其服务和协议的集合,也就是它们所应完成的所有功能的定义,是用户进行网络互连和通信系统设计的基础。

  3. OSI七层模型从下到上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。类似于OSI-RM层次模型,TCP/IP的层次结构包含了四个层次,从下到上分别为网络接入层、互连网络层、传输层和应用层。它们有一定的对应关系

  4. 协议各层间存在信息交换,一个系统中的相邻两个层次间的信息交换是通过服务访问点这样的接口实现的。每一层和相邻层有接口,较低层通过接口向它的上一层提供服务,但这一服务的实现细节对上层是屏蔽的。较高层又是在较低层提供的低级服务的基础上实现更高级的服务。

  5. 目前在国际上最著名的两个国际标准化组织分别是ISO和ITU-T。ITU-T主要负责电话和数字通信领域的建议和标准。因S特网的标准化工作由称为IAB的组织负责,下设Task Force负责具体的某一方面标准,如IETF负责因特网近期发展的工程与标准问题。有关文档成为RFC。如著名的IP协议和TCP协议的文档为RFC791和RFC793。

应用层直接为用户的应用进程提供服务
传输层为两台主机中进程之间的通信提供服务(复用TCP,UDP)
网络层

主机之间通信




















TCP/IP

分层作用
应用层直接为用户的应用进程提供服务
传输层负责为两台主机中的各个应用程序之间提供通信服务
互连网络层负责独立的将分组从源主机送往目的主机,为分组提供最佳路由选择和交换功能 .
网络接入层负责接收从网络层交付的IP分组, 并将IP分组封装在帧中, 通过底层的物理网络发送出去

接收数据则相反


两种体系对比



数据通信技术基础




数据通信系统的性能指标

数据传输速率

  1. 传码速率
    又称为调制速率、波特率,记作NBd,是指在数据通信系统中,每秒钟传输信号码元的个,单位是波特(Baud)。
  2. 传信速率
    又称为比特率,记作Rb, 是指在数据通信系统中,每秒钟传输二进制码元的个数,单位是比特/秒(bit/s,或kbit/s或Mbit/s)。

    千比每秒,即 kb/s (103 b/s)
    兆比每秒,即 Mb/s(106 b/s)
    吉比每秒,即 Gb/s(109 b/s)
    太比每秒,即 Tb/s(1012 b/s)

计算方式


信道带宽

  • 信号带宽:(bandwidth)是指信号具有的频带宽度,单位 是赫(或千赫、兆赫、吉赫等)。
  • 模拟信道:表示通信线路允许通过的信号频带范围就称为 线路带宽(通频带)。
  • 数字信道:“带宽”是所能传送的“最高数据率”同义语 ,单位是“比特每秒”。

误码率


时延

发送时延

  • 发送时延:又称为传输时延,发送数据时,使数据块从结点进入到 传输媒体所需要的时间。

  • 信道带宽:数据在信道上的发送速率。常称为数据在信道上的传输 速率。

  • 发送时延 = 数据块长度(比特) / 信道带宽(比特/秒)

传播时延

  • 传播时延:电磁波在信道中需要传播一定的距离而花费的时间。

  • 信号传输速率(即发送速率)和信号在信道上的传播速率是完全不 同的概念。

  • 传播时延 = 信道长度(米) / 信号在信道上的传播速率(米/秒)

处理时延

  • 处理时延:交换结点为存储转发而进 行一些必要的处理所花费的时间。

  • 结点缓存队列中分组排队所经历的时 延是处理时延中的重要组成部分。

  • 处理时延的长短往往取决于网络中当 时的通信量。

数据从源点到达目的点所经历的总时延就是发送时延、 传播时延和处理时延之和

1
总时延 = 发送时延 + 传播时延 + 处理时延


信道容量

  • 信道容量是指在一定的条件下,给定通信路径(信道)上所能达到的 最大数据传输速率。

  • 奈氏准则:在理想的条件下,即一个无噪声,带宽为W 赫兹的信 道,其传码速率最高为2W 波特。


信噪比(dB)= 10 log10 (S/ N)

香农定理

信道的极限信息传输速率 C(信道容量) , 可表达为

C = W log2 (1+S/N ) b/s

W 为信道的带宽(以 Hz 为单位);

S /N为信道内信号和噪声的功率之比;


多路复用技术

多路复用技术是指在一条通信线路中传输多路信号,以提高传输媒 介利用率的技术

频分复用 ( Frequency Division Multiplexing )

  • 当传输信道的带宽较大,而所传输的信号只需部分带宽就可 实现有效传送,则可以在信道中同时传输多路信号,每路信 号占用部分带宽。
  • 频分复用是按频率划分不同的子信道,每个子信道占用不同 的频率范围。采用调制技术,将信号搬移到信道相应的频段 上。
  • 频分复用常用于载波电话系统、电视等

时分复用 ( Time Division Multiplexing )

  • 时分复用是采用时间分片方式来实现传输信道的多路复用,即每一路信 号传输都使用信道的全部带宽,但只能使用其中某个时隙。
  • 从如何分配传输介质资源的观点出发,时分多路复用又可分为两种:静态的时分复用和动态的时分复用。

静态时分复用

  • 静态时分复用中,多个数据终端的信号分别在预定的时隙内传输,其分 配关系固定,周期性使用,收发双方保持同步,又称同步时分复用。若 无数据传输时,对应时隙空闲。
  • 静态时分复用中,每个数据终端的信号与传输时隙分配关系固定,无数 据传输时,对应时隙空闲。因此效率较低。

动态时分复用

  • 动态时分复用又称异步时分复用,或称统计时分复用(STDM),是按需 分配媒体资源,提高了传输媒体的利用率。
  • 动态时分复用中,用户数据传输速率之和可以大于高速线路传输容量。
  • 动态时分复用中需要使用缓冲存储和流量控制技术来保证数据正确传送

码分复用 ( Code Division Multiplexing )

  • 码分复用是蜂窝移动通信中迅速发展的一种信号处理方式。
  • 常用的名词是码分多址 CDMA (Code Division Multiple Access)。
  • 这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声, 不易被敌人发现。
  • 每一个比特时间划分为 m 个短的间隔,称为码片(chip)。
  • 每个站被指派一个惟一的 m bit 码片序列.
    • 如发送比特 1,则发送自己的 m bit 码片序列。
    • 如发送比特 0,则发送该码片序列二进制反码。

波分复用(Wavelength Division Multiplexing )

  • 波分复用就是光的频分复用,即在一根光纤上传输多路光载波信号。
  • 密集波分复用(DWDM)是一种支持巨大数量信道的系统。
  • 波分复用技术可以进一步提高光纤的传输容量,满足通信需求量的迅速 增长和多媒体通信。

数据交换技术

电路交换

  1. 在通信之前,需要在主、被叫用户之间建立一条物理连接。
  2. 由于采用了静态的时分复用,是预分配带宽,数据到达了交换机不 需要排队等待,这样做的优点是电路交换是一种实时交换,适用于 实时要求高的话音通信 。缺点是即使双方无数据传送也白白占用线 路,所以线路利用率低。
  3. 在传送数据时,没有任何差错控制措施,不利于传输可靠性要求高 的突发性数据业务。

报文交换

  1. 交换节点采用存储-转发方式对每份报文完整地加以处理。
  2. 每份报文中含有报头,包含收、发双方的地址,以便交换节点进行 路由选择,可以一对多地传送报文。
  3. 存储-转发时延大,随机性也大。

分组交换

  1. 在数据传输之前,不需要建立连接
  2. 由于提供了动态时分复用,因此提高了通信线路的利用率。
  3. 网络的生存性好,当网络内线路或设备产生故障后,可以自动为 分组选择一条迂回路由,避开故障点,不会引起通信中断。
  4. 由于采用存储—转发方式处理分组,所以分组在网络内的平均时 延要比电路交换高。
  5. 每个分组由于都要包含完整的目的地地址等信息,这些信息都放 在附加的分组头里,都会需要交换机分析处理,所以会增加开销。


差错控制技术

  • 传输差错指的是,通信接收端收到的数据和发送端发送的数据不一致 的情况。
  • 由于数据通信系统本身传输特性的不理想和外部干扰的存在,传输中 出现差错是不可避免的。
  • 差错控制的目的是采取有效的措施来发现和纠正差错,以提高数据传 输的质量。
  • 一般来说,传输差错可以分成两类,一类是随机差错,一类是突发差错

差错的分类及产生的原因

  • 随机差错

    原因: 信道热噪声
    特点: 随机的、单个的

  • 突发差错

    原因: 脉冲噪声(如闪电)
    特点: 成片的、连续的

差错控制原理

  • 在通信信道中所传输的数据码元是独立的、随机的,接收方无法判断所接收的码元是否存在
    差错。
  • 在发送的数据码元序列中加入监督位,并进行某种变换,使它们和原来相互独立的数据码元
    之间具有某种约束关系。
  • 由于这些监督位对于表达信息是“冗余”的,差错控制在一定程度上会降低信息的传输效率。
  • 接收端检测接收的数据码元和监督码元的约束关系,如果发现这种约束关系被破坏,则接收端可以检测到差错,甚至可以纠正差错。
  • 如果这种约束关系没有被破坏,则可以认为没有差错。但也存在差错未被检测出来的可能性。

差错控制方式

奇偶校验码

循环冗余码

  • 循环冗余码 (CRC)是一种特殊的线性分组码。
  • 循环冗余码各码组中的码元循环左移(或右移)若干次,所形成的 码组仍然是一个许用码组(全零码组除外),称为循环性。
  • 循环冗余码具有较高的检错能力







局域网原理与技术

  1. 局域网是指将分散在一个局部地理范围的多台计算机通过传输媒体连接起来的通信网络。局域网具有网络覆盖区域相对较小、传输速率高、误码率低、大多采用广播方式传输数据等特点。
  2. 局域网的四个技术特性是指传输媒体、传输技术、网络拓扑,以及媒体访问控制方法
  3. 局域网中基于轮询的媒体访问控制通常采用令牌传递的方法,包括令牌总线和令牌环两种。以太网中使用的是基于随机访问的媒体访问控制方法。
  4. 以太网采用的地址为扩展的唯一标识符MAC地址,占48位(6个字节)
  5. CSMA/CD的具体含义解释包括多点接入、载波监听和冲突检测。
  6. 争用期(冲突窗口)指的是总线式局域网的端到端往返时延,其物理意义在于提供了设计总线式局域网中最小有效帧长的计算依据。
  7. 局域网扩展使用的网络设备中,集线器工作在OSI体系结构的物理层,网桥/交换机工作在数据链路层。
  8. 以太网交换机的工作有三种,直通交换方式,存储转发方式,和无碎片交换方式。
  9. 高速以太网是指速率达到或超过100Mb/s的以太网,如100BASE-T、千兆以太网和万兆以太网等。
  10. .虚拟局域网VLAN是由一些局域网网段构成的与物理位置无关的逻辑组,是在现有局域网上提供的划分逻辑组的一种服务。
  11. 无线局域网采用的是CSMA/CA协议,在CSMA基础上增加了冲突避免机制和确认机制。

局域网概述

  • 局域网是将分散在一个局部地理范围的多台计算机通过传输媒体连接起来的通信网络.
  • 网络覆盖的区域相对较小
  • 传输速率高, 误码率低
  • 传输质量高
  • 局域网具有专用性质
  • 大多采用广播方式传输数据, 不需要考虑路由选择
  • 在 IEEE 802 条款 OSI 数据链路层分为两个子层: 逻辑链接控制 (LLC) 和媒体访问控制 (MAC)。

局域网的技术特性



媒体访问控制技术









以太网技术

以太网概述


MAC地址与帧格式

“发往本站的帧”包括以下三种帧:

  • 单播帧(一对一)
  • 广播帧(一对全体)
  • 多播帧(一对多)

网卡校验以太网帧后, 没有将FCS字段(4字节)传递给tcp/ip协议栈, 所以使用wireshark捕获到的帧长度会少4个字节


以太网工作原理









二进制指数退避算法






CSMA/CD发送,接收流程



小结

关于以太网的帧长范围

我们知道,在以太网中,对数据帧的长度是有限制的,也就是说至少是64字节,最大是1518字节。你能说一下这两个数字是怎么得到的吗?请大家发表一下自己的看法哦!特别是为什么对帧长会有最短和最长的限制呢?

以太网中数据长度范围是46~1500,根据数据帧的构成可知,数据帧是在数据长度的基础上加上目的地址源地址类型字符FCS,这些加起来一共18个字节,所以数据帧长度范围为64~1518,而最短帧长取决定于争用期,最长帧长则是由最大传送单元(MTU)限制的

最短帧长=6(目的地址)+6(源地址)+2(类型)+46(数据)+4(FSC)=64字节
最长帧长=6(目的地址)+6(源地址)+2(类型)+1500(数据)+4(FSC)=1518字节

传统的以太网是共享性局域网,采用载波侦听多路访问/冲突检测CSMA/CD协议.最小帧长必须大于整个网络的最大时延位(最大时延时间内可以传输的数据位).
如果帧长度太小,就可能出现网络上同时有两个帧在传播,就会产生冲突(碰撞)而造成网络无法发送数据.
如果数据帧太长就会出现有的工作长时间不能发送数据,而且可能超出接受端的缓冲区大小,造成缓冲益出.
由于多方面的限制,每个以太网帧都有最小的大小64bytes最大不能超过1518bytes,对于小于或者大于这个限制的以太网帧我们都可以视之为错误的数据帧,一般的以太网转发设备会丢弃这些数据帧.
(注:小于64Bytes的数据帧一般是由于以太网冲突产生的“碎片”或者线路干扰或者坏的以太网接口产生的,对于大于1518Bytes的数据帧我们一般把它叫做Giant帧,这种一般是由于线路干扰或者坏的以太网口产生)

传统以太网,传输速率是10Mbps,一个以太网链路最大来回传播延时是51.2us,也就是说,帧的大小/10Mbps必须大于等于51.2us,否则,如果帧太短了,可能数据已经发完了,即时和别的信号冲突了,也不能监测到冲突信号了,这样的话,CSMA/CD协议也就不可靠了。所以帧最小长度为512bit,即64个字节。由于上层数据最大是1500字节,加上源地址6个字节,目的地址6个字节,2个字节的类型信息,再加上4个字节的检验。所以,最大帧长为1518字节

关于最大传输单元MTU

我们都知道,以太网中规定自己的MTU值是1500字节,大家可以讨论一下,MTU一般是依据什么来划分的?

关于二进制指数退避算法

退避算法是怎么确定用二进制指数来算的呢?有什么优点吗?为什么退避算法随机取的最大值到了2^10-1以后就不再增加了?请就你感兴趣的话题发表一下自己的看法。

退避算法优点是牺牲时间效率,换取冲突概率减小,指数大于10,牺牲时间太长,发送端自动判定发送失败,并报告上层!

局域网的扩展

设备工作层次作用隔离冲突域隔离广播域
集线器物理层将多条以太网双绞线或光纤集合连接在同一段物理介质下的设备, 对收到的信号进行放大, 转发××
交换机数据链路层用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路,把传输的信息送到符合要求的相应路由上×
路由器网络层连接因特网中各局域网、广域网的设备。在路由器中记录着路由表,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号

在OSI模型中,冲突域被看作是第一层的概念,第二层设备(网桥,交换机)第三层设备(路由器)都可以划分冲突域的, 广播域被认为是OSI中的第二层概念, 所以像集线器,交换机等第一,第二层设备连接的节点被认为都是在同一个广播域。而路由器,第三层交换机则可以划分广播域,即可以连接不同的广播域。

-路由器交换机
工作层次网络层数据链路层
转发依据IP地址Mac地址
功能连接不同的网络连接局域网中的电脑
宽带影响共享宽带独享宽带
-交换机集线器
工作层次数据链路层物理层
宽带影响独享共享
数据传输有目的发送广播发送
传输模式全双工或半双工半双工


以太交换机转发方式

直通交换方式

在收到数据帧后,不进行缓存和校验,而是直接转发到目的端口。

存储转发方式

在缓冲区存储接收到的整个数据帧,然后进行CRC校验,检查数据帧是否正确,如果正确,再进行转发。如果不正确,则丢弃。

无碎片交换方式

接收数据帧时,会先缓存数据帧的前64个字节,确保数据帧大于64个字节,再进行转发




若该10台计算机接到了10Mb/s的以太网交换机上,则每台计算机的平均带宽为( 10 )Mbps

若该10台计算机接到了10Mb/s的集线器上,则每台计算机的平均带宽为( 1 )Mbps


高速以太网

100BASE-T以太网





以太网信道利用率讨论
以太网从10Mb/s到100Mb/s、1000Mb/s,甚至到10Gb/s,为了向下兼容,需要保持最短帧长不变,有什么办法来保证以太网的信道利用率呢?
提示,可以从交换/共享技术,全双工方式/半双工方式,网段的最大电缆长度,以及其他特定网络技术等方面考虑。

采用的办法有如下几点:
1、距离减小为原来的1/10,
2、帧间时间间隙从9.6微秒减小到0.96微秒;
3、采用“载波延伸”技术,保持网段最大距离为100m,最小帧长为64Byte;同时将争用期增大为512Byte并使用“分组突发”减小开销。
4、使用光纤做为传输媒介。
5、采用全双工模式


虚拟局域网

虚拟局域网的划分方法

  • 基于端口划分VLAN

  • 基于MAC地址划分VLAN

  • 基于网络层协议划分VLAN

  • 基于IP组播划分VLAN

虚拟局域网的格式


无线局域网

无线局域网分类

  • 有固定基础设施的无线局域网
  • 无固定基础设施的无线局域网

CSMA/CA协议

协议标准工作频段最高速率
IEEE 802.112.4GHz2Mbit/s
IEEE 802.11b2.4GHz11Mbit/s
IEEE 802.11a5GHz54Mbit/s
IEEE 802.11g2.4GHz54Mbit/s

帧间间隔

小结

分析CSMA/CA与CSMA/CD的区别
我们学习过了两个CSMA协议,根据你的理解,请分析CSMA/CA与CSMA/CD的区别。

1)载波检测方式:因传输介质不同,CSMA/CD与CSMA/CA的检测方式也不同。CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式。
2)信道利用率比较CSMA/CA协议信道利用率低于CSMA/CD协议信道利用率。但是由于无线传输的特性,在无线局域网不能采用有线局域网的CSMA/CD协议。信道利用率受传输距离和空旷程度的影响,当距离远或者有障碍物影响时会存在隐藏终端问题,降低信道利用率。
具体最高的信道利用率与传输速率有关。在IEEE802.11b无线局域网中,在1Mb/s速率时最高信道利用率可到90%,而在11Mb/s时最高信道利用率只有65%左右。

CSMA/CD:带有冲突检测的载波监听多路访问,可以检测冲突,但无法“避免”。
CSMA/CA:带有冲突避免的载波监听多路访问,发送包的同时不能检测到信道上有无冲突,只能尽量“避免”。


因特网原理与技术

因特网概述

为什么因特网要考虑包容多种物理网络技术

  • 价格低廉的局域网只能提供短距离的高速通信;
  • 能跨越长距离的广域网不能提供费用较低的局部通信。
  • 也就是说没有哪种网络技术可以满足所有需求,因此需要考虑多种底层硬件技术。

为什么要进行网际互连

  • 存在大大小小、相互独立的多种物理网络
  • 已有的异种网络客观存在
  • 没有哪种网络技术可以满足所有需求
  • 全球范围的通信需求
  • 各物理网络中的用户希望能够相互通信,不受物理网络边界限制
  • 通信:电子邮件、IP电话、视频会议
  • 信息服务:信息和资源共享
  • 网络社会化:电子商务、远程教育、远程医疗

网络互连的作用

  • 隐藏底层细节,使互联网可以看成是单一的虚拟网络,所有计算机都与它相连,而不管实际的物理连接如何。

如何实现网络互连



网际协议IP

主要内容

  1. 分类的IP地址
  2. IP地址的分配与使用
  3. IP分组的格式
  4. 因特网地址到物理地址的映射(ARP协议)
  5. 差错与控制报文协议(ICMP)
  6. 子网编址
  7. 无分类编址与CIDR
  8. IP分组的转发

分类的IP地址

  • 把整个因特网看成为一个单一的、抽象的网络。IP地址就是给每个连接在因特网上的主机分配一个在全世界范围是惟一的32 bit的标识符。
  • IP地址采用分层的地址结构:前缀+后缀
  • 前缀( network- ID,网络号部分):表示主机所属的物理网络
  • 后缀( host- ID,主机号部分):用来区分物理网络内的主机

IP 地址中的网络号字段和主机号字段
IP 地址中的网络号字段和主机号字段

点分十进制记法

常用的三种类型的IP地址

IP地址的分配和使用

IP 地址是一种分等级的地址结构

  • 第一,IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。
  • 第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间和路由查找时间。

IP 地址是标志主机或路由器和一条网络链路的接口。

  • 当一个主机同时连接到两个网络上时,该主机就必须同时具有两个IP 地址,且其网络号 net-id 必须是不同的。这种主
    机称为多接口主机(multihomed host)。
  • 由于一个路由器至少应当连接到两个网络(这样它才能将 IP数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。

IP数据报

  • 因特网的基本传送单元是IP分组(或IP数据报)。
  • 一个 IP 数据报由首部(报头)和数据两部分组成。
  • 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报 必须具有的。
  • 在首部的固定部分的后面是一些可选字段,其长度是可变的。
  • IP 数据报首部的固定部分和可选字段长度之和最大为 60 字 节

  • 版本——占 4 bit,指IP协议的版本 目前的 IP 协议版本号为 0100,也就是4 (即 IPv4)
  • 首部长度——占 4 bit,可表示的最大数值 是 15 个单位(一个单位为 4 字节) 因此 IP 的首部长度的最大值是60字节。
  • 服务类型——占 8 bit,用来获得更好的服务 这个字段以前一直没有被人们使用 ,通常是00000000
  • 总长度——占 16 bit,指首部和数据之和的长度, 单位为字节,因此数据报的最大长度为 65535 字节。 总长度必须不超过最大传送单元 MTU。
  • 标识、标志和片偏移这三个字段和分片相关。
  • 生存期(8 bit)记为 TTL (Time To Live) 表示IP数据报在网络中的寿命,目前的单位是跳。
  • 协议(8 bit)字段指出此数据报携带的数据使用何种协议 以便目的主机的 IP 层将数据部分上交给哪个协议软件处理 (1->ICMP, 4->IP, 6->TCP, 17->UDP)
  • 首部检验和(16 bit)字段只检验数据报的首部 不包括数据部分。 这里不采用 CRC 检验码而采用简单的计算方法。
  • 源IP地址和目的IP地址都各占 4 字节



IP数据报的分片与重组

分片由路由器来完成,重组由目的主机来完成

  • 标识(identification)占 16 bit,它是一个计数器,是源 主机赋予数据报的惟一标识符。在分片的时候,该字段会 被复制到各个分片首部中的标识字段 。
  • 标志 占 3 bit,第一个比特不用, 第二个比特DF位(Don’t Fragment flag) :是否允许被分片(0:允许) 第三个比特是MF位(More Fragments flag,简称MF),表示是否有后续 分片,MF位=1表示该数据报不是最后一个分片。
  • 片偏移(13 bit)指出:该字段指出本数据报片中的数据部分 第一个字节相对于原数据报中数据部分的偏移量,请注意 :该字段是以8个字节为单位来计算偏移量的。

目的主机能够根据分片中的源主机IP地址、标识、标志字段中 的MF位以及片偏移量来重装出最初始数据报的完整副本,除非没能 收齐所有分片。 在实际应用中,如果需要分片,总是希望分片的个数越少越好, 又因为片偏移量是以8字节为单位,所以除了最后一个分片外,其余 分片的数据部分的大小应尽量接近但不超过网络MTU,并且是8字节 的整数倍。


关于IP数据报的分片
若某网络的MTU值为600字节,当一个IP数据报的总长度超过600字节时,每个分片的数据部分的长度是多少字节?为什么?

因为网络的MTU值为600字节,
所有数据部分长度为600-20=580字节,
又因为要满足8的倍数且尽量大,
则得580/8取整得72,
所有结果是72*8=576。

关于片偏移字段
在讲到分片时,强调了首部中片偏移字段的作用以及单位,为什么片偏移字段的单位是8字节呢?

IP头部格式中:总长度占16bit,偏移占13bit。所以理论上IP包的最大长度为2^16=65536,而偏移量最多可以表示2^13=8192.
如果需要满足可以使用偏移量表示最大IP包长度,则每个偏移量需要表示 65536/8192=8个字节。
即:如果每个偏移量小于8时,偏移量最大就无法表示出IP最大长度。如果偏移量大于8,就有点浪费了


地址解析协议ARP

  • 地址解析ARP为网络层(IP)地址数据链路层(MAC)地 址提供动态映射。

使用广播的方式获得物理地址

ARP高速缓存

  • 每一个主机中都设有一个 ARP 高速缓存(ARP cache),里面 存放的是最近获得的局域网上各主机和路由器的 IP 地址到硬 件地址的映射表。
  • 可以通过命令 “ arp -a” 来查看本机的ARP缓存中内容

当发送分组时,计算机在发送ARP请求之前总是先在 ARP缓存中寻找所需的绑定,若有,则无须广播。但这种方法中存在一个问题:信息可以在没有任何警告的情况下变的“失效”。如何解决?

  • 在协议中设置一计时器,典型的超时时间为20分钟,当计时器超时 时则删除状态信息。


  • ARP 是解决同一个物理网络上的主机或路由器的 IP 地址和硬件地 址的映射问题。
  • 从IP地址到硬件地址的解析是自动进行的,是由主机所运行的 TCP/IP内核实现的,主机的用户对这种地址解析过程是不知道的。

关于ARP诱骗或者ARP攻击
你对ARP诱骗或者ARP攻击有了解吗?在实际生活中,应该如何防范呢?

所谓ARP欺骗,当机器B向A发送一个自己伪造的ARP应答,如果这个应答是B冒充C伪造来的,即IP地址是C的IP,MAC地址是伪造的,当A收到B伪造的ARP应答后,就会更新本地的ARP缓存。由于网络通信不是根据IP地址进行,而是根据MAC地址进行传输。所以,那个伪造出来MAC地址在A上为改变成一个不存在的MAC地址。导致A不能ping桶C!这就是一个简单的ARP欺骗。

ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。
ARP攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。


因特网控制报文协议 ICMP

  • ICMP(Internet Control Message Protocol)是因特网控制报文协议。
  • ICMP用于在IP主机、路由器之间传递控制消息。
  • ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
  • ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成IP数据 报发送出去。

ICMP报文种类

ICMP差错报告报文

  • IP数据报出差错的时候,路由器或者主机会发出此类报文
  • ICMP报文仅发给引起问题的数据报的源站
  • 复制了产生问题的IP数据报的首部和前64比特数据
    ICMP询问报文
  • 用于给网络管理人员或应用程序对网络进行可达性分析、地址掩码设置、时钟同步等检测

五种ICMP差错报告报文

  • 终点不可达(主机不可达, 网络不可达, 端口不可达)
  • 时间超过(TTL, )
  • 源站抑制
  • 参数问题
  • 路由重定向

四种ICMP询问报文

  • 回送请求和回答报文
  • 时间戳请求和回答报文
  • 掩码地址请求和回答报文
  • 路由器询问和通告报文

ICMP的应用

  • ICMP协议可以实现网络可达性检查、网络时延测量、网络路由追踪、网络安全排查等方面都有重要的应用。
  • Tracert(跟踪路由)基于ICMP终点不可达和时间超过差错报告报文原理实现的。
  • Ping(因特网包探索器)基于ICMP询问报文类型中的回送请求和回答报文实现的。
  • IP数据报首部的校验和字段只用于校验首部,数据部分的校验由数据部分封装的相关协议自身来负责(如TCP、UDP、ICMP、OSPF等)
  • 源IP地址字段对应于首部中的13-16字节
  • ACK帧的优先级比较高,所以使用的是最短的帧间间隔SIFS

IP分组-子网编址

因特网发展速度较快,大大超出预期;
IP地址利用率较低;
在不放弃分类编址的情况下,如何适应网络增长的需要呢?
能不能把一个大的网络拆成若干个规模较小的网络呢?




子网地址


广播地址

子网编址-例1







子网编址-例2

无分类编址和CIDR

因特网的发展速度太快,对地址的需求量大;
缺乏适合于中等大小组织所需要的网络类型;
即使采用划分子网的办法,对于B类地址也未能得到充分利用
1993年,B类网络地址空间即将耗尽;
因特网主干网上的路由表中的项目数增长迅速(从几千个增长到几万个);
推出了无分类域间路由选择(Classless Inter-Domain Routing,简称CIDR)过渡方案,一直使用到现在;
1993年发布的有关CIDR的RFC文档为RFC1517~ RFC1520。

CIDR与传统分类IP地址相比

  • 相同点:IP地址都是二级编址(由网络号部分和主机号部分组成)
  • 区别:网络前缀的长度比较灵活。

    传统:A类 8位;B类 16位;C类:24位
    CIDR: 1-32位都可以

  • 好处:可以根据用户的需要,选择合适的网络前缀,因而可以更加有效地分配 IPv4 的地址空间。

CIDR地址块





测试

设有一个网络地址为202.16.10.0,若子网掩码为255.255.255.224,则可以划分子网(全0、全1的子网地址不分配)的个数是 6
某主机的IP地址是192.168.34.38,所在子网的子网掩码是255.255.255.224,则该子网的子网地址是 192.168.34.32
在一个CIDR地址块202.15.64.0/21中,最大的IP地址是 202.15.71.255
设有一个网络地址为172.16.0.0,若子网掩码为255.255.255.192,每个子网可以容纳 62台有效主机。
在一个192.168.34.0的网络中,子网掩码是255.255.255.192,若全0和全1的子网地址不分配,按照从小到大的顺序,第一个子网的子网地址是 192.168.34.64
在一个CIDR地址块202.15.64.0/22中,包含有 1024 个IP地址
212.10.4.0/24, 212.10.5.0/24, 212.10.6.0/24, 212.10.7.0/24 汇聚后的网络地址为 212.10.4.0/22


IP分组的转发

网络设备—路由器

路由器实际上就是一种通信专用的计算机,具有和计算机类似的结构。
每台路由器与两个或两个以上的物理网络有直接的连接。路由器的每个网络接口(network interface) 都提供了双向通信,包含输入和输出端口。
接口:控制台接口、局域网接口、广域网接口等;
整个路由器结构可分为两大部分:路由选择部分分组转发部分
分组转发部分由三个部分组成:交换结构一组输入端口一组输出端口



若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。

直接交付与间接交付


IP分组转发算法



例1


例2


例3



最长前缀匹配

因为里面可能存在着小地址块包含在大地址块里面的情况,所以,有可能找到的匹配项不止一项。
在多个匹配项中,究竟应该选哪个匹配项对应的下一跳路由器进行转发呢?
选择网络前缀最长的匹配项,因为前缀越长,地址块中地址数量越少,这样的路由就越具体。就称为最长前缀匹配

私有地址

IP地址资源是有限的,为了节约地址的使用,IANA保留了三块只能用于专用互联网内部通信的IP地址空间。

前缀最低地址最高地址
10/810.0.0.010.255.255.255
172.16/12172.16.0.0172.31.255.255
192.168/16192.168.0.0192.168.255.255

因特网的路由协议

互联网: 是由路由器连接的网络组合而成的,消息是由路由器进行传递转发的,路由器是根据路由控制表转发消息数据包。

路由协议: 是在路由器指导IP数据报发送过程中事先约定好的规定和标准,它创建了路由表,描述了网络拓扑结构。

路由协议+路由器: 路由协议与路由器协同工作,执行路由选择和数据包转发功能。

自治系统与路由选择协议分类

  • 从路由算法的自适应性(对网络变化的适应能力)考虑,路由算法可分为两类

    • 静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
    • 动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。
  • 因特网有两大类路由选择协议:

    • 内部网关协议(IGP, Interior Gateway Pro tocol)即在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。
    • 外部网关协议(EGP, External Gateway Protocol)即在自治系统之间交换网络可达性信息所用的路由选择协议。在外部网关协议中目前使用最多的是 BGP-4。

自治系统和内部网关协议、外部网关协议

内部网关协议RIP

  • 路由信息协议 RIP 是内部网关协议 IGP中最先得到广泛使用的协议。
  • RIP协议是一种分布式的基于距离向量的内部路由选择协议。
  • RIP协议是通过“距离”的定义,来实现对最短路径的寻找。它认为一个好的路由就是它通过的路由器的数目少,即“距离短”。

  • RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
  • 把从一路由器到直接连接的网络的距离定义为 1。规定“距离”最大值为16,相当于不可达。

RIP路由信息表的交换

RIP工作过程

内部网关协议OSPF

  • 开放式最短路径优先;“开放”表明它是公开发表的;
  • 最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法SPF。
  • 是一种分布式的链路状态协议,基于链路状态来选择最佳路线,使用洪泛法向本自治系统中所有路由器发送信息。

  • OSPF 对不同的链路可根据 IP 分组的不同服务类型 TOS而设置成不同的代价。
  • 可以将通信量分配给多条相同代价的路径;这叫作多路径间的负载平衡。
  • OSPF 规定每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。
  • 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。

OSPF工作过程

外部网关协议BGP

  • 运行TCP上的一种自治系统的路由协议
  • 唯一一个用来处理像因特网大小的网络的协议
  • 唯一能够妥善处理好不相关路由域间的多路连接的协议
  • 采用路径向量路由协议
  • 找到一条能够到达目的网络的且比较好的路由路径,并非一条最佳路由

外部网关协议BGP

路由协议特点总结

RIP协议

  • 基于距离向量的分布式路由选择协议
  • 只适用于小型网络,最大跳数为15
  • 不能同时使用多条路由
  • 每隔30秒向相邻路由器广播自己的整个路由表
  • 使用运输层的UDP进行传输消息
  • 工作在应用层

OSPF协议

  • 链路状态路由选择协议
  • 采用Dijkstra最短路径算法
  • 采用洪泛法来更新链路状态信息
  • 直接使用IP数据报来传送信息
  • 所有路由器都维持一个链路状态数据库
  • 工作在网络层

BGP路由协议

  • 路径向量协议,保存路径
  • 两个不同的自治系统之间交换信息
  • 需要用邻站可达性过程来维持
  • 工作在应用层

专用网络互连(VPN和NAT)

VPN

  • 专用网:企事业单位内部的网络。
  • 如果一个机构由分散的多个网点构成,为了保证私密性,一般采用“租用专线”的方法实现网点之间的互联互通和信息交换,但成本较高。
  • 虚拟专用网:利用公共网络(如 Internet)来构建的专用网络技术,保证了VPN中任何一对计算机之间的通信对外界是隐藏的。

VPN的编址

VPN所提供的编址选择与专用网络所提供的是一样的,可以根据需要选择

  • 本地地址——仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向因特网的管理机构申请
  • 全球地址——全球惟一的IP地址,必须向因特网的管理机构申请

IANA保留了三块只能用于专用互联网内部通信的IP地址空间[RFC1918]:

前缀最低地址最高地址
10/810.0.0.010.255.255.255
172.16/12172.16.0.0172.31.255.255
192.168/16192.168.0.0192.168.255.255

VPN的工作原理

VPN的实现主要使用了两种基本技术:隧道传输加密技术
VPN定义了两个网络的路由器之间通过Internet的一个隧道,并使用IP-in-IP封装通过隧道转发数据报。
为了保证保密性,VPN把外发的数据报加密后,封装在另一个数据报中传输。
隧道接收路由器将数据报解密,还原出内层数据报,然后转发该数据报。

用隧道技术实现VPN

NAT

本地编址的专用网络如何访问外网主机

  • 网络地址转换 NAT (Network Address Translation)方法于1994年提出,用来解决本地编址的内部网络与外网通信的问题。
  • 需要在专用网连接到因特网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球地址 IPG。
  • 所有使用本地地址的主机在和外界通信时都要在 NAT路由器上将其本地地址转换成 IPG 才能和因特网连接。

网络地址转换NAT



下一代网际协议IPv6

  • 从计算机本身发展以及从因特网规模和网络传输速率来看,现在 IPv4 已很不适用。
  • 最主要的问题是 32 bit 的 IP 地址不够用。
  • 解决 IP 地址耗尽的问题的措施:

    采用无类别编址 CIDR,使 IP 地址的分配更加合理;
    采用子网技术,实现相同网络地址在不同物理网络之间的复用;
    采用网络地址转换 NAT方法以节省全球 IP 地址;
    采用具有更大地址空间的新版本的 IP 协议 IPv6。

IPv6主要变化

  • 更大的地址空间。IPv6 将地址从 IPv4 的 32 bit 增大到了 128 bit
  • 扩展的地址层次结构
  • 灵活的首部格式
  • 改进的选项
  • 允许协议继续扩充
  • 支持即插即用(即自动配置)
  • 支持资源的预分配

IPv6数据报格式- IPv4 与IPv6首部变化

IPv6数据报格式

  • 通信量类(traffic class)—— 8 bit。这是为了区分不同的IPv6 数据报的类别或优先级。目前正在进行不同的通信量类性能的实验。
  • 流标号(flow label) — 20 bit。“流”是互联网络上从特定源点到特定终点的一系列数据报,“流”所经过的路径上的路由器都保证指明的服务质量。所有属于同一个流的数据报都具有相同的流标号。
  • 有效载荷长度(payload length)—— 16 bit。它指明 IPv6 数据报除基本首部以外的字节数(所有扩展首部都算在有效载荷之内),其最大值是 64 KB。
  • 下一个首部(next header)—— 8 bit。它相当于 IPv4 的协议字段或可选字段。
  • 跳数限制(hop limit)—— 8 bit。源站在数据报发出时即设定跳数限制。路由器在转发数据报时将跳数限制字段中的值减1。当跳数限制的值为零时,就要将此数据报丢弃。
  • 源地址—— 128 bit。是数据报的发送站的 IP 地址。
  • 目的地址—— 128 bit。是数据报的接收站的 IP 地址

首部变化

  • 取消了v4的首部长度字段,v4中的数据报总长度字段被有效载荷长度字段所取代
  • 源、目的地址由4字节增大到16字节
  • 分片有关字段被转移到了“分片扩展首部”
  • 生存时间字段改名为跳数限制(hop limit)字段
  • 服务类型字段改名为通信量类别字段,增加流标号字段,用于资源预分配
  • 协议字段由指明后续内容格式的下一首部字段替代,注意下一首部可能是IPv6数,据报的扩展首部,也可能是ICMP、TCP、UDP、IGMP、OSPF等首部

扩展首部

  • IPv6 将原来 IPv4 首部中选项的功能都放在扩展首部中,并将扩展首部留给路径两端的源站和目的站的主机来处理。
  • 数据报途中经过的路由器都不处理这些扩展首部(只有一个首部例外,即逐跳选项扩展首部)。
  • 这样就大大提高了路由器的处理效率。

IPv6编址方案-地址分类

IPv6 数据报的目的地址可以是以下3种基本类型地址之一:

  • 单播(unicast) :单播就是传统的点对点通信。
  • 组播(multicast) :组播是一点对多点的通信。
  • 任播(anycast) :这是 IPv6 增加的一种类型。任播的目的站是一组计算机,但数据报在交付时只交付给其中的一个,通常是距离最近的一个。

IPv6编址方案-地址表示

  • 每个 16 bit 的值用十六进制值表示,各值之间用冒号分隔。
    例如:68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
  • 零压缩(zero compression),即一连串连续的零可以为一对冒号所取代。
    例如:FF05:0:0:0:0:0:0:B3 可以写成:FF05::B3
  • 一个IPv6地址中,零压缩只能使用一次

从IPv4到IPv6过渡

  • 向 IPv6 过渡只能采用逐步演进的办法。
  • 在过渡阶段,能够利用IPv4网络实现IPv6主机之间的通信,支持IPv4系统和IPv6系统之间的通信。
  • 双协议栈(dual stack)是指在完全过渡到 IPv6 之前,使一部分主机(或路由器)装有两个协议栈,一个 IPv4 和一个IPv6。
  • 隧道技术

从IPv4到IPv6过渡- 双协议栈
从IPV4到IPV6过渡- 双协议栈-2

从IPV4到IPV6过渡- 隧道技术

本章知识要点

  • 了解网络互连的需求;
  • 掌握IP地址的分类,理解IP地址的分配;
  • 理解并会分析IPv4数据报的格式,掌握数据报分片的计算;
  • 理解和IP配套的两个协议:地址解析协议ARP和因特网控制报文协议ICMP;
  • 掌握子网划分技术和无分类编址方案;
  • 掌握IP分组在各种编址情况下的转发机制;
  • 理解因特网中路由协议的分类以及路由协议的工作原理;
  • 了解虚拟专用网VPN的工作原理以及实现网络地址转换NAT所采用的方法;
  • 了解IP协议的发展,掌握IPv6的主要特点;

传输层

传输层

端口及套接字

传输层编址

传输层的复用和分用

常用应用进程默认的端口
常用应用进程默认的端口-2

端口:应用层进程的标识

套接字

无连接服务和面向连接服务

无连接服务和面向连接服务

设置传输层的必要性

IP只是送到对应的主机,但是一个主机会有多个进程,传输层就是将对应的数据传输到对应的应用进程

UDP协议

UDP在IP之上增加了端口复用分用和差错控制功能

UDP特点TCP特点
无连接面向连接的
不可靠的服务可靠的服务
点到点和多点通信点到点的通信
首部8字节首部固定部分20字节
面向报文面向字节流


UDP协议格式

UDP实例

协议名称协议默认端口使用UDP协议原因说明
域名系统DNS53为了减少协议的开销
动态主机配置协议DHCP67需要进行报文广播
简单文件传输协议TFTP69实现简单,文件需同时向许多机器下载
简单网络管理协议SNMP161网络上传输SNMP报文的开销小
路由选择信息协议RIP520实现简单,路由协议开销小
实时传输协议RTP5004因特网的实时应用
实时传输控制协议RTCP5005因特网的实时应用

UDP校验

UDP校验

TCP协议

TCP报文格式

序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。
确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。
确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效
同步SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是一个连接请求报文段。若同意连接,则在响应报文段中使得SYN=1,ACK=1。因此,SYN=1表示这是一个连接请求,或连接接受报文。SYN这个标志位只有在TCP建产连接时才会被置1,握手完成后SYN标志位被置0。
终止FIN:用来释放一个连接。FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接
PS:ACK、SYN和FIN这些大写的单词表示标志位,其值要么是1,要么是0;Ack、Seq小写的单词表示序号。

标志位的含义

三次握手和四次挥手

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

三次握手

第三次握手是为了防止:如果客户端迟迟没有收到服务器返回确认报文,这时会放弃连接,重新启动一条连接请求,但问题是:服务器不知道客户端没有收到,所以他会收到两个连接,浪费连接开销。如果每次都是这样,就会浪费多个连接开销
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

1.TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。
2.服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
3.服务器关闭客户端的连接,发送一个FIN给客户端。
4.客户段发回ACK报文确认,并将确认序号设置为收到序号加1。

四次挥手

tcp请求到结束

SYN Flood攻击的过程在TCP协议中被称为三次握手(Three-way Handshake),而SYN Flood拒绝服务攻击就是通过三次握手而实现的。TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后(大概30秒到2分钟)丢弃这个未完成的连接, 这段时间就是SYN Timeout。服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。

三次不可达

分布式拒绝服务攻击采取的攻击手段就是分布式的,在攻击的模式改变了传统的点对点的攻击模式,使攻击方式出现了没有规律的情况,而且在进行攻击的时候,通常使用的也是常见的协议和服务,这样只是从协议和服务的类型上是很难对攻击进行区分的。在进行攻击的时候,攻击数据包都是经过伪装的,在源IP 地址上也是进行伪造的,这样就很难对攻击进行地址的确定,在查找方面也是很难的。这样就导致了分布式拒绝服务攻击在检验方法上是很难做到的。

MSS = TCP报文段长度 - TCP首部长度
TCP数据部分的最大长度

TCP可靠传输

序号确认机制

序号确认机制

若收到的报文段无差错,只是未按序号,那么应如何处理?

  • 将不按序的报文段丢弃;
  • 先将其暂存于接收缓冲区内,待所缺序号的报文段收齐后再一起上交应用层。

超时重传机制

超时重传时间RTO公式:

1
RTO = RTT + 4× RTTD

往返时延RTT公式:

1
2
RTTnew = RTTsample (第一次测量得到的RTT样本值)
RTTnew = α×RTTold +(l-α)×RTTsample(第二次以后的测量)

定时器

  • 重传定时器
  • 持续定时器
  • 保活定时器
  • 时间等待计时器

详解

TCP流量控制

所谓的流量控制就是让发送方的发送速率不要太快,让接收方来得及接受。利用滑动窗口机制可以很方便的在TCP连接上实现对发送方的流量控制。TCP的窗口单位是字节,不是报文段,发送方的发送窗口不能超过接收方给出的接收窗口的数值。

流量控制

TCP拥塞控制

  • 拥塞控制的基本功能是避免网络发生拥塞,或者缓解已经发生的拥塞
  • 为了进行有效的拥塞控制,需要通过拥塞窗口cwnd(congestionwindow)来进行衡量网络的拥塞程度
  • 发送窗口的取值依据拥塞窗口和接收窗口中的较小的值,即 Min[rwnd,cwnd]
  • rwnd在流量控制中已阐述,在下文中将只关注cwnd。


详解

主机甲向主机乙发送一个(SYN = 1, Seq = x)的TCP段,期望与主机乙建立TCP连接,若主机乙接受该连接请求,则主机乙向主机甲发送的正确的TCP段可能是 SYN = 1, ACK = 1, Seq =y , Ack =x+1

主机甲与主机乙之间建立一个TCP连接,主机甲向主机乙发送了两个连续的报文段,分别包含300字节和500字节的有效载荷,第一个报文段的序号为200,主机乙正确接收到两个段后,发送给主机甲的确认号为 1000

小结

IP数据报前40个字节的内容(16进制数)
IP数据报前40个字节的内容(16进制数)-2
IP数据报前40个字节的内容(16进制数)-3

网络基本服务

域名解析

  • 域名系统是因特网使用的命名系统,完成域名解析,将域名解析到特定的IP地址。
  • DNS采用客户/服务器应用模式,其核心是分级的、基于域的命名机制以及实现该命名机制的分布式数据库系统。
  • 域名解析是由若干个域名服务器程序完成的。域名服务器程序在专设的节点上运行,运行该程序的节点称为域名服务器。

因特网的域名结构

  • 因特网采用了层次树状结构的命名方法。
  • 任何一个连接在因特网上的主机或路由器,都有一个惟一的层次结构的名字,即域名。
  • 域名的结构由若干个分量组成,各分量之间用点隔开: … .三级域名.二级域名.顶级域名
  • 各分量分别代表不同级别的域名。

顶级域名(Top Level Domain, TLD)

域名解析过程

因特网允许各个单位根据具体情况将本单位的域名划分为若干个域名服务器管辖区(zone),并在各管辖区中设置相应的授权域名服务器。

递归查询
迭代与递归相结合的查询

远程登录(Telnet)

  • 远程登录是因特网的基本应用服务之一,采用客户机/服务器模式。
  • 用户可以使用Telnet登录到远地的另一台主机上。
  • Telent能将用户的击键传到远程主机,同时也能将远程主机的输出通过TCP连接返回到用户屏幕。
  • 远程桌面(RDP)就是在TELNET技术上发展起来的。

TELNET使用网络虚拟终端NVT格式


文件传输协议(FTP)

  • FTP(File Transfer Protocol)是 Internet 上使用得最为广泛的文件传送协议。FTP提供交互式的访问,允许客户上传文件到服务器或者从服务器下载文件。
  • FTP屏蔽了各个计算机系统的差异,适合在异构计算机之间传送文件。
  • 文件传输协议 FTP 基于TCP,采用客户/服务器模式,提供文件传送基本网络服务。
  • 一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 服务器包括两部分:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。

FTP模型

FTP服务器主进程的工作步骤

  • 打开熟知端口(端口号为21),使客户进程能够与服务器建立连接。
  • 等待客户进程发出连接请求。
  • 启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。
  • 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。

FTP服务的两个连接

FTP 使用的两个 TCP 连接

  • “控制连接”在整个会话期间一直保持打开,FTP 客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件。
  • 实际用于传输文件的是“数据连接”。服务器端的控制进程在接收到 FTP客户发送来的文件(及目录列表等)传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。
  • 数据传送进程实际完成文件等数据的传送,在传送完毕后关闭“数据传送连接”。

FTP服务的两个熟知端口号

  • 客户进程与服务器进程使用的熟知端口21建立控制连接。
  • 需要传输数据时,客户进程会告诉服务器进程自己的“监听”端口,用于建立数据连接。服务器进程用自己传送数据的熟知端口20与客户进程所提供的端口建立数据连接。
  • FTP使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。
  • 使用两个独立连接的主要特点:使协议更加简单和容易实现;在传输文件时还可以利用控制连接(例如,客户发送请求终止传输)。
  • TCP依靠两个端点标识一个连接,因此主进程创建从属进程时,可以不使用临时端口。即服务器可以使用21、20端口建立多个控制连接和数据连接。
-------------本文结束感谢您的阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!
0%