网络协议初探
一、五层协议 VS 七层协议
1、五层协议
因特网五层协议栈共有五层:应用层、传输层、网络层、链路层和物理层
(1)物理层
通过媒介传输比特,确定机械及电气规范(比特Bit),主要协议ISO2110、IEEE802等
(2)数据链路层
将比特组装成帧和点到点的传递(帧Frame),主要协议ARP(Address Resolution Protocol,地址解析协议,把 IP 地址映射为物理地址)、RARP(逆向 ARP,就是将物理地址映射为 IP 地址)、SLIP、CSLIP、MTU等。
(3)网络层
负责数据包从源到宿的传递和网际互连(包Packet),主要协议有IP(网际协议)、ICMP (因特网消息控制协议,针对错误和状态)、IGMP。
(4)传输层
负责为信源和信宿提供应用程序进程间的数据传输服,这一层上主要定义了两个传输协议,传输控制协议即TCP和用户数据报协议UDP,TCP的数据单元称为段 (segments)而UDP协议的数据单元称为“数据报(datagrams)”。
(5)应用层
支持网络应用,应用协议仅仅是网络应用的一个组成部分,运行在不同主机上的进程则使用应用层协议进行通信。主要的协议有:http、ftp、telnet、smtp、pop3、等。
2、七层协议
ISO提出的OSI(Open System Interconnection)模型将网络分为七层,即物理层( Physical )、数据链路层(Data Link)、网络层(Network)、传输层(Transport)、会话层(Session)、表示层(Presentation)和应用层(Application)。比五层协议多了会话层和表示层:
5)会话层
会话层(Session layer)是参考模型的第5层。主要功能是:负责维护两个结点之间的传输链接,以便确保点到点传输不中断,以及管理数据交换等功能(表示协议数据单元PPDU)。
6)表示层
表示层(Presentation layer)是参考模型的第6层。主要功能是:用于处理在两个通信系统中交换信息的表示方式,主要包括数据格式变换、数据加密与解密、数据压缩与恢复等功能(应用协议数据单元APDU)。
3、区别
1)五层协议中的应用层处理开放式系统互联模型中的第五层、第六层和第七层的功能。
2)五层协议中的传输层并不能总是保证在传输层可靠地传输数据包,而开放式系统互联模型可以做到。这是因为TCP/IP协议还提供一项名为UDP(用户数据报协议)的选择。UDP不能保证可靠的数据包传输。
二、TCP VS UDP
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接(如邮局发信件)
2、TCP提供全双工可靠的信道。通过确认机制、重传机制、拥塞控制机制等确保传送的数据无差错,不丢失,不重复,且按序到达;UDP不保证可靠传送。这就是的TCP可靠但效率低、占用资源多、已被攻击;UDP不可靠但效率高,占用资源少。
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
三、TCP的三次握手和四次挥手
1)握手
2)挥手
tcp建立需要三次,终止需要四次是由于当接受方接收到发送发没有数据传输时,接收方可能还有数据需要传送一会,此时只能回复自己收到了发送发的请求终止通知,但是自己暂时并不能发送请求终止通知(因为自己还要传数据给对方)。