计算机网络基础二

课程目标
了解 OSI 七层模型分层结构
了解 TCP/IP 协议簇四层模型分层结构
能够说出 TCP/IP 协议簇中 运输层、网络层和数据链路 层常见的 相关协议
能够说出 TCP/IP 的三次握手四次断开过程
了解 Vmware 的三种网络模式
能够使用客户端工具连接虚拟机
掌握主机名、 DNS 和静态 IP 的配置
能够使用相关命令查看和配置主机网络信息 ,如 ifconfig/ip addr/route 等
思考:
数据在两台计算机之间是如何传输的?
数据传输过程:

一、OSI七层模型

1.什么是OSI****模型

OSI:
开放系统互连参考模型 , 是国际标准化组织 (ISO) 和国际电报电话咨询委员会 (CCITT) 联合制定的 开放系统互连参考
模型。
目的 : 为开放式互连信息系统提供了一种功能结构的框架和参考。 这里所说的开放系统,实质上指的是遵循 OSI 参考模型和相关协议能够实现互连的具有各种应用目的的计算机系
统。
OSI 采用了分层的结构化技术,共分七层:
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

2. OSI****的七层介绍

2.1****应用层

1.应用层是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在 网络上完成的各种工作。
2.应用层为用户提供的 服务和协议 :文件传输服务( FTP )、远程登录服务( ssh )、网络管理服等。
3.上述的各种网络服务由该层的不同应用协议和程序完成。
应用层的主要功能如下:
用户接口 :应用层是用户与网络,以及应用程序与网络间的直接接口,使得用户能够与网络进行交互式联 系。
实现各种服务 :该层具有的各种应用程序可以完成和实现用户请求的各种服务。

2.2****表示层

表示层是 对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话 层。
其主要功能是 处理用户信息的表示问题 ,如编码、数据格式转换和加密解密等。
表示层的具体功能如下:
数据格式处理:协商和建立数据交换的格式,解决各应用程序之间在数据格式表示上的差异。
数据的编码:处理字符集和数字的转换。
压缩和解压缩:为了减少数据的传输量,这一层还负责数据的压缩与解压缩。
数据的加密和解密:可以提高网络的安全性。

2.3****会话层

会话层是用户应用程序和网络之间的接口,主要任务是:组织和协调两个会话进程之间的通信,并对数据交换 进行管理。
当建立会话时,用户必须提供他们想要连接的远程地址。

2.4****传输层

OSI上 3 层:应用层、表示层、会话层的主要任务是数据处理 ------ 资源子网
OSI下 3 层:网络层、数据链路层、物理层的主要任务是数据通讯 ------ 通讯子网
传输层是OSI 模型的第 4 层,它是通信子网和资源子网的接口和桥梁,起到承上启下的作用
传输层的主要任务是:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输
报文: 报文 ( message ) 是网络中交换与传输的 1
报文段 : 组成报文的每个分组。我们将运输层分组称为报文段 ( segment )

2.5****网络层

主要任务是:数据链路层的数据在这一层被转换为 2 ,然后通过路径选择、分段组合、顺序、进 / 出路由等控 制,将信息从一个网络设备传送到另一个网络设备。
一般情况下,数据链路层是解决同一网络 ( 局域网 ) 内节点之间的通信,而网络层主要解决 不同子网 间的通信。

2.6****数据链路层

在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是 :
在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链 路,即 向网络层提供可靠的通过物理介质传输数据的方法 。
具体工作是:接收来自物理层的位流(比特流)形式的数据,通过差错控制等方法传到网络层;同样,也将来 自上层的数据,封装成 3 转发到物理层;并且,还负责处理接收端发回的确认帧的信息,以便提供可靠的数据
传输。
帧: 帧 ( frame ) 是数据链路层的传输单元。将上层传入的数据添加一个头部和尾部,组成了帧 .

2.7****物理层

主要功能是:利用传输介质为数据链路层提供物理连接,实现 比特流的透明传输 。尽可能屏蔽掉具体传输介质 和物理设备的差异。

