TCP/IP简介
? ? ? ? TCP/IP是源自于ARPANET的实验,1983年成为ARPANET网络的指定协议。之后虽则UNIX的使用和普及,互联网和TCP/IP得到了广泛普及。TCP/IP并不只是TCP和IP两个协议,很多情况下,它只是利用IP进行通讯所必须用到的协议群的统称,又是也会被泛指TCP/IP为网际协议簇。一般我们提到的TCP/IP都是IETF制定的标准,其规范会更新到RFC文档中。TCP/IP是专门为互联网所设计的协议,可以认为TCP/IP是互联网的协议。
TCP/IP协议分层模型
? ? ? ? TCP/IP的结构和OSI很类似,但是他们还是有很多不同,不了解OSI的读者可以参考我之前写的OSI模型介绍->OSI。TCP/IP模型的结构如下:
????????????????????????
TCP/IP和OSI在结构上很类似,不过OSI更加注重的是协议要实现的功能是什么,而TCP/IP则是强调计算机实现协议应该开发哪种程序。下面是对于TCP/IP各个层的介绍。
应用层
? ? ? ? TCP/IP的结构上,应用层对应的是OSI的应用、表示和会话层,TCP/IP将这三个层的功能集中到了应用程序(一个或多个程序都可能)中实现。TCP/IP应用的架构绝大多数属于客户端/服务端模型,也就是客户端向服务器请求并得到响应。其中的一个比较典型的应用就是万维网,其也是互联网快速普及的原因。WWW使用浏览器和服务端之间进行通讯,所用的协议一般为HTTP(),所传输的数据主要格式为HTML。除了HTTP和HTML,电子邮件的SMTP,文件传输的FTP,远程登录的TELNET和SSH以及网络管理的SNMP也都是应用层比较常见的协议。
传输层
? ? ? ? TCP/IP的传输层和OSI模型的传输层很类似,其最主要功能就是能够让应用程序之间实现通信。这个层有两种比较常见的协议。第一个是TCP协议,它是一种面向有连接的传输层协议。面向有连接就是传输的两端会先建立一个稳定的连接,在进行传输。而与之相对的是面向无连接的传输层协议,数据的发送方并不保证接收方的存在,就直接发送数据。TCP协议能够正确在传输过程中处理丢包、传输顺序乱掉等异常情况。第二个是UDP,它属于面向无连接的传输层协议,所以它不会去关注接收方是否真的收到了数据。它一般用在分组数据较少或者多播、广播通信以及视频通信等领域。
互联网层
? ? ? ? TCP/IP的互联网层对应的是OSI的网络层。其一般使用的IP协议。IP协议基于IP地址转发分包数据。此外,连接互联网的所有主机跟路由器都必须实现IP的功能。IP协议使用的是IP地址作为主机的标识,但是它不具有重发性,属于非可靠传输协议。ICMP协议是在IP的基础上完善了消息重发,一般用来诊断网络的健康状况。ARP也是互联网层的协议,它是根据从数据包的IP地址种解析出物理地址(MAC)的一种协议。
网络接口层和硬件层
? ? ? ? 网络接口层对应的是OSI的数据链路层,它利用以太网种的数据链路层进行通信,属于接口层,可以把它理解为硬件层的“驱动程序”。而硬件层则是最底层,是负责数据传输的硬件。它确保了TCP/IP是在网络互连的之间进行通信。
数据包
? ? ? ? TCP/IP一般通过数据包来进行传输。在每个分层中,都会对所发数据包附加一个首部,这个首部中包含的是该层的必要信息。数据包有很多表示数据的单位,有包、帧、数据报、段和消息。其中,包是一个比较全面的术语;帧用来表示数据链路层中包的单位;数据报是IP和UDP等网络层以上的分层中包的单位。段则表示TCP数据流中的信息;消息是指应用协议中数据的的单位。
本文为个人学习笔记,如有问题欢迎讨论和指出@茱莉亚之歌
|