TCP/IP 笔记 - 概述

Effective communication depends on the use of a common language.

有效沟通取决于使用共同的语言 。

 

TCP/IP协议族

一系列相关协议的集合被称为一个协议族。指定一个协议族中的各种协议之间的相互关系并划分需要完成的任务的设计,称为协议族的体系结构或参考模型。而TCP/IP则是一个实现Internet体系结构的协议族,它来源于ARPANET参考模型。标准的TCP/IP实现来自加州大学伯克利分校计算机系统研究组(CSRG),它们通过4.xBSD系统发布,直到20世纪90年代中期才出现BSD网络发布版。

体系结构原则

Internet体系结构在以下几个目标的指导下建立:

  · 发展一种重复利用已有的互联网络的技术(首要目标);

  · Internet通信在网络或网关失效时必须能持续(二级目标);

  · Internet必须支持多种类型的通信服务(二级目标);

  · Internet体系结构必须兼容多种网络(二级目标);

  
· Internet体系结构必须允许对其资源的分布式管理(二级目标);

  
· Internet体系结构必须是经济有效的(二级目标)
;

  · Internet体系结构必须允许低能力主机的连接(二级目标);


  · Internet中使用的资源必须是可统计的(二级目标)。

简单的通信模型

早期的网络(电话网络),针对一次通信中连接双方而设计,比如A和B通信,则A和B之间会建立一条线路(最初的物理电路);且这条连接中会提供一定数量的带宽和容量用以传输信息。

以传统问候语为例:

分组交换思想

通信过程中以`分组`为单位来传输,使用存储-转发机制实现数据交互,这是分组交换。来自不同源的数据块组合成一个数据分组,在`处理设备`(交换机/路由器)接收到数组分组之后又可将其分解,称为多路复用。分组在到达目的地的过程中需要在交换设备之间传输,并且路径可以改变。

这样做的好处是:

  1. 网络更具有弹性;

  2. 高效利用网络链路和交换设备提高传输效率。

对于`处理设备`而言,最简单的分组处理调度方式符合`先到达先服务`规则,称为先进先出(FIFO),这玩意也是Internet中用来处理不同来源的混合流量的主要方法。

如图(摘自百度百科)

数据报

数据报是一个特定类型的分组,有关来源和最终目的地的所有识别信息都位于分组中。可用于建立一个无连接的网络,并且没必要使用复杂的信令协议。在数据报协议中存在消息边界,而在底层协议中并不保留消息边界,如果应用程序有需要它的情况,则须自行提供对应功能。

端到端论点和命运共享

端到端论点是影响TCP/IP协议族设计的重要原则之一,该原则认为重要功能(例如差错控制、加密、交付确认)通常不会在大型系统的低层实现。但是,低层可以提供方便端系统工作的功能,并最终可能改善性能。而选择哪些功能在同一计算机、网络或软件栈中实现,这是另一个称为命运共享的相关原则。

命运共享是一种通过虚拟连接(例如,由TCP实现)维持活动的设计理念,它建议将所有必要的状态放在通信端点,这些状态用于维护一个活动的通信关联。

上述两点均可理解为着重保证网络通信能力的健全。

差错控制和流量控制

差错控制是指对网络中存在数据损坏或丢失的情况进行的处理措施;流量控制是指对网络数据流量进行控制的处理措施。它们与端到端论点一致(如TCP在端主机中实现速率控制),也与命运共享一致(在网络基础设施中有些单元失效的情况下,不会影响网络设备的通信能力)。

设计和实现

实现体系结构定义了协议体系结构中的概念如何用于软件形式的实现。通俗的理解,实现体系结构也就是:将软件的实现分为几个阶段(层次),各个协议分别需要在软件的哪些地方(哪个阶段/层次)被使用。采用分层是有益的,它允许开发人员分别实现系统的不同部分,它们通常由在不同领域的专业人员完成。

OSI模型(Open System Interconnection)

比较基础也比较有名的OSI七层模型:

基于OSI分层实现的数据封装 

每一层都有自己的消息对象概念(协议数据单元,PDU),并且对于上一层(或下一层)的PDU不做解释(即图中被当做不透明数据)只管封装(或拆解)。在每一层,最常见的处理是在获得的PDU外增加自已的标识符信息,有些是增加在头部,有些协议是增加在尾部。

TCP/IP协议族结构

TCP/IP协议分层 

基于TCP/IP协议分层的数据封装

