OSI
计算机通信开放系统互连(open system interconnection)模型,是一个七层模型
- 应用层:应用层的任务是
通过应用进程间的交互来完成特定网络应用
。应用层的协议定义了应用进程间通信和交互的基本规则
。(DNS析协议、HTTP协议) - 表示层:用于表示
信息的语法语义和他们之间的关联
,如加密解密,压缩解压。 会话层:不同机器上的用户之间建立及管理会话
。 - 传输层:
负责向两台主机之间的进程通信提供通用的数据传输服务
。(TCP协议、UDP协议) - 网络层:
负责为分组交换网上的不同主机提供通信服务
。发送数据时,网络层把运输层产生的报文或数据封装成分组或者包进行传送(IP数据报)(IP协议) - 数据链路层:
进行两个主机之间的数据传输
。 - 物理层:定义了
主机和物理设备的联系,以及比特流的传输
。
在网际网协议族中,OSI模型的底下两层是随系统提供的设备驱动程序和网络硬件。网络层由IPv4和IPv6两个协议来处理,可以选择TCP或UDP做为传输层协议,上面三层被统称为应用层。
【为什么套接字提供的是从OSI模型的顶上三层进入传输层的接口?】
- 顶上三层处理具体网络应用的所有细节,但不关注通信细节,底下四层整好相反,能处理所有的通信细节,发送数据、确认数据等。
- 顶上三层通常构成所谓的用户进程,底下四层通常作为操作系统内核的一部分。
IP层提供无连接不可靠
的数据报递送服务,尽自己最大努力把IP数据报传送到指定的目的地,但不能保证一定到达,也不能保证按序到达和每个数据报值到达一次。而它的可靠性只能由上层提供支持。如果是TCP则由TCP本身完成,如果是UDP则由应用程序完成,因为UDP本身是不可靠的。
【IPv6和Ipv4的区别】
IPv6报头的结构比IPv4简单
, IPv6报头中去掉了了IPv4报头中许多不常用的域,放入了可选项和报头扩展,其可选项有更严格的定义。IPv6的地址空间更大
。IPv4中规定IP地址长度为32,即有232-1个地址。 而IPv6中IP地址的长度为128,即有2128-1个地址。IPv6的路由表更小
。提高了路由器转发数据包的速度IPv6的组播支持以及对流的支持增强
。这使得网络上的多媒体应用有了长足发展的机会,为服务质量控制提供了良好的网络平台。IPv6具有更高的安全性
。在使用IPv6网络中,用户可以对网络层的数据进行加密并对IP报文进行校验,这极大地增强了网络安全。
TCP
上图的每个协议框中的协议功能;
- IPv4:网际协议版本4,使用32位地址,负责给TCP、UDP、ICMP等协议提供
分组传输服务
。 - IPv6:使用更大的12位地址来应对因特网的爆发性增长,同样给TCP、UDP、ICMP等协议提供
分组传输服务
。 - TCP:传输控制协议,面向连接的,提供可靠的传输协议,为用户提供可靠的全双工通信。有超时重传、关心确认等机制,但是是一种流套接字,无法维护消息边界
- UDP:用户数据报协议,是一个无连接、不可靠的协议,不能保证数据报最终传送到目的地。
- STCP:提供可靠的全双工关联的面向连接的协议,提供消息服务,维护消息边界。
- ICMP:网际控制消息协议,处理在
路由器和主机之间流通的错误和控制消息
,返回差错报文等。 - ARP:将IP地址解析成MAC地址
- RARP:将MAC地址解析成ARP地址
- BPF、DLPI:BSD分组过滤器,提供对于数据链路层的访问能力。