TCP-IP详解卷1协议学习笔记 (一)基础理论

目录

TCP/IP协议族

互联网的地址

封装

分用

客户-服务器模型

小结


TCP/IP协议族

TCP/IP协议族是一组不同的协议组合在一起构成的协议族。该协议族中最著名的协议就是TCP和IP协议,故将该协议族称为TCP/IP,它还有另外一个名字叫Internet协议族。

网络协议通常分不同的层次进行开发,其每一层负责不同的功能。TCP/IP是个四层协议系统,其应用层大体上对应着OSl/RM模型的应用层、表示层和会话层,其网络接口层对应着OSI/RM的数据链路层和物理层,而传输层和网络层则与OSI/RM模型相互对应。

TCP/IP协议族的层次
应用层 Telent、FTP、SMTP、HTTP等
运输层 TCP、UDP
网络层 IP、ICMP、IGMP
链路层 设备驱动程序及接口卡。

每一层负责不同的功能:

  1. 链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。把链路层地址和网络层地址联系起来的协议有ARP(Address Resolution Protocol,地址解析协议)和RARP(Reverse Address Resolution Protocol,逆地址解析协议)。
  2. 网络层,也称互联网层,负责处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP协议(Internet Protocol,网际协议)、ICMP协议(Internet Control Message Protocol,互联网控制报文协议)和IGMP协议(Internet Group Management Protocol,互联网组管理协议)。
  3. 运输层,该层主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议:TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)。             
  4. 应用层,应用层负责处理特定的应用程序细节。一般,我们会有这些通用的应用程序:Telnet 远程登录、FTP 文件传输协议、SMTP 简单邮件传送协议、HTTP超文本传输协议等等。

TCP和UDP是其中两种最为著名的运输层协议,二者都使用IP作为网络层协议。其中,TCP为两台主机提供高可靠性的数据通信。它所做的工作为:把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等;UDP则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。

故虽然TCP使用不可靠的IP服务,但它却提供一种可靠的运输层服务。UDP为应用程序发送和接收数据报。一个数据报是指从发送方传输到接收方的一个信息单元(例如,发送方指定的一定字节数的信息)。但是与TCP不同的是,UDP是不可靠的,它不能保证数据报能安全无误地到达最终目的。

互联网的地址

互联网上的每个接口必须有一个唯一的Internet地址(也称作IP地址)。IP地址长32 bit。Internet地址并不采用平面形式的地址空间,如1、2、3等。IP地址具有一定的结构,一共有五类不同的互联网地址格式,如下:

TCP-IP详解卷1协议学习笔记 (一)基础理论_第1张图片

这些32位的地址通常写成四个十进制的数,其中每个整数对应一个字节。这种表示方法称作“点分十进制表示法。

各类IP地址范围
类型 范围

A

B

C

D

E

0 .0 .0 .0 127.255.255.255

128.0.0.0 191.255.255.255

192.0.0.0223.255.255.255

224.0.0.0 239.255.255.255

240.0.0.0 247.255.255.255

IP地址有三类IP地址:单播地址(目的为单个主机)、广播地址(目的端为给定网络上的所有主机)以及多播地址(目的端为同一组内的所有主机)。

封装

当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),其过程如下图所示:TCP-IP详解卷1协议学习笔记 (一)基础理论_第2张图片

其中TCP传给IP的数据单元称作TCP报文段或简称为TCP段。IP传给网络接口层的数据单元称作IP数据报。通过以太网传输的比特流称作帧。图中帧头和帧尾下面所标注的数字是典型以太网帧首部的字节长度。UDP数据与TCP数据基本一致。唯一的不同是UDP传给IP的信息单元称作UDP数据报(UDP datagram),而且UDP的首部长为8字节。

许多应用程序都可以使用TCP或UDP来传送数据。运输层协议在生成报文首部时要存入一个应用程序的标识符。TCP和UDP都用一个16 bit的端口号来表示不同的应用程序。

由于TCP、UDP、ICMP和IGMP都要向IP传送数据,因此IP必须在生成的IP首部中加入某种标识,以表明数据属于哪一层。为此, IP在首部中存入一个长度为8 bit的数值,称作协议域。1表示为ICMP协议, 2表示为IGMP协议, 6表示为TCP协议, 17表示为UDP协议。

类似地,TCP和UDP把源端口号和目的端口号分别存入报文首部中。网络接口分别要发送和接收IP、ARP和RARP数据,因此也必须在以太网的帧首部中加入某种形式的标识,以指明生成数据的网络层协议。为此,以太网的帧首部也有一个16 bit的帧类型域。

分用

当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用( Demultiplexing)。下图显示分用的过程。

TCP-IP详解卷1协议学习笔记 (一)基础理论_第3张图片

客户-服务器模型

大部分网络应用程序在编写时都假设一端是客户,另一端是服务器,其目的是为了让服务器为客户提供一些特定的服务。这种模型分为两种类型:重复型或并发型。

重复型服务器通过一下步骤进行交互:

  1. 等待一个客户请求的到来。
  2. 处理客户请求。
  3. 发送响应给发送请求的客户。
  4. 返回1步。

并发型服务器:

  1. 等待一个客户请求的到来。
  2. 启动一个新的服务器来处理这个客户的请求。在这期间可能生成一个新的进程、任务或线程,并依赖底层操作系统的支持。这个步骤如何进行取决于操作系统。生成的新服务器对客户的全部请求进行处理。处理结束后,终止这个新服务器。
  3. 返回1步。

一般来说, TCP服务器是并发的,而UDP服务器是重复的,但也存在一些例外。

小结

TCP / IP协议族分为四层:链路层、网络层、运输层和应用层,每一层各有不同的责任。在TCP / IP中,网络层和运输层之间的区别是最为关键的:网络层( IP)提供点到点的服务,而运输层( TCP和UDP)提供端到端的服务。

在一个互联网上,每个接口都用IP地址来标识,尽管用户习惯使用主机名而不是IP地址。域名系统为主机名和IP地址之间提供动态的映射。端口号用来标识互相通信的应用程序。服务器使用知名端口号,而客户使用临时设定的端口号。

 

你可能感兴趣的:(学习笔记)