1、简述osi七层模型和TCP/IP五层模型
OSI七层模型包含:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
物理层:为启动,维护和关闭物理链路定义了电气规范、机械规范、过程规范和功能规范;
数据链路层:传输数据帧,并为网络层提供差错控制和流量控制服务;
网络层:为数据在节点之间传输创建逻辑链路,通过路由选择算法为分组选择最佳路径,从而实现拥塞控制、网络互联等功能;
传输层:传输层主要为用户提供端到端服务,处理数据报错误、数据包次序等传输问题
会话层:主要功能是负责维护两个节点之间的传输联接,确保点到点传输不中断,以及管理数据交换等功能;
表示层:主要功能是处理在两个通信系统中交换信息的表示方式,主要包括数据格式变化、数据加密与解密、数据压缩与解压等;
应用层:为网络用户之间的通信提供专用的程序服务以及用户验证;
应用层基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层、网络层、传输层和应用层。下图表示TCP/IP模型与OSI模型各层的对照关系。
二者的相同点:
均属于网络协议栈;
功能大体相似,均有类似的应用层,传输层和网络层;
二者传输层以上都是以应用为主导。
二者的不同点:
TCP/IP一开始就对面向连接各无连接并重,而OSI在开始时只强调面向连接服务;
TCP/IP有较好且相对简单灵活的网络管理功能,而OSI并不具备。
2、总结描述TCP三次握手四次挥手
首先,客户端与服务器均处于未连接状态,并且是客户端主动向服务器请求建立连接:
客户端将报文段中的SYN=1,并选择一个seq=x,(即该请求报文的序号为x) 将这个报文发送到服务器。此时,客户端进入同步已发送状态(SYN-SEND).SYN报文段不能携带数据,但是要消耗掉一个序号。
服务器收到请求报文后,若同意建立连接,则回复报文中,SYN=1,ACK=1,并选择一个seq = y,且报文中确认号为x+1,序号为y .此时服务器进入同步已接收状态(SYN-RCVD)客户端收到服务器的同步确认后,对服务器发送确认的确认。将ACK=1,确认号为y+1,而报文首部的序号为x+1,将该报文发出后,客户端进入已连接状态(ESTABLISHED)。
服务器收到客户端的确认后,也进入已连接状态。
以上即三次握手
通俗描述3次握手就是
A对B说:我的序号是x,我要向你请求连接;(第一次握手,发送SYN包,然后进入SYN-SEND状态)
B听到之后对A说:我的序号是y,期待你下一句序号是x+1的话(意思就是收到了序号为x的话,即ack=x+1),同意建立连接。(第二次握手,发送ACK-SYN包,然后进入SYN-RCVD状态)
A听到B说同意建立连接之后,对A说:与确认你同意与我连接(ack=y+1,ACK=1,seq=x+1)。(第三次握手,A已进入ESTABLISHED状态)
B听到A的确认之后,也进入ESTABLISHED状态。
TCP连接的释放(四次挥手)
连接的释放较连接的建立复杂。
现假设客户端与服务器均处于连接建立状态,客户端主动断开连接:
1.客户端向服务器发送FIN报文:FIN=1,序号seq=上一个最后传输的字节序号+1=u,发送后,客户端进入FIN-WAIT-1状态。
2.服务器接收到该报文后,发送一个确认报文:令ACK=1,确认序号ack = u+1,自己的报文序号seq=v,发送后,服务器进入CLOSE-WAIT状态。
3.此时TCP连接进入连接半关闭状态,服务器可能还会向客户端发送一些数据。
4.客户端收到来自服务器的确认之后,进入FIN-WAIT-2状态。等待服务器发送连接释放报文。
5.如果服务器已经没有要发送的数据,则释放TCP连接,向客户端发送报文:令FIN=1,ACK=1,确认号ack =u+1,自己的序号seq = w(w可能等于v也可能大于v),服务器进入LAST-ACK状态。
6.客户端收到服务器的连接释放报文后,对该报文发出确认,令ACK=1,确认号ack=w+1,自己的序号seq=u+1,发送此报文后,等待2个msl时间后,进入CLOSED状态。
7.服务器收到客户端的确认后,也进入CLOSED状态并撤销传输控制块。
客户端状态变化:未连接----->SYN-SEND----->ESTABLISHED----->FIN-WAIT-1----->FIN-WAIT-2----->TIME-WAIT----->CLOSED
服务器状态变化:未连接----->SYN-RCVD----->ESTABLISHED----->CLOSE-WAIT----->LAST-ACK----->CLOSED
描述四次挥手就是:
A与B交谈结束之后,A要结束此次会话,对B说:我要关闭连接了(seq=u,FIN=1)。(第一次挥手,A进入FIN-WAIT-1)
B收到A的消息后说:确认,你要关闭连接了。(seq=v,ack=u+1,ACK=1)(第二次挥手,B进入CLOSE-WAIT)
.A收到B的确认后,等了一段时间,因为B可能还有话要对他说。(此时A进入FIN-WAIT-2)
B说完了他要说的话(只是可能还有话说)之后,对A说,我要关闭连接了。(seq=w, ack=u+1,FIN=1,ACK=1)(第三次挥手)
A收到B要结束连接的消息后说:已收到你要关闭连接的消息。(seq=u+1,ack=w+1,ACK=1)(第四次挥手,然后A进入CLOSED)
3、描述TCP和UDP区别
二者均是工作在传输层的协议,以下为主要区别
1、TCP是面向连接的协议,UDP为无连接协议;
2、TCP可实现可靠传输,使用流量控制和拥塞控制;UDP为不可靠传输;
3、TCP是流模式(SOCK_STREAM) UDP是数据报模式(SOCK_DGRAM);
4、TCP适用于要求可靠传输的应用,例如文件传输的场景;UDP适用于实时应用(例如语音,视频等)
5、TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证;
基于TCP的网络协议:
Tlenet:远程登录协议
FTP:文件传输协议
SMTP:简单邮件传输协议
SNMP:简单网络管理协议
HTTP:超文本传输协议
基于UDP的网络协议:
NTP:网络时间协议
TFTP:简单文件传输协议
4、总结ip分类以及每个分类可以分配的IP数量
IPv4地址目前被划分为5类:
A类:网络位首字节开头为0,可分配16777214台主机
B类:网络位首字节开头为10,可分配65534台主机
C类:网络位首字节开头为110,可分配254台主机
D类:网络位首字节开头为1110,为组播地址
E类:网络位首字节开头为1111,为保留地址
网络数=2^可变的网张ID位
主机数=2^主机ID位-2
网络ID=IP与netmask
5、总结IP配置方法
ifconfig命令配置 临时生效,重启后配置丢失
ifconfig ##查看网卡信息
ifconfig ethx ipadd netmask x.x.x.x
其中 ethx 中 x 代表第几块以太网卡,默认第一块为 0,ipadd 代表 ip 地址。x.x.x..x 为子网掩码
IP命令配置
ip address 查看网卡信息;简写 ip a
ip addr add 10.10.1.178/16 dev eth0 ###添加IP
ip addr del 172.16.55.34/16 dev eth0 ### 删除IP
网络配置文件
文件目录为:/etc/sysconfig/network-scripts/ 下的网卡对应文件
vim ifcfg-eth0
BOOTPROTO=static
IPADDR=10.3.131.40
NETMASK=255.255.255.0
GATEWAY=10.3.131.254
ONBOOT=yes