1 网络体系结构
目前较为主流的网络体系结构是ISO/OSI参考模型和TCP/IP协议族。这两种体系结构都采用了分层设计和实现的方式,ISO/OSI参考模型从上而下划分为应用层、表示层、会话层、传输层、网络层、数据链路层和物理层,而TCP/IP则将网络划分为应用层、传输层、网络层、链路层。分层设计的好处是,各层可以独立设计和实现,只要保证相邻层之间的调用规范和接口不变,就可以方便、灵活地改变各层的内部实现以进行优化或完成其他需求。
2 网络协议
网络协议是计算机网络中为了进行数据交换而建立的规则、标准或约定的集合,语法、语义和时序是网络协议的三要素。简单地讲,语义表示要做什么,语法表示要怎么做,时序规定了各个时间出现的顺序。语法和语义相对来说比较容易理解,可能有读者在想为啥要严格规定各类时间的时间和顺序。试想,假设早上8点A和B两个同事上班时在公司门口偶遇,A问B“吃了吗”,B没有做任何回答就走了(如何计算A的心理阴影面积),中午12点下班时两个人在公司门口再次偶遇,B对A说“吃了”,我们可以想象到A看B的眼神会是什么样的。
(1)语法:语法规定了用户数据与控制信息的结构与格式。
(2)语义:语义用来解释控制信息每个部分的含义,规定了需要发出何种控制信息,以及需要完成的动作和做出什么样的响应。
(3)时序:时序是对事件发生顺序的详细说明,也可以成为“同步”。
3 应用层协议
应用层协议直接与最终用户进行交互,用来确定运行在不同终端系统上的应用程序之间如何传递报文。下面简单列出了集中常见的应用层协议。
(1)DNS:域名系统(Domain Name System),用来实现域名与IP地址的转换,运行于UDP之上,默认使用53端口。
(2)FTP:文件传输协议(File Transfer Protocol),可以通过网络在不同平台之间实现文件的传输,是一种基于TCP的明文传输协议,默认工作在21号端口。
(3)HTTP:超文本传输协议(HyperText Transfer Protocol),运行于TCP之上,默认使用80端口。
(4)SMTP:简单邮件传输协议(Simple Mail Transfer Protocol),建立在TCP的基础上,使用明文传递邮件和发送命令,默认使用25号端口。
(5)TELNET:远程登录协议,运行于TCP之上,默认使用23端口。
4 传输层协议
在传输层主要运行这传输控制协议(Transmission Control Protocol,TCP)和用户数据报协议(User Datagram Protocol,UDP)两个协议,其中TCP是面向连接的,具有质量保证的可靠传输协议,但开销较大;UDP是尽最大能力传输的无连接协议,开销小,常用于视频在线点播之类的应用。TCP和UDP本身并没有优劣之分,仅仅是适用场所不同。在传输层,使用端口号来标识和区分同一台计算机上运行的多个应用层进程,每当创建一个应用层网络进程时系统就会自动分配一个端口号与之关联,是实现网络上端到端通信的重要基础。例如远程桌面连接默认占用3389端口,HTTP默认使用80端口,MySQL使用3306端口,MongoDB使用27017端口,大多数情况下IRC服务器使用6667端口,IMAP使用143端口,Oracle使用1521、1158、8080、210等几个端口,等等。
5 IP地址
IP运行于网络层,是网络互连的重要基础。IP地址(32位或128位二进制数)用来标识网络上的主机,在公开网络上或同一个局域网内部,每台主机都必须使用不同的IP地址;而由于网络地址转换(Network Address Translation,NAT)和代理服务器等技术的广泛应用,不同内网之间的主机可以使用相同的IP地址。IP地址于端口号共同标识网络上特定主机上的额特定应用进程,俗称Socket。
6 MAC地址
MAC地址也称为网卡物理地址,是一个48位的二进制数,用来标识不同的网卡物理地址。本机的IP地址和MAC地址可以在命令提示符窗口中使用ipconfig-all命令查看。