TCP IP 详解卷1:协议

走远了吗. 提交于 2019-12-15 00:25:01


目录

1.术语解释
2.体系结构原则
3.互联网的组成
3.1核心部分
3.1.1数据交换
3.1.2复用技术
3.1.3虚电路与数据报
3.1.4端到端论点
3.1.5差错控制和流量控制
3.2边缘部分
3.2.1网络应用的设计
4.设计与实现
4.1分层
4.2复用,分解,封装
4.3OSI模型与TCP/IP模型对照
5.标准化进程
6.与Internet体系结构相关的攻击
1.术语解释
协议族: 一系列相关协议的集合
协议族的体系结构或参考模型: 指定一个协议族中的各种协议之间的相互关系并划分需要完成的任务的设计
因特网(Internet): 因特网是一个拥有遍布全球的大约20亿用户(2010年,占全球人口的30%)的广域网
2.体系结构原则
Internet体系结构在几个目标的指导下建立。首要目标是“发展一种重复利用已有的互联网的技术”。其本质即,Internet体系结构应该将多种网络互联起来,并在互联的网络上同时运行多个应用。
基于这个首要目标,Clark提供了以下二级目标列表:

Internet通信在网络或网关失效时必须能持续。
Internet必须支持多种类型的通信服务。
Internet体系结构必须兼容多种网络。
Internet体系结构必须允许对其资源的分布式管理。
Internet体系结构必须是经济有效的。
Internet体系结构必须允许低能力主机的连接。
Internet中使用的资源必须是可统计的。
可以简单的理解为:稳定、多样、多元、分布、简单、资源可统计

3.互联网的组成
互联网由边缘部分和核心部分组成

边缘部分:就是连接在因特网上的所有的主机。边缘部分利用核心部分提供的服务,使众多主机之间能够互相通信并交换信息或共享信息
核心部分:网络中的核心部分由许多路由器实现互连,向网络边缘中的主机提供连通性,使边缘部分中的任何一个主机都能够向其他主机通信

3.1核心部分
网络的核心部分就是在进行数据交换,这里提及几个概念以对网络核心有一些基本认知

3.1.1数据交换
互联网的核心部分就是在进行数据交换
网络中数据交换的三种方式:

电路交换
报文交换
分组交换

3.1.1.1电路交换
此种方式在通信之前需要在通信的双方间建立成一条被双方独占的物理通道。这个通道是由双方间的交换设备和链路逐段连接而建成的

优点:

通信现类双方独占,数据直达,传输延时小,实时性高
双方顺序发送,包装数据时序性
可以传输模拟信号,也可以传输数字信号
控制简单
缺点:

建立连接需要一定的时间
物理x通道独占,其他用户无法使用,使用率低
不同类型、速率的终端难以通信、很难控制差错
3.1.1.2报文交换
以报文为基本单位,报文携带有目标地址、源地址等信息,在交换节点采用存储转发的方式
类似快递

优点:

不需要建立通信线路,用户随时可以发送报文

通信双方不固定占有一条线路,线路利用率相对电路交换得到提高

数据进行整份报文的存储转发,加大时延,实时性较差

只使用数字信号,因为模拟信号很难直接转储

报文没有长度限制,要求z存储转发节点有足够的缓冲空间

3.1.1.3分组交换
将报文分割成若干组,逐个将分组发送出去,仍然采用存储转发的方式

优点:

传输粒度更小,提高了网络的线路利用率
降低了存储时间,减少网络延时
存储转发节点只需要固定大小的缓冲区
减少了出错机率与重复的数据量,不需要整个报文重复
分组策略,可以结合优先策略,发送一些紧急数据
缺点:

时序问题,分组丢失问题
转发延时
每个组需要加入附加信息,加大了信息量,降低了通信效率,增加了处理时间
3.1.1.4三种数据交换方式比较

小结:

电路交换适于报文长且数据量大,实时性要求很高的数据通信
分组交换适于报文短的数据通信
3.1.2复用技术
多路复用技术是在发送端将多路信号进行组合(如广电前端使用的混合器),在一条专用的物理信道上实现传输,接收端再将复合信号分离出来。
多路复用技术主要有两大类:频分多路复用(即频分复用)和时分多路复用(即时分复用),波分复用和统计复用本质上也属于这两种复用技术。另外还有其他复用技术,如码分复用、极化波复用和空分复用。

频分复用(FDM,Frequency Division Multiplexing)
时分复用(TDM,Time Division Multiplexing)
码分复用(CDM,Code Division Multiplexing)
波分复用(WDM,Wavelength Division Multiplexing)
3.1.2.1频分复用
用于传输信道的总带宽划分成若干个子频带(或称子信道),每一个子信道传输1路信号。频分复用要求总频率宽度大于各个子信道频率之和,同时为了保证各子信道中所传输的信号互不干扰,应在各子信道之间设立隔离带,这样就保证了各路信号互不干扰(条件之一)。
频分复用技术的所有子信道传输的信号以并行的方式工作,每一路信号传输时可不考虑传输时延。

3.1.2.2时分复用
时分复用是采用时间分片的方式来实现传输信道的多路复用,也就是说每一路信号传输都使用信道的全部带宽,但它只是使用其中的某个时隙

视频中的例子将时间划分为一个个等长的周期,称为时分复用帧,有四个用户进行时分复用,在第一个周期里A、B两个用户有数据发送,第二个周期中B、C两个用户有数据,第三个周期中只有C用户有数据发送,第四个周期A、D两个用户有数据发送

时分复用的利用率问题:当某用户暂时没有数据发送,在TDM帧中分配给该用户的时隙只能处于空闲状态,其他用户无法占用,这导致复用后的信道利用率不高。针对这个问题,在时分复用的基础上改进得到统计时分复用。

统计时分复用是一种改进的时分复用,它能够显著的提高信道利用率,集中器常在实现时被使用。他使用STDM帧来传送复用的数据。但是每一个STDM帧中的时隙数目比链接在集中器上的用户数目要少。用户一旦有了数据就发往集中器输入缓存,集中器会按顺序扫描输入缓存把输入数据放到STDM帧中。对于没有数据的缓存就跳过去,一旦帧满就发送。该小段节选自原文链接

3.1.2.3码分复用
靠不同的编码来区分各路原始信号的一种复用方式,主要和各种多址技术结合产生了各种接入技术,包括无线和有线接入。

码分多址CDMA,在CDMA中,每一个比特的时间再划分为m个短间隔,称为码片,一般设为64或128,一个站如果发送1,用自己的m bit码片序列,如果发送0,用m码片序列的反码。如果想达到 b bit/s的信息数据率,实际发送数据率微 mb bit/s

三种复用的对比图

3.1.3虚电路与数据报
虚电路和数据报都是互联网中进行数据传输的方式。虚电路是面向连接的,在数据报未发展前,无论是建立在线路还是交换的基础上,面向连接的网络是最流行的方式。在20世纪60年代后期,数据报作为另一种可选方案而得到发展。

3.1.3.1虚电路
一条完整的虚电路应该包括:

源主机和目的主机之间的路径,包括其间的一系列链路和路由器
VC(virtual circuit)号
该路径上每台路由器的转发表
虚电路的生命周期(3个阶段):

虚电路建立
数据传送
虚电路删除

在建立阶段发送运输层与网络层协议,指定接收方地址,等待虚电路的建立。网络层决定了发送方和接收方之间的路径,即该虚电路包含了的一系列链路和路由器。为该路径上的每条链路分配VC号。在路径上的每台路由器的转发表中增加一个表项。
每台路由器的转发表包括了VC号的转换【入接口,入VC号,出接口,出VC号】,一条虚电路的分组将在首部携带一个VC号。

