第七周作业

1、简述osi七层模型和TCP/IP五层模型

osi七层模型:


10958113-601381873acfb2ba.webp.jpg
应用层:应用层是常见的一些应用程序服务(如nginx http服务,ftp软件,qq软件),他们产生的和接收到的数据就是应用层数据。应用层是osi的最高层,也是最接近用户的层次。

表示层:使用应用层的下一层,应用层的数据会首先经过表示层,将为应用层产生的数据提供数据转换类的服务,也就是数据如何展现,如何表示。例如格式转换,编码转换,数据压缩,数据加密与解密。

会话层:跨主机的两个计算机之间的应用程序需要痛通信,需要建立会话。会话层虽然不参与具体的数据传输,但它却对数据传输进行管理。会话层在两个互相通信的应用进程之间建立、组织和协调其交互活动。

传输层:传输层的基本功能就是接收上一层的数据,并在必要的时候将数据分割成最小的数据单元,然后把这些数据单元传递给网络层。

网络层:收到传输层封装后过来的数据,需要指定数据要到达的目标ip地址。在网络层会为数据报继续封装,加上源IP和目标IP地址,此时数据报就成了数据包。根据路由规则,可以知道将这个数据包怎么传递出去,以及如何找到目标主机,同时对方可以通过数据包中源IP地址找到回来的路径。

链路层:数据包到达了数据链路层,将继续封装得到数据帧,将源MAC地址和目标MAC地址加入到数据包中,得到的就是数据帧,计算机就可以通过MAC地址将数据包传递局域网的下一跳,是给交换机还是路由器,但最终要出去还是会经过本地的路由器,路由器将解封数据帧,同时修改源MAC为自己的MAC地址,目标MAC为路由器的下一跳的MAC地址,通过这样不断的修改目标MAC和源MAC,数据最终能够到达目标主机上。

物理层:数据最终通过网卡出去,数据帧将进入最后一层物理层。在物理层,网卡会将数字信号转变成点信号传递给网线,物理层处理后得到的数据是二进制数据,也称为bit流。

TCP/IP五层模型

19996564-c30547d207abeac4.webp.jpg

TCP/IP的应用层相当于OSI七层协议的应用层、表示层、会话层,其他各层一一对应,在每一层工作者不同的设备,如网络层工作着路由器,数据链路层工作着交换机;每一层的协议也不通。

应用层:为应用软件提供接口,使应用程序能够使用网络服务
常见的应用层协议:
--http(80)、https(443)、dns(53)
-ftp(20/21) -smtp(25) -pop3(110) -telnet
传输层(TCP/UDP)

2、总结描述TCP三次握手四次挥手

TCP三次握手

10958113-ddfeb5f8e938d761.webp.jpg

首先服务器端B的服务进程已经监听在某个端口上,监听之后就可以一直等待客户端请求,简历TCP的连接。

(1)客户端A想要和客户端B建立TCP连接时,首先会发送一个连接请求报文给服务器B。 在这个请求报文中,TCP首部中的SYN位设置为1,ACK位设置为0,假设此时的序号是x(序号不一定是1),即SYN=1、ACK=0、seq=x。这个包也被称为SYN包,当客户端发送完SYN包后,他将进入SYN_SENT状态。

(2)当B收到报文后,发现其中的SYN=1、ACK=0,边知道这是一个TCP连接的请求包。如果B确认和A简历TCP连接,那么B需要回复A. 回复时,SYN=1、ACK=1、ack=x+1、seq=y.注意区分这里的ACK和ack,ACK表示的是占用一个比特位的ACK设置位,ack是确认号。这个包通常被称为ACK包,当服务端完ACk包之后,它将进入SYN_RECV状态。

(3)当A收到B的回复报文后,发现里面的SYN=1、ACK=1,于是也会向B回复一个ACK包,回复时,SYN=0、ACK=1、seq=x+1、ack=y+1.这里的SYN=0、ACK=1表示这不是建立连接的请求包,而是回复包。A发送完之后,就进入了ESTABLIESHED状态,表示连接在A端已经建立完成。

(4)B最终收到A的ACK包之后,也将进入ESTABLISHED状态。到此,TCP连接就建立完成。

TCP四次挥手

10958113-66d3f09cb716b87f.webp.jpg

首先两端在开始释放TCP连接之前,都已经处于ESTABLISHED状态,假设现在A开始请求释放连接(B端也可以主动释放连接)

(1)A首先发送一个TCP首部中FIN位置为1的包给B端,假设此时序号是u,即seq=u。FIN=1意味着这是一个请求关闭TCP连接的数据包,这种包也称为FIN包。当发送FIN包之后,A将从ESTABLISHED状态转变为FIN-WAIT-1状态。

(2)B收到FIN包之后,发现其中FIN=1,知道A端请求关闭,于是发了一个回复包给A。回复时,设置ACK=1,ack=u+1,同时还设置序号seq=v(假设B现在发送到的数据序号是v),发送完这个回复包之后,服务端进入CLOSE_WAIT状态。到了这个阶段,A(主动请求关闭方)到B(被动方)方向的连接就已经释放了,A不能在发送传输数据给B,但是B到A方向的连接还没有关闭,他可以继续发送数据给A,A也会接收。因为在这个阶段只有一个方向的连接被释放,所以close-wait状态也称为半关闭(half-close)状态。