**3.**总结

在 7 层模型中,每一层都提供一个特殊的网络功能。
从网络功能的角度观察:
物理层、数据链路层、网络层:主要提供数据传输和交换功能 ,即节点到节点之间通信为主;
传输层(第4 层):作为上下两部分的桥梁,是整个网络体系结构中最关键的部分;
会话层、表示层和应用层:以提供用户与应用程序之间的信息和数据处理 功能为主;

二、TCP/IP协议模型

1.什么是TCP/IP****模型

TCP/IP协议模型 ( Transmission Control Protocol/Internet Protocol ),包含了一系列构成互联网 基础的网络 协议 ,是 Internet 的核心协议,通过 20 多年的发展已日渐成熟,并被广泛应用于 局域网和广域网 中,目前已成 为一种国际标准
TCP/IP协议簇是一组不同层次上的 多个协议 的组合,该协议采用了 4 层的层级结构,每一层都 呼叫 它的下一层所 提供的 协议 来完成自己的需求,与 OSI 的七层模型相对应。
尽管通常称该协议族为TCP/IP ,但 TCP 和 IP 只是其中的两种协议而已(该协议族的另一个名字是 Internet 协议族 (Internet Protocol Suite))

2. TCP/IP****的分层结构

2.1****链路层

OSI 的物理层和数据链路层
ARP(地址解析协议 IP-MAC )和 RARP (逆地址解析协议 MAC-IP )是某些网络接口(如以太网)使用的特殊协 议,用来转换IP 层和网络接口层使用的地址。

2.2****网络层

也称作互联网层或网际层,处理分组在网络中的活动,例如分组的选路。
在TCP/IP 协议族中,网络层协议包括 IP 协议(网际协议), ICMP 协议( Internet 互联网控制报文协议),以及 IGMP协议( Internet 组管理协议)。
IP是一种网络层协议,提供的是一种不可靠的服务,它只是尽可能快地把分组从源结点送到目的结点,但是并不提供任何可靠性保证。同时被TCP 和 UDP 使用。
TCP和UDP 的每组数据都通过端系统和每个中间路由器中的 IP 层在互联网中进行传输。
ICMP是IP 协议的附属协议。 IP 层用它来与其他主机或路由器 交换错误报文和其他重要信息 。它主要是用来 提供有关通向目的地址的路径信息。Ping 和 Traceroute 工具,它们都使用了 ICMP 协议。
IGMP是Internet 组管理协议。它用来把一个 UDP 数据报多播到多个主机。该协议运行在主机和组播路由器 之间。

2.3****运输层

主要为两台主机上的应用程序提供端到端的通信。在 TCP/IP 协议族中,有两个互不相同的传输协议: TCP (传输控制协议)和 UDP (用户数据报协议) TCP 协议: 为两台主机提供高可靠性的数据通信。 TCP 是 面向连接 的通信协议,通过三次握手 建立连接,通讯完成时要断开连接,由于 TCP 是面向连接的所以只能用于端到端的通讯。 TCP提供的是一种可靠的数据流服务,采用 " 带重传的肯定确认 " 技术来实现传输的可靠性。也就是 TCP 数据包中包括 序号(seq )和确认( ack ),所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。 UDP 协议: 则为应用
层提供一种非常简单的服务。它是 面向无连接 的通讯协议, UDP 数据包括目的端口号和源端口号信息,由于通讯不需 要连接,所以可以实现广播发送。 UDP 通讯时不需要接收方确认,不保证该数据报能到达另一端,属于不可靠的传 输,可能会出现丢包现象。UDP 与 TCP 位于同一层,但它不管数据包的顺序、错误或重发。

2.4****应用层

