TCP/IP协议具体解析 OSI层模型(转)

作者:walkingmanc 
来源:CSDN 
原文:https://blog.csdn.net/walkingmanc/article/details/4322719 

 

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协议的程序,是不需要指定端口号的。

 

 


作者:沉迷cpp无法自拔的猪 
来源:CSDN 
原文:https://blog.csdn.net/cbf9526/article/details/78872029 

 

(1)OSI模型

主机A    主机B

应用层<-------协议------->应用层 应用程序间通信  传输单位APDU

表示层<-------协议------->表示层         处理数据格式,加密   传输单位PPDU

会话层<-------协议------->会话层 建立,维护和管理会话   传输单位SPDU

传输层<-------协议------->传输层 建立端到端的链接 传输单位segment(段)

网络层<-------协议------->网络层 寻址和路由选择 传输单位packet

数据链路层<--协议-->数据链路层 介质访问,链路管理 传输单位frame(帧)

物理层<-------协议------->物理层 比特流传输 传输单位BIT

 

协议数据单元PDU(Protocol Data Unit)是指对等层次之间传递的数据单位。 协议数据单元(Protocol Data Unit )物理层的 PDU是数据位(bit),数据链路层的 PDU是数据帧(frame),网络层的PDU是数据包(packet),传输层的 PDU是数据段(segment),其他更高层次的PDU是报文(message).

 

(2)TCP/IP四层模型

应用层:相当于OSI上三层   常见协议:  FTP TELNET

传输层 TCP UDP

网络层 ICMP IP IGMP

链路层:相当于OSI下二层 ARP RARP

(3)对等通信

对于每一个层来说,都仿佛好像和对面的这个层进行通信,实际上的信息传输是自上而下,然后通过以太网或者IEEE进行BIT流传输到对方的链路层,然后自下而上到达对应的层.

(4)封装

就是从应用程序给出用户的数据,然后一层一层加上对应的头部,以便于对方的每一层进行识别转交.

 

(5)分用

分用就是在以太网传输过来数据的时候,每层进行解析,看是什么协议交由什么层,做出相应的应答,最后如果是TCP或者UDP,则根据端口号提交给相应的应用程序,传输数据

 

(6)端口

(a)众所周知的端口

0到1023端口,由IANA分配,紧密绑定服务.通常这些端口明确表明了某种服务协议.例如21端口为FTP服务端口

(b)注册端口

1024到49151.不受IANA控制,但是已经被IANA登记了,松散绑定一些服务,可以用于其他目的

(c)动态或者私有端口

49152到65535,IANA不管,所以一般机器从1024开始分配动态端口

posted @ 2018-10-18 12:08  lonelyshy  阅读(157)  评论(0编辑  收藏  举报