linux小白之路,网络1

网络的基础


网络的重要性

互联网时代,网络非常的发达,网络无处不在

各种操作系统都支持相同的网络标准

linux运维的职业生涯50%网络故障,都来源于网络


osi 7层模型

物理层:把通信介质的信号装换成数字信号(二进制)

                        通信介质

                                        双绞线:转换电信号

                                          wifi:转换电磁波

数据链接层:有mac地址(唯一),通过交换机实现设备和设备之间的相互通讯

网络层:IP地址(定位),路由(指路)

             公网IP:全世界唯一,定位,可以满足两台设备在世界任何位置都能相互通讯            

              私网IP:局部唯一(解决公网IP不够用的情况,可以让多个设备共用一个公网IP上网)

              路由:指定数据包的下一站该怎么走

传输层:控制数据包的传输速度和可靠性,应用程序端口

                TCP协议:速度慢,可靠性高 (每传输一个数据包都需要确认是否收到,适合容易丢包的场景且特别重要的数据)

                UDP协议:速度快,可靠性差 (每传输一个数据包,不需要确认,适合局域网)

                    端口:多个程序同时进行通讯,使主机可以区分不同的网络服务    (客户端端口是临时随机不唯一的,这样可以打开多个客户端,安全,服务端的端口在同一台设备上是唯一的)

会话层:每一个链接会创建一个会话

表示层:表示文件的类型,用正确的方式打开文件

应用层:应用程序,最终我们需要传输的数据

程序和程序之间通信用的是协议,所有协议都是基于osi 7层模型来设计


数据封装,解封装,数据传输过程



TCP/IP协议 (协议类似发电报用到的密码本,双方都要遵守的一种约定)

运维只关注传输层 TCP协议

tcp的标识:

        SYN:建立链接

        ACK:回应标识

        FIN:断开链接

        PSH:数据包

       URG:紧急指针

        RST:重置(重传)

传数据之前需要三次握手,保证网络畅通

        先需要了解网络传输的方式:    单工(发送方只能发,接收方只能收,收音机广播)                                     

                                                           半双工(双方都可以作为发送方和接收方,但不能同时进行,对讲机,WiFi,无线)

                                                        全双工 (同时收发,双绞线网络)

          在网络中,谁先发起数据包传输请求谁就是客户端

        三次握手,发测试包,查看网络是否畅通,每个数据包有个标识    

        客户端发送第一个SYN标识数据包(随机序列号SEQ=x)给服务器端,进入SYN_SEND状态。

        服务器端收到SYN数据包,回应一个SYN,ACK标识(SEQ=y,确认序列号ACK=x+1)报文,进入SYN_RECV状态。

        客户端收到服务器端的SYN报文,回应一个ACK(SEQ=x+1,ACK=y+1)报文,进入Established状态。

传数据后需要四次挥手,保证数据传输完成

        客户端发送一个fin,ack标识数据包(SEQ=j,ack=k)给服务器端

        服务器端收到数据包,回应一个ack标识(SEQ=k,ACK=j+1)报文,

        等待数据传输完成,再发送fin,ack标识(seq=k,ack=j+1)

        客户端只需要回应一个ACK(SEQ=J+1,ACK=K+1)数据包

你可能感兴趣的:(linux小白之路,网络1)