网络基础
一.网络的基本概念
什么是网络:
在定义上非常简单网络就是一群通过一定形式连接起来的计算机。
一个网络可以由两台计算机组成,也可以拥有在同一大楼里面的上千台计算机和使用者。我们通常指这样的网络为局域网(LAN, Local Area Network),由LAN再延伸出去更大的范围,比如整个城市甚至整个国家,这样的网络我们称为广域网
(WAN, Wide Area Network),当然您如果要再仔细划分的话,还可以有MAN(Metropolitan Area Network) 和 CAN(CitywideArea Network),这些网络都需要有专门的管理人员进行维护。
资源共享的功能和优点:
数据和应用程序v
资源v
网络存储v
备份设备
常见的物理组件:路由器,交换机
VPN :虚拟的私有网络
网络的特性:速度,成本,安全性,可用性,可扩展性,可靠性,拓扑
物理拓扑的分类:
逻辑拓扑:逻辑拓扑描述了信息在网络中流动的方式
总线拓扑:所有设备均可接受信号
星型拓扑:通过中心点传输
单一故障点
扩展星型拓扑:比星型拓扑的复原能力更强
环拓扑:信号绕环传输
单一故障点
双环拓扑: 信号沿向反方向传输
比单环的复原能力更强
全网状拓扑:容错能力强
实施成本高
部分网状拓扑:在容错能力与成本之间寻求平衡
网络应用程序v
Web 浏览器(Chrome、IE、Firefox等)v
即时消息(QQ、微信、钉钉等)v
电子邮件(Outlook、foxmail 等)v
协作(视频会议、VNC、Netmeeting、WebEx 等)v
web网络服务(apache,nginx,IIS)v
文件网络服务(ftp,nfs,samba)v
数据库服务( MySQL,MariaDB, MongoDB)v
中间件服务(Tomcat,JBoss)v
安全服务( Netfilter)
二.网络的分层
网络应用的分层:
1. 应用层 降低复杂度
2. 表示层 标准化接口
3. 会话层 简化模块化设计
4. 传输层 确保技术的互操作性
5. 网络层 加快发展速度
6. 数据链路层 简化教学
7. 物理层
OSI模型的七层结构
1. 应用层 网络进程访问应用层
2. 表示层 数据表示
3. 会话层 主机间通信
4. 传输层 端到端链接
5. 网络层 数据传输
6. 数据链路层 访问介质
7. 物理层
物理层: 二进制传输 为启动,维护以及关闭物理链路定义了电气规范 ,机械规范,过程规范和功能规范
数据链路层:定义如何格式化数据以便进行传输以及如何控制对网络的访问(也就是帧)
网络层:数据传输,路由数据包,选择传递数据的最佳路径,支持逻辑寻址和路径选择
传输层:传输问题,确保数据传输的可靠性,建立 维护和终止虚拟电路,通过错误检测和恢复,信息流控制来保障可靠性
表示层: 数据表示 确保接收系统可以读出该数据,格式化数据,构建数据, 协商用于应用层的数据传输语法
应用层:网络进程访问应用层 为应用程序进程提供网络服务,提供用户身份验证
名称 |
功能 |
实例 |
|||
应用层 |
用户接口 |
HTTP TELNET |
|||
表示层 |
数据的表现形式,特定功能的实现如-加密 |
ASCLL EBCDIC JPEG |
|||
会话层 |
对应用层会话的管理,同步 |
操作系统/应用系统 |
|||
传输层 |
可靠与不可靠的传输,传输前的错误检测,流控 |
TCP , UDP |
|||
网络层 |
提供逻辑地址,选择 |
IP |
|||
数据链路层 |
成帧,用MAC地址访问媒介,错误检测与修正 |
802.3/802.2 HDLC |
|||
物理层 |
设备之间的比特的传输,物理接口,电气特性等 |
EIA/TIA-232 V.35 |
数据的封装:
数据的解封:
PDU
v PDU: Protocol Data Unit,协议数据单元是指对等层次之间传递的数据单位v
物理层的 PDU是数据位 bitv
数据链路层的 PDU是数据帧 framev
网络层的PDU是数据包 packetv
传输层的 PDU是数据段 segmentv
其他更高层次的PDU是消息 message
三种通信模式:单播,广播,组播
三种通信方式:单工,半双工,全双工
WAN:广域网
LAN:局域网
帧的结构:
数据链路层:
MAC地址:
Hub集线器:
Hub:多端口中继器v
Hub并不记忆该信息包是由哪个MAC地址发出,哪个MAC地址在Hub的哪个端口
Hub的特点:共享带宽
半双工
以太网桥:
交换式以太网的优势:
扩展了网络带宽
分割了网络冲突域,使网络冲突被限制在最小的范围内
交换机作为更加智能的交换设备,能够提供更多用户所要求的功能:优先级、虚拟网、远程检测…
以太网的工作原理:
以太网桥监听数据帧中源MAC地址,学习MAC,建立MAC表v
对于未知MAC地址,网桥将转发到除接收该帧的端口之外的所有端口
当网桥接到一个数据帧时,如果该帧的目的位于接收端口所在网段上,它就过滤掉该数据帧;如果目的MAC地址在 位于另外一个端口,网桥就将该帧转发到该端口v
当网桥接到广播帧时候,它立即转发到除接收端口之外的所有其他端口
Hub和交换机比较:
集线器属于OSI的第一层物理层设备,而网桥属于OSI的第二层数据链路层设备n
从工作方式来看,集线器是一种广播模式,所有端口在一个冲突域里面。网桥的可以通过端口隔离冲突
n Hub是所有共享总线和共享带宽。网桥每个端口占一个带宽
路由器:
为了实现路由,路由器需要做下列事情:v
分隔广播域v
选择路由表中到达目标最好的路径v
维护和检查路由信息v
连接广域网
路由:把一个数据包从一个设备发送到不同网络里的另一个设备上去。
这些工作依靠路由器来完成。路由器只关心网络的状态和决定网络中的最佳路径。
路由的实现依靠路由器中的路由表来完成
VLAN: 分隔广播域
安全
灵活管理
中继器又叫信号放大
交换机与路由器直通线 交换机与电脑直通线 交换机与服务器直通线
集线器与电脑直通线 集线器与服务器直通线
路由器与路由器交叉线 交换机与交换机交叉线 电脑与电脑交叉线
LAN :局域网(用于以太网技术)
1.TCP协议
TCP协议属于传输层 (netstat -n 查看端口信息 /etc/services 文件存放的都是常见应用的端口号)
协议 http https ftp ssh smtp pop3 telnet dns tcp udp
端口号 80 443 21 22 25 110 23 53 53 53
TCP包头: URG 表示紧急数据 ACK 确认标记位 PHS 等待 PST 重新建立连接 SYN 请求位 FIN 分手位 seq 序号位 ack 确认号
窗口大小:表示现在允许对方发送的数据量,也就是告诉对方,从本报文的确定号开始允 许对方发送的数据量
校验和: 提供额外的可靠性
紧急指针: 标记紧急数据在数据字段中的位置
选项部分: 其最大长度可根据TCP首部长度进行推算
源端口、目标端口:计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、目标端口是用16位表示的,可推算计算机的端口个数为2^16个v
序列号:表示本报文段所发送数据的第一个字节的编号。在TCP连接中所传送的字节流的每一个字节都会按顺序编号。由于序列号由32位表示,所以每2^32个字节,就会出现序列号回绕,再次从 0 开始v
确认号:表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。也就是告诉发送发:我希望你(指发送方)下次发送的数据的第一个字节数据的编号是这个确认号v
数据偏移:表示TCP报文段的首部长度,共4位,由于TCP首部包含一个长度可变的选项部分,需要指定这个TCP报文段到底有多长。它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。该字段的单位是32位(即4个字节为计算单位),4位二进制最大表示15,所以数据偏移也就是TCP首部最大60字节
URG:表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段(urgent pointer)只有当URG=1时才有效v
ACK:表示是否前面的确认号字段是否有效。ACK=1,表示有效。只有当ACK=1时,前面的确认号字段才有效。TCP规定,连接建立后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段v
PSH:提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间。如果为1,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到的数据读走,就会一直停留在TCP接收缓冲区中v
RST:如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响应,带RST标志的TCP报文段称为复位报文段v
SYN:在建立连接时使用,用来同步序号。当SYN=1,ACK=0时,表示这是一个请求建立连接的报文段;当SYN=1,ACK=1时,表示对方同意建立连接。SYN=1,说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段v
FIN:表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1,即告诉对方:“我的数据已经发送完毕,你可以释放连接了”,带FIN标志的TCP报文段称为结束报文段
TCP协议分层 : 应用层 传输层 Interbet层 网络访问层
TCP的特性: 工作在传输层面向连接协议
全双工协议
半关闭
错误检查
将数据打包成段,排序
确认机制
数据恢复,重传
流量控制,滑动窗口
用塞控制,慢启动和拥塞避免算法
TCP协议PORT:传输层通过port号,确定应用层协议
PORT number:
tcp:传输控制协议,面向链接的协议,通信前需要建立虚拟链路,结束后拆除链路
拆除链路;
0-65535
udp: 无链接的协议 0-65535
IANA:互联网数字分配机构 0-1023系统端口或特权端口 1024-49151 用户端口或注册端口
49152-65535动态端口或私有端口,客户端程序 随机试用的端口
TCP三次握手: 客户 服务器
主动打开 closed closed 被动打开
SYN-SENT同步已发送 LISTEN收听
SYN-RCVD同步收到
ESTAB-LISHED 已建立链接 数据传送 ESTAB-LISHED 已建立链接
TCP四次挥手: 客户 服务器
主动关闭 ESTAB-LISHED 数据传送 ESTAB-LISHED通知应用进程
FIN-WAIT-2终止等待1 CLOSE-WAIT关闭等待 (被动关闭)
FIN-WAIT-2终止等待2 LAST-ACK最后确认
TIME-WAIT时间等待 CLOSED
CLOSE
有限状态机:
CLOSED:没有任何链接状态
LISTEN:侦听状态,等待来自远方TCP端口的链接请求
SYN-SENT:在发送链接请求后,等待对方确认
SYN-RECEIVED:在收到和发送一个链接 请求后等待对方确认
ESTABLISHED:代表传输链接建立,双方进入数据传送状态
FIN-WAIT-1:主动关闭,主机已发送链接请求,等待对方确认
FIN-WAIT-2: 主动关闭,主机已收到对方关闭传输链接确认,等待对方发送关闭传输链接请求
TIME-WAIT:完成双向传输链接关闭,等待所有分组消失
CLOSE-WAIT:被动关闭,收到对方发来的关闭链接请求,并以确认
LAST-ACK:被动关闭,等待最后一个关闭链接确认,并等待所有分组消失
CLOSING:双方同时尝试关闭传输链接,等待对方确认
TCP协议中的三次握手四次挥手:
客户端的三次握手和四次挥手:
服务器端的三次握手和四次挥手:
Linux为了防止孤儿链接长时间存留在内核中定义了内核参数:
/proc/sys/net/ipv4/tcp_max_orphans指定内核能接管的孤儿链接数目
/proc/sys/net/ipv4/tcp_fin_timeout指定孤儿链接在内核中生存的时间
TCP拥塞控制:TCP为提高网络利用率,降低丢包率,并保证网络资源对每条数据流的公平性。 即所谓的拥塞控制流
拥塞控制包括四个部分:慢启动,拥塞避免,快速重传,快速回复。
当前所使用的拥塞控制算法:/proc/sys/net/ipv4/tcp_congestion_ control
本机获取的地址由dhcp udp 67 68 获取
2.UDP
UDP的特性:
工作在传输层v
提供不可靠的网络访问v
非面向连接协议v
有限的错误检查v
传输性能高v
无数据恢复特性
反向ARP: MAP Ethernet-IP
Internet协议特性:
运行于 OSI 网络层
面向无连接的协议v
独立处理数据包v
分层编址v
尽力而为传输v
无数据恢复功能
IP UDP 包头:
3.IP
IP地址: 它们可唯一标识 IP 网络中的每台设备v
每台主机(计算机、网络设备、外围设备)必须具有唯一的地 IP地址由两部分组成:
网络ID:标识网络
每个网段分配一个网络ID
主机 ID: 标识单个主机
由组织分配给各设备
IP地址的分类:
A类:1-126
v 0 000 0000 – 0 111 1111: 1-127
网络数:126, 127
每个网络中的主机数:2^24-2
默认子网掩码:255.0.0.0私网地址:10.0.0.0
B类:128-191
10 00 0000 – 10 11 1111:128-191
网络数:2^14每个网络中的主机数:2^16-2
默认子网掩码:255.255.0.0私网地址:172.16.0.0-172.31.0.0
C类:192-223
110 0 0000 – 110 1 1111: 192-223
网络数:2^21每个网络中的主机数:2^8-2
默认子网掩码:255.255.255.0
私网地址:192.168.0.0-192.168.255.0
D类:224-239
组播1110 0000 – 1110 1111: 224-239
E类:240-255
私有IP地址:
类 私有地址范围
A 10.0.0.0到10.255.255.255
B 172.16.0.0到172.31.255.255
C 192.168.0.0-192.168.255.0
特殊地址:
0.0.0.0
0.0.0.0不是一个真正意义上的IP地址。它表示一个集合:所有不清楚的主机和目的网络。v
255.255.255.255限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机v
127.0.0.1~127.255.255.254本机回环地址,主要用于测试。在传输介质上永远不应该出现目的地址为
“127.0.0.1”的 数据包。
224.0.0.0到239.255.255.255组播地址,224.0.0.1特指所有主机,224.0.0.2特指所有路由器。224.0.0.5指OSPF 路由器,地址多用于一些特定的程序以及多媒体程序v
169.254.x.x如果Windows主机使用了DHCP自动分配IP地址,而又无法从DHCP服务器获取地址,系统会为主机分配这样地址
子网掩码:
优化IP地址分配:
跨网络通信v
跨网络通信:路由v
路由分类:主机路由
网络路由
默认路由v
优先级:精度越高,优先级越高
动态主机配置协议DHCP:
三.网络配置
基本的网络配置:将Linux主机接入到网络,需要配置网络相关设置。v
一般包括如下内容:
主机名
IP/netmask
路由:默认网关
DNS服务器
主DNS服务器
次DNS服务器
第三DNS服务器
网络配置方式:v
静态指定:
ifcfg: ifconfig, route, netstat
ip: object {link, addr, route}, ss, tc
system-config-network-tui (setup)
配置文件
CentOS 7:网络配置工具
nmcli, nmtui, nm-connection-editor v
动态分配:DHCP: Dynamic Host Configuration Protocol
CentOS 6网卡名称:v
网络接口识别并命名相关的udev配置文件:/etc/udev/rules.d/70-persistent-net.rulesv
查看网卡:dmesg |grep –i ethethtool -i eth0
卸载网卡驱动:modprobe -r e1000rmmod e1000v
装载网卡驱动:modprobe e1000
配置网络接口v
接口命名方式:CentOS 6:
以太网:eth[0,1,2,…]
ppp:ppp[0,1,2,…]v
ifconfig命令ifconfig [interface]
# ifconfig -a
# ifconfig IFACE [up|down]
# ifconfig interface [aftype] options | address …
# ifconfig IFACE IP/netmask [up]# ifconfig IFACE IP netmask NETMASK
注意:立即生效;
启用混杂模式:[-]promisc
划分子网:将一个大网络(主机ID位多)划分多个小的网络(主机ID位少),网络ID向主机ID借位,网络ID变多,主机ID变少
划分超网:将多个小网合并一个大网,主机ID向网络ID借位
子网掩码:共32位,对应网络ID位为1,对应主机ID为0
无类域间路由
CIDR表示法:ip/网络ID位数=ip/(32-主机ID位数)
00000000 0
10000000 128
11000000 192
11100000 224
11110000 240
11111000 248
11111100 252
11111110 254
11111111 255
公式
1 主机数=2^主机ID位-2
2 网络数=2^可变的网络ID位
3 网络ID=IP和netmask 相与
4 划分子网数=2^网络ID向主机ID借的位数
5 损失IP=2*(划分子网数-1)
路由表构成:
多个路由记录组成
每个路由记录由4项组成部分
1目标
(1) 主机
(2)网络 网络ID
(3) 未知 0.0.0.0
2 netmask
3 接口interface ,发往目标,从哪个接口发出去
4 网关gateway:下一个路由器的邻近本路由器的接口的IP
原创文章,作者:MOMO,如若转载,请注明出处:http://www.178linux.com/86003