风催

计算机网络详解

前言:对于计算机网络部分,我们主要学习的是TCP/IP协议栈。而TCP/IP协议栈并无法将各种的协议进行一个合理的区分,因此,在大学本科教育中我们通常讲解的是IOS七层网络模型。
协议:简单的理解就是通信双方相互交流的一种约定,也就是说只有通信双方满足这样的约定才能够相互通信。然而,我们也说过,各种协议必须要被软件实现,才能够被我们所使用。
那么,对于我们的http协议而言,实现http协议的客户端程序有curl,浏览器等工具,服务端有Apache、Nginx等这样的静态服务器软件

Alt text

(二)什么是Mac地址、什么是网桥、什么是交换机

前言:MAC地址,用来表示互联网上每一个站点的标识符,采用十六进制数表示,共六个字节(48位),使用ifconfig命令可以查看: ether 08:00:27:c1:cd:2b。其中,前三个字节是由IEEE的注册管理机构RA负责给不同厂家分配的代码(高位24位),也称为“编制上唯一的标识符”(Organizationally Unique Identifier),后三个字节(低位24位)由各厂家自行指派给生产的适配器接口,称为扩展标识符(唯一性)。
网桥:网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段。使得同一个网段内的通信不会冲突,而不同网段内的通信可以顺利进行。
交换机:多功能交换机,在局域网内,交换机和网桥的功能几乎一样。
路由器:路由器(Router)又称网关设备(Gateway)是用于连接多个逻辑上分开的网络。当数据从一个网段传输到另一个网段时,可通过路由器的路由功能来完成。

(1)交换机通过Mac地址表使得网段内的所有的主机可以相互通信 
(2)路由器通过路由表使得不同网段之间的主机可以相互通信

Alt text

  • 什么是IP
IP = 网络号+主机号
 
一个字节(byte)是8位(bit),IP由32位组成,一共是4个字节
 
例如:IP: 172.16.19.245 netmask 255.255.255.0 broadcast 172.16.19.255
网络号:172.16.19.0
主机号:172.16.19.245
 
那么IP一共有:0.0.0.0 ---- 255.255.255.255
256 x 256 x 256 x 256 = 4294967296
  • IP划分
A 类地址
第一段为网络号,后三段为主机号
0000000-01111111
1-127
其中:127用为本地lo还回地址
那么A类地址的网络地址有:127
那么A类地址的主机地址有:2^24 - 网络地址 - 广播地址 = 2^24 - 2
netmask:255.0.0.0(用户标示网络地址)
broadcast 255.255.255.255
私有地址:10.0.0.0网段为私有地址网络
 
B 类地址
前两段为网路号,后两段为主机号
1000000.00000000-10111111.11111111
128-191
那么B类地址的网络地址有:2^14(前两个位不变,只是后14位变化)
那么B类地址的主机地址有:2^16 - 网络地址 - 广播地址 = 2^16 - 2
netmask:255.255.0.0(用户标示网络地址)
私有地址:172.0.0.0-172.31.0.0 网段为私有地址网络
 
C 类地址
前三段为网路号,后一段为主机号
11000000.00000000.00000000-11011111.11111111.11111111
192-223
那么C类地址的网络地址有:2^21(前三位不变,只是后21位变化)
那么C类地址的主机地址有:2^8 - 网络地址 - 广播地址 = 2^8 - 2
netmask:255.255.255.0(用户标示网络地址)
私有地址: 192.168.0.0~192.168.255.0 网段为私有地址网络
 
D 类地址:
组播地址
 
 
E 类地址:
大学等科研机构作为科学研究使用

(三)简单的聊聊什么是路由表

前言:对于路由表而言,可以认为的写,也可以是路由器自动记录识别

  • 路由器是如何通过路由表实现不同网段之间的通信
目标地址由 "下一跳(网关)" 来实现

Alt text

(四)单台主机之间的通信如何实现

前言:单台主机站在内核空间用户空间
将主机间的通信画图给大家描绘一下,并且解释TCP/IP协议栈的解包和封包的过程
给大家画图介绍,ARP地址如何解析

Alt text

  • 主机间通信
Mac地址:本地通信
实现本地局域网,不跨路由器的网络通信
 
IP地址:标示主机通信,实现源主机和目标主机之间的通信
 
主机内核端口:标示进程通信,实现一个主机上的哪个进程进行通信
  • 基于TCP/IP协议栈解析封包与解包
物理层:封装帧报文首部
以太网帧:MTU(1500字节)
互联网层:封装IP报文首部
传输层:封装TCP报文首部
应用层:各种应用协议的报文首部

(五)网络配置工具详解(这里很重要)

前言:ifcfg类命令,ip类命令, nm类命令

一:ifcfg类命令 (需要安装 net-tools 包) 适用于红帽5、6、7

ifconfig :查看或设置IP地址
route :查看或设置路由表
netstat :通常查看主机的服务,端口,和服务的状态
ifup、ifdown:启用网卡或关闭网卡
  • (1)ifconfig命令
