本小节的要点包括:
●OSI与TCP/ip协议框架
●OSI各层功能特点
●封装与解封装(PDU)
●IP包头结构
●IP报文传输过程
●常见IP相关协议(ARP,ICMP…)
●传输层功能
●TCP与UDP对比
1.1OSI与TCP/IP协议框架
OSI是网络界的法律,主要目的是实现各厂商设备的兼容操作,TCP/IP是互联网的主流协议。图1是OSI与TCP/IP协议模型的对比。
图1 OSI与TCP/IP协议模型
1.2OSI每层功能及特点
1、物理层:其作用是传输BIT信号,典型设备代表如HUB(集线器)。
2、数据链路层:包括LLC和MAC子层,LLC负责与网络层通讯,协商网络层的协议。MAC负责对物理层的控制。本层的典型设备是SWITCH(交换机)。
3、网络层:本层的作用是负责路由表的建立和维护,数据包的转发。本层的典型设备是ROUTER(路由器)。
4、传输层:本层将应用数据分段,建立端到段的虚连接,提供可靠或者不可靠传输。
5、会话层:本层负责两个应用之间会话的治理和维护。
6、表示层:本层解决数据的表示、转换问题,是人机之间通讯的协调者,如进行二进制与ASCII码的转换。
7、应用层:本层是人机通讯的接口。典型的应用程序如FTP、HTTP等。
1.3OSI封装,解封装以及PDU
1.3.1封装
●所谓封装是指在发送方发生的自上而下的过程
●在每一层为应用数据添加上特定的头部/尾部信息(PDU,PRotocol Data Unit,协议数据单元)
●application(应用程序)→segment(数据段)→packet(数据包)→frame(数据帧)→bit(比特,二进制位)
1.3.2解封装
●所谓解封装是指在接收方发生的自下而上的过程
●逐层的去掉头部以及尾部信息
1.4IP包结构
IP包结构的结构如图2所示。
图2 IP包结构
其中的重要字段包括:
●TTL(Time To Live,生存时间):每经过路由器一次,此值减一。假如该值为0路由器就不会再转发此数据包。
●Protocol(协议):网络层和传输层之间的通讯接口,用于识别传输层的传输协议。
●Identification(序号):对每发送的一个数据包进行编号。
●Flag(偏移标志),Frag.Offset(偏移量):用于接收方将数据包的分片进行。
1.5IP报文传输过程
IP报文传输过程包括:
1. Host sends packet to default gateway(主机将数据包发送到默认网关)
2. Packet placed in frame(数据包被封装入帧)
3. Router receives frame(路由器接到帧)
4. Router finds destination network in route table(路由器在路由表中发现目标网络)
5. Router chooses next hop toward destination(路由器选择一个更接近目标的下一跳)
6. MAC address of next hop determined(下一跳的MAC地址被确定)
7. Packet placed in frame(数据包被封装入帧)
8. Repeats steps 2 through 7 as necessary(假如需要的话,重复步骤2~7)
9. Router receives frame(路由器接到帧)
10. Router finds network directly connected(路由器发现直连网络)
11. MAC address of end host determined(最终主机的MAC地址被确定)
12. Packet placed in frame to final destination(帧中的数据包被发送到最终主机)
IP报文传输整个过程的示意如图3所示。
图3 IP报文传输过程
在数据包端到端的传输过程中,逻辑地址始终不会发生改变,而MAC地址则随着具体链路的不同而不同。
路由器在某一个入接口上接收到数据帧后,先检测目的地是否是自己。若是,则交给上层处理,否则会缓存数据包内容,然后根据目标地址查找路由表找到相关表项,得到NEXT HOP及出接口的MAC地址,用这两个地址作为新的目的及源MAC地址封装事先缓存的数据包,然后转发,这个过程称为帧的重写(REWRITE)。
1.6IP相关协议
1.6.1ARP
ARP(Address Resolution Protocol,地址解析协议)有以下特点:
●ARP由ARP Request(广播)与ARP Reply(单播)组成。
●只有当发送方认为目标主机与自己位于同一逻辑网络(同一网段),ARP Request才会发出。
●属于本地的MAP(不同于FR MAP)IP地址与MAC地址均属于同一个设备(接口)。
其工作过程示意如图4所示。
图4 ARP工作过程示意图
1.6.2ICMP
IP协议是一种不可靠的协议,无法进行差错控制。但IP协议可以借助其他协议来实现这一功能,如ICMP。如图5所示。
图5 ICMP
ICMP协议答应主机或路由器报告差错情况和提供有关异常情况的报告。
一般来说,ICMP报文提供针对网络层的错误诊断、拥塞控制、路径控制和查询服务四项大的功能。如,当一个分组无法到达目的站点或TTL超时后,路由器就会丢弃此分组,并向源站点返回一个目的站点不可到达的ICMP报文。
1.7传输层功能
传输层的功能包括:
●session Multiplexing(多路复用):多个应用会话复用在同一个端到端的连接(同一个源IP和目的IP对)之上,通过端口号加以识别。
●Segmentation(分段):将大块的应用数据分割成更适合于传输的段。
●Flow Control(流控):软件流控,防止在网络拥塞时丢包降低网络拥塞的可能性。
●Buffering(缓冲):分为接受缓存和发送缓冲,用来暂存传输数据。
1.8TCP与UDP对比
如图6、图7所示,是TCP与UDP的报文头格式。
图6 TCP报文头格式
图7 UDP报文头格式
它们的不同在于:
●TCP
面向连接(同步,确认,窗口)
提供可靠的传输服务
可靠性高
●UDP
无连接
提供尽力而为(Best-Effort)的服务
效率高
1.9TCP的序列号和确认号
TCP的序列号和确认号用来对收到的对方的数据包进行确认。序列号和确认号是以字节数为单位的,确认号等于发送方的序列号加1。如图8所示。
图8 TCP的序列号和确认号
1.10TCP滑动窗口
滑动窗口用来实现流量控制。它用来防止发送过快的发送端的数据将接收缓慢的接收端沉没,造成接收端缓冲区溢出。
窗口的大小是以包的字节数为单位而不是以包的数量为单位的,滑动窗口属于TCP的流控方式之一。如图9所示。
图9TCP滑动窗口