1、简述osi七层模型和TCP/IP五层模型。
TCP / IP 的概念:
TCP/ IP 是一类协议系统, 它是一套支持网络通信的协议集合。互联网协议(英语:Internet Protocol Suite,缩写 IPS)是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。它常被通称为TCP/IP协议族(英语:TCP/IP Protocol Suite,或TCP/IP Protocols),简称 TCP/IP
OSI模型:
网络业界针对网络协议体系有一个标准的七层模型,称为“ 开放系统互连( OSI )” 模型, 这是 ISO( 国际标准化组织 ) 为了标准化网络协议系统所做出的规范,旨在 提高网络互连性,并且方便软件开发人员以一种开放方式来使用协议标准。简单来说,OSI 是一个具有参考意义的标准框架。TCP / IP 模型是目前应用最广的工业模型。
注意到 OSI 模型把应用层的功能划分到 3 个 层:应用层、表示层和会话层。 OSI 还把 网络 访问层的功能划分到数据链路层和物理层。 这种新增的细分带来了一定的复杂性,但是通过让协议层具有更明确的服务,也为开发人员提供了灵活性。 尤其是在底层对数据链层和物理层的划分, 就把通信组织相关的功能与访问通信介质的功能分离开了。 而 OSI 的最上三层让应用程序能够以更灵活的方式与协议栈进行交互。
TCP / IP 层级关系介绍
应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。
网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。
iOS 七层模型介绍
应用层:
应用层(Application Layer)是OSI参考模型的最高层,它是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作
表示层:
表示层(Presentation Layer)是OSI模型的第六层,它对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。其主要功能是“处理用户信息的表示问题,如编码、数据格式转换和加密解密”等
会话层
会话层(Session Layer)是OSI模型的第5层,是用户应用程序和网络之间的接口,主要任务是:向两个实体的表示层提供建立和使用连接的方法。将不同实体之间的表示层的连接称为会话。因此会话层的任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理。
传输层
向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。传输层的作用是向高层屏蔽下层数据通信的细节,即向用户透明地传送报文。
网络层(路由器)
通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接。
数据链路层(交换机)
通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路
物理层(网卡)
利用传输介质为数据链路层提供物理连接,实现比特流的透明传输
2、总结描述TCP三次握手四次挥手。
第一次握手(SYN=1, seq=x):
客户端发送一个 TCP 的 SYN 标志位置1的包,指明客户端打算连接的服务器的端口,以及初始序号 X,保存在包头的序列号(Sequence Number)字段里。
发送完毕后,客户端进入 SYN_SENT 状态。
第二次握手(SYN=1, ACK=1, seq=y, ACKnum=x+1):
服务器发回确认包(ACK)应答。即 SYN 标志位和 ACK 标志位均为1。服务器端选择自己 ISN 序列号,放到 Seq 域里,同时将确认序号(Acknowledgement Number)设置为客户的 ISN 加1,即X+1。 发送完毕后,服务器端进入 SYN_RCVD 状态。
第三次握手(ACK=1,ACKnum=y+1)
客户端再次发送确认包(ACK),SYN 标志位为0,ACK 标志位为1,并且把服务器发来 ACK 的序号字段+1,放在确定字段中发送给对方,并且在数据段放写ISN的+1
发送完毕后,客户端进入 ESTABLISHED 状态,当服务器端接收到这个包时,也进入 ESTABLISHED 状态,TCP 握手结束。
TCP 的连接的拆除需要发送四个包,因此称为四次挥手(Four-way handshake),也叫做改进的三次握手。客户端或服务器均可主动发起挥手动作。
第一次挥手(FIN=1,seq=x)
假设客户端想要关闭连接,客户端发送一个 FIN 标志位置为1的包,表示自己已经没有数据可以发送了,但是仍然可以接受数据。
发送完毕后,客户端进入 FIN_WAIT_1 状态。
第二次挥手(ACK=1,ACKnum=x+1)
服务器端确认客户端的 FIN 包,发送一个确认包,表明自己接受到了客户端关闭连接的请求,但还没有准备好关闭连接。
发送完毕后,服务器端进入 CLOSE_WAIT 状态,客户端接收到这个确认包之后,进入 FIN_WAIT_2 状态,等待服务器端关闭连接。
第三次挥手(FIN=1,seq=y)
服务器端准备好关闭连接时,向客户端发送结束连接请求,FIN 置为1。
发送完毕后,服务器端进入 LAST_ACK 状态,等待来自客户端的最后一个ACK。
第四次挥手(ACK=1,ACKnum=y+1)
客户端接收到来自服务器端的关闭请求,发送一个确认包,并进入 TIME_WAIT状态,等待可能出现的要求重传的 ACK 包。
服务器端接收到这个确认包之后,关闭连接,进入 CLOSED 状态。
客户端等待了某个固定时间(两个最大段生命周期,2MSL,2 Maximum Segment Lifetime)之后,没有收到服务器端的 ACK ,认为服务器端已经正常关闭连接,于是自己也关闭连接,进入 CLOSED 状态。
补充:有限状态机FSM:Finite State Machine
CLOSED 没有任何连接状态
LISTEN 侦听状态,等待来自远方TCP端口的连接请求
SYN-SENT 在发送连接请求后,等待对方确认
SYN-RECEIVED 在收到和发送一个连接请求后,等待对方确认
ESTABLISHED 代表传输连接建立,双方进入数据传送状态
FIN-WAIT-1 主动关闭,主机已发送关闭连接请求,等待对方确认
FIN-WAIT-2 主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求
TIME-WAIT 完成双向传输连接关闭,等待所有分组消失
CLOSE-WAIT 被动关闭,收到对方发来的关闭连接请求,并已确认
LAST-ACK 被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失
CLOSING 双方同时尝试关闭传输连接,等待对方确认
3、描述TCP和UDP区别
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保 证可靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道
4、总结ip分类以及每个分类可以分配的IP数量
IP地址分类
A类:
0 000 0000 - 0 111 1111: 1-127
网络数: 126, 127
每个网络中的主机数: 2^24-2
默认子网掩码: 255.0.0.0
私网地址: 10.0.0.0
B类:
10 00 0000 - 10 11 1111: 128-191
网络数: 2^14
每个网络中的主机数: 2^16-2
默认子网掩码: 255.255.0.0
私网地址: 172.16.0.0-172.31.0.0
C类:
110 0 0000 - 110 1 1111: 192-223
网络数: 2^21
每个网络中的主机数: 2^8-2
默认子网掩码: 255.255.255.0
私网地址: 192.168.0.0-192.168.255.0
D类:组播
1110 0000 - 1110 1111: 224-239
E类:保留未使用
240-255
特殊地址
0.0.0.0
0.0.0.0不是一个真正意义上的IP地址。它表示所有不清楚的主机和目的网络
255.255.255.255
限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机
127.0.0.1~ 127.255.255.254
本机回环地址,主要用于测试。在传输介质上永远不应该出现目的地址为
“127.0.0.1” 的 数据包
224.0.0.0到239.255.255.255
组播地址, 224.0.0.1特指所有主机, 224.0.0.2特指所有路由器。 224.0.0.5指OSPF
路由器,地址多用于一些特定的程序以及多媒体程序
169.254.x.x
如果Windows主机使用了DHCP自动分配IP地址,而又无法从DHCP服务器获取地
址,系统会为主机分配这样地址
5、总结IP配置方法
1 ifconfig+网卡名命令临时配置,这种方法是临时的,用的不多。
2 setup工具永久配置。centos专有的工具。命令setup,然后选网络配置。
3 修改网络配置文件永久配置(我用的centOS,别的版本文件的位置不太一样)。在这个文件里面修改,第一个文件修改ip地址等,第二个文件修改DNS。设置完执行命令:service network restart
4 图形界面配置(类似windows)