对比6、7的网络信息
enp0s3: flags=4163<UP(已经启用),BROADCAST(支持广播),RUNNING,MULTICAST(支持多播)> mtu 1500
inet 192.168.23.11 netmask 255.255.255.0 broadcast 192.168.23.255
inet6 fe80::a00:27ff:fec1:cd2b prefixlen 64 scopeid 0x20<link>
ether 08:00:27:c1:cd:2b txqueuelen 1000(传输队列长度) (Ethernet)
RX(接受的数据包) packets 28355 bytes 10835366 (10.3 MiB)
RX errors(错误包数量) 0 dropped(丢包数量) 0 overruns 0 frame 0
TX(传出的数据包) packets 15286 bytes 2489410 (2.3 MiB)
TX errors(错误包数量) 0 dropped(丢包数量) 0 overruns 0 carrier 0 collisions 0
 
 
eth0 Link encap:Ethernet HWaddr 08:00:27:23:C1:E7
inet addr:192.168.23.4 Bcast:192.168.23.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe23:c1e7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:104 errors:0 dropped:0 overruns:0 frame:0
TX packets:68 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:12969 (12.6 KiB) TX bytes:11936 (11.6 KiB)
ifconfig命令使用(设置IP地址可以立即生效)
1)显示激活网卡,以及网络信息
ifconfig
 
2)显示激活网卡,以及网络信息
ifconfig eth0
 
3)显示所有网卡,以及网络信息
ifconfig -a
 
4)启用网卡地址
ifconfig eth0 up
ifconfig enp0s3 up
 
 
5)停止网卡地址
ifconfig eth0 down
ifconfig enp0s3 down
 
6)网卡取别名的两种写法
ifconfig eth0:0 192.168.23.10/24
ifconfig enp0s3:0 192.168.23.100 netmask 255.255.255.0 broadcast 192.168.23.255
  • (2)route命令
1:增
添加主机地址路由
route add -host 192.168.24.100 gw 192.168.23.1 dev eth0
 
添加网络地址路由
route add -net 192.168.24.0/24 gw 192.168.23.1 dev eth0
 
添加默认地址路由
route add -net 0.0.0.0/0.0.0.0 gw 192.168.23.1 dev eth0
 
2:删
删除主机地址路由
route del -host 192.168.24.100
 
删除网络地址路由
route del -net 192.168.24.0/24
 
删除默认地址路由
route del default
3:改
先删除,再修改
 
4:查
route -n
Kernel IP routing table
 
Destination(目的地址) Gateway(网关,吓一跳) Genmask(子网掩码) Flags Metric Ref Use Iface(接口)
192.168.23.0 0.0.0.0(同一个网段无需网关) 255.255.255.0 U 0 0 0 eth0
192.168.23.0 0.0.0.0 255.255.255.0 U(up:表示启用状态) 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.168.23.1 0.0.0.0 UG(G表示网关) 0 0 0 eth0
  • (3)netstat命令(对应的ss命令请自行总结)
会经常使用
必备技能:netstat -lntup
-u:UDP
-t:TCP
-l:查看监听状态
-n:以数字的形式显示
-p:显示进程、服务名称
-a:显示all信息
 
[root@6 ~]# netstat -lentupa
Active Internet connections (servers and established)
Proto(协议) Recv-Q(接收) Send-Q(发送) Local Address(本地监听的套接字) Foreign Address(客户端连接的套接字) State(进程状态) User(用户的id) Inode(文件的inode号) PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 9197 1090/sshd
tcp 0 0 192.168.23.4:22 192.168.23.2:65106 ESTABLISHED 0 9567 1191/sshd
tcp 0 0 :::22 :::* LISTEN 0 9199 1090/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* 0 8497 856/dhclient
  • (4)ifup、ifdown命令
需要添加/etc/sysconfig/network-scripts/ifcfg-eth1网卡配置文件,才能给ifup、ifdown控制
 
ifup eth1
ifdown eth1

二:ip类命令 适用于红帽5、6、7(需要安装 iproute 包)

ip link:管理网卡接口
ip addr :查看或设置IP地址
ip route:配置路由
ip link show:显示设备属性
ip link set dev eth0 up:开启网卡设备
ip link set dev eth0 down:关闭网卡设备
 
ip addr add 192.168.23.4/24 dev eth1: 添加IP地址
ip addr add 192.168.23.4/24 dev eth1 label eth1:0 : 添加别名
ip addr del 192.168.23.4/24 dev eth1: 删除IP地址
ip addr show:显示IP地址
 
 
ip route add 192.168.24.0/24 via 192.168.23.1 dev eth1 src 192.168.23.10: 添加网络路由地址
ip route add default via 192.168.23.1 :添加默认路由
ip route del 192.168.24.0/24 :删除路由地址
ip route show :显示路由地址

三:nm类命令 适用于红帽 7

nmcli:命令行工具
nmtui:就像红帽6的setup工具一样,是一个图形化的文本工具
 
必须启动 Neworkmanager
systemctl status NetworkManager

四:setup命令 适用于红帽 6

 
必须启动 network 服务
service network status

(六)系统默认的网卡命名方式(了解)

前言:

  • 对于红帽6而言
eth0、eth1、eth2 等
  • 对于红帽7而言
1)如果BIOS为主板上集成的设备提供的设备编号可用,则根据设备编号进行命名,如eno0, eno1。例如:苹果Mac电脑,网卡名为en0
 
 
 
2)如果BIOS为PCI-E扩展槽所提供的设备编号可用,则根据设备编号进行命名,如:ens1 ens2
 
 
3)如果硬件接口的物理位置信息可用,则根据此信息命名,如:enp0s3、enp0s8,有些虚拟机是这样命令。
 
4)对于Mac电脑而言,en0、en1
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether a4:d1:8c:cd:a0:8c
inet6 fe80::181a:b72a:631f:69d2%en0 prefixlen 64 secured scopeid 0x4
inet 192.168.23.2 netmask 0xffffff00 broadcast 192.168.23.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active

posted on 2017-09-19 11:28  风催  阅读(798)  评论(0编辑  收藏  举报

导航