001 TCP/IP模型

001 TCP/IP模型

 

 

 

一、TCP/IP 的含义

一般来说,TCP/IP是利用IP进行通信时所必须用到的协议群的统称。

具体点,IP或ICMP、TCP或UDP、TELENT或FTP、以及HTTP等都属于TCP/IP协议,而TCP/IP一词泛指这些协议,有时称它们为TCP/IP为网际协议族/TCP/IP协议族

如下图所示:

001 TCP/IP模型

二、TCP/IP协议五层模型

001 TCP/IP模型

TCP/IP与OSI在分层模块上的区别:

OSI:注重通信协议必要的功能是什么

TCP/IP:在计算机上实现协议应该开发哪种程序

 

 001 TCP/IP模型

 001 TCP/IP模型

001 TCP/IP模型

001 TCP/IP模型

 

 

三、TCP/IP协议五层模型详解

1、物理层

物理层是负责数据传输的硬件。最常见的有网线(双绞线),除此还有光纤、无线电波等。不同的物理介质决定了电信号传输的距离、带宽、速率、抗干扰能力等性能参数。

物理层主要解决的问题是:

  • 规范了网络终端设备之间的电气、机械、流程和功能等方面的要求
  • 规范了电频、速率、最大传输距离和物理接口等特征

2、数据链路层

利用以太网中的数据链路进行通信,属于接口层。将其当做“驱动程序”也可以(驱动程序是在操作系统与硬件之前起桥梁作用的软件)。

PS:有时也将硬件层和网络接口层合并起来,称为“网络通信层”。

ARP协议:地址解析协议,专用于将32位IP地址映射到网卡的48位MAC地址(从分组数据包的IP地址中解析出物理地址(MAC地址)的一种协议。)。 

RARP协议逆地址解析协议 ,主要用于将网卡的48位MAC地址转换为32位IP地址。

3、网络层

负责相邻计算机之间的通信。其功能包括三方面。

(1)处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。

(2)处理输入数据报:首先检查其合法性,然后进行寻径--假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。

(3)处理路径、流控、拥塞等问题。

IP协议的作用:基于IP地址将分组数据包发送到目的主机

IP:跨越网络传送数据包,使整个互联网都能收到数据的协议;传送数据时,IP地址作为主机的标识

      IP还隐含数据链路层的功能:通过IP,相互通信的主机之间不论经过怎样的数据链路,都可以实现通信

      IP是分组交换的一种协议,但是不具有重发机制;即使分组数据包未到达对端主机也不会重发;属于非可靠性传输协议。

IPv4:头部由20字节定长和一个可选的变长部分(小于等于40字节)组成,32位记录源端IP地址,32位记录目的端IP地址,所有内容长度最大为2^16=65476字节。

IPv6:头部由40字节定长组成。128位记录源端IP地址,128位记录目的端IP地址。

ICMP:IP数据包发送过程中一旦发生异常导致无法到达对端目标地址时,需要给发送端一个发生异常的通知,ICMP就是为了该功能而定制;有时可用来诊断网络健康状况。

4、传输层

TCP/IP传输层有TCP和UDP两个具有代表性的协议,主要功能是让应用程序之间实现通信。

其功能包括:

(1)格式化信息流;

(2)提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。

通信逻辑如下图:

001 TCP/IP模型

 

TCP:面向有连接的传输层协议,可以保证通信两端主机之间的通信可达;可以正确的处理传输过程中丢包、传输乱序等异常情况;还能有效利用带宽,缓解网络拥堵。(TCP报头含20字节定长、选项和填充<选项和填充小于等于40字节>)

UDP:面向无连接的传输层协议,不关注对端是否真的收到传送的数据;如需检查对端是否收到分组数据包,或对端是否连接到网络,需要在应用程序中实现常用于分组数据较少或多播。广播通信及视频通信等领域。

5、应用层(会话层以上的分层)

