TCP/IP协议栈模型分析

Posted YUGUOHOU

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP/IP协议栈模型分析相关的知识,希望对你有一定的参考价值。

        标准TCP/IP协议是用于计算机通信的一组协议,通常被称为TCP/IP协议簇,以它为基础组建

的互联网是目前国际上规模最大的计算机网络。正因为互联网的广泛应用,使得TCP/IP成为了事

实上的网络标准。

什么是OSI

        OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是

ISO(国际标准化组织)组织在1985年研究的网络互连模型。ISO为了更好的使网络应用更为普

及,推出了OSI参考模型。其含义就是推荐所有公司使用这个规范来控制网络。这样所有公司都有

相同的规范,就能互联了。

        OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、

应用层),即OSI开放互连系统参考模型。

物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等,传输以比特流为主,这一层也被称为比特

数据链路层:两个网卡之间的点到点连接

网络层:为位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择

传输层:定义了一些传输数据的协议和端口号(WWW端口80等)

会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路,主要在你的系统之间

发起会话或者接受会话请求

表示层:可以确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取

应用层:为用户的应用程序提供服务

TCP/IP四层模型

参考图片

从这张图片我们不难看出

        TCP/IP四模型中的应用层,包含了OSI七层模型中的上三层

        TCP/IP四模型中的传输层,对应了OSI七层模型中的传输层

        TCP/IP四模型中的网络层,对应了OSI七层模型中的网络层

        TCP/IP四模型中的数据链路层(也可以称为网络链路层),包含了OSI七层模型中的后二层

主要协议簇

        因为OSI每层对应的协议和TCP/IP的协议是相通的,所以这里我主要介绍TCP/IP的几个常用

的,在介绍之前,我们可以简单搭一个小的网络,然后抓包查看流量,进行简单的分析

参考下图

应用层

        HTTP:超文本传输协议,基于TCP,是用于从WWW服务器传输超文本到本地浏览器的传输

协议。它可以使浏览器更加高效,使网络传输减少

        FTP:文件传输协议,用于Internet上的控制文件的双向传输。同时也是一个应用程序

        SSH:安全外壳协议,为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专

为远程登录会话和其他网络服务提供安全性的协议

传输层

        TCP: 一种面向连接的、可靠的、基于字节流的传输层通信协议。

        UDP: 用户数据报协议,一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服

务。

网络层

         IP:IP协议提供不可靠、无连接的传送服务

        ARP:地址解析协议。基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行

        ICMP:Internet控制报文协议。用于在IP主机、路由器之间传递控制消息。控制消息是指网络

通不通、主机是否可达、路由是否可用等网络本身的消息

        IGMP:组播协议包括组成员管理协议和组播路由协议。组成员管理协议用于管理组播组成员

的加入和离开,组播路由协议负责在路由器之间交互信息来建立组播树

网络链路层

        MAC:媒体接入控制,主要功能是调度,把逻辑信道映射到传输信道,负责根据逻辑信道的

瞬时源速率为各个传输信道选择适当的传输格式

        BMC:广播/组播控制,负责控制多播/组播业务。

知名协议所对应的端口号

        数据链路和 IP 中的地址,分别指的是 MAC 地址和 IP 地址。前者用来识别同一链路中不同的

计算机,后者用来识别 TCP/IP 网络中互连的主机和路由器。在传输层也有这种类似于地址的概

念,那就是端口号。端口号用来识别同一台计算机中进行通信的不同应用程序。因此,它也被称为

程序地址。这个问题也就是我们常用的协议的端口号,主要有下面中几种

        TCP协议        端口号21

        SSH协议        端口号22

        SMTP协议        端口号25

        HTTP协议        端口号80

        HTTPS 加密的超文本传输服务         端口号 443

        DHCP服务器端        端口号是67

TCP/UDP协议的区别及应用场景? 

        为了实现TCP网络通信的可靠性,增加校验和、序号标识、滑动窗口、确认应答、拥塞控制

等复杂的机制,建立了繁琐的握手过程,增加了TCP对系统资源的消耗;TCP的重传机制、顺序控

制机制等对数据传输有一定延时影响,降低了传输效率。TCP适合对传输效率要求低,但准确率要

求高的应用场景,比如万维网(HTTP)、文件传输(FTP)、电子邮件(SMTP)等。

        UDP是无连接的,不可靠传输,尽最大努力交付数据,协议简单、资源要求少、传输速度

快、实时性高的特点,适用于对传输效率要求高,但准确率要求低的应用场景,比如域名转换

(DNS)、远程文件服务器(NFS)等。

OSI七层模型与TCP/IP协议栈模型对应关系

OSI七层模型        VS        TCP/IP协议模型

七层有底向上分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

简化后的四层分别是:主机到网络层(比特)、网络层(数据帧)、传输层(数据包)、应用层(数据段)。

OSI七层和TCP/IP的区别

        TCP/IP他是一个协议簇;而OSI(开放系统互联)则是一个模型,且TCP/IP的开发时间在OSI

之前。

        TCP/IP是由一些交互性的模块做成的分层次的协议,其中每个模块提供特定的功能;OSi则指

定了哪个功能是属于哪一层的。

        TCP/IP是五层结构,而OSI是七层结构。OSI的最高三层在TCP中用应用层表示。

以上是关于TCP/IP协议栈模型分析的主要内容,如果未能解决你的问题,请参考以下文章

TCP/IP协议原理及应用

TCP/IP协议栈

杂谈——TCP/IP 协议栈详解

OSI模型和TCP/IP协议栈

TCP/IP协议组——完整工作过程分析

Linux内核TCP/IP协议栈运行时序 | 配图