OSI 会话层、表示层、应用层
应用层负责处理特定的应用程序细节。
HTTP 、 FTP 、 SSH 、 DHCP 、 DNS.....
3. 数据封装过程
数据格式
TCP数据信息: TCP 头部 + 实际数据 (TCP 头包括源和目标主机 端口号 、顺序号、确认号、校验字等)
IP数据包: IP 头部 +TCP 数据信息( IP 头包括源和目标主机 IP 地址 、类型、生存期等)
数据帧:帧头+IP 数据包 + 帧尾 (帧头包括源和目标主机 MAC 初步地址 及类型,帧尾是校验字)
数据的封装与解封装: 封装:数据要通过网络进行传输,要从高层一层一层的向下传送,如果一个主机要传送 数据到别的主机,先把数据装到一个特殊协议报头中,这个过程叫----- 封装 。 解封装:上述的逆向过程
当数据以 TCP/IP 协议传输时的封装与街封装过程如下图:

三、TCP/IP三次握手四次断开

**1.**了解相关名词

序列号: Seq 序号,占 32 位,用来标识从 TCP 源端向目的端发送的字节流,发起方发送数据时对此进行标记。
确认序号: Ack 序号,占 32 位,只有 ACK 标志位为 1 时,确认序号字段才有效, Ack = Seq + 1 。
常见的标志位:
ACK :确认序号有效。
SYN :发起一个新连接。
FIN :释放一个连接。

2.了解netstat****中的网络状态

CLOSED 初始(无连接)状态。
LISTEN 侦听状态,等待远程机器的连接请求。
SYN_SEND
在 TCP 三次握手中,主动连接端发送了 SYN 包后,进入 SYN_SEND 状态,等待对方的 ACK 包。
SYN_RECV
在 TCP 三次握手中,主动连接端收到 ACK 包后,进入 SYN_RECV 状态。
ESTABLISHED
完成 TCP 三次握手后,主动连接端进入 ESTABLISHED 状态。此时, TCP 连接已经建立,可以进行通信。
FIN_WAIT_1 在 TCP 四次断开时,主动关闭端发送 FIN 包后,进入 FIN_WAIT_1 状态。
FIN_WAIT_2 在 TCP 四次断开时,主动关闭端收到 ACK 包后,进入 FIN_WAIT_2 状态。
TIME_WAIT 在 TCP 四次断开时,主动关闭端发送了 ACK 包之后,进入 TIME_WAIT 状态。
CLOSE_WAIT 在 TCP 四次断开时,被动关闭端收到 FIN 包后,进入 CLOSE_WAIT 状态。
LAST_ACK 在 TCP 四次断开时,被动关闭端发送 FIN 包后,进入 LAST_ACK 状态,等待对方的 ACK 包。

3. TCP/IP****三次握手

TCP 三次握手的过程如下:

  1. 客户机 A 端(主动连接端)发送一个 SYN 包给服务器 B 端(被动连接端);
  2. 服务器 B 端(被动连接端)收到 SYN 包后,发送一个带 ACK 和 SYN 标志的包给客户机 A 端(主动连接端);
  3. 客户机 A 端(主动连接端)发送一个带 ACK 标志的包给服务器 B 端(被动连接端),握手动作完成。

4. TCP/IP****四次断开

TCP四次断开的过程如下:
1. 客户机A端(主动连接端)发送一个FIN包给服务器B端(被动连接端)请求断开连接;
2. 服务器B端(被动连接端)收到FIN包后,发送一个ACK包给客户机A端(主动连接端);
3. 服务器B端(被动连接端)发送了ACK包后,再发送一个FIN包给客户机A端(主动连接端)确认断开;
4. 客户机A端(主动连接端)收到FIN包后,发送一个ACK包,当服务器B端(被动连接端)收到ACK包后,四次断开动作完
成,连接断开。

四、Vmware网络模式

**1.**虚拟设备

VMnet0 :用于虚拟 桥接网络 下的 虚拟交换机
VMnet1 :用于虚拟 Host-Only 网络 下的 虚拟交换机
VMnet8 :用于虚拟 NAT 网络 下的 虚拟交换机
VMware Network Adepter VMnet1 : Host 用于与 Host-Only 虚拟网络进行通信的虚拟网卡 VMware
Network Adepter VMnet8 : Host 用于与 NAT 虚拟网络进行通信的虚拟网卡

