一、分层
1.首先是著名的七层架构和TCP/IP架构,这个不能靠死记硬背的,要加入自己的理解在其中:
应用层 应用层
|
表示层
|
会话层 —————————————— 用户功能部分
|
传输层 传输层 —————————— 中转
| ——————————————— 网络通信部分
网络层 网络层
|
数据链路层 网络接口层
|
物理层
其中,
应用程序是应用程序交互的一层,类似于一种接口,应用程序通过该层进行相互间的通信,是整个协议栈中应用程序直接交互的部分;
表示层与会话层,将应用程序中的信息转化为适合OSI模型的信息,其中会话层将通信信息转化为“报文”
传输层为它上面的应用层提供服务;是面向直接通信网络的最高层,但又是用户功能的最底层;传输层掌握着底层信息发送的高级逻辑;
网络层主要是为传输层的信息选择合适的网络路由和交换节点(将报文分割成包);
数据链路层更贴近于物理层,主要负责两个节点之间的数据传递(将包分割为帧);
二、协议
介绍协议时,先从底层开始;
(1)数据链路层
上一节中,我们讲到了数据链路层,它主要负责两个节点之间的数据帧传递,两个节点主要依靠mac地址进行相互信息传递,因此它有一个PPP协议(point to point:点对点);
(2)网络层
网络层主要是根据 IP地址 选择合适的 路由策略 ,因此它之中的协议就跟这两个内容有关。
IP相关:
多个计算机使用IP协议 1 (分配IP地址)组成虚拟的互联网络,即通过遵守同一协议达到在协议层面的连接;
IP协议要达到真正的通信,还需要在数据链路层中将IP地址转换为Mac地址,所以IP的配套协议之一 ARP(地址解析)协议 2 ,它负责将IP地址转化为MAC地址。(注意:arp协议只负责本局域网内的IP转换,之后的转换由路由器中网络协议完成)。
为了更有效的转发IP数据报和提高交付成功的机会,在网络层使用了ICMP(网际控制报文协议):允许路由器报告差错情况。因此该协议主要负责定义、传递网络层的一些信息。我们日常使用的PING命令就是调用了该协议的接口。
IGMP协议:网络组管理协议,负责本地(局域网内)的信息多播传递。
路由相关:
RIP协议:路由信息协议,仅和相邻路由进行逐级交换;OSFP协议:开放最短路径优先,适合大型网络;BGP协议:边界网关协议;
局域网相关:
专用地址:为了方便本地(局域网)计算机组网通信,又不对外界的IP地址产生影响,分配“专用地址”给网络中的计算机,这些地址主要用于机构内部的通信,因特网中的所有路由器对目的地是专用地址的数据报一律不进行转发。我们常用的192.168.1.1.22这类的地址就属于专用地址。这样我们便可以给局域网内计算机按照IP协议分配专用IP地址,而不对外界产成影响(不产生IP冲突)。
VPN:虚拟专用网协议。它负责将网络中的计算机划分成虚拟的网络——这样我们可以将网络中不同地点的计算机不依靠统一路由与外界网络隔绝就可组成虚拟的本地网络(局域网)。
NAT:网络地址转换协议。主要解决局域网内的计算机与外界通信的问题。NAT负责将局域网内的IP地址转化为外部世界的IP地址(路由的地址),因此局域网的路由或路由的上端至少要拥有一个外界IP地址。为了更加有效地利用NT路由器上的全球IP地址,想在常有的NAT协议结合传输层的端口号,从而为局域网内的多台计算机提供NAT服务(个人猜测NAT的每个端口都对应着局域网呢计算机的一个IP+端口,这样通过端口扩展了路由器可以对外的连接数)。
综上所述,数据链路层和网络层主要负责计算机在通信方面的互联,所以一般路由器也需要集成这两个层次的协议(顺便还有应用层),来达到通信的功能。
(3)传输层
传输层是通信的最高层抽象,是应用的最底层抽象。该层的主要协议是TCP/UDP协议,主要的内容是TCP与UDP各自的内容及它们的区别。
端口:在计算机中会有多个进程要使用传输层进行通信(因为传输层是应用和通信之间的接口),但是要同时使用的话就要对不同应用进程进行辨别,因此在传输层中划分了许多端口用于分配给不同的进程,以便对它们进行分辨。——端口是应用层的各种协议进程与传输层尸体进行层见交互的一种地址。
UDP:用户数据报协议。UDP是不可靠的协议,因为它不建立链接,远程的主机接收到数据报后不进行任何的验证。UDP协议是面向报文的,发送方的UDP对应用程序传下来的报文,只添加自己的头尾就直接传送出去。UDP没有拥塞控制,其可以是一对一,多对一,一对多或多对多的。
TCP:传输控制协议。TCP面向连接,要建立链接,首先要进行三次握手验证连接。TCP只能是点对点的。TCP是面向字节流的(这在java中的Socket的编程中是显而易见的)。
(4)应用层
应用层主要包括各种基础应用,下面对它门进行简单介绍,
DNS:域名解析系统:主要将域名与IP地址进行相互转换。因特网的DNS被设计成一种联机分布式数据库系统,如果本机没有相关IP-域名的数据信息则会返回上一级别进行寻找。(使用UDP协议)
FTP/TFTP:文件传送协议,由于其内部有相关的校验机制,所以可以容忍传输的不可靠性,为了追求传输速率,因此它选择使用UDP协议。
TELNET:终端仿真协议,用于计算机的远程访问。
WWW:万维网协议,它一种分布式的超媒体系统。使用URL标识万维网中的文档,使用HTTP协议进习连接,使用HTML语言表示页面,使用浏览器显示页面。(TCP)
URL的构成:协议://主机:端口(长缺省)/文件路径——http://www.baidu.com/ 这是一个使用http协议的url,在浏览器的地址栏中,http协议也经常被缺省。
SMTP与POP3协议:用于邮件的收发。SMTP用于用户/邮件服务器与邮件服务器之间的邮件发送(Push)。POP3用于用户从邮件服务器上接收(Pull),注意这里发送和接收的不同,它们是以“客户端”为中心的发送与获取。(TCP)
DHCP:动态主机配置协议。动态地为网络中的计算机配置IP地址等网络通信所需要的参数信息。(使用UDP协议)
SNMP:简单网络管理协议。
好啦,本文终于结束了,但可以肯定的是,以后还会将一些知识向这里添加。在理解的基础上进行总结是记忆的最好方法,即使这些内容对我找工作没有太大的帮助,但也使我理解了以前长久在心中的关于计算机网络的一些疑问。另为向大家推荐一本书:
谢希仁编著的《计算网络》一书,确实不错(可能是我接触这方面的书籍太少了。。。。)