TCPIP协议栈(4层)和OSI7层参考模型

TCPIP协议栈是实际上使用的网络通讯协议层次模型,是网络最开始发展的时候就使用的模型,而OSI模型是为了研究的方便,在现实的TCP/IP层次模型的基础上进行了再次的细分。
  实际上,网络模型是4层的,最上层是应用层,我们写的代码都是在该层上工作的, 这一层的目的是按照一定的协议格式,将我们需要发送的数据进行组织起来。,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。  然后,这些包好的数据,进入传输层,在该层, 数据进一步被加入一些用于控制传输过程的信息(称为 报头),可以说应用层就好像需要传输到另一个地方去的人,而传输层好像是汽车,负责如何传输(因为在传输层加入了一些控制传输过程的控制信息),传输层的协议主要有传输控制协议(TCP)、用户数据报协议(UDP)和RTP .等,传输层只是汽车,它可以传输任何东西,所以,传输层协议与网络层协议以及应用层协议是独立的,一个应用层协议可以选择通过不同的传输层协议来控制传输,就好象人可以选择不同的汽车去某个地方一样,但是,一般,应用层协议都会根据该应用所需要达到的目的来选择合适的传输层协议来使用。TCP和UDP给数据包加入传输数据并把它传输到下一层网络层中,可以说,准备好了汽车(传输层的传输控制信息)后, 就可以把载有人的汽车丢到网络上(网络层)去传输了。这一层负责传送数据,并且确定数据已被送达并接收。 而 网络层主要负责加入一些用于路由控制的报文头,可以说网络层就好象是地图一样,提供了如何路由的信息。网络层负责提供基本的数据封包和传送功能,但不检查是否被正确接收。网络层的协议主要有:IP,ICMP,IGMP。所以,我们说网络层本身是不可靠的,但是通过在放入网络层之前,我们通过传输层的一些控制信息,能让数据在不可靠的网络层上可靠的传输, 这就是传输层在传输控制方面所起到的主要功能了。 最下面的就是网络接口层了,该层就好象是道路一样, 主要是负责处理一些实际通信过程中的一些物理的问题。网络接口层对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。网络接口层主要是一些网络设备的驱动程序,比如以太网设备驱动程序,通过这些驱动来利用实际的物理网络来传输数据, 就好象我们通过U盘驱动来利用U盘的功能一样。 在网络接口层,上面我们准备的要发送的数据都被包在了一个个的帧中,其实一个帧就是一小块数据,是有一定的容量的,如果我们要发送的数据过大,通过这些协议层次以后,这些数据就被自动的分成几个小的帧,而且这些帧有一样的id号码。
   在理论上,ISO模型进行了进一步的细分, 是为了研究的方便。 主要是把网络接口层进一步分成了数据链路层和物理层。 然后还在应用层之下增加了表示层,话路层。

接受数据的过程与发送数据的过程相反。

 

 

关于端口号的问题。就是端口号其实是传输层和应用层的访问点 (运输层服务访问点TSAP),就是传输层通过端口号来访问应用层的协议,将传输层解析后的报文通过该端口传入上层的应用层协议来处理,而应用层的应用程序在该端口监听,来处理传入的数据。端口号,本质是为了对应用层处理协议的一个区分,是一个逻辑概念,是一个应用层的标识而已。 因此,在网络通信中,只有当通信过程中使用到了传输层(比如典型的传输层协议 TCP,UDP)的时候,才会需要指定端口号。其它的,比如利用ICMP协议的程序,是不需要指定端口号的。

你可能感兴趣的:(TCPIP协议栈(4层)和OSI7层参考模型)