**2.**三种网络模式

桥接网络

桥接网络是指虚拟网卡通过 VMnet0 虚拟交换机和本地物理网卡进行桥接,那么物理网卡和虚拟网卡就相 当于处于同一个网段,虚拟交换机就相当于一台现实网络中的交换机。所以要想虚拟机也可以连接到互联 网中,那么两个网卡的IP 地址也要设置为同一网段。

NAT网络

在 NAT 网络中,会用到 VMware Network Adepter VMnet8 虚拟网卡,主机上的 VMware Network Adepter VMnet8虚拟网卡被直接连接到 VMnet8 虚拟交换机上与虚拟网卡进行通信。 VMware Network Adepter VMnet8虚拟网卡的作用仅限于和 VMnet8 网段进行通信,它不给 VMnet8 网段提供路由功能,所 以虚拟机虚拟一个NAT 服务器,使虚拟网卡可以连 接到 Internet 。 VMware Network Adepter VMnet8虚拟网卡的 IP 地址是在安装 VMware 时由系统指定生成的,我们尽量不要修改这个数值,否则可 能会使主机和虚拟机无法通信。

Host-Only模式

在Host-Only模式下,虚拟网络是一个全封闭的网络,它唯一能够访问的就是物理真机。其实Host-Only
网络和NAT网络很相似,不同的地方就是Host-Only网络没有NAT服务,所以虚拟网络不能连接到
Internet。主机和虚拟机之间的通信是通过VMware Network Adepter VMnet1虚拟网卡来实现的。

五、主机网络配置

1. 常见的网络接口

**2.**查看网络信息

查看 IP 、掩码、 MAC
[root @node1 ~ ] # ip addr
[root @node1 ~ ] # ip a
只显示 eth0 的信息
[root @node1 ~ ] # ip addr show eth0
查看本机路由表信息 ( 默认网关,默认路由 )
[root @node1 ~ ] # ip route
default via 10.1.1.254 dev eth0
查看 DNS
[root @node1 ~ ] # cat /etc/resolv.conf
nameserver 119.29.29.29
ifconfig 命令:

  1. 给网卡配置临时子接口

ifconfig eth0

ifconfig -a

ifconfig eth0:1 192.168.0.1 netmask 255.255.255.0

注意:重启网络 | 系统失效
2. 永久生效需要创建子配置文件

cp ifcfg-eth0 ifcfg-eth0:1

pwd

/ etc / sysconfig / network-scripts
[root @node1 network-scripts] # cat ifcfg-eth0:1
DEVICE = eth0 : 1
TYPE = Ethernet
ONBOOT = yes
BOOTPROTO = none
IPADDR = 192.168.0.1
NETMASK = 255.255.255.0
重启网络

service network restart

  1. 其他命令
    ifup eth0
    ifdown eth1
    ifconfig eth0 down / up
    环境准备要求:
  1. 还原 Centos6.9 和 Centos7.5 系统
  2. 以 Centos6.9 系统为模板克隆 2 台虚拟机
  3. 拿一台 Centos6.9 系统,增加一个网卡,网络模式为仅主机模式
  4. 分别配置 Centos6.9 系统的网络
    两张网卡的主机,分别配置 NAT 和仅主机模式 IP
    其他两台主机,只配置仅主机模式的 IP( 一张网卡 )

**3.**修改网络信息

方法 1

[root@node1 ~]# setup

方法 2

修改网卡配置文件
[root @node1 ~ ] # cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE = eth0
TYPE = Ethernet
ONBOOT = yes
BOOTPROTO = none
IPADDR = 10.1.1.1
NETMASK = 255.255.255.0
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DEVICE = eth0 设备名
TYPE = Ethernet 以太网
BOOTPROTO = none IP 地址获取方式,静态 : static,none 动态 : dhcp,dynamic
ONBOOT = yes 重启网卡是否激活该网卡
BROADCAST = 192.168.2.255 广播地址
HWADDR = 00 : E0 : 4 C : 41 : 95 : DB MAC 地址
NM_CONTROLLED = yes 是否接受 NetworkManager 管理
IPADDR = 192.168.2.253 IP 地址
PREFIX = 24 子网掩码 NETMASK = 255.255.255.0
NETWORK = 192.168.2.0 网络地址
GATEWAY = 192.168.2.254 默认网关
DNS1 = 202.106.0.20 DNS 服务器
DNS2 = 8.8.8.8 DNS 服务器备
++++++++++++++++ 动态获取 IP(dhcp) +++++++++++++++
DEVICE = eth0
BOOTPROTO = dhcp
ONBOOT = yes

