一、数据通信网络基础
常见术语
术语 | 说明 |
数据载荷 | 最终要传递的信息 |
报文 | 网络中交换与传输的数据单元 |
头部 | 在数据载荷的前面添加的信息段 |
尾部 | 在数据载荷的后面添加的信息段 |
封装 | 对数据载荷添加头部和尾部,形成新的报文的过程 |
解封装 | 去掉报文的头部和尾部,获取数据载荷的过程 |
网关 | 提供协议转换、路由选择、数据交换等功能的网络设备 |
路由器 | 为报文选择传递的路径的网络设备 |
终端设备 | 数据通信系统的端设备,作为数据的发送者或接受者 |
网络设备-交换机
交换机:距离终端用户最近的设备,用于终端用户接入的网络、对数据帧进行交换等。
网络设备-路由器
路由器:网络层设备,可以在因特网中进行数据报文转发。路由器根据所收到的报文的目的地址选择一条合适的路径,将报文传送到下一个路由器或目的地,路径中最后的路由器负责将报文送交目的主机。
- 实现同类型网络或异种网络之间的通信
- 隔离广播域
- 维护路由表、运行路由协议
- 路径(路由信息)选择、IP报文转发
- 广域网接入、网络地址转换
- 连接通过交换机组建的二层网络
网络设备-防火墙
防火墙:网络安全设备,用于控制两个网络之间的安全通信。它通过监测、限制、更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息、结构和运行状况,以此来实现对网络的安全保护。
- 隔离不同安全级别的网络
- 实现不同安全级别的网络之间的访问控制(安全策略)
- 用户身份认证
- 实现远程接入功能
- 实现数据加密及虚拟专用网业务
- 执行网络地址转换
- 其他安全功能
局域网(Local Area Network)
城域网(Metropolitan Area Network)
广域网(Wide Area Network):典型的广域网有:Internet(因特网)。
网络拓扑:是指用传输介质(例如双绞线、光纤等)互联各种设备(例如计算机终端、路由器、交换机等)所呈现的结构化布局。按照网络的拓扑形态来划分,网络可分为星型网络、总线型网络、环形网络、树形网络、全网状网络和部分网状网络。
二、网络参考模型
OSI参考模型
7.应用层 | 为应用程序提供接口。 |
6.表示层 | 进行数据格式的转换,以确保一个系统生成的应用层数据能够被另外一个系统的应用层所识别和理解。 |
5.会话层 | 在通信双方之间建立、管理和终止会话。 |
4.传输层 | 建立、维护、和取消一次端到端的数据传输过程。控制传输节奏的快慢,调整数据的排序等等。 |
3.网络层 | 定义逻辑地址;实现数据从源到目的地的转发 |
2.数据链路层 | 将分组数据封装成帧;在数据链路上实现数据的点到点、或点到多点方式的直接通信;差错检测。 |
1.物理层 | 在媒介上传输比特流;提供机械的和电气的规约。 |
TCP/IP参考模型(主流参考模型)
应用层 ——> 应用层
主机到主机层 ——> 传输层
英特网层 ——> 网络层
——> 数据链路层
网络接入层 ——>
——> 物理层
TCP/IP常见协议
1.应用层:应用层为应用软件提供接口,使应用程序能够使用网络服务。应用层协议会指定使用相应的传输层协议,以及传输层所使用的端口等。应用层的PDU(协议数据单元)(报文)被称为Data。
Telent 23(TCP)远程登陆协议,提供远程管理服务
HTTP 80(TCP)超文本传输协议,提供浏览网页务
FTP(File Transfer Protocol) 20、21(TCP)文件传输协议、提供互联网文件资源共享服务. 采用C/S结构
SMTP 25(TCP)简单 邮件传输协议、提供互联网电子邮件服务
TFTP 69(UDP)简单邮件传输协议,提供简单的文件传输服务
SNMP / DNS / DHCP
2.传输层:接收来自应用层协议的数据,封装上相应的传输层头部,帮助其建立“端到端”(port to port)的连接。传输层的PDU被称为Segment(段)
TCP:一种面向连接的可靠的传输层通信协议,由IETF的RFC793定义。
UDP:一种简单的无连接的传输层协议,由IETF的RFC768定义。
TCP和UDP-端口号:
- 客户端使用的源端口一般随机分配,目标端口则由服务器的应用指定;
- 源端口号一般为系统中未使用的,且大于1023;
- 目的端口号为服务端开启的应用(服务)所侦听的端口,如HTTP缺省使用80
TCP连接建立的详细过程如下:(三次握手)
- 由TCP连接发起方,发送第一个SYN位置1的TCP报文。初始序列号(Seq)a为一个随机生成的数字,因为没收到过来自接收方的任何报文,所以确认序列号(Ack)为0 ;
- 接收方接收到合法的SYN报文之后,回复一个SYN和ACK置1的TCP报文。初始序列号(Seq)b为一个随机生成的数字,同时因为此报文是回复给发起方的报文,所以确认序列号(Ack)为a+1;
- 发起方接收到接收方发送的SYN和ACK置位的TCP报文后,回复一个ACK置位的报文,此时序列号为a+1,确认序列号(Ack)为b+1。接收方收到之后,TCP双向连接建立。
TCP的关闭-四次挥手
- 1. 由PC1发出一个FIN字段置”1 ”的不带数据的TCP段;
- 2. PC2收到PC1发来的FIN置位的TCP报文后,会回复一个ACK置位的TCP报文。
- 3. 若PC2也没有需要发送的数据,则直接发送FIN置位的TCP报文。假设此时PC2还有数据要发送,那么当PC2发送完这些数据之后会发送一个FIN置位的TCP报文去关闭连接。
- 4. PC1收到FIN置位的TCP报文,回复ACK报文,TCP双向连接断开。
3.网络层:传输层负责建立主机之间的进程与进程之间的连接,而网络层负责数据从一台主机到另外一台主机之间的传递。网络层的PDU被称为Packet(包)。
网络层作用:为网络中的设备提供逻辑地址,负责数据包的寻径和转发。
常见协议:IPv4/IPv6/ICMP/IGMP/等。
4.数据链路层:位于网络层和物理层之间,可以向网络层的IP、IPv6等协议提供服务。数据链路层的PDU被称为Frame(帧)。常见协议 PPPoE/Ethernet(以太网)/PPP
- MAC地址在网络中唯一标识一个网卡,每个网卡都需要且会有唯一的一个MAC地址。
- MAC用于在一个IP网段内,寻址找到具体的物理设备。
- 工作在数据链路层的设备。例如以太网交换机,会维护一张MAC地址表,用于指导数据帧转发。
- MAC地址由48比特(6个字节)长,12位的16进制数字组成。例如:48-A4-72-1C-8F-4F
地址解析协议(ARP Address Resolution Protocol):是根据IP地址获取数据链路层地址的一个TCP/IP协议。根据已知的IP地址解析获得其对应的MAC地址。
ARP是IPv4中必不可少的一种协议,它的主要功能是:
- 将IP地址解析为MAC地址。
- 维护IP地址与MAC地址的映射关系的缓存,即ARP表项。
- 实现网段内重复IP地址的检测。
网络设备一般都有一个ARP缓存(ARP Cache)。ARP缓存用来存放IP地址和MAC地址的关联信息。在发送数据前,设备会先查找ARP缓存表。如果缓存表中存在对方设备的ARP表项,则直接采用该表项中的MAC地址来封装帧,然后将帧发送出去。如果缓存表中不存在相应信息,则通过发送ARP Request报文来获得它。
主机1通过发送ARP Request报文来获取主机2的MAC地址。由于不知道目的MAC地址,因此ARP Request报文内的目的端MAC地址为0。
ARP Request是广播数据帧,因此交换机收到后,会对该帧执行泛洪操作。
所有的主机接收到该ARP Request报文后,都会检查它的目的端IP地址字段与自身的IP地址是否匹配。
主机2发现IP地址匹配,则会将ARP报文中的发送端MAC地址和发送端IP地址信息记录到自己的ARP缓存表中。主机2通过发送ARP Reply报文来响应主机1的请求。此时主机2已知主机1的MAC地址,因此ARP Reply是单播数据帧。交换机收到该单播数据帧后,会对该帧执行转发操作。主机1收到ARP Reply以后,会检查ARP报文中目的端IP地址字段是否与自己的IP地址匹配。如果匹配,会将ARP报文中的发送端MAC地址和发送端IP地址信息记录到自己的ARP缓存表中。
封装好的完整数据,将会在网络中被传递。一般情况下: