## **TCP/IP简介**
* TCP/IP起源于1969年美国国防部(DOD:The United States Department Of Defense)高级研究项目管理局(APRA:AdvancedResearch Projects Agency)对有关分组交换的广域网(Packet-Switched wide-area network)科研项目,因此起初的网络称为ARPANET。
1973年`TCP(传输控制协议)`正式投入使用,1981年`IP(网际协议)`协议投入使用,1983年TCP/IP协议正式被集成到美国加州大学伯克利分校的UNIX版本中,该“网络版”操作系统适应了当时各大学、机关、企业旺盛的连网需求,因而随着该免费分发的操作系统的广泛使用,TCP/IP协议得到了流传。
TCP/IP技术得到了众多厂商的支持,不久就有了很多分散的网络。所有这些单个的TCP/IP网络都互联起来称为INTERNET。基于TCP/IP协议的Internet已逐步发展成为当今世界上规模最大、拥有用户和资源最多的一个超大型计算机网络,TCP/IP协议也因此成为事实上的工业标准。IP网络正逐步成为当代乃至未来计算机网络的主流。
* 早在TCP/IP协议出现之前,国际标准化组织(ISO)就提出了`开放系统互连(OSI)网络模型`,为网络的设计、开发、编程、维护提供了便利的分而治之的思想,其**先进性**、**科学性**、**实用性**是不言而喻的。
TCP/IP协议不是单纯的两个协议,是一组不同层次上的多个协议的组合,常称为`TCP/IP协议簇或者互联网协议簇`。TCP/IP也是互联网的事实上的标准,为实现整个网络的互联提供指导。TCP/IP层次组合很难用OSI的七层模型来套用,它是OSI模型的浓缩,将原来的七层模型合并为四层协议的体系结构,自顶向下分别是应用层、传输层、网络层和网络接口层,没有OSI参考模型的会话层和表示层,一般认为TCP/IP的会话和表示功能是在传输层或应用层上完成的。
* [ ] **TCP/IP与OSI模型比较**
![](https://img.kancloud.cn/fe/30/fe30d41a2c463ddee5d269af7672f164_706x403.png)
*****
* [ ] **OSI参考模型**
![](https://img.kancloud.cn/29/8f/298f55d55a11b584cc757f688cd79e31_600x329.png)
* 1层是**物理层**(Physical Layer)(即OSI模型中的第一层)
利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。
* 第2层是**数据链路层**(Data Link Layer)
数据链路层(Data Link Layer)是OSI模型的第二层,负责建立和管理节点间的链路。该层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
* 第3层是**网络层**(Network Layer)
其主要任务是:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接。
具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。
* 第4层是**处理信息的传输层**(Transport Layer)。
该层的主要任务是:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。传输层的作用是向高层屏蔽下层数据通信的细节,即向用户透明地传送报文。该层常见的协议:TCP/IP中的TCP协议、Novell网络中的SPX协议和微软的NetBIOS/NetBEUI协议。
* 第5层是**会话层**( Session Layer)
主要任务是:向两个实体的表示层提供建立和使用连接的方法。将不同实体之间的表示层的连接称为会话。因此会话层的任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理。
* 第6层是**表示层**(Presentation Layer)
这一层主要解决用户信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩, 加密和解密等工作都由表示层负责。
* 第7层是“**应用层**”(Application Layer),是专门用于应用程序的。
应用层为用户提供的服务和协议有:文件服务、目录服务、文件传输服务(FTP)、远程登录服务(Telnet)、电子邮件服务(E-mail)、打印服务、安全服务、网络管理服务、数据库服务等。
*****
* [ ] **TCP/IP模型**
![](https://img.kancloud.cn/d0/8d/d08d558bceb6070e1bd4a52ad1405c3f_590x635.png)
* **应用层**
应用层决定了向用户提供应用服务时通信的活动。|| 应用层负责处理特定的应用程序细节。
TCP/IP 协议族内预存了各类通用的应用服务。比如,FTP(File Transfer Protocol,文件传输协议)和DNS(Domain Name System,域 名系统)服务就是其中两类。 HTTP 协议也处于该层。
* **传输层**
传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据 传输。
在传输层有两个性质不同的协议:TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Data Protocol,用户数据报 协议)。
1. TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。为了提供可靠的服务,TCP采用了超时重传、发送和接收端到端的确认分组等机制。
2. UDP则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。一个数据报是指从发送方传输到接收方的一个信息单元(例如,发送方指定的一定字节数的信息)。UDP协议任何必需的可靠性必须由应用层来提供。
* **网络层**
网络层用来处理在网络上流动的数据包。**数据包**是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。
与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。
*****
*****
网络层又称为也称作互联网层(在区别图中为网际层),处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP协议(网际协议),ICMP协议(Internet互联网控制报文协议),以及IGMP协议(Internet组管理协议)。
1. **IP**是一种网络层协议,提供的是一种不可靠的服务,它只是尽可能快地把分组从源结点送到目的结点,但是并不提供任何可靠性保证。同时被TCP和UDP使用。TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互联网中进行传输。
1. **ICMP**是IP协议的附属协议。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。
1. **IGMP**是Internet组管理协议。它用来把一个UDP数据报多播到多个主机。
* **链路层**
用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴均在链路层的作用范围之内。
*****
也称作数据链路层或网络接口层(在对比图中为网络接口层和硬件层),通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址。