网络协议模型(二)
1,前言描述
1.1,为了使不同计算机厂家生产的计算机能够相互通信,以便在更大的范围内建立计算机网络,国际标准化组织(ISO)在1978年提出了“开放系统互联参考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)。它将计算机网络体系结构的通信协议划分为七层,自下而上依次为:物理层(Physics Layer)、数据链路层(Data Link Layer)、网络层(Network Layer)、传输层(Transport Layer)、会话层(Session Layer)、表示层(Presentation Layer)、应用层(Application Layer)。其中第四层完成数据传送服务,上面三层面向用户。
1.2,首先声明按照功能的不同网络模型,标准的OSI七层模型以外,常见的网络层次划分还有TCP/IP四层协议以及TCP/IP五层协议,它们之间的对应关系如下图所示:

1.3,每一层中都要自己的专属协议,完成自己相应的工作以及与上下层级之间进行沟通。由于OSI七层模型为网络的标准层次划分,所以我们以OSI七层模型为例从下向上进行一一介绍。越往上越靠近用户,越往下越靠近硬件。

1.4,不同模型中都有哪些协议
TCP/IP:
数据链路层:ARP,RARP
网络层: IP,ICMP,IGMP
传输层:TCP ,UDP,UGP
应用层:Telnet,FTP,SMTP,SNMP.
OSI:
物理层:EIA/TIA-232, EIA/TIA-499, V.35, V.24, RJ45, Ethernet, 802.3, 802.5, FDDI, NRZI, NRZ, B8ZS
数据链路层:Frame Relay, HDLC, PPP, IEEE 802.3/802.2, FDDI, ATM, IEEE 802.5/802.2
网络层:IP,IPX,AppleTalk DDP
传输层:TCP,UDP,SPX
会话层:RPC,SQL,NFS,NetBIOS,names,AppleTalk,ASP,DECnet,SCP
表示层:TIFF,GIF,JPEG,PICT,ASCII,EBCDIC,encryption,MPEG,MIDI,HTML
应用层:FTP,WWW,Telnet,NFS,SMTP,Gateway,SNMP
2,接下来我们将一一介绍每个层的功能和作用。
(1):物理层功能:
主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0。
激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。
该层为上层协议提供了一个传输数据的可靠的物理媒体。
简单的说,物理层确保原始的数据可在各种物理媒体上传输。 物理层记住两个重要的设备名称,中继器(Repeater,也叫放大器)和集线器。中间的物理链接可以是光缆、电缆、双绞线、无线电波。中间传的是电信号,即010101...这些二进制位。
(2):数据链路层:
数据链路层由来:单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思 数据链路层的功能:定义了电信号的分组方式来的数据可靠地传输到相邻节点的目标机网络层。为达到这一目的,数据链路必须具备一系列相应的功能,主要有:如何将数据组合成数据块,在数据链路层中称这种数据块为帧(frame),帧是数据链路层的传送单位;如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方相匹配;以及在两个网络实体之间提供数据链路通路的建立、维持和释放的管理。数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
有关数据链路层的重要知识点:1> 数据链路层为网络层提供可靠的数据传输;2> 基本数据单位为帧;3> 主要的协议:以太网协议;4> 两个重要设备名称:网桥和交换机ethernet规定
一组电信号构成一个数据包,叫做帧 每一数据帧分成:报头head和数据data两部分head包括(固定18个字节)
- 发送者/源地址,6个字节
- 接收者/目标地址,6个字节
- 数据类型,6个字节
data包括(最短46字节,最长1500字节)
- 数据包的具体内容
head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送
mac地址:
head中包括的源和目标地址由来:ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址
mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)


广播:
有了mac地址,同一网络内的两台主机就可以通信了(一台主机通过arp协议获取另外一台主机的mac地址)
ethernet采用最原始的方式,广播的方式进行通信,即计算机通信基本靠吼

(3)网络层
网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、加密解密、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。如果您想用尽量少的词来记住网络层,那就是“路径选择、路由及逻辑寻址”。 1> 网络层负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能; 2> 基本数据单位为IP数据报; 3> 包含的主要协议: IP协议(Internet Protocol,因特网互联协议); ICMP协议(Internet Control Message Protocol,因特网控制报文协议); ARP协议(Address Resolution Protocol,地址解析协议); RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)。 4> 重要的设备:路由器。(4)传输层(Transport Layer)
第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。
传输层的任务是根据通信子网的特性,最佳的利用网络资源,为两个端系统的会话层之间,提供建立、维护和取消传输连接的功能,负责端到端的可靠数据传输。在这一层,信息传送的协议数据单元称为段或报文。
1> 传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题; 2> 包含的主要协议:TCP协议(Transmission Control Protocol,传输控制协议)、UDP协议(User Datagram Protocol,用户数据报协议);3> 重要设备:网关。(5)会话层
会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。 会话层还利用在数据中插入校验点来实现数据的同步。(6)表示层
表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。 表示层的数据转换包括数据的加密、压缩、格式转换等。(7)应用层
应用层由来:用户使用的都是应用程序,均工作于应用层,互联网是开放的, 大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式 应用层功能:规定应用程序的数据格式。例:TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。
会话层、表示层和应用层重点:
1> 数据传输基本单位为报文; 2> 包含的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议),HTTP协议(Hyper Text Transfer Protocol)。3.1,七层理解
物理层:物理接口规范,传输比特流,网卡是工作在物理层的。二进制传输,传输单位(比特 Bit)
数据层:成帧,保证帧的无误传输,MAC地址,形成EHTHERNET帧。传输单位(帧 Frame)
网络层:路由选择,流量控制,IP地址,形成IP包。分组传输和路由选择,传输单位(包 Packet)
传输层:端口地址,如HTTP对应80端口。TCP和UDP工作于该层,还有就是差错校验和流量控制。端对端连接,传输单位(片 Segment)
会话层:组织两个会话进程之间的通信,并管理数据的交换使用NETBIOS和WINSOCK协议。QQ等软件进行通讯因该是工作在会话层的。建立、维护和终止会话,传输单位(数据 data)
表示层:使得不同操作系统之间通信成为可能。数据的表示,包括数据的格式、加密、压缩,传输单位(数据 data)
应用层:对应于各个应用软件。提供具体网络服务,传输单位(数据 data)
3.2,信息传递过程
OSI/ISO七层模型信息流动

TCP/IP 五层模型
3.3,网络流量解析工具
wireshark对应报文(支持mac,win系统,能够解析的协议比较多,适合静态针对多格式文件解析,功能强大,截取的数据比较笨重)

轻量级(mac charles),针对网络爬虫的协议,好处就是8888端口数据为主,其他数据不会返回,也不会抓取太多的数据包, 以请求参数为主

服务器命令版Tcpdump(ubuntu,contos)
解析出来的是.pcap的文件,具体使用的方法自行百度。
下面均以wireshark为例
以太网帧结构

IP数据包格式

TCP报文格式

UDP报文格式

有关网络应用协议数据包(国际常用格式为.pcap,升级版.pcapng)各位朋友可以私聊我免费获取