1、数据通信网络基本概念
通信是指人与人、人与物、物与物之间通过某种媒介和行为进行的信息传递与交流。
网络通信是指终端设备之间通过计算机网络进行的通信,如下图所示3个网络通信案例:
数据通信网络由路由器、交换机、防火墙、无线控制器、无线接入点,以及个人电脑、网络打印机、服务器等设备构成的通信网络。数据通信网络最基本的功能实现数据互通。
1.1 组网方式
p2p(peer to peer,点对点)
MA: broadcast / NBMA(non-broadcast)
1.2 网络top类型
按照网络拓扑形态划分,可分为:星型网络、总线型网络、环形网络、树形网络、全网状网络等。
-
星型组网--------LAN内多用
所有结点通过一个中心结点连接在一起。
优点:管理方便,易于网络监控;
缺点:易受攻击,易出现单点故障;
-
双星拓扑--------数据中心
针对星型组网的缺点,强化冗余、高可靠;
-
“口”、“日”字形--------WAN
1.3 层级划分管理
传统的网络架构普遍采用扁平化设计,不利于扩展;现代网络架构通常按照接入层、汇聚层、核心层进行层次化设计、易于扩展,还会采用冗余机制进行硬件层面的备份。企业网络架构下图所示:
接入层:提供大量的接口,接入用户,一般部署交换机;
汇聚层:各种策略的部署,流量管控,一般部署三层设备;
核心层:数据的快速转发,一般部署两台三层设备(金融等行业除外)。
1.4 数据在网络中的传递方式
为了简明扼要地描述数据在网络中的传递方式,使用QQ为例:
单播 ---- QQ私聊,1V1;
组播 ---- QQ群聊,1V多;
广播 ---- QQ系统消息,1V所有。
网络工程就是围绕着网络进行的一系列的活动,包括:网络规划、设计、实施、调试、排错等。网络工程设计的知识领域很宽广,其中路由和交换是计算机网络的基本。
1.5 网络设备的工作模式
-
单工 ---- 设备只具备数据的接收或者发送功能(BP机、收音机);
-
双工 ---- a.半双工 ---- 设备在同一时刻只能接收或者发送数据(对讲机)
b.全双工 ---- 设备在同一时刻既能接收也能发送。
1.6 RJ-45水晶头的接法
RJ-45水晶头是连接网络的重要材料,实际效果下图所示:
568A线序,应用相对较少;绿橙蓝棕4 6跳:
绿白 绿 橙白 橙 蓝白 蓝 棕白 棕
1 2 3 4 5 6 7 8
568B线序,最常见也是应用范围最广的,橙绿蓝棕4 6跳:
橙白 橙 绿白 绿 蓝白 蓝 棕白 棕
1 2 3 4 5 6 7 8
1.7 网络模型
TCP/IP模型与OSI模型在结构上类似,采用分层架构,同时层与层之间又紧密联系。因为OSI协议栈比较复杂,且TCP和IP两大协议应用范围较广,被市场广泛接受,所以TCP/IP模型成了网络主流参考模型。下图是TCP/IP五层模型:
2、TCP/IP模型中的QQ
关于Wireshark的安装,详见Wireshark的安装教程。为了便于对TCP/IP模型有直观的了解,通过 Wireshark对QQ聊天通讯软件进行抓包,具体详见下图:
在上图中,QQ程序传递消息给我时,数据链路层使用了Ethernet协议,包含了源目的终端设备的MAC地址;到了网络层,使用了IPv4协议,发送了源目的IP地址;到了传输层,使用了UDP协议,QQ程序对应的端口号为8000,相关的传输层端口详见fern_girl大佬的传输层概述以及传输层端口博客;应用层,是腾讯的OICQ协议,比较自恋自称是中国最受欢迎的软件。
应用层的数据称为传输的信息,传输层到应用层的数据称为数据段,网络层到应用层的数据称为数据包,数据链路层到应用层的数据称为数据帧。
此外传输层协议主要有TCP、UDP组成,TCP协议面向连接、可靠,用于解析、文本传输、远程连接或控制等场景;任何基于TCP的应用,在发送数据之前,都需由TCP进行“三次握手”建立连接。而UDP协议则面向的是非连接,传输不可靠但传播速度快,通常用于语音通话等多媒体场景。关于三次握手,陈皓大佬的TCP 的那些事儿(上)讲述非常清晰,在这里我就不过多说明,直接上下图案例:
终端PC_A直接将自己的IP地址和接收方IP地址、序号seg、确认号ACK、标志位SYN建立连接等信息发送给PC_B;PC_B通过检查目的地址是自己后,解析TCP头部,查看请求同步/连接的seg、ACK等,并返回确认ACK=a+1;PC_A在接收到PC_B回复的消息后,确认了PC_A与PC_B之间通信无问题。在此基础上再次发送一个seg=a+1,ACK=b+1,确认了PC_B与PC_A之间通信无问题;可看出ACK的值实在前一个seg值得基础上加1。三次信息传递后,建立TCP连接。