当前位置: 首页 > news >正文

计算机网络基础二

课程目标
了解 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
3. 其他命令
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. 帧是数据链路层的传输单元。它将上层传入的数据添加一个头部和尾部,组成了帧 .

相关文章:

  • 3.7每日一题(凑微分求不定积分)
  • FFmpeg系列索引
  • SQL-正则表达式和约束
  • LeetCode--511. 游戏玩法分析 I
  • 工作中的小tips:如何快速提取图片或者pdf上的文字,进行编辑?
  • 知识图谱05——gspan-mining库进行频繁子图挖掘出现‘DataFrame‘ object has no attribute ‘append‘
  • python内置模块hashlib对于字符串的加密解密加盐
  • 微信小程序在线预览PDF文件
  • 使用Go模块进行依赖管理
  • Oracle (7)Online Redo Log Files
  • 从瀑布模式到水母模式:ChatGPT如何赋能软件研发全流程
  • 全面解析:oa系统是什么?有哪些好用的oa系统
  • 【MATLAB源码-第62期】基于matlab的DCSK(差分混沌移位键控调制)系统误码率仿真。
  • Golang WebSocket 创建单独会话
  • javascript中的继承
  • 2018一半小结一波
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Angularjs之国际化
  • codis proxy处理流程
  • ES6--对象的扩展
  • HTTP 简介
  • java8 Stream Pipelines 浅析
  • Mithril.js 入门介绍
  • Nacos系列:Nacos的Java SDK使用
  • python 学习笔记 - Queue Pipes,进程间通讯
  • 阿里云前端周刊 - 第 26 期
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 复习Javascript专题(四):js中的深浅拷贝
  • 深度学习在携程攻略社区的应用
  • 无服务器化是企业 IT 架构的未来吗?
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • Spring第一个helloWorld
  • ​secrets --- 生成管理密码的安全随机数​
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (汇总)os模块以及shutil模块对文件的操作
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (小白学Java)Java简介和基本配置
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (译) 函数式 JS #1:简介
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • ... 是什么 ?... 有什么用处?
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .net 受管制代码
  • .net 无限分类
  • .NET/C# 使用反射注册事件
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .NetCore部署微服务(二)
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .Net下的签名与混淆
  • .NET中使用Redis (二)