TCP/IP分层中,将OSI中的会话层、表示层、应用层都集中到了应用程序中实现

001 TCP/IP模型

 

TCP/IP应用的架构绝大多数术语客户端/服务端模型;提供服务的程序叫服务端,接受服务的程序叫客户端,服务器会预先部署到主机上,等待接收任何时刻客户端发送的请求

常见的应用层协议:

HTTP协议:(HyperText Transfer Protocol)

浏览器与客户端通信所使用的协议,传输数据主要格式为HTML,http协议OSI应用层协议,而HTML属于表示层的协议

文件传输协议:FTP(File Transfer Protocol)

传输过程可以选择用二进制还是文本方式,传输时会建立两个TCP连接:发送传输请求时用到的控制连接和实际传输时用到的数据连接

电子邮件协议:SMTP(Simple Mail Transfer Protocol)

可以发送声音图像文字,甚至改变文字大小、颜色等

远程登录(TELNET与SSH):

常见的还有其他远程登录协议,比如:BSD UNIX系中的rlogin的r命令和X Window System中的X协议

网络管理协议:SNMP(Simple Newwork Management Protocol)

在TCP/IP进行网络管理时,采用该协议,其中使用SNMP管理的主机。网桥、路由器等称作SNMP代理(Agent),进行管理的那一段叫做管理器(Manager)

在SNMP代理端,保存着网络接口信息、通信数据量、异常数据量以及设备温度等信息,这些信息通过MIB访问,在TCP/IP中,SNMP属于应用协议,MIB属于表示层协议

MIB(Management Information Base):可透过网络的结构变量

DNS协议

主要功能是通过用户友好的名称为用户提供域名解析服务,即将主机名域名解析为IP地址。

远程登录协议TELNET:

客户服务器模式,能适应许多计算机和操作系统的差异,网络虚拟终端NVT的意义

简单文件传送协议TFTP:

客户服务器模式,使用UDP数据报,只支持文件传输,不支持交互,TFTP代码占内存小 

 

应用层的主要应用:

WWW:浏览器和服务端之间通信所用的协议是HTTP协议,所传输数据的主要格式为HTML,WWW中的HTTP属于OSI应用层的协议,HTML属于表示层的协议。

电子邮件:发送电子邮件时用到的协议是SMTP。最初,只能以文件格式发送电子邮件。然后现在的电子邮件的格式由MIME协议扩展之后,就可以发送声音、图像等各式各样的信息。MIME属于表示层的协议。

文件传输(FTP):文件传输是指将其它计算机磁盘上的文件转移到本地计算机上,或将本地磁盘上的文件传送到其它计算机磁盘上。该文件传输过程使用的协议叫做FTP协议。在FTP中进行文件传输时会建立两个TCP连接,分别是发送传输请求时所要用到的控制连接与实际传输数据时所要用到的数据连接。

远程登录(TELNET与SSH):远程登录是指登录到远程的计算机上,使那台计算机上的程序得以运行的一种功能。远程登录常用TELNET与SSH两种协议。(当然还有其它一些协议)

网络管理(SNMP):在TCP/IP中进行网络管理时,采用SNMP(Simple Network Management Protocol)协议。使用SNMP协议管理的主机、网桥、路由器等称作SNMP代理,而进行管理的那一端叫做管理器。SNMP就是这个管理器和代理要用到的协议。在SNMP的代理端,保存着网络接口的信息、通信数据量、异常数据量以及设备温度等信息。这些信息可以通过MIB(Management Information Base)访问。因此,在TCP/IP的网络管理中,SNMP属于应用协议,MIB属于表示层协议。

四、参考资料

1、https://zhuanlan.zhihu.com/p/136380691

2、https://www.cnblogs.com/imyalost/p/6086808.html

3、TCP-IP详解卷1:协议

001 TCP/IP模型

上一篇:AcWing 204. 表达整数的奇怪方式 / Strange Way To Express Integers


下一篇:webapi跨域,服务器上使用session