分层
 
        TCP/IP协议族是一组不同层次上的多个协议的组合。TCP/IP通常被认为是一个四层次协议系统。
 

                                                                     《TCP/IP详解卷一:协议》 概述_ip协议

 

 

  • 链路层(数据链路层或网络接口层):通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。用于处理与传输媒介物理接口细节。 
  • 网络层:处理有关通信媒介的细节,处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包含IP协议(网际协议),ICMP(Internet互联网控制报文协议,Internet Control Message Protocol),以及IGMP协议(Internet组管理协议,Internet Group Management Protocol)。
  • 运输层:为两台主机上的应用程序提供端到端的通信。包含TCP(传输控制协议,Transmission Control Protocol )和UDP(用户数据报协议,User Datagram Protocol)。
    • TCP为两台主机提供高可靠性的数据通信。它所做的工作包括将应用程序交给他的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最终确认分组的超时时钟等。(传输层提供了可靠的端到端的通信)
    • UDP则为应用层提供了一种非常简单的服务。它只把称为数据报的分组从一台主机发送到另一台主机,但不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。
  • 应用层: 负责处理特定的应用程序细节。 
    • Telnet远程登录(Telnet是常用的远程控制Web服务器的方法)
    • FTP文件传输协议 
    • SMTP简单邮件传送协议 
    • SNMP简单网络管理协议(simple network management protocol) 
《TCP/IP详解卷一:协议》 概述_应用层_02
        TCP/IP协议族是一组不同的协议组合在一起构成的协议族,尽管通常称该协议为TCP/IP协议,但TCP和IP只是其中的两种协议而已。(该协议族的另一个名字为Internet协议族(Internet Protocol Suite))。如上图所示,FTP是一种应用层协议,TCP是一种运输层协议,IP是一种网络协议,而以太网协议应用于链路层。
 
        一个互连网(internet)就是一组通过相同协议族互连在一起的网络。构建互连网最简单的方法就是把两个或多个网络通过路由器进行连接。它是一种特殊的用于网络互连的硬件盒。路由器(Router)的好处是为为不同类型的物理网络提供连接:以太网、令牌环网、点对点的链接和FDDI(光纤分布式数据接口)。从历史上说,这些盒子称为网关。但现在网关这个术语只用来表示应用层网关:一个连接两种不同协议族的进程,它为特定的应用程序服务。
《TCP/IP详解卷一:协议》 概述_数据_03
        对上面描述的互连网,我们可以划分出端系统(End system)(两边的主机)和中间系统( Intermediate system)(中间的路由器)。应用层和传输层使用端到端协议,只有端系统需要这两层协议。而网络层使用逐跳协议,两个端系统和中间系统都要使用它。
 
网络层和运输层的区别:
 
        网络层IP提供的是一种不可靠的服务。也就是说,它只是尽可能快的把分组从源结点送到目的结点,但是并不提供任何可靠性保证。运输层TCP采用了超时重传、发送和接收端到端的确认分组机制,在不可靠的IP层上提供了一个可靠的运输层。
        从定义上看,一个路由器具有两个或两个以上网络接口层(因为它连接了两个或多个网络)。互联网的目的之一就是在应用程序中隐藏所有的物理细节。因此,通过路由器进行互连不同类型的物理网络,对应用层而言,下层细节是被隐藏的。连接网络的另一途径是使用网桥。网桥是在链路层上对网络进行互连,而路由器是在网络层上对网络进行互连。网桥使得多个局域网(LAN)组合在一起,这样对上层来说就好像是一个局域网。
TCP/IP协议的分层
 
《TCP/IP详解卷一:协议》 概述_数据_04
        上图介绍了本书将主要讨论的协议。
 

        ICMP是IP协议的附属协议,IP层用它来与其他主机或路由器交换错误报文和其他重要信息。IGMP是Internet组管理协议,它用来把一个UDP数据报多播到多个主机。(注意广播(将一个UDP数据报发送到某个指定网络上的所有主机)和多播的区别)。ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(以太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址。

 
 
互联网的地址
 
       这里介绍IPV4版本,IP地址长度为32bit,使用常见的点分十进制表示。
       《TCP/IP详解卷一:协议》 概述_应用层_05《TCP/IP详解卷一:协议》 概述_端口号_06
       三类IP地址:单播地址(目的为单个主机),广播地址(目的端为给定网络上的所有主机)以及多播地址(目的端为同一组的所有主机) ,对于子网划分及NAT技术后面讨论。
 
域名系统(DNS)
 
在TCP/IP领域中,域名系统(DNS)是一个分布的数据库,由它来提供IP地址和主机名之间的映射信息。
 
封装
 
《TCP/IP详解卷一:协议》 概述_首部_07
        当应用程序使用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要添加一些首部信息(有的还要添加尾部信息)。TCP传给IP的数据单元称为TCP报文段或简称为TCP段(TCP segment),IP传给网络接口层的数据单元称为IP数据报(IP datagram),通过以太网传输的比特流称为帧。以太网数据帧的物理特性是其长度必须在46到15000字节之间。 
 
        UDP数据与TCP数据基本一致,唯一不同的是UDP传给IP的信息单元称为UDP数据报(UDP  datagram),而且UDP的首部长度为8字节(TCP首部为20字节)。关于每一层添加的首部信息详细解释后面介绍。
 
分用
 
《TCP/IP详解卷一:协议》 概述_端口号_08
        当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部,每次协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。同时为协议ICMP和IGMP定位存在着一些困难。在图1-4中,将它们与IP放在同一层上,那是因为它们是IP的附属协议。但在这里,将它们放在IP层上面,是因为ICMP和IGMP报文都被封装在IP数据报中。同时,对于ARP和RARP协议而言,将它们放在以太网设备驱动程序之上,是因为它们跟IP数据报一样,都有各自的以太网数据帧类型(通过帧首部的类型字段判断)。而在图1-4中,把ARP作为以太网设备驱动程序的一部分,放在IP层的下面,在逻辑上是合理的。
 
端口号
 
        端口号用来标识互相通信的应用程序。对于每一个TCP/IP实现来说,FTP服务器的TCP端口号都是21,每个Telnet服务器的TCP端口号都是23,每个TFTP服务器的UDP端口号都是69。任何TCP/IP实现所提供的服务都要用知名的1~1023之间的端口号。客户端通常对它使用的端口号并不关心,只需保证该端口号在本机上是唯一的就可以了。大多数TCP/IP实现给临时端口分配1024~5000之间的端口号。大于5000的端口号是为其他服务器预留的。
互联网
 
        internet这个词的第一个字母是否大写决定了它具有不同的含义。internet意思是一个共用的协议族把多个网络连接在一起。而Internet指的是世界范围内通过TCP/IP相互通信的所有主机集合。Internet是一个internet,而internet不等于Internet。
 
应用编程接口
 
        使用TCP/IP协议的应用程序通常采用两种应用编程接口:socket和TLI(运输层接口:Transport Layer Interface)。