端系统向网络发送指示虚电路启动与终止的报文,以及路由器之间传递的用于建立虚电路(即修改路由器表中的连接状态)的报文,被称为信令报文,用来交换这些报文的协议称为信令协议

3.1.3.2数据报
有关来源和最终目的地的所有识别信息都位于分组中(而不是路由器中),这通常需要较大的数据包,但它不需要再路由器中维护连接状态,可用于建立一个无连接的网络,因而没必要使用复杂复杂的信令协议。

3.1.3.3消息边界(记录标记)
保护消息边界,就是指传输协议把数据当作一条独立的消息在网上 传输,接收端只能接收独立的消息.也就是说存在保护消息边界,接收端一次只能接收发送端发出的一个数据包.
而面向流则是指无保护消息保护边界的,如果发送端连续发送数据, 接收端有可能在一次接收动作中,会接收两个或者更多的数据包.

3.1.4端到端论点
端到端原则是一种分布式系统中各模块间功能定位的设计原理,指从代价和性能的角度分析,在网络的最核心的部分应该只做数据的传输而不能去做一些其他的应用,而数据是否正确传输则应该放到应用层去检查和判断,从而保证互联网核心的简单性、可维护性和可扩展性。

在Internet中存在的一个矛盾是:哪些功能在网络中实现,哪些功能不在网络中实现。

端到端的论点指出, 应该尽可能地避免将应用层的部分功能放在网络的核心实现。将应用程序特定功能从网络核心移出并仅在网络核心处提供通用的系统服务.该节节选自原文连接

端到端的论点倾向于**“哑”网络和连接到网络的“智能”系统**的设计方案
当今的网络环境和新型应用场景和需求已发生变化,端到端原则面临挑战,端到端原则正在发展和改进,以适应新需求和新的网络环境。

这里提及一下命运共享原则的概念,命运共享建议将所有必要的状态放在***一个通信端点***上,这些状态用于维护一个活动的通信关联(例如虚拟连接)

###3.1.5差错控制和流量控制
差错控制:在网络中存在数据损坏或丢失的情况。对这种错误的处理称为差错控制。
流量控制:在网络中发送方能以超过接收方处理能力的速度生成信息,可能造成网络拥堵,通过降低发送方的发送速度可以缓解或解决网络拥堵。

3.2 边缘部分
网络的边缘部分存放是的网络中的资源

3.2.1网络应用的设计
网络应用的典型结构基于少数几种模式。最常见的模式是客户端/服务端模式和对等模式
####3.2.1.1客户端/服务端
大多数网络应用被设计为一端为客户端,另一端为服务端。服务端为客户端提供服务。
我们可以将服务器分为两类:迭代和并发。

迭代服务器经过以下步骤:
I1. 等待客户机请求到达
I2. 处理客户机请求
I3. 将响应发送给请求的客户机
I4. 回到步骤I1

并发服务器经过以下步骤:
C1. 等待客户机请求到达
C2. 启用一个新服务器实例来处理客户就请求。这可能会涉及到创建一个新的进程、任务或线程,它依赖于底层操作系统的支持。同时,原有服务器实例继续执行C3
C3. 回到步骤C1

####3.2.1.2对等
有些应用会以更加分布式的形式设计,其中没有专门的服务器。每个应用既是客户机,又是服务器,有时同时是两者,并能转发请求。这种模式称为对等或P2P应用。

并发的P2P应用接收到传入的请求,确定它是否能响应这个请求,如果不能,将这个请求转发给其他对等方。一组P2P应用可以共同形成一个应用网络,也称为覆盖网络。

P2P网络中存在一个主要问题就是发现服务。这意味着:一个对等方如何在一个网络中发现提供它所需的数据或服务的其他对等方,以及可能进行交互的那些对等方的地址和端口号?
它的一个常见的解决方法是:由一个引导程序来处理,以便每个客户机在最初配置中使用它所需的对等方的地址和端口号。一旦连接成功,新的参与者向其他活跃的对等方发出请求,并根据协议获得对等方提供的服务或文件。

