本文是基于自己的工作经验积累与学习理解,参考相关资料进行整理,用于自己学习记录以及分享交流。TCP/IP协议相关的理论知识相对较多(虽然感觉在我的工作内容中使用的范围相对较少,但实际发现有很多以及成为了常用工作常识,以至于没感觉到使用。),所以与之相关的详细知识整理会作为一个专门的分类专栏记录分享。
七层模型,亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。
通俗的讲,这就像是我们与人交流需要一种语言,普通话、上海话、四川话等等,这个模型就给出了建议标准,普通话建议是什么样的,四川话建议是什么样的。实际使用可以有不同,每个人的发音是可以有口音的,你也可以考虑不接受建议参考,选择自己定义,当然这会带来一些不便,因为其他人不一定接收你的定义,学习你的定义也很麻烦,使用范围也不广。
网络服务与最终用户的一个接口。(就像是我们寄快递最终选择的运输送货的公司)
常见协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP
数据的表示、安全、压缩。(就像是寄快递前最后的包装过程)
常见的格式有,JPEG、ASCll、EBCDIC、加密格式等
建立、管理、终止会话。对应主机进程,指本地主机与远程主机正在进行的会话。(就像是寄快递之前和收货人建立联系,知道地址,联系方式等等)
在后面的TCP/IP中我们会知道,这三层结构是被TCP/IP合并成一层了的,这就像现在我们寄快递通常上述的都不用管,都交给了快递公司处理。合并为“应用层”定义传输数据的协议端口号,以及流控和差错校验。(这就像快递到了收货地之后,快递员要根据具体的楼号房间号分发。当然也要知道具体的发货人和详细信息)
常见的协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层
进行逻辑地址寻址,实现不同网络之间的路径选择。(这就像快递从发货地到收货地双方的地址,这里通常是指IP地址)
常见的协议有:ICMP IGMP IP(IPV4 IPV6)
建立逻辑连接、进行硬件地址寻址、差错校验 等功能。(由底层网络定义协议,这里也是一个寻址的过程,虽然上面已经有了一个IP寻址,但这个依然不可或缺,因为IP是可以变更的。这就像我们的居住地址是会有搬迁的(买房卖房租房等))
这一层将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。
规定通信设备的机械的、电气的、功能的和过程的特性,用以建立、维护和拆除物理链路连接。
(由底层网络定义协议,这就是运输过程的实际物理工具,网线,服务器等等硬件相关的协议定义标准,像是电流、编码、光调制等等。具体地讲,机械 特性规定了网络连接时所需接插件的规格尺寸、引脚数量和排列情况等;电气特性规定了在物理连接上传输bit流时线路上信号电平的大小、阻抗匹配、传输速率 距离限制等;功能特性是指对各个信号先分配确切的信号含义,即定义了DTE和DCE之间各个线路的功能;规程特性定义了利用信号线进行bit流传输的一组 操作规程,是指在物理连接的建立、维护、交换信息是,DTE和DCE双放在各电路上的动作系列在这一层,数据的单位称为比特(bit)。属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等)
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
TCP/IP协议在一定程度上参考了OSI的体系结构。OSI模型共有七层,但是这显然是有些复杂的,所以在TCP/IP协议中,它们被简化为了四个层次(常用也有五层一说,前面有提到,后续我们也会说到)。
通俗的说就是OSI参考模型给出来官方建议沟通交流语言范本,TCP/IP则根据实际使用状况,参考OSI形成了一套现在大家都用的交流语言(普通话),也就是TCP/IP协议簇。
TCP/IP协议分为:应用层、传输层、网络层、网络接口层(物数据链路层、物理层),通常我们讲由应用层到物理层是由上层到下层。
为了行文的方便,这里我们从下层(物理层)倒述至上层(应用层)。
这两层在TCP/IP协议中是合并为同一层了的(通常也有这两层继续保留分开的模式,个人感觉分开的还是实际使用更广)。其工作的主要内容也与OSI模型中这两层的作用基本一致。
网络层在TCP/IP协议中的位于第三层。在TCP/IP协议中网络层可以进行网络连接的建立和终止以及IP地址的寻找等功能,与OSI参考模型的作用相差不大。
这一层中常见的重要协议有:IP协议(重要到了协议簇的命名都有它)、ARP协议、路由协议等。关于这些协议已经该层的更详细的作用说明,在这就不细说了。后续在补充文档单独说明。
作为TCP/IP协议的第二层,运输层在整个TCP/IP协议中起到了中流砥柱的作用。也正是因为其重要性,所以并没有将其合并,而是继续作为独立的一层,其作用与OSI参考模型相差不大。
链路层定义了主机的身份,即MAC地址,而网络层定义了IP地址,明确了主机所在的网段,有了这两个地址,数据包就从可以从一个主机发送到另一台主机。但实际上数据包是从一个主机的某个应用程序发出,然后由对方主机的应用程序接收。而每台电脑都有可能同时运行着很多个应用程序,所以当数据包被发送到主机上以后,是无法确定哪个应用程序要接收这个包。传输层就承担着这么工作,也就诞生了TCP与UDP协议,这两个协议也就成为了传输层的重要协议,尤其是TCP协议(甚至因此整个协议簇都以此命名,可见其重要性)。
在这里我们不对这两个协议做过多的说明,后续在拎出来单独说明。
应用层:应用层是TCP/IP协议的第一层,是直接为应用进程提供服务的。这一层就是整合了OSI模型的上三层(应用层、表示层、会话层),其作用也就是这三层的一个整合,整合的原因主要在于这三层本身提供的服务相差不大,整合之后既能满足现有需求,也使得应用起来更加的简洁。
(1)对不同种类的应用程序它们会根据自己的需要来使用应用层的不同协议,例如邮件传输应用使用了SMTP协议、万维网应用使用了HTTP协议、远程登录服务应用使用了有TELNET协议。
(2)应用层还能加密、解密、格式化数据。
(3)应用层可以建立或解除与其他节点的联系,这样可以充分节省网络资源。
理论上讲,有了以上几层协议的支持,数据已经可以从一个主机上的应用程序传输到另一台主机的应用程序了,但此时传过来的数据是字节流,不能很好的被程序识别,操作性差,因此,应用层定义了各种各样的协议来规范数据格式,常见的有http,ftp,smtp等,在请求Header中,分别定义了请求数据格式Accept和响应数据格式Content-Type,有了这个规范以后,当对方接收到请求以后就知道该用什么格式来解析,然后对请求进行处理,最后按照请求方要求的格式将数据返回,请求端接收到响应后,就按照规定的格式进行解读。
所以应用层的主要工作就是定义数据格式并按照对应的格式解读数据
以上就是本文的全部内容了,简述了TCP/IP的概念。后续将在对各层次的详细作用功能以及常见的重要的实际使用做一些举例说明。