1、TCP/IP的介绍

互联网协议族(Internet Protocol Suite,缩写IPS)是一个网络通信模型,以及一整个网络传输协议家族, 

为互联网的基础通信架构。它常被通称为TCP/IP协议族(TCP/IP Protocol Suite,或TCP/IP Protocols), 

简称TCP/IP。

TCP/IP提供点对点的链接机制,将数据应该如何封装、定址、传输、路由以及在目的地如何接收,都加以标 

准化。它通常将软件通信过程抽象化为四个抽象层,采取协议堆栈的方式,分别实现出不同通信协议。协议套组下的各种协议,依其功能不同,被分别归属到这四个层次结构之中,常被视为是简化的七层OSI模型。

2、TCP/IP和ISO/OSI 分层比较

TCP/IP协议簇分层详解---转_端口号

补充: ISO/OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Reference 
Model),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI。


3、TCP/IP分层详解

TCP/IP协议簇分层详解---转_封装_02

在上面,通常我们是把TCP/IP协议族分为四层,但是如果是五层的话就是在链路层下再加个物理层。下面是对各层的详细介绍。

TCP/IP协议簇分层详解---转_ip地址_03

IP是一种网络层协议,提供的是一种不可靠的服务,它只是尽可能快地把分组从源结点送到目的结点,但是、并不提供
任何可靠性保证。同时被TCP和UDP使用。TCP和UDP的每组数据都通过端系统和每个中间路、由器中的IP层在互联网中
进行传输。


ICMP是IP协议的附属协议。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。

IGMP是Internet组管理协议。它用来把一个UDP数据报多播到多个主机。

TCP是一个传输控制协议,它为两台主机提供了可靠性的数据通信,它所做的工作包括把应用程序交给它的数据进行合适

的分块交给下层的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等
UDP是用户数据报协议,它为应用层提供了简单的服务,它只是把称作数据报的分组从一台主机发送到另外一台主机,并
不保证该数据报能到达另外一端。


4、IP地址的介绍

互联网上的每个接口必须有一个唯一的Internet地址(也称作IP地址)。IP地址长32 bit。Internet地址并不 

采用平面形式的地址空间,如1、2、3等。IP地址具有一定的结构,五类不同的互联网地址格式如下: 

TCP/IP协议簇分层详解---转_端口号_04

从上图,我们可以看出IP地址有五类,每类的地址范围为: 

TCP/IP协议簇分层详解---转_封装_05

我们可以发现,通过IP地址的网络号和主机号已经可以识别网络接口,进而访问主机,但是人们最喜欢还是使用主机名,所以我们需要提供一个:域名系统(DNS),它给我们提供了主机名和IP地址之间的映射信息。

5、封装和分用

  • 封装

TCP/IP协议簇分层详解---转_端口号_06

如上图所示,当应用程序采用TCP传送数据时,数据被送入协议栈中,然后,通过每一层直到被当做一串比特流传入网络中。其中每一层收到数据都会对数据增加一些首部信息(有的还需要尾部信息)。TCP传给IP的数据单元称为TCP报文段或简称为TCP段(UDP传给IP的数据单元称为UDP数据段),IP传给网络接口层的数据单元称为IP数据报。通过以太网传输的比特流称为帧。

  • 分用 
    当目的主机收到了一个以太网的数据帧时,数据要从协议栈中,由底往上,同时去掉各层协议上的报文首部,如下图所示: 
    TCP/IP协议簇分层详解---转_封装_07

补充:端口号介绍

服务器一般都是通过知名端口号来识别的。例如,对于每个TCP/IP实现来说,FTP服务器的TCP端口号都是21,每个
Telnet服务器的TCP端口号都是23,每个TFTP (简单文件传送协议)服务器的UDP端口号都是69。任何TCP/IP实现所
提供的服务都用知名的1~1023之间的端口号。这些知名端口号由Internet号分配机构(Internet Assigned
Numbers Authority, IANA)来管理。知名端口号介于1~255之间;256~1023之间的端口号通常都是由Unix系统
占用,以提供一些特定的Unix服务;1024~5000端口号用于客户端分配临时端口号;大于5000的端口号是为其他服务
器预留的。