4.设计与实现
通常会建议使用一种特点的方法实现一个协议体系结构,但这也不应该是强制的。所以通常将协议体系结构和实现体系结构加以区分。

##4.1分层
互联网中一定会提到两种分层模型,一个是由ISO组织建议的OSI(开放系统互连标准)模型,另一个是TCP/IP协议模型。虽然TCP/IP模型是实际上的标准,但是来自ISO协议族的一些思想,已被应用于TCP/IP中。

直接上图,不进一步解释了
OSI七层模型

TCP/IP模型

4.2复用,分解,封装

封装

4.3OSI模型与TCP/IP模型对照
OSI中的层    功能    TCP/IP协议族
应用层    文件传输,电子邮件,文件服务,虚拟终端    TFTP、HTTP、SNMP、FTP、SMTP、DNS、Telnet
表示层    数据格式化,代码转换,数据加密    没有协议
会话层    解除或建立与别的接点的联系    没有协议
传输层    提供端对端的接口    TCP、UDP
网络层    为数据包选择路由    IP、ICMP、OSPF、BGP、IGMP 、ARP、RARP
数据链路层    传输有地址的帧以及错误检测功能    SLIP、PPP、MTU
物理层    以二进制数据形式在物理媒体上传输数据    ISO2110、IEEE802、IEEE802.2
#5.标准化进程
首先知道几个组织:

Internet工程任务组(IETF)
电气和电子工程师学号(IEEE):关注第三层以下标准
万维网联盟(W3C):关注应用层协议
国际电信联盟(ITU):关注电话和蜂窝网

知道RFC
————————————————
版权声明:本文为CSDN博主「q30320557」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kjkkj1/article/details/103540730

欢迎使用Markdown编辑器

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;

  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;

  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;

  4. 全新的 KaTeX数学公式 语法;

  5. 增加了支持甘特图的mermaid语法1 功能;

  6. 增加了 多屏幕编辑 Markdown文章功能;

  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;

  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command+Z
重做:Ctrl/Command+Y
加粗:Ctrl/Command+B
斜体:Ctrl/Command+I
标题:Ctrl/Command+Shift+H
无序列表:Ctrl/Command+Shift+U
有序列表:Ctrl/Command+Shift+O
检查列表:Ctrl/Command+Shift+C
插入代码:Ctrl/Command+Shift+K
插入链接:Ctrl/Command+Shift+L
插入图片:Ctrl/Command+Shift+G
查找:Ctrl/Command+F
替换:Ctrl/Command+G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片: Alt

带尺寸的图片: Alt

居中的图片: Alt

居中并且带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted blockvar foo = 'bar';

生成一个适合你的列表

  • 项目

    • 项目

    • 项目

  1. 项目1

  2. 项目2

  3. 项目3

  • 计划任务

  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目Value
电脑$1600
手机$12
导管$1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列第二列第三列
第一列文本居中第二列文本居右第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPEASCIIHTML
Single backticks'Isn't this fun?'‘Isn’t this fun?’
Quotes"Isn't this fun?"“Isn’t this fun?”
Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

创建一个自定义列表

  • Markdown

  • Text-to-HTMLconversion tool

  • Authors

  • John

  • Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ(n)=(n1)!nN\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N 是通过欧拉积分

Γ(z)=0tz1etdt.\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

Mon 06Mon 13Mon 20已完成进行中计划一计划二现有任务Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:

张三李四王五你好!李四, 最近怎么样?你最近怎么样,王五?我很好,谢谢!我很好,谢谢!李四想了很长时间,文字太长了不适合放在一行.打量着王五...很好... 王五, 你怎么样?张三李四王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.2.0开始我的操作确认?结束yesno
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!