zoukankan      html  css  js  c++  java
  • TCP/IP协议<二>

    一、TCP/IP的标准化

    1、TCP/IP的含义

    一般来说,TCP/IP是利用IP进行通信时所必须用到的协议群的统称。

    具体点,IP或ICMP、TCP或UDP、TELENT或FTP、以及HTTP等都属于TCP/IP协议,而TCP/IP一词泛指这些协议,有时称它们为TCP/IP为网际协议族/TCP/IP协议族

    如下图所示:

     

    2、标准化的精髓

    特性:开放性、注重实用性(被标准化的协议能否被实际运用)

    TCP/IP协议由IETF(国际互联网工程任务组)讨论制定;即将协议的大致规范定下来,然后进行通信试验,及时修订

    3、规范——RFC

    RFC:request for comment,即征求意见表;那些需要标准化的协议,会被计入RFC并在互联网上公布;RFC不仅包含协议规范内容,还包括协议实现和运用的相关信息,以及实验方面的信息

    RFC通过编号组织每个协议的标准化请求;其编码是既定的,一旦成为某个RFC的内容,就不能再对其进行修改;若要修改已有某个协议内容,则需要重新发行一个新的RFC文档,同时,老的RFC文档作废

    新的RFC文档会明确规定是扩展了哪个已有RFC以及要作废哪个已有RFC

    基于每次修改RFC时都会产生新的RFC编号太麻烦,为此,采用了STD(standard)方式管理编号,其作用是:用来记录哪个编号制定哪个协议

    4、TCP/IP的标准化流程

    TCP/IP的标准化流程大概分为以下几个阶段:

    ①.互联网草案阶段:从提出开始不断进行讨论实验,有了一定成熟度,觉得实际可行,认为其可以进行标准化,可进入下一阶段

    ②.提议标准阶段:计入RFC,开始进入众多设备厂商生产环节,投入试验使用,一般为6个月,当所有参与协议的人觉得其“实用性强,不存在太多问题”,则进入下一阶段

    ③.草案标准阶段:一般为期4个月,在经过不断的使用和讨论改进后,被大众所使用接受,那么这个草案标准就进入下一个阶段

    ④.标准阶段:到这个阶段,意味着该标准已广泛被使用且具有很强的实用性

    5、RFC获取方法

    ①.网址:http://www.rfc-editor.org/rfc/

            ftp://ftp.rfc-editor.org/in-notes/

    这两个网址保存着所有的RFC文件,网站中有一个名为rfc-index.txt的文件,包含所有RFC概览;RFC网站除了发布RFC相关信息,还提供RFC检索功能

    ②.STD或FYI以及ID获取地址

    关于STD、FYI、ID也可以从以下网站获取,其概览一分别记录在std-index.txt、fyi-index.txt等文件中

    STD获取地址:http://www.rfc-edctor.org/in-notes/std/

    FYI获取地址:http://www.rfc-edctor.org/in-notes/fyi/

    ID获取地址:http://www.rfc-edctor.org/Internet-drafts/

    JPNIC的ftp服务器中的目录:

    STD获取网址:ftp://ftp.nic.ad.jp/rfc/std/

    FYI获取网址:ftp://ftp.nic.ad.jp/rfc/fyi/

    ID获取网址:ftp://ftp.nic.ad.jp/internet-drafts/

    二、互联网基础知识

    1、互联网定义

    互联网,英文单词为Internet;Internet指的是将多个网络连接使其构成一个更大的网络,所以Internet本意为网际网

    “互联网”是指由ARPANET发展而来、互联全世界的计算机网络;互联全世界的计算机网络,现在“互联网”对应的英文单词为“The Internet”

    与Internet对应的另一种网络叫做intranet,该网络指使用Internet技术将企业内部组织机构连接起来形成一个企业范围的内部网络,提供面向企业内部的通信服务

    2、互联网与TCP/IP关系

    互联网进行通信时,需要相应的网络协议,TCP/IP是为使用互联网而开发定制的协议族;因此,互联网的协议就是TCP/IP

    3、互联网的结构

    小范围内的网络连接形成机构内部网络,机构内部网络连接形成区域网络,各个区域相互连接,则形成连接全是的互联网;互联网是一个有层次的网络

    互联网中每个网络都是由骨干网(BackBone)和末端网(Stub)组成;每个网络之间通过NOC相连;如果运营商不同,则网络连接方式和使用方法也不同。异构网络需要有IX支持

    互联网就是众多异构网络通过IX互联的一个巨型网络

    △ NOC:Network Operation Center(网络操作中心)

    △ IX:Internet Exchange:网络交换中心

    4、ISP和区域网

    连接互联网需要向ISP(internet service provider:互联网服务提供商)或区域网提出申请,不同的ISP提供的互联网接入服务也不同

    区域网指的是特定区域内由团体或志愿者提供的网络服务,通常价格比较便宜,但有时会出现连接方式复杂或者使用有限制的情况

    当申请网络服务时,建议确认了解一下提供的具体服务条目、服务的细则(接入方式、条件、费用)等,再决定

    三、TCP/IP协议分层模型

    1、TCP/IP与OSI参考模型

    TCP/IP与OSI在分层模块上的区别:

    OSI:注重通信协议必要的功能是什么

    TCP/IP:在计算机上实现协议应该开发哪种程序

    2、硬件(物理层)

    TCP/IP的最底层是负责数据传输的硬件。这种硬件就相当于以太网或电话线路等物理层的设备,TCP/IP是在网络互连的设备之间能够通信的前提下才被提出的协议。

    3、网络接口层(数据链路层)

    利用以太网中的数据链路进行通信,属于接口层;将其当做“驱动程序”也可以(驱动程序是在操作系统与硬件之前起桥梁作用的软件)

    PS:有时也将硬件层和网络接口层合并起来,称为“网络通信层”

    4、互联网层(网络层)

    互联网层使用IP协议,相当于OSI中的第三层模型;IP协议基于IP地址转发分包数据

    IP协议的作用:将分组数据包发送到目的主机

    TCP/IP分层中的互联网层与传输层的功能通常由操作系统提供,尤其是路由器,它必须得实现通过互联网层转发分组数据包的功能

    连接互联网的所有主机跟路由器必须都实现IP功能,其他链接互联网的网络设备(网桥、中继器)则不是必须

    IP:跨越网络传送数据包,使整个互联网都能收到数据的协议;传送数据时,IP地址作为主机的标识

          IP还隐含数据链路层的功能:通过IP,相互通信的主机之间不论经过怎样的数据链路,都可以实现通信

          IP是分组交换的一种协议,但是不具有重发机制;即使分组数据包未到达对端主机也不会重发;属于非可靠性传输协议

    ICMP:IP数据包发送过程中一旦发生异常导致无法到达对端目标地址时,需要给发送端一个发生异常的通知,ICMP就是为了该功能而定制;有时可用来诊断网络健康状况

    ARP:从分组数据包的IP地址解析出物理地址(MAC地址)的一种协议

    5、传输层

    TCP/IP传输层有TCP和UDP两个具有代表性的协议,主要功能是让应用程序之间实现通信;其通信逻辑如下图:

    TCP:面向有连接的传输层协议,可以保证通信两端主机之间的通信可达;可以正确的处理传输过程中丢包、传输乱序等异常情况;还能有效利用带宽,缓解网络拥堵。

    UDP:面向无连接的传输层协议,不关注对端是否真的收到传送的数据;如需检查对端是否收到分组数据包,或对端是否连接到网络,需要在应用程序中实现常用于分组数据较少或多播。广播通信及视频通信等领域。

    6、应用层(会话层以上的分层)

    TCP/IP分层中,将OSI中的会话层、表示层、应用层都集中到了应用程序中实现

    TCP/IP应用的架构绝大多数术语客户端/服务端模型;提供服务的程序叫服务端,接受服务的程序叫客户端,服务器会预先部署到主机上,等待接收任何时刻客户端发送的请求

    常见的应用层协议:

    HTTP协议:(HyperText Transfer Protocol)

    浏览器与客户端通信所使用的协议,传输数据主要格式为HTML,http协议OSI应用层协议,而HTML属于表示层的协议

    文件传输协议:FTP(File Transfer Protocol)

    传输过程可以选择用二进制还是文本方式,传输时会建立两个TCP连接:发送传输请求时用到的控制连接和实际传输时用到的数据连接

    电子邮件协议:SMTP(Simple Mail Transfer Protocol)

    可以发送声音图像文字,甚至改变文字大小、颜色等

    远程登录(TELNET与SSH):

    常见的还有其他远程登录协议,比如:BSD UNIX系中的rlogin的r命令和X Window System中的X协议

    网络管理协议:SNMP(Simple Newwork Management Protocol)

    在TCP/IP进行网络管理时,采用该协议,其中使用SNMP管理的主机。网桥、路由器等称作SNMP代理(Agent),进行管理的那一段叫做管理器(Manager)

    在SNMP代理端,保存着网络接口信息、通信数据量、异常数据量以及设备温度等信息,这些信息通过MIB访问,在TCP/IP中,SNMP属于应用协议,MIB属于表示层协议

    MIB(Management Information Base):可透过网络的结构变量

    四、TCP/IP分层模型

    1、数据包首部

    每个分层都会对所发送的数据附加一个首部,首部中包含该层必要的信息;通常为协议提供的信息为包首部,所要发送的内容为数据

    关于包、帧、数据报、段、消息的概述:

    包:一个概括性术语,指数据整体

    帧:数据链路层中包的单位

    数据报:IP和UDP等网络层以上分层中包的单位

    段:TCP数据流中的信息

    消息:应用协议中数据的单位

    2、发送数据包

    假设A发送邮件“早上好”给B,那么它的通信过程大概如下:

    ①.应用程序处理

    应用程序启动,新建邮件及内容,点击发送,应用程序对邮件进行编码处理,然后发送给下一层TCP

    ②.TCP模块的处理

    根据上层应用发来的指示,建立负责建立连接、发送连接及断开连接;TCP提供将应用层发来的数据顺利发送至对端的可靠传输

    为了实现该功能,会在应用层数据前端加一个TCP首部,首部包括源端口号和目标端口号。序号以及校验,随后将附加了TCP首部的包发送给IP

    ③.IP模块的处理

    IP将TCP传递的首部和数据合并,并在首部之前加上自己的IP,IP包生成后,参考路由控制表决定接受此IP包的路由或者主机,随后,IP包将被发送给连接这些路由或主机网络接口的驱动程序,实现发送数据

    ④.网络接口(以太网驱动)的处理

    以太网接受到的IP包,对其来说就是数据,会给其加上以太网首部并进行发送处理,首部中包含接收端MAC地址,发送端MAC地址以及标志以太网类型的以太网数据协议

    3、数据包接收处理

    ①.网络接口(以太网驱动)的处理

    主机收到以太网包,首先找到MAC地址判断是否为发送给自己的,如果不是则丢弃数据

    如果是,则确认数据类型,然后将数据包发送给对应的类型处理程序处理

    ②.IP模块的处理

    收到数据包先进行判断处理,如果包首部IP地址与自己匹配则接受数据并寻找到上一层协议,并转发给上一层进行处理

    ③.TCP模块的处理

    接收到数据包首先计算校验和,判断数据包是否被破坏,然后检查是否按序接受数据,最后检查端口号,确定具体应用程序

    数据接受完毕,接收端发送一个“确认回执”个发送端

    ④.应用程序的处理

    接收端应用程序会直接接收发送端的数据,并进行解析处理

  • 相关阅读:
    AS将一个项目导入到另一个项目中
    Android Studio出现:Cause: unable to find valid certification path to requested target
    小米手机Toast带app名称
    PopupWindow 点击外部区域无法关闭的问题
    EditText inputType类型整理
    Fragment通过接口回调向父Activity传值
    Android selector一些坑
    Installation failed with message Failed to commit install session 634765663 with command cmd package
    旷视上海研究院机器人方向招聘
    语义SLAM的数据关联和语义定位(四)多目标测量概率模型
  • 原文地址:https://www.cnblogs.com/jack1989/p/7593113.html
Copyright © 2011-2022 走看看