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官方文档

TCP/IP 笔记 - 概述的更多相关文章

  1. TCP/IP协议栈概述

    TCP/IP协议栈概述 这篇文章虽然只是很粗浅的介绍了ISO/OSI 网络模型,但确实把握住了关键点,某种意义上,简单回顾一下就可以加深对TCP/IP协议栈的理解. 原作者:阮一峰 链接: http: ...

  2. 嵌入式linux的网络编程(1)--TCP/IP协议概述

    嵌入式linux的网络编程(1)--TCP/IP协议概述 1.OSI参考模型及TCP/IP参考模型 通信协议用于协调不同网络设备之间的信息交换,它们建立了设备之间互相识别的信息机制.大家一定都听说过著 ...

  3. TCP/IP笔记 一.综述

    1. TCP/IP分层 TCP/IP 是四层的体系结构:应用层.运输层.网际层和网络接口层,如下图: OSI协议是国际标准的网络协议,但是由于OSI的实用性等问题造成OSI没有流行起来.目前国际上广泛 ...

  4. TCP/IP笔记 二.网络层(1)

    1. IP 1.1 配套协议 IP 是 TCP/IP 体系中两个最主要的协议之一 . 与 IP 协议配套使用的还有四个协议:   (1)ARP (Address Resolution Protocol ...

  5. TCP/IP笔记(二)TCP/IP简介

    上回,主要介绍了下协议和OSI参考模型,并简单了解下网络构成要素,这回该说说TCP/IP了 互联网与TCP/IP的关系   互联网进行通信时,需要相应的网络协议,TCP/IP原本就是为使用互联网而开发 ...

  6. TCP/IP笔记(三)数据链路层

    数据链路的作用 数据链路层的协议定义了通过通信媒介互连的设备之间传输的规范.通信媒介包括双绞线电缆.同轴电缆.光纤.电波以及红外线等介质.此外,各个设备之间有时也会通过交换机.网桥.中继器等中转数据. ...

  7. TCP/IP笔记(四)IP协议

    前言 IP相当于OSI参考模型的第3层--网络层:主要作用是"实现终端节点之间的通信"又称"点对点通信". IP作为整个TCP/IP中至关重要的协议,主要负责将 ...

  8. TCP/IP笔记(五)IP协议相关技术

    IP旨在让最终目标主机收到数据包,但是在这一过程中仅仅有IP时无法实现通信的.必须还要又能够解析主机名称和MACdivide功能,以技术包在发送过程中异常情况处理的功能. 这篇主要介绍下DNS.ARP ...

  9. TCP/IP笔记(七)TCP详解

    TCP的特点及其目的 为了通过数据包实现可靠性传输,需要考虑很多事情,例如数据的破坏.丢包.重复记忆分片顺序混乱等问题.如不能解决这些问题,也就无从谈起可靠传输. TCP通过检验和.序列号.确认应答. ...

随机推荐

  1. java理论学时第七节。课后作业。

    对AboutException.java的理解.在try中如果发出某类系统识别的错误,会以throw的形式抛出,在catch中可以将其截获,不显示在前端,可以选择执行别的代码. ArrayIndexO ...

  2. War Chess (hdu 3345)

    http://acm.hdu.edu.cn/showproblem.php?pid=3345 Problem Description War chess is hh's favorite game:I ...

  3. Leetcode-448. Find All Numbers Disappeared in an Array(solve without extra space easy)

    Given an array of integers where 1 ≤ a[i] ≤ n (n= size of array), some elements appear twice and oth ...

  4. W-TinyLFU——设计一个现代的缓存

    缓存设计是个基础架构领域里的重要话题,本号之前也有谈论过相关话题,点击原文可以看之前的介绍. 近日,HighScalability网站刊登了一篇文章,由前Google工程师发明的W-TinyLFU—— ...

  5. redis简单使用

    主要参考资料:http://wiki.jikexueyuan.com/project/redis-guide/data-type.html一.redis 安装1.在官网下载安装包2.解压安装包 tar ...

  6. Hdu1695 GCD 2017-06-27 22:19 30人阅读 评论(0) 收藏

    GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  7. 第75讲:模式匹配下的For循环

    今天学习了模式匹配下的for循环内容.让我们从代码实战角度出发. for(i<-List(1,2,3,4,5)) println(i)//实际上调用的是foreach        for(in ...

  8. js-数组面试题

      <!DOCTYPE html>   <html>   <head>   <meta charset="utf-8" />   & ...

  9. mysql数据导入导出方法总结

    MySQL数据备份还原方式总结: 一.将数据导入到指定的数据库 第一种导入方式: (linux下和Windows 下语法是一样的,只是路径的书写方式不同而已) 1.创建一个空数据库 2.进入MySQL ...

  10. URL SCAN简介

    URL Scan简介 文/玄魂 目录 URL Scan简介 前言 1.1  安装 1.2 配置 修改 URLScan.ini 文件 配置 URLScan 用于依赖于 IIS 的应用程序   前言 Ur ...