Typecho合集站

一个喜欢Typecho站长搭建的站点,为能服务更多typecho用户

OSI七层模型与TCP协议


[/ul]


思考:
数据在两台计算机之间是如何传输的?

数据传输过程:
OSI七层模型与TCP协议

一、OSI七层模型

(1)什么是OSI模型

OSI七层模型与TCP协议

(2)OSI的七层介绍

2.1 应用层
  1. 用户接口:应用层是用户与网络,以及应用程序与网络间的直接接口,使得用户能够与网络进行交互式联系。
  2. 实现各种服务:该层具有的各种应用程序可以完成和实现用户请求的各种服务。
2.2 表示层
  1. 数据格式处理:协商和建立数据交换的格式,解决各应用程序之间在数据格式表示上的差异。
  2. 数据的编码:处理字符集和数字的转换。
  3. 压缩和解压缩:为了减少数据的传输量,这一层还负责数据的压缩与解压缩。
  4. 数据的加密和解密:可以提高网络的安全性。
2.3 会话层
2.4 传输层

报文:报文(message)是网络中交换与传输的
报文段:组成报文的每个分组。我们将运输层分组称为报文段(segment)

2.5 网络层
2.6 数据链路层

在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是:

2.7 物理层

(3)总结

  1. 物理层、数据链路层、网络层:主要提供数据传输和交换功能,即节点到节点之间通信为主;
  2. 传输层(第4层):作为上下两部分的桥梁,是整个网络体系结构中最关键的部分;
  3. 会话层、表示层和应用层:以提供用户与应用程序之间的信息和数据处理功能为主;

二、TCP/IP协议模型

(1)什么是 TCP/IP 模型

(2)TCP/IP的分层结构

OSI七层模型与TCP协议
OSI七层模型与TCP协议

2.1 网络接口层

OSI 的物理层和数据链路层

2.2 网络层
  1. IP是一种网络层协议,提供的是一种不可靠的服务,它只是尽可能快地把分组从源结点送到目的结点,但是并不提供任何可靠性保证。同时被TCP和UDP使用。
  2. TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互联网中进行传输。
  3. ICMP是IP协议的附属协议。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。它主要是用来提供有关通向目的地址的路径信息。Ping和Traceroute工具,它们都使用了ICMP协议。
  4. 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)数据封装过程

IP数据包:IP头部+TCP数据信息(IP头包括源和目标主机IP地址、类型、生存期等)

数据帧:帧头+IP数据包+帧尾 (帧头包括源和目标主机MAC初步地址及类型,帧尾是校验字)

当数据以TCP/IP协议传输时的封装与街封装过程如下图:
OSI七层模型与TCP协议

三、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状态。3. TCP/IP三次握手
TIME_WAIT 	在TCP四次断开时,主动关闭端发送了ACK包之后,进入TIME_WAIT状态。
CLOSE_WAIT 	在TCP四次断开时,被动关闭端收到FIN包后,进入CLOSE_WAIT状态。
LAST_ACK 	在TCP四次断开时,被动关闭端发送FIN包后,进入LAST_ACK状态,等待对方的ACK包。

(3)TCP/IP三次握手

OSI七层模型与TCP协议

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

(4)TCP/IP四次断开

OSI七层模型与TCP协议

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地址也要设置为同一网段。
OSI七层模型与TCP协议

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时由系统指定生成的,我们尽量不要修改这个数值,否则可能会使主机和虚拟机无法通信。

OSI七层模型与TCP协议

Host-Only模式

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

五、主机网络配置

(1)常见的网络接口




eth0以太网接口eth0,eth1,ethN
wlan0无线接口
enp3s0/ens33以太网接口Centos7+
lo本地回环接口127.0.0.1(默认), 127.x.x.x
virbr0桥接接口(虚拟交换机)
br0桥接接口(虚拟交换机)
vnet0KVM虚拟机网卡接口

(2)查看网络信息

查看IP、掩码、MAC[root@c7 ~]# ip addr[root@c7 ~]# ip a只显示eth0的信息[root@c7 ~]# ip addr show eth0查看本机路由表信息(默认网关,默认路由)[root@c7 ~]# ip routedefault via 10.0.4.1 dev eth0

查看DNS[root@c7 ~]# cat /etc/resolv.conf; generated by /usr/sbin/dhclient-script
nameserver 183.60.83.19
nameserver 183.60.82.98ifconfig 命令:
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@c7 network-scripts]# cat ifcfg-eth0:1DEVICE=eth0:1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.0.1
NETMASK=255.255.255.0

重启网络# service network restart3. 其他命令ifup eth0ifdown eth1ifconfig eth0 down/up

(3)修改网络信息

3.1 配置静态IP

方法一:

[root@c7 ~]# setup

方法二:

[root@c7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0# Created by cloud-init on instance boot automatically, do not edit.#BOOTPROTO=dhcp
DEVICE=eth0
HWADDR=52:54:00:5d:99:13
ONBOOT=yes
PERSISTENT_DHCLIENT=yes
TYPE=Ethernet
USERCTL=no

/**********************************************************
DEVICE=eth0 设备名
TYPE=Ethernet 以太网
BOOTPROTO=none IP地址获取方式,静态: static,none 动态:dhcp,dynamic
ONBOOT=yes 重启网卡是否激活该网卡
BROADCAST=192.168.2.255 广播地址
HWADDR=00:E0:4C: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 配置 DNS
[root@c7 ~]# cat /etc/resolv.conf; generated by /usr/sbin/dhclient-script 
nameserver 183.60.83.19   
nameserver 183.60.82.98  
# nameserver  DNS服务器对应的IP直接修改网卡的配置文件ifcfg-eth0:....DNS1=202.106.0.20 DNS服务器
DNS2=8.8.8.8 DNS服务器备

3.3 关闭防火墙和SELinux
Centos6.5:
临时关闭:[root@c8 ~]# service iptables stopiptables: Setting chains to policy ACCEPT: filter 	[ OK ]iptables: Flushing firewall rules:             	  	[ OK ]iptables: Unloading modules:               	 	  	[ OK ][root@c8 ~]# service iptables statusiptables: Firewall is not running.[root@c8 ~]# chkconfig --list|grep iptablesiptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off[root@c8 ~]# chkconfig iptables off关闭selinux:[root@c8 ~]# getenforceEnforcing[root@c8 ~]# setenforceusage: setenforce [ Enforcing | Permissive | 1 | 0 ][root@c8 ~]# setenforce 0 	临时变成警告模式[root@c8 ~]# getenforcePermissive[root@c8 ~]# cat /etc/selinux/config...
SELINUX=disabled		 //关闭selinux,下次开机生效...

3.4 其他工具
lspci:显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具
//查看当前主机的所有网卡(包括已经驱动了和没有驱动)[root@c9 ~]# lspci |grep -i eth00:03.0 Ethernet controller: Red Hat, Inc Virtio network device

//查看物理连接状态(网线是否ok)[root@c9 ~]# ethtool eth0Settings for eth0:
Link detected: yes[root@c9 ~]# mii-tool eth0eth0: negotiated 100baseTx-FD, link ok


上一篇 : 微信授权扫码点餐新特性React16
下一篇 : 一元二次方程求解根的情况

发表新评论