(3)当A收到B的ACK包之后它将进入FIN-WAIT2,等待B发起B到A方向的连接关闭请求。

(4)当B确认已经没有数据发送给A后,B开始主动关闭从B到A方向的TCP连接。这时会发送一个FIN包,同事ACK设置为1,ack任然保持不变,是u+1,而seq则为一个新值w,因为进入CLOSE-WAIT之后,B可能还会发送一些数据。B发送完这个FIN+ACK包之后,将进入LAST-ACK(最后确认)状态。

(5)当A收到B的FIN+ACK包之后,需要对B发送的关闭请求做出回复。回复时,ACK=1,seq=u+1不变,ack=w+1.当发送完这个ACK包之后,A不会立即就关闭,而是进入TIME-WAIT阶段等待一段时间(2倍的MSL时长)。

(6)当B收到A的回复ACK包之后,意味着B到A放方向的连接关闭已经确认了,于是B端关闭连接。

(7)当A等待了2MSL的时长之后,将真正关闭连接。

3、描述TCP和UDP区别

UDP协议主要特点:

    1)UDP是无连接的,及发送数据之前不需要和对方先建立连接,也不存在关闭连接的过程,传输效率比较高。
    2)UDP会尽量保证数据可到达目标目标主机,但是无法保证可靠的传输,因为在传输数据之前没有建立可靠的链接,数据丢失后无法重传。
    3)UDP是面向数据报的。    
    4)UDP首部开销小,只有8个字节,而TCP首部有20个字节,相比TCP协议,UDP的传输效率更高。
    5)UDP没有拥塞控制,在网络拥塞的时候,源主机不会因此而降低发送速率,所以UDP的实时性更好。所以,对弈业务场景允许丢失一些数据,但有要求高实时性的场景,UDP更为合适。
    6)差错校验功能有限,在校验后发现不一致,将直接丢弃数据报。
TCP协议主要特点:

    1)工作在传输层
    2)面向连接协议
    3)全双工协议
    4)半关闭
    5)错误检查
    6)将数据打包成段,排序
    7)确认机制
    8)数据恢复,重传
    9)流量控制,滑动窗口
    10)拥塞控制,慢启动和拥塞避免算法
TCP:传输控制协议,面向连接的传输协议,在正式发送数据之前,必须要与对方建立可靠的连接。一个TCP连接
     必须经过三次握手才能建立,经过四次挥手才能断开。
UDP:用户数据报协议,面向无连接的传输协议,UDP不提供可靠性,只是把应用程序传给IP层的数据包发送出去,
     但不能保证数据到达目的地,由于UDP在正式传输数据前不需要与目标主机建立连接,并且没有超时重传机
     制,所以速度相对于TCP来说,要快很多。

4、总结ip分类以及每个分类可以分配的IP数量

IP地址分类:
    A类:
            第一段为网络号,后三段为主机号
            网络号:
                        0 0000000 ~ 0 1111111:1-127
            网络数量:
                        126
            每个网络中的主机数量:
                        2^24-2
            默认子网掩码:
                        255.0.0.0
                        用于与IP地址按位进行"与"运算,从而取出其网络位
                        例:1.3.2.1/255.0.0.0    =    1.0.0.0
                                1.3.2.1/255.255.0.0    =    1.3.0.0
            私网地址:
                        10.0.0.0/255.0.0.0
    B类:
            前两段为网络号,后两段为主机号
            网络号:
                        10 000000 ~ 10 111111:128-191
            网络数:2^14
            每个网络中的主机数量:2^16-2
            默认子网掩码:255.255.0.0
            私网地址:172.16.0.0 ~ 172.31.0.0
    C类:
            前三段为网络号,后三段为主机号
            网络号:
                        110 00000 ~ 110 11111:192-223
            网络数:2^21
            每个网络中的主机数量:2^8-2
            默认子网掩码:255.255.255.0
            私网地址:192.168.0.0
    D类:组播
            1110 0000 ~ 1110 1111:224-239
    E类:保留科研,240-255

5、总结IP配置方法

(1).使用NetworkManager服务提供的工具配置:nmcli、nmtui等
(2).直接编辑/etc/sysconfig/network-scripts/ifcft-XXX网卡配置文件即可,文件内容常见如下:
    DEVICE=eth0         #网卡名称
    ONBOOT=yes          #是否开机自启网卡
    BOOTPROTO=static    #获取ip的方式(static、dhcp)
    IPADDR=X.X.X.X      #ip地址
    NETMASK=255.255.255.0  #子网掩码
    PREFIX=24           #子网掩码
    GATEWAY=X.X.X.X     #网关
    DNS=X.X.X.X         #DNS
    配置完毕之后需要重启网络服务,执行命令:systemctl restart network

参数说明: 
DEVICE:此配置文件应用到的设备 
HWADDR:对应的设备的 MAC 地址 
BOOTPROTO:激活此设备时使用的地址配置协议,常用的 dhcp, static, none,bootp 
NM_CONTROLLED: NM 是 NetworkManager 的简写,此网卡是否接受 NM 控制;建议 CentOS6 为“no” 
ONBOOT:在系统引导时是否激活此设备 
TYPE:接口类型;常见有的 Ethernet, Bridge 
UUID:设备的惟一标识 
IPADDR:指明 IP 地址 
NETMASK:子网掩码 
GATEWAY: 默认网关        

你可能感兴趣的:(第七周作业)