1, 简述 osi 七层模型和 TCP/IP 五层模型;
物理层
在 OSI 参考模型中, 物理层 (Physical Layer) 是参考模型的最低层, 也是 OSI 模型的第一层.
物理层的主要功能是: 利用传输介质为数据链路层提供物理连接, 实现比特流的透明传输.
物理层的作用是实现相邻计算机节点之间比特流的透明传送, 尽可能屏蔽掉具体传输介质和物理设备的差异. 使其上面的数据链路层不必考虑网络的具体传输介质是什么."透明传送比特流" 表示经实际电路传送后的比特流没有发生变化, 对传送的比特流来说, 这个电路好像是看不见的.
数据链路层
数据链路层 (Data Link Layer) 是 OSI 模型的第二层, 负责建立和管理节点间的链路. 该层的主要功能是: 通过各种控制协议, 将有差错的物理信道变为无差错的, 能可靠传输数据帧的数据链路.
在计算机网络中由于各种干扰的存在, 物理链路是不可靠的. 因此, 这一层的主要功能是在物理层提供的比特流的基础上, 通过差错控制, 流量控制方法, 使有差错的物理线路变为无差错的数据链路, 即提供可靠的通过物理介质传输数据的方法.
该层通常又被分为介质访问控制 (Mac) 和逻辑链路控制 (LLC) 两个子层.
Mac 子层的主要任务是解决共享型网络中多用户对信道竞争的问题, 完成网络介质的访问控制;
LLC 子层的主要任务是建立和维护网络连接, 执行差错校验, 流量控制和链路控制.
数据链路层的具体工作是接收来自物理层的位流形式的数据, 并封装成帧, 传送到上一层; 同样, 也将来自上层的数据帧, 拆装为位流形式的数据转发到物理层; 并且, 还负责处理接收端发回的确认帧的信息, 以便提供可靠的数据传输.
网络层
网络层 (Network Layer) 是 OSI 模型的第三层, 它是 OSI 参考模型中最复杂的一层, 也是通信子网的最高一层. 它在下两层的基础上向资源子网提供服务. 其主要任务是: 通过路由选择算法, 为报文或分组通过通信子网选择最适当的路径. 该层控制数据链路层与传输层之间的信息转发, 建立, 维持和终止网络的连接. 具体地说, 数据链路层的数据在这一层被转换为数据包, 然后通过路径选择, 分段组合, 顺序, 进 / 出路由等控制, 将信息从一个网络设备传送到另一个网络设备.
一般地, 数据链路层是解决同一网络内节点之间的通信, 而网络层主要解决不同子网间的通信. 例如在广域网之间通信时, 必然会遇到路由 (即两节点间可能有多条路径) 选择问题.
在实现网络层功能时, 需要解决的主要问题如下:
? 寻址: 数据链路层中使用的物理地址 (如 Mac 地址) 仅解决网络内部的寻址问题. 在不同子网之间通信时, 为了识别和找到网络中的设备, 每一子网中的设备都会被分配一个唯一的地址. 由于各子网使用的物理技术可能不同, 因此这个地址应当是逻辑地址(如 IP 地址).
? 交换: 规定不同的信息交换方式. 常见的交换技术有: 线路交换技术和存储转发技术, 后者又包括报文交换技术和分组交换技术.
? 路由算法: 当源节点和目的节点之间存在多条路径时, 本层可以根据路由算法, 通过网络为数据分组选择最佳路径, 并将信息从最合适的路径由发送端传送到接收端.
? 连接服务: 与数据链路层流量控制不同的是, 前者控制的是网络相邻节点间的流量, 后者控制的是从源节点到目的节点间的流量. 其目的在于防止阻塞, 并进行差错检测.
传输层
OSI 下 3 层的主要任务是数据通信, 上 3 层的任务是数据处理. 而传输层 (Transport Layer) 是 OSI 模型的第 4 层. 因此该层是通信子网和资源子网的接口和桥梁, 起到承上启下的作用.
该层的主要任务是: 向用户提供可靠的端到端的差错和流量控制, 保证报文的正确传输. 传输层的作用是向高层屏蔽下层数据通信的细节, 即向用户透明地传送报文. 该层常见的协议: TCP/IP 中的 TCP 协议, Novell 网络中的 SPX 协议和微软的 NetBIOS/NetBEUI 协议.
传输层提供会话层和网络层之间的传输服务, 这种服务从会话层获得数据, 并在必要时, 对数据进行分割. 然后, 传输层将数据传递到网络层, 并确保数据能正确无误地传送到网络层. 因此, 传输层负责提供两节点之间数据的可靠传送, 当两节点的联系确定之后, 传输层则负责监督工作. 综上, 传输层的主要功能如下:
传输连接管理: 提供建立, 维护和拆除传输连接的功能. 传输层在网络层的基础上为高层提供 "面向连接" 和 "面向无接连" 的两种服务.
处理传输差错: 提供可靠的 "面向连接" 和不太可靠的 "面向无连接" 的数据传输服务, 差错控制和流量控制. 在提供 "面向连接" 服务时, 通过这一层传输的数据将由目标设备确认, 如果在指定的时间内未收到确认信息, 数据将被重发.
监控服务质量.
会话层
会话层 (Session Layer) 是 OSI 模型的第 5 层, 是用户应用程序和网络之间的接口, 主要任务是: 向两个实体的表示层提供建立和使用连接的方法. 将不同实体之间的表示层的连接称为会话. 因此会话层的任务就是组织和协调两个会话进程之间的通信, 并对数据交换进行管理.
用户可以按照半双工, 单工和全双工的方式建立会话. 当建立会话时, 用户必须提供他们想要连接的远程地址. 而这些地址与 Mac(介质访问控制子层)地址或网络层的逻辑地址不同, 它们是为用户专门设计的, 更便于用户记忆. 域名 (DN) 就是一种网络上使用的远程地址例如: www.3721.com 就是一个域名. 会话层的具体功能如下:
会话管理: 允许用户在两个实体设备之间建立, 维持和终止会话, 并支持它们之间的数据交换. 例如提供单方向会话或双向同时会话, 并管理会话中的发送顺序, 以及会话所占用时间的长短.
? 会话流量控制: 提供会话流量控制和交叉会话功能.
寻址: 使用远程地址建立会话连接. l
出错控制: 从逻辑上讲会话层主要负责数据交换的建立, 保持和终止, 但实际的工作却是接收来自传输层的数据, 并负责纠正错误. 会话控制和远程过程调用均属于这一层的功能. 但应注意, 此层检查的错误不是通信介质的错误, 而是磁盘空间, 打印机缺纸等类型的高级错误.
表示层
表示层 (Presentation Layer) 是 OSI 模型的第六层, 它对来自应用层的命令和数据进行解释, 对各种语法赋予相应的含义, 并按照一定的格式传送给会话层. 其主要功能是 "处理用户信息的表示问题, 如编码, 数据格式转换和加密解密" 等. 表示层的具体功能如下:
数据格式处理: 协商和建立数据交换的格式, 解决各应用程序之间在数据格式表示上的差异.
数据的编码: 处理字符集和数字的转换. 例如由于用户程序中的数据类型(整型或实型, 有符号或无符号等), 用户标识等都可以有不同的表示方式, 因此, 在设备之间需要具有在不同字符集或格式之间转换的功能.
压缩和解压缩: 为了减少数据的传输量, 这一层还负责数据的压缩与恢复.
数据的加密和解密: 可以提高网络的安全性.
应用层
应用层 (Application Layer) 是 OSI 参考模型的最高层, 它是计算机用户, 以及各种应用程序和网络之间的接口, 其功能是直接向用户提供服务, 完成用户希望在网络上完成的各种工作. 它在其他 6 层工作的基础上, 负责完成网络中应用程序与网络操作系统之间的联系, 建立与结束使用者之间的联系, 并完成网络用户提出的各种网络服务及应用所需的监督, 管理和服务等各种协议. 此外, 该层还负责协调各个应用程序间的工作.
应用层为用户提供的服务和协议有: 文件服务, 目录服务, 文件传输服务(FTP), 远程登录服务(Telnet), 电子邮件服务(E-mail), 打印服务, 安全服务, 网络管理服务, 数据库服务等. 上述的各种网络服务由该层的不同应用协议和程序完成, 不同的网络操作系统之间在功能, 界面, 实现技术, 对硬件的支持, 安全可靠性以及具有的各种应用程序接口等各个方面的差异是很大的. 应用层的主要功能如下:
用户接口: 应用层是用户与网络, 以及应用程序与网络间的直接接口, 使得用户能够与网络进行交互式联系.
实现各种服务: 该层具有的各种应用程序可以完成和实现用户请求的各种服务.
2, 总结描述 TCP 三次握手四次挥手;
三次握手过程理解:
第一次握手: 建立连接时, 客户端发送 syn 包 (syn=j) 到服务器, 并进入 SYN_SENT 状态, 等待服务器确认; SYN: 同步序列编号(Synchronize Sequence Numbers).
第二次握手: 服务器收到 syn 包, 必须确认客户的 SYN(ack=j+1), 同时自己也发送一个 SYN 包(syn=k), 即 SYN+ACK 包, 此时服务器进入 SYN_RECV 状态;
第三次握手: 客户端收到服务器的 SYN+ACK 包, 向服务器发送确认包 ACK(ack=k+1), 此包发送完毕, 客户端和服务器进入 ESTABLISHED(TCP 连接成功)状态, 完成三次握手.
四次挥手过程理解:
1)客户端进程发出连接释放报文, 并且停止发送数据. 释放数据报文首部, FIN=1, 其序列号为 seq=u(等于前面已经传送过来的数据的最后一个字节的序号加 1), 此时, 客户端进入 FIN-WAIT-1(终止等待 1)状态. TCP 规定, FIN 报文段即使不携带数据, 也要消耗一个序号.
2)服务器收到连接释放报文, 发出确认报文, ACK=1,ack=u+1, 并且带上自己的序列号 seq=v, 此时, 服务端就进入了 CLOSE-WAIT(关闭等待)状态. TCP 服务器通知高层的应用进程, 客户端向服务器的方向就释放了, 这时候处于半关闭状态, 即客户端已经没有数据要发送了, 但是服务器若发送数据, 客户端依然要接受. 这个状态还要持续一段时间, 也就是整个 CLOSE-WAIT 状态持续的时间.
3)客户端收到服务器的确认请求后, 此时, 客户端就进入 FIN-WAIT-2(终止等待 2)状态, 等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据).
4)服务器将最后的数据发送完毕后, 就向客户端发送连接释放报文, FIN=1,ack=u+1, 由于在半关闭状态, 服务器很可能又发送了一些数据, 假定此时的序列号为 seq=w, 此时, 服务器就进入了 LAST-ACK(最后确认)状态, 等待客户端的确认.
5)客户端收到服务器的连接释放报文后, 必须发出确认, ACK=1,ack=w+1, 而自己的序列号是 seq=u+1, 此时, 客户端就进入了 TIME-WAIT(时间等待)状态. 注意此时 TCP 连接还没有释放, 必须经过 2??MSL(最长报文段寿命)的时间后, 当客户端撤销相应的 TCB 后, 才进入 CLOSED 状态.
6)服务器只要收到了客户端发出的确认, 立即进入 CLOSED 状态. 同样, 撤销 TCB 后, 就结束了这次的 TCP 连接. 可以看到, 服务器结束 TCP 连接的时间要比客户端早一些.
3, 描述 TCP 和 UDP 区别
a,TCP 面向连接(如打电话要先拨号建立连接);UDP 是无连接的, 即发送数据之前不需要建立连接;
b,TCP 提供可靠的服务. 也就是说, 通过 TCP 连接传送的数据, 无差错, 不丢失, 不重复, 且按序到达; UDP 尽最大努力交付, 即不保证可靠交付; Tcp 通过校验和, 重传控制, 序号标识, 滑动窗口, 确认应答实现可靠传输. 如丢包时的重发控制, 还可以对次序乱掉的分包进行顺序控制.
c,UDP 具有较好的实时性, 工作效率比 TCP 高, 适用于对高速传输和实时性有较高的通信或广播通信.
d. 每一条 TCP 连接只能是点到点的; UDP 支持一对一, 一对多, 多对一和多对多的交互通信.
e,TCP 对系统资源要求较多, UDP 对系统资源要求较少.
4, 总结 ip 分类以及每个分类可以分配的 IP 数量;
网络中的每一个主机或路由器至少有一个 ip 地址;
在 Internet 中不允许有两个设备具有同样的 IP 地址;
IP 地址采用分层结构;
IP 地址是由网络号 (net ID) 与主机号 (host ID) 两部分组成的.
IP 地址长度为 32 位, 点分十进制 (dotted decimal) 地址;
采用 x.x.x.x 的格式来表示, 每个 x 为 8 位, 每个 x 的值为 0~255(例如 202.113.29.16);
根据不同的取值范围, IP 地址可以分为五类;
IP 地址中的前 5 位用于标识 IP 地址的类别:
A 类地址的第一位为 0;
B 类地址的前两位为 10;
C 类地址的前三位为 110;
D 类地址的前四位为 1110;
E 类地址的前五位为 11110.
IP 地址根据网络号和主机号来分, 分为 A,B,C 三类及特殊地址 D,E. 全 0 和全 1 的都保留不用.
A 类:(1.0.0.0-126.0.0.0)(默认子网掩码: 255.0.0.0 或 0xFF000000)第一个字节为网络号, 后三个字节为主机号. 该类 IP 地址的最前面为 "0", 所以地址的网络号取值于 1~126 之间. 一般用于大型网络.
定义: 第 1 字节为网络地址, 其它 3 个字节为主机地址
范围: 1.0.0.1 - 126.255.255.254
数量: 允许有 126 个网段, 每个网段允许有 16777214 台主机
子网掩码: 255.0.0.0
私有地址: 10.X.X.X 是私有地址(所谓的私有地址就是在互联网上不使用, 而被用在局域网络中的地址), 范围 10.0.0.1-10.255.255.254
保留地址: 127.X.X.X 是保留地址, 也是本机地址, 等效于 localhost 或本机 IP. 一般用于测试使用. 例如: ping 127.0.0.1 来测试本机 TCP/IP 是否正常.
B 类:(128.0.0.0-191.255.0.0)(默认子网掩码: 255.255.0.0 或 0xFFFF0000)前两个字节为网络号, 后两个字节为主机号. 该类 IP 地址的最前面为 "10", 所以地址的网络号取值于 128~191 之间. 一般用于中等规模网络.
定义: 第 1 字节和第 2 字节为网络地址, 其它 2 个字节为主机地址
范围: 128.0.0.1 - 191.255.255.254
数量: 允许有 16384 个网段, 每个网段允许有 65534 台主机
子网掩码: 255.255.0.0
私有地址: 172.16.0.0 - 172.31.255.255 是私有地址
保留地址: 169.254.X.X 是保留地址. 如果你的 IP 地址是自动获取 IP 地址, 而你在网络上又没有找到可用的 DHCP 服务器. 就会得到其中一个 IP
C 类:(192.0.0.0-223.255.255.0)(子网掩码: 255.255.255.0 或 0xFFFFFF00)前三个字节为网络号, 最后一个字节为主机号. 该类 IP 地址的最前面为 "110", 所以地址的网络号取值于 192~223 之间. 一般用于小型网络.
定义: 第 1 字节, 第 2 字节和第 3 个字节为网络地址, 第 4 个个字节为主机地址. 另外第 1 个字节的前三位固定为 110
范围: 192.0.0.1 - 223.255.255.254
数量: 允许有 2097152 个网段, 每个网段允许有 254 台主机
子网掩码: 255.255.255.0
私有地址: 192.168.X.X 是私有地址.(192.168.0.0 - 192.168.255.255)
D 类: 是多播地址. 该类 IP 地址的最前面为 "1110", 所以地址的网络号取值于 224~239 之间. 一般用于多路广播用户.
定义: 不分网络地址和主机地址, 它的第 1 个字节的前四位固定为 1110
范围: 224.0.0.1 - 239.255.255.254
E 类: 是保留地址. 该类 IP 地址的最前面为 "1111", 所以地址的网络号取值于 240~255 之间.
定义: 不分网络地址和主机地址, 它的第 1 个字节的前五位固定为 11110
范围: 240.0.0.1 - 255.255.255.254
5, 总结 IP 配置方法
1 使用 ifconfig 配置 ip
ifconfig eth0 192.168.1.1/24
2 使用 ip address 配置 ip
ip address add 192.168.2.1/24 dev eth0
再将 192.168.1.1/24 删除即可.
ip address del 192.168.1.1/24 dev eth0
3 在 CentOS 7 中使用 nmcli 配置 ip:
nmcli connection add con-name eth0-test ifname eth0 type ethernet ipv4.method manual ipv4.address 192.168.3.1/24
将对应的配置 up 起来即可.
nmcli connection up eth0-test
4 修改其配置文件, 让其永久有效:
其中要记得设置 ONBOOT=yes, 如果是静态 IP 要设置 BOOTPROTO=static, 和设置 ip,mask,GATEWAY,dns
来源: http://www.bubuko.com/infodetail-3494132.html