`
abs200311235
  • 浏览: 122597 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

TCP_IP协议分析-协议分层

阅读更多
TCP_IP协议分析-协议分层
协议分层
  正如OSI七层模型定义的一样,TCP/IP协议也根据不同的通信功能分为不同的层次,TCP/IP通常被认为是一个四层协议系统,TCP/IP的四层跟OSI的七层对应关系如表1-2所示。
  表1-2 TCP/IP协议与OSI七层模型的对应关系
OSI七层模型 TCP/IP协议
应用层 应用层(Application)
表示层
会话层
传输层 传输层(Transport)
网络层 网络层(Internet)
数据链路层 网络接口层(Network)
物理层
  1、网络接口层
  也叫数据链路层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡,它们一起处理与传输媒介的物理接口细节。上表中TCP/IP协议没有相应的层次对应OSI七层模型中的物理层,正是因为TCP/IP协议的这种特性,使得其构筑的Internet被广泛的应用。
  2、网络层
  也叫互联网层,处理路由选择等分组在网络中的活动。在TCP/IP协议组件中,网络层协议包括IP协议(Internet Protocol,网际协议)、ICMP协议(Internet互联网控制报文协议),以及IGMP协议(Internet组管理协议)。
  3、传输层
  主要功能是为两台主机上的应用程序提供端到端的通信。在TCP/IP协议组件中,有两个互不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。
  TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层、确认接收到的分组、设置发送最后确认分组的超时时钟等。
  另一方面,UDP为应用层提供一种非常简单的服务。它只是把数据报从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。
  TCP提供了高可靠性,因此不需要应用层去考虑,UDP则把所有必需的的可靠性交给应用层自己解决。
  4、应用层
  应用层负责处理特定的应用程序TCP/IP提供了大量的应用程序,下面几种是最为通用的:WWW 国际互联网、Telnet 远程登录、FTP 文件传输协议、SMTP 用于电子邮件的简单邮件传输协议、SNMP 简单网络管理协议。
表1-3 TCP/IP协议层与对应的服务
TCP/IP协议 对应的服务
应用层 WWW、SMTP、FTP、Telnet、Gopher、SNMP
Socket、NetBIOS
传输层 TCP、UDP
网络层 IP(ARP、RARP、ICMP)
网络接口层 Ethernet、X.25、PPP、SLIP
  如表1-3所示,FTP是一种应用层协议,TCP是一种传输层协议,IP是一种网络层协议,而以太网协议则应用于网络接口层上。TCP/IP协议组件是一组不同的协议组合在一起构成的协议族。尽管通常称该协议组件为TCP/IP,但TCP和IP只是其中的两种协议而已。
  在TCP/IP协议组件中,网络层IP提供的是一种不可靠的服务。也就是说,它只是尽可能快地把分组从源结点送到目的结点,但是并不提供任何可靠性保证。而另一方面,TCP在不可靠的IP层上提供了一个可靠的传输层。为了提供这种可靠的服务,TCP采用了超时重传,发送和接收端到端的确认分组等机制。
  TCP和UDP是两种最为著名的传输层协议,二者都使用IP作为网络层协议。
  如前面所说的,TCP采用的超时重传、确认分组机制,使得可以提供可靠的服务。UDP不提供可靠性:它把应用程序传给IP层的数据发送出去,但是并不保证它们能到达目的地。UDP是一个简单的面向数据报的传输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。IP数据报的长度如果如果超过网络的MTU,那么就要对IP数据报进行分片。
  IP是网络层上的主要协议,同时被TCP和UDP使用。TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互连网中进行传输。
  ICMP是IP协议的附属协议,它用来把一个UDP数据报多播到多个主机。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。ICMP主要被IP使用,应用程序也有可能访问它。Ping和Traceroute是我们经常要使用的诊断工具,它们就是使用的ICMP。
  ICMP包括了各种类型的ICMP报文,报文的类型由类型字段和代码字段共同决定。
  ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址。

以下是在Microsoft Windows 2000中输入ARP命令返回的结果:
C:\>arp
Displays and modifies the IP-to-Physical address translation tables used
by address resolution protocol (ARP).
//显示和修改由地址解析协议使用的IP物理地址表
ARP -s inet_addr eth_addr [if_addr]
ARP -d inet_addr [if_addr]
ARP -a [inet_addr] [-N if_addr]
-a            Displays current ARP entries by interrogating the current
                protocol data. If inet_addr is specified, the IP and Physical
               addresses for only the specified computer are displayed. If
                more than one network interface uses ARP, entries for each
ARP table are displayed.
//显示询问当前协议数据的ARP当前入口,如果指定了//inet_addr,则只显示指定计算机的IP地址和物理地址;如//果有不只一个网卡使用ARP,则显示每一个网卡的ARP列//表。
-g         Same as -a. //类似于-a
inet_addr   Specifies an internet address.
             //指定一个Internet地址
-N if_addr   Displays the ARP entries for the network interface specified
             by if_addr.
             //显示由if_addr指定的网卡的ARP入口
-d         Deletes the host specified by inet_addr. inet_addr may be
             wildcarded with * to delete all hosts.
             //删除由inet_addr指定的主机,如果inet_addr是通配符*,则删
//除所有主机
-s         Adds the host and associates the Internet address inet_addr
             with the Physical address eth_addr. The Physical address
is given as 6 hexadecimal bytes separated by hyphens. The
entry is permanent.
//增加主机,并把Internet地址inet_addr和物理地址eth_addr
//进行关联,物理地址是6个以连字符号“-”隔开的16进制
//位,这个入口是永久的
eth_addr    Specifies a physical address.
             //指定物理地址
if_addr      If present, this specifies the Internet address of the
              interface whose address translation table should be modified.
              If not present, the first applicable interface will be used.
              //如果出现,则代表网卡的Internet地址,该地址的地址转换表
              //将要修改。如果不出现,则使用第一个可用的接口
Example:
> arp -s 157.55.85.212   00-aa-00-62-c6-09 .... Adds a static entry.
                                           //增加一个静态入口
> arp -a                                .... Displays the arp table.
                                          //显示ARP表
转载请标http://blog.csdn.net/daidai0628/archive/2008/04/13/2288252.aspx
TCP、UDP协议详解
      在了解TCP和UDP之前,我们需要来了解俩个概念,面向连接的服务和无连接的服务,应用面向连接的服务时,客户和服务器在进行数据发送前,彼此向对方发送控制分组,这就是所谓的握手过程,使得客户和服务器都做好分组交换准备。这个准备是很松散的,面向连接服务与很多其他的服务捆绑在一起,包括可靠的数据传输,流量控制和拥塞控制等,依赖连接以正确的顺序无错地传递所有数据。还要使用确认和重传机制实现来可靠性。而无连接服务侧是没有握手过程的,当一方想发送数据时就直接了当地发送,因为没有握手过程也就没有什么流量控制和拥塞控制,这样数据可能传输得更快,但是,由于也没有确认过程,源端就不知道那些分组到达了目的端。因此可能在传输过程中丢失数据,不适合用在一些文件的传输,可以用在因特网电话,视频会议什么的。
    TCP(传输控制协议)和UDP(拥护数据报协议)是传输层的俩个传输协议,它们俩个的最大区别就是是否面向连接。
    TCP包括了面向连接和可靠数据传输服务,在客户端和服务器端进行通信前,要先交换传输层控制信息,为双方的通信做好准备。在这个握手阶段后,我们就可以认为在这俩个进程间存在一个TCP连接,且是一个全双工的连接,在消息发送完后,应用程序会告诉TCP拆除这个连接。可靠的传输服务为了保障彼此通信能无差错地顺序传递所有数据。
    当其中任何一个应用程序把一个字节流传如套接字时,它可以指望TCP把同样的字节流传递到对方的套接字,中间不回丢失和重传。TCP是因特网的一种公益服务,其目的是能调节数据传输过程中的一些问题,因此还要包含一个拥塞机制。TCP拥塞机制在网络变得拥塞时阻止发送进程。确切地说,TCP拥塞控制试图把每个TCP连接限定在它所公平共享的网络带宽上。对于有最小带宽需求限制的实时音频或视频应用来说,阻止其带宽那就让它们不能正常工作,此外,我们能想象一下,在网络电话通话时,偶尔的不连续是可以容忍的,可见实时应用可以容忍丢失少部分数据,不需要完全可靠服务。
    说了这么多,TCP能提供的好的服务,再看一下其缺点吧,首先,TCP不保证最小传输率,通俗点说,TCP不允许发送进程以想要的速率发送数据,受到TCP拥塞控制的调节,发送进程有可能被迫以一个较低的平均速率发送。其次,TCP不提供任何延时保障,具体点说,发送进程把数据传入自己的TCP套接字后,这个数据将最终到达其接受套接字,但是中间所经历的时间就不能保证了,花几秒或则几分钟都不一定。
    UDP是一个非面向连接的轻量级传输协议,具有一个最简单的服务模型。UDP是无连接的,因此两个进程彼此通信之前没有握手过程。UDP提供不可靠的数据传输服务,也就是说当一个进程往自己套接字发送一个消息时,UDP不能保障这个消息回最终到达接受套接字。另外,就确实到达接收套节字的消息而言,他们的到达顺序也可能不是有序的。
    UDP不含拥塞控制机制,因此发送进程能够以任意速率往UDP套接字发送数据,尽管不能保证所有数据都到达接收套接字,但是会有相当比列的数据到达。实时应用程序的开发人员往往选择在UDP上运行他们的应用。与TCP类似,UDP也不提供任何延迟保证。
    说了这么多,我们可以通过下表来体会一下上面说的真正含义。
应    用 应用层协议 用来支撑的传输协议
电子邮件 SMTP(RFC82) TCP
远程终端访问 Telenet TCP
WEB HTTP TCP
文件传送 FTP TCP
远程文件服务器 NFS TCP或UDP
流多媒体 专属 UDP或TCP
因特网电话 专属 一般为UDP
    在表中我们看到,电子邮件,远程终端访问,WEB和文件传送都使用TCP协议,这些应用选择TCP的主要原因是在于TCP提供了可靠的数据传输服务,能够保证所有数据最终到达其目的地。我们还看到,因特网电话一般运行在UDP协议上面,一个因特网电话应用的俩端都得以某个最小速率跨越网络发送数据;另外,因特网电话可以容忍数据丢失,从这个俩个条件来看,都适合UDP,不需要可靠的TCP传输服务。
    总的来说,TCP能保证传递全部数据,而UDP不能,且他们都不提供延迟保证。他们不提供延迟保证,并不意味着时间敏感的应用不能运行在现在的因特网上,而是应用是通过一些其他的方法来保证这些需要。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/daidai0628/archive/2008/04/13/2288259.aspx
分享到:
评论

相关推荐

    TCP_IP协议详解卷一

    1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 1.11 RFC 10 1.12 标准的简单服务 11 1.13 互联网 12 1.14 实现 12 1.15 ...

    ip数据包分析_关于TCP_IP数据包的截取和分析

    ip数据包分析_关于TCP_IP数据包的截取和分析

    TCPIP参考模型的安全协议分层TCPIP参考模型的安全协议分层TCPIP参考模型的安全协议分层TCPIP参考模型的安全

    TCPIP参考模型的安全协议分层TCPIP参考模型的安全协议分层TCPIP参考模型的安全协议分层TCPIP参考模型的安全协议分层TCPIP参考模型的安全协议分层TCPIP参考模型的安全协议分层TCPIP参考模型的安全协议...

    TCP/IP协议分析

    TCP/IP分层,每层的协议,数据进入协议栈整合,接受数据的解析过程等图解。

    Tcp-ip 协议分层结构及其报文格式

    Tcp-ip 协议分层结构及其报文格式,

    以太网数据帧数据分析

    一个Demo说明网络协议封分层以及具体截获的包分析说明 一个实际的包数据分析 packet_header ------>包帧的头部---16字节 --------packet_content start--------- 52 54 00 12 35 02 08 00 27 73 a8 bf 08 00 ----...

    TCP_IP详解卷1

    《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输...

    用TCP_IP进行网际互联第一卷_原理、协议与结构

    网际协议 协议的分层 移动IP 专用网络连接 自举与自动配置 TCP/IP的未来发展(IPV6)

    TCP/IP协议详细介绍

    TCP/IP协议详细介绍,计算机网络体系结构分层,TCP/IP 基础,传输层中的 TCP 和 UDP,网络层中的 IP 协议,IP 协议相关技术

    TCP-IP_Socket网络编程

    网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。 每层实现不同的功能,其内部实现方法对外部其他层次来说透明,每层向上层提供服务,...两类非常重要的体系结构:OSI与TCP/IP

    1.OSI参考模型与TCP\IP协议-ENBM_PPT_chap02_V1.2.ppt

    OSI分层模型的意义 OSI 7层模型每一层的名称与功能 数据在网络中传输过程中,数据包封装和拆封装的过程 TCP/IP协议与OSI模型的对比

    科来网络协议图之TCP-IP版

    科来网络协议图之TCP-IP版,学习网络协议,必备资源,图片中,网络分层中实现的各个协议,及每个协议的联系,看起来很直观.

    TCP/IP详解 卷1:协议--源代码

    该资料是《TCP/IP详解 卷1:协议》的源代码 对应的书籍资料见: TCP/IP详解 卷1:协议(09年度畅销榜TOP50)(08年度畅销榜TOP50) http://download.csdn.net/detail/fksec/4657587 基本信息 原书名: TCP/IP ...

    TCP/IP协议详解

    很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但TCP/IP协议组件允许它们互相进行通信。这一点很让人感到吃惊,因为它的作用已远远超出了起初的设想。TCP/IP起源于60年代末美国政府资助的一个...

    TCP-IP详解卷1:协议

    1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 1.11 RFC 10 1.12 标准的简单服务 11 1.13 互联网 12 1.14 实现 12 1.15 ...

    TCP/IP协议详细介绍.docx

    计算机网络体系结构分层,TCP/IP 基础,传输层中的 TCP 和 UDP,网络层中的 IP 协议,IP 协议相关技术

    TCP/IP协议分层详解

    本文来自于cnblogs,主要讲解TCP/IP协议模型,TCP/IP分层模型以及TCP/IP通信传输流等相关内容,希望对您的学习有所帮助。ISO/OSI模型,即开放式通信系统互联参考模型(OpenSystemInterconnectionReferenceModel),...

    tcp/ip协议分层

    自我感觉很好 是一组 但是不能一起传 所以都分开了 见谅啊

Global site tag (gtag.js) - Google Analytics