1、简述OSI七层模型和TCP/IP五层模型
解答:
OSI七层模型简述如下:
物理层提供为建立、维护和拆除物理链路所需要的机械的、电气的、功能的和规程的特性;有关的物理链路上传输非结构的位流以及故障检测指示。
数据链路层:在网络层实体间提供数据发送和接收的功能和过程;提供数据链路的流控。
网络层控制分组传送系统的操作、路由选择、拥护控制、网络互连等功能,它的作用是将具体的物理传送对高层透明。
传输层提供建立、维护和拆除传送连接的功能;选择网络层提供最合适的服务;在系统之间提供可靠的透明的数据传送,提供端到端的错误恢复和流量控制。
会话层提供两进程之间建立、维护和结束会话连接的功能;提供交互会话的管理功能,如三种数据流方向的控制,即一路交互、两路交替和两路同时会话模式 。
表示层代表应用进程协商数据表示;完成数据转换、格式化和文本压缩。
应用层提供OSI用户服务,例如事务处理程序、文件传送协议和网络管理等。
TCP/IP五层模型
物理层:负责光电信号传递方式。集线器工作在物理层。以太网协议。
数据链路层:负责设备之间的数据帧的传输和识别。交换机工作在数据链路层。例如网卡设备的驱动,帧同步,冲突检测,数据差错校验等工作。
网络层:负责地址管理和路由选择。路由器工作在网络层。
传输层:负责两台主机之间的数据传输。
应用层:负责应用程序之间的沟通。网络编程主要针对的就是应用层。
2、总结描述TCP三次握手四次挥手
解答:
三次握手:
第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
第二次握手: Server 收到数据包后由标志位 SYN=1 知道 Client 请求建立连接, Server 将标志位 SYN 和 ACK 都置为 1 , ack=J+1 ,随机产生一个值 seq=K ,并将该数据包发送给 Client 以确认连接请求, Server 进入 SYN_RCVD 状态。
第三次握手: Client 收到确认后,检查 ack 是否为 J+1 , ACK 是否为 1 ,如果正确则将标志位 ACK 置为 1 , ack=K+1 ,并将该数据包发送给 Server , Server 检查 ack 是否为 K+1 , ACK 是否为 1 ,如果正确则连接建立成功, Client 和 Server 进入 ESTABLISHED 状态,完成三次握手,随后 Client 与 Server 之间可以开始传输数据了。
四次挥手
第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
第二次挥手: Server 收到 FIN 后,发送一个 ACK 给 Client ,确认序号为收到序号 +1 (与 SYN 相同,一个 FIN 占用一个序号), Server 进入 CLOSE_WAIT 状态。
第三次挥手: Server 发送一个 FIN ,用来关闭 Server 到 Client 的数据传送, Server 进入 LAST_ACK 状态。
第四次挥手: Client 收到 FIN 后, Client 进入 TIME_WAIT 状态,接着发送一个 ACK 给 Server ,确认序号为收到序号 +1 , Server 进入 CLOSED 状态,完成四次挥手。
3、描述TCP和UDP区别
TCP:传输控制协议
这是一个面向连接的传输协议,在发送数据之前,要和对方建立可靠的连接。一个TCP连接必须经过三次握手才能建立,经过四次挥手才能断开。
三次握手:客户端向服务器发送syn请求建立连接;
服务器向客户端发送syn以及ack确定是否建立连接?
客户端向服务器发送ack确定建立连接。
四次握手:客户端向服务器发送fin请求断开连接;
服务器向客户端发送数据包;
服务器向客户端fin以及ack确定是否断开连接;
客户端向服务器发送fin确定断开连接。
UDP:用户数据报协议
这是一个无连接的简单的面向数据报的传输层协议
UDP不提供可靠性,只是把应用程序传给ip层的数据包发送出来,但是不能保证他们到达目的地;由于UDP在传输数据包前不用在客户和服务器之间建立连接,并且没有超时重发机制,所以速度很快。
区别:
1.基于连接与无连接;
2.对系统资源的要求(TCP较多,UDP较少);
3.UDP程序结构较为简单;
4.TCP是流模式(SOCK_STREAM) UDP是数据报模式(SOCK_DGRAM);
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证;
4、总结ip分类以及每个分类可以分配的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.配置ip地址前首先ifconfig/ip addr查看网卡信息并获取到网卡的名称.
2.cd /etc/sysconfig/network-scripts/,找到配置文件为ifcfg-ens33
3.修改ifcfg-ens33,为如下:
TYPE="Ethernet" # 网络类型,不用改的,默认就是Ethernet,以太网的意思
PROXY_METHOD="none" # 代理方式:关闭状态
BROWSER_ONLY="no" # 只是浏览器:否
BOOTPROTO="none" # 网卡的引导协议:DHCP[中文名称: 动态主机配置协议]
DEFROUTE="yes" # 默认路由:是
IPV4_FAILURE_FATAL="yes" # 是不开启IPV4致命错误检测:否
IPV6INIT="yes" # IPV6是否自动初始化: 是
IPV6_AUTOCONF="yes" # IPV6是否自动配置:是
IPV6_DEFROUTE="yes" # IPV6是否可以为默认路由:是
IPV6_FAILURE_FATAL="no" # 是不开启IPV6致命错误检测:否
IPV6_ADDR_GEN_MODE="stable-privacy" # IPV6地址生成模型:stable-privacy
NAME="ens33" # 网卡物理设备名称
UUID="c504fbcb-63b9-4aa8-bfff-4edde8ff6e02" # 通用唯一识别码, 每一个网卡都会有, 不能重复, 否两台linux只有一台网卡可用
DEVICE="ens33" # 网卡设备名称, 必须和NAME
值一样
ONBOOT="yes" # 是否开机启动, 要想网卡开机就启动或通过systemctl restart network
控制网卡
IPADDR="192.168.163.5" # IP地址
PREFIX="24" #配置子网掩码
GATEWAY="192.168.163.2" #网关
DNS1="8.8.8.8" #DNS
IPV6_PRIVACY="no"
4.修改完成后重启网卡
systemctl restart network