3.2 修改主机名
3.3 配置 DNS

[root @node2 ~ ] # cat /etc/resolv.conf
nameserver DNS 服务器
nameserver 114.114.114.114
nameserver 8.8.8.8
nameserver 192.168.159.2
直接修改网卡的配置文件 ifcfg-eth0 :
....
DNS1 = 202.106.0.20 DNS 服务器
DNS2 = 8.8.8.8 DNS 服务器备

4.关闭防火墙和selinux

Centos6.5:
临时关闭:
[root@node2 ~]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]

[root@node2 ~]# service iptables status
iptables: Firewall is not running.
[root@node2 ~]#
开机自动关闭:
[root@node2 ~]# chkconfig --list|grep iptables
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@node2 ~]# chkconfig iptables off
关闭selinux:
[root@node2 ~]# getenforce
Enforcing
[root@node2 ~]# setenforce
usage: setenforce [ Enforcing | Permissive | 1 | 0 ]
[root@node2 ~]# setenforce 0 临时变成警告模式
[root@node2 ~]# getenforce
Permissive
[root@node2 ~]# cat /etc/selinux/config
...
SELINUX=disabled //关闭selinux,下次开机生效
...

**5.**其他工具

lspci:显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具
//查看当前主机的所有网卡(包括已经驱动了和没有驱动)
[root@misshou ~]# lspci |grep -i eth
00:03.0 Ethernet controller: Red Hat, Inc Virtio network device
//查看物理连接状态(网线是否ok)
[root@misshou ~]# ethtool eth0
Settings for eth0:
Link detected: yes
[root@node1 ~]# mii-tool eth0
eth0: negotiated 100baseTx-FD, link ok

总结:
网络配置:静态 IP
主机名配置:完全规范主机名 server server.heima.cc
IP 地址和主机名一一绑定写到 host 文件中
关闭防火墙和 selinux

  1. 数据单元是网络信息传输的基本单位。一般网络连接不允许传送任意大小的数据包,而是采用分组技术将一个数据分成若干个很小的数据包,并给每个小数据包加 上一些关于此数据包的属性信息. ↩
  2. 包 (Packet) 是 TCP/IP 协议通信传输中的数据单位,一般也称 " 数据包 " 。 ↩
  3. 帧是数据链路层的传输单元。它将上层传入的数据添加一个头部和尾部,组成了帧 . ↩
相关推荐
SofterICer1 分钟前
eNodeB User Manual Advanced Usage
网络
just-julie1 小时前
计算机网络面试题——第三篇
网络·计算机网络
小小不董1 小时前
图文深入理解Oracle DB Scheduler
linux·运维·服务器·数据库·oracle
繁依Fanyi1 小时前
旅游心动盲盒:开启个性化旅行新体验
java·服务器·python·算法·eclipse·tomcat·旅游
qq_421833672 小时前
计算机网络——email
计算机网络
南瓜小米粥、2 小时前
通过fdisk初始化Linux数据盘
linux·运维·服务器
速盾cdn2 小时前
速盾:如何判断高防服务器的防御是否真实?
网络·安全
ZachOn1y3 小时前
计算机网络:计算机网络体系结构 —— 专用术语总结
网络·tcp/ip·计算机网络·考研必备
笑非不退3 小时前
网络安全 网络安全的主要领域 安全威胁 防护技术 安全策略 未来趋势
网络
一尘之中3 小时前
网 络 安 全
网络·人工智能·学习·安全