传入的数据经过一层层的剥离,每层分别除去自己层所需的数据报头部以决定数据报下一步该派发给哪个协议处理、或者做数据报错误检测等,最终成功后剩下数据给应用处理后反馈到用户。

端口号 

端口号是16位非负整数(0~65535)。每个IP地址有65536个可用的端口号,每个传输协议可使用这些端口号 (在大多数情况下),它们被用于确定正确的接收数据的具体服务。标准的端口号由Internet号码分配机构(IANA)分配:包括熟知端口号(0~1023);注册端口号(1024~49151);动态/私有端口号(49152~65535)。

熟知端口如安全外壳协议(SSH,端口22)、FTP (端口20和21)、Telnet远程终端协议(端口23)、电子邮件/简单邮件传输协议(SMTP,端口25)、域名系统(DNS,端口53)、超文本传输协议或Web(HTTP和HTTPS,端口80和443)、交互式邮件访问协议(IMAP和IMAPS,端口143和993)、简单网络管理协议 (SNMP,端口161和162)、轻量级目录访问协议(LDAP,端口389)。

内联网、外联网

Internet (因特网)已发展成为由很多网络互联起来的网络集合。小写字母开头的Internet表示使用常见协议族互联的多个网络;大写字母开头的Internet表示可使用 TCP/IP通信的世界范围的主机集合。

内联网(内网):通常由一个商业机构或其他企业来运行。大多数情况下,内联网提供的访问资源只供特定企业的成员使用,用户可使用虚拟专用网(VPN)连接到(例如企业)内联网,VPN有助于保证内联网中潜在的敏感资源只供授权用户访问,它通常使用隧道概念。

外联网(外网):一个企业或商业机构可能希望建立一个网络,其中包含可供合作伙伴或其他相关公司通过Internet访问的服务器,这种涉及VPN的网络通常被称为外联网,由连接在提供服务的企业防火墙之外的计算机组成 。

内网外网的简单理解:由路由器区分,路由器以内是内网,路由器以外是外网;内网IP是内部自行分配的'身份认证',外网是Internet网中对你的'身份认证'。

设计应用

本文所述的网络概念提供了一个简单的服务模型:在运行于不同(或相同)计算机上的程序之间传输数据。然而提供该服务还需使用网络应用(服务的提供者)。 网络应用最常见的 模式是客户机/服务器模式和对等模式。

客户机/服务器模式被设计为一端是客户机,而另一端是服务器。且服务器分为两类:迭代和并发。

对等模式下没有专门的服务器。每个应用既是服务器又是客户端,有时又同时是两者。

标准化进程

有了这些协议,也总得了解下是谁来负责各协议的制定和标准,以及它们如何运作。

Internet工程任务组(IETF):据说(书上说的,没参加过,2333)每年在世界不同地点举行3次会议,以便开发、讨论和通过Internet 的“核心”协议标准。

Internet研究任务组(IRTF):讨论那些没有成熟到足以形成标准的协议、体系结构和程序。

RFC:Internet社会中的每个官方标准都以一个RFC (征求意见)的形式发布。不是所有RFC都是标准,只有标准跟踪类别的RFC被认为是官方标准。其他类别包括当前最佳实践(BCP)、信息、实验和历史。重要的是,一个文件成为一个RFC并不意味着IETF已采纳它作为标准。许多RFC具有特殊意义:它们总结、澄清或解释其他一些特殊标准。

其他标准:一些重要的组织包括电气和电子工程师学会(IEEE)、万维网联盟(W3C) 以及国际电信联盟(ITU) 定义的协议同样值得注意。

小结

在TCP/IP中,网络层和传输层之间的区别至关重要:网络层(IP)提供了一个不可靠的数据报服务,必须由Internet中所有可寻址的系统来实现,而传输层(TCP和UDP)为端主机上运行的应用程序提供了端到端服务。主要的传输层协议有根本性的差异:TCP提供了带流量控制和拥塞控制的有序、可靠的流交付;除了用于多路分解的端口号和错误检测机制之外,UDP提供的功能基本没有超越IP,但是与TCP不同,UDP支持组播交付。

互联网络( intenret)是一个网络集合,其中最常见的基本设备是路由器,它被用于在IP层连接多个网络。

 

参考:

《TCP IP 详解卷1:协议》

RFC官方文档

posted @ 2019-01-13 21:54  野兽'  阅读(997)  评论(1编辑  收藏  举报