一、计算机网络体系结构
1. 计算机网络体系结构
在计算机网络中,层、层间接口及协议的集合被称为计算机网络体系结构。
- OSI七层协议模型主要包括是:应用层(Application)、表示层(Presentation)、会话层(Session)、运输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。
- TCP/IP是一个四层的体系结构,主要包括:应用层、运输层、网际层和网络接口层。
- 五层协议的体系结构主要包括:应用层、运输层、网络层,数据链路层和物理层。
OSI七层体系结构具有概念清楚、理论完整的特点,是一个理论上的国际标准,但却不是事实上的国际标准;而具有简单易用特点的TCP/IP 四层体系结构则是事实上的标准。 需要指出的是,五层体系结构虽然综合了 OSI 和 TCP/IP 的优点,但其只是为了介绍网络原理而设计的,没有具体的实际意义。
2.OSI七层协议模型
- 应用层
- 作用:控制应用程序
- 典型协议:http, ftp, telnet, ssh,smtp, rip, BGP (未完待续)
- 备注:为应用程序提供网络服务
- 表示层
- 作用:格式化数据
- 典型协议:ASCII, JPEG. PNG, MP3. WAV, AVI
- 备注:可以提供加密服务
- 会话层
- 作用:控制会话,建立管理终止应用程序会话
- 典型协议:NFS, SQL, ASP, PHP, JSP, RSVP(资源源预留协议), windows
- 备注:负责会话建立
- 传输层
- 作用:提供可靠和尽力而为的传输
- 典型协议:TCP,UDP,SPX,port(65535个端口),EIGRP,OSPF
- PDU:fragment 段
- 无典型设备
- 备注:负责网络传输和会话建立
- 网络层
- 作用:定义一个逻辑的寻址,选择最佳路径传输,路由数据包
- 典型协议:IP,IPX,ICMP,ARP(IP->MAC),IARP
- PDU:packet/数据包
- 设备:路由器
- 备注:实现寻址
- 数据链路层
- 作用:定义如何格式化数据,支持错误检测
- 典型协议:以太网,帧中继(古董级VPN)
- PDU:frame(帧)设备:以太网交换机
- 备注:交换机通过MAC地址转发数据,逻辑链路控制
- 物理层
- 作用:定义一些电器,机械,过程和规范,如集线器
- PDU(协议数据单元):bit/比特
- 设备:集线器HUB
- 注意:没有寻址的概念
3. TCP/IP的四/五层协议模型
TCP/IP模型由四层结构组成:应用层、传输层、网际层、网络接口层,每层分别具有不同的协议和功能。TCP/IP协议族是一组在不同层的多个协议的组合,各层在实现自身功能时,为上层提供服务。
应用层
应用层( application-layer )负责程序之间的数据沟通。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。
对于不同的网络应用需要不同的应用层协议。如域名系统 DNS,支持万维网应用的 HTTP 协议(超文本传输协议),FTP文件传输协议、SMTP简单邮件传输协议,SNMP简单网络管理协议,同时可以自己定义协议。
传输层
传输层(transport-layer)负责为两台主机的应用程序之间提供端到端的数据传输服务,应用进程利用该服务传送应用层报文。
传输层协议:TCP协议、UDP协议。
- 面向连接,可靠的数据流TCP传输控制协议
- 和无连接,不可靠面向数据报传输的UDP用户数据报协议。
TCP和UDP的区别:
TCP | UDP | |
---|---|---|
是否连接 | 无连接 | 面向连接 |
是否可靠 | 不可靠传输,不使用流量控制和拥塞控制 | 可靠传输,使用流量控制和拥塞控制 |
连接对象个数 | 支持一对一,一对多,多对一和多对多交互通信 | 只能是一对一通信 |
传输方式 | 面向报文 | 面向字节流 |
首部开销 | 首部开销小,仅8字节 | 首部最小20字节,最大60字节 |
场景 | 适用于实时应用(IP电话、视频会议、直播等) | 适用于要求可靠传输的应用,例如文件传输 |
网际层
网际层主要提供地址管理,和路由选择,确保计算机通信的数据及时传送。
TCP/IP协议族中,网际层最核心的协议是IP(Internet Protocol)协议。IP协议根据数据包的目的IP地址来决定如何投递它。如果数据包不能直接发送给目标主机,那么IP协议就为它寻找一个合适的下一跳(next hop)路由器,并将数据包交付给该路由器来转发。多次重复这一过程,数据包最终到达目标主机,或者由于发送失败而被丢弃。
网际层另外一个重要的协议是ICMP协议(Internet Control Message Protocol,因特网控制报文协议)。它是IP协议的重要补充,主要用于检测网络连接。
数据链路层
数据链路层(data link layer)实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。如:IP地址和机器物理地址(通常是MAC地址,以太网、令牌环和802.11无线网络都使用MAC地址)之间的相互转换。 主要实现三个目的:
- 接受和发送ip数据包
- 接受发送ARP(Address Resolve Protocol,地址解析协议) 请求(获取目标主机的MAC地址)
- 为发送RARP(ReverseAddress Resolve Protocol,逆地址解析协议) 请求和接收RARP应答
另外根据网络中硬件的不同,数据链路层有不同的协议,如以太网,令牌环网。
物理层
物理层(physical layer)的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。在物理层上所传送的数据单位是比特。
二、TCP/IP协议族
TCP/IP (Transmission Control Protocol / Internet Protocol 传输控制协议/网际协议)是用于因特网 (Internet) 的通信协议。定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。
- TCP 负责应用软件(比如您的浏览器)和网络软件之间的通信,使用固定的连接;IP 负责计算机之间的通信,是无连接的通信协议。
- TCP 负责将数据分割并装入 IP 包,然后在它们到达的时候重新组合它们;IP 负责将包发送至接受者。
TCP/IP协议族是基于 TCP 和 IP 这两个最初的协议之上的不同的通信协议的大集合。
协议 | 作用 |
---|---|
TCP - 传输控制协议 | TCP 用于从应用程序到网络的数据传输控制。TCP 负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将它们重组。 |
IP - 网际协议(Internet Protocol) | IP 负责计算机之间的通信。IP 负责在因特网上发送和接收数据包。 |
HTTP - 超文本传输协议(Hyper Text Transfer Protocol) | HTTP 负责 web 服务器与 web 浏览器之间的通信。HTTP 用于从 web 客户端(浏览器)向 web 服务器发送请求,并从 web 服务器向 web 客户端返回内容(网页)。 |
HTTPS - 安全的 HTTP(HTTP Secure) | HTTPS 负责在 web 服务器和 web 浏览器之间的安全通信。作为有代表性的应用,HTTPS 会用于处理信用卡交易和其他的敏感数据。 |
SSL - 安全套接字层(Secure Sockets Layer) | SSL 协议用于为安全数据传输加密数据。 |
SMTP - 简易邮件传输协议(Simple Mail Transfer Protocol) | SMTP 用于电子邮件的传输。 |
MIME - 多用途因特网邮件扩展(Multi-purpose Internet Mail Extensions) | MIME 协议使 SMTP 有能力通过 TCP/IP 网络传输多媒体文件,包括声音、视频和二进制数据。 |
IMAP - 因特网消息访问协议(Internet Message Access Protocol) | IMAP 用于存储和取回电子邮件。 |
POP - 邮局协议(Post Office Protocol) | POP 用于从电子邮件服务器向个人电脑下载电子邮件。 |
FTP - 文件传输协议(File Transfer Protocol) | FTP 负责计算机之间的文件传输。 |
NTP - 网络时间协议(Network Time Protocol) | NTP 用于在计算机之间同步时间(钟)。 |
DHCP - 动态主机配置协议(Dynamic Host Configuration Protocol) | DHCP 用于向网络中的计算机分配动态 IP 地址。 |
SNMP - 简单网络管理协议(Simple Network Management Protocol) | SNMP 用于计算机网络的管理。 |
LDAP - 轻量级的目录访问协议(Lightweight Directory Access Protocol) | LDAP 用于从因特网搜集关于用户和电子邮件地址的信息。 |
ICMP - 因特网消息控制协议(Internet Control Message Protocol) | ICMP 负责网络中的错误处理。 |
ARP - 地址解析协议(Address Resolution Protocol) | ARP - 用于通过 IP 来查找基于 IP 地址的计算机网卡的硬件地址。 |
RARP - 反向地址转换协议(Reverse Address Resolution Protocol) | RARP 用于通过 IP 查找基于硬件地址的计算机网卡的 IP 地址。 |
BOOTP - 自举协议(Boot Protocol) | BOOTP 用于从网络启动计算机。 |
PPTP - 点对点隧道协议(Point to Point Tunneling Protocol) | PPTP 用于私人网络之间的连接(隧道)。 |
应用:电子邮件
1). 使用 SMTP 来发送邮件
2). 使用 POP 从邮件服务器下载邮件
3). 使用 IMAP 连接到邮件服务器
三、TCP/IP 通信传输流
利用 TCP/IP 协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则从链路层往上走。如下:
- 首先作为发送端的客户端在应用层(HTTP 协议)发出一个想看某个 Web 页面的 HTTP 请求。
- 接着,为了传输方便,在传输层(TCP 协议)把从应用层处收到的数据(HTTP 请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。
- 在网络层(IP 协议),增加作为通信目的地的 MAC 地址后转发给链路层。这样一来,发往网络的通信请求就准备齐全了。
- 接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的 HTTP请求。