计算机网络概论 | 青训营笔记

115 阅读6分钟

一、计算机网络知识

OSI协议

OSI采用了分层的结构化技术,从下到上共分七层

物理层:该层包括物理连网媒介,如电缆连线连接器。该层的协议产生并检测电压以便发送和接收携带数据的信号。 

数据链路层:它控制网络层与物理层之间的通信。它的主要功能是将从网络层接收到的数据分割成特定的可被物理层传输的帧。

网络层:其主要功能是将网络地址(例如IP地址)翻译成对应的物理地址(例如网卡地址)并决定如何将数据从发送方路由到接收方;路由选择。 

传输层:主要负责确保数据可靠、顺序、无错地从A点传输到B点。如提供建立、维护和拆除传送连接的功能;选择网络层提供最合适的服务;在系统之间提供可靠的透明的数据传送,提供端到端的错误恢复和流量控制。

会话层:负责在网络中的两节点之间建立和维持通信,以及提供交互会话的管理功能,如三种数据流方向的控制,即一路交互、两路交替和两路同时会话模式。 

表示层:应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化;这种格式化也因所使用网络的类型不同而不同。表示层管理数据的解密加密、数据转换、格式化和文本压缩。

应用层:负责对软件提供接口以使程序能使用网络服务,如事务处理程序、文件传送协议和网络管理等

无线通信网络根据应用领域可分为

① 无线个域网(WPAN)
② 无线局域网(WLAN)
③ 无线城域网(WMAN)
④ 蜂房移动通信网(WWAN)

信息安全的基本要素

(1) 机密性:确保信息不暴露给未授权的实体或进程 

(2) 完整性:只有得到允许的人才能修改数据,并且能够判别出数据是否已被篡改

(3) 可用性:得到授权的诗人在需要时可访问数据,即攻击者不能占用所有的资源而阻碍授权者的工作 

(4) 可控性:可以控制授权范围内的信息流向及行为方式 

(5) 可审查性:对出现的网络安全问题提供调查的依据和手段 

二、TCP协议的三次握手和四次挥手:

注:seq:"sequance"序列号;ack:"acknowledge"确认号;SYN:"synchronize"请求同步标志;;ACK:"acknowledge"确认标志"**;**FIN:"Finally"结束标志。

**TCP连接建立过程:**首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。

**TCP连接断开过程:**假设Client端发起中断连接请求,也就是发送FIN报文。Server端接到FIN报文后,意思是说"我Client端没有数据要发给你了",但是如果你还有数据没有发送完成,则不必急着关闭Socket,可以继续发送数据。所以你先发送ACK,"告诉Client端,你的请求我收到了,但是我还没准备好,请继续你等我的消息"。这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。当Server端确定数据已发送完成,则向Client端发送FIN报文,"告诉Client端,好了,我这边数据发完了,准备好关闭连接了"。Client端收到FIN报文后,"就知道可以关闭连接了,但是他还是不相信网络,怕Server端不知道要关闭,所以发送ACK后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。",Server端收到ACK后,"就知道可以断开连接了"。Client端等待了2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,我Client端也可以关闭连接了。Ok,TCP连接就这样关闭了!

为什么要三次握手?

在只有两次"握手"的情形下,假设Client想跟Server建立连接,但是却因为中途连接请求的数据报丢失了,故Client端不得不重新发送一遍;这个时候Server端仅收到一个连接请求,因此可以正常的建立连接。但是,有时候Client端重新发送请求不是因为数据报丢失了,而是有可能数据传输过程因为网络并发量很大在某结点被阻塞了,这种情形下Server端将先后收到2次请求,并持续等待两个Client请求向他发送数据...问题就在这里,Cient端实际上只有一次请求,而Server端却有2个响应,极端的情况可能由于Client端多次重新发送请求数据而导致Server端最后建立了N多个响应在等待,因而造成极大的资源浪费!所以,"三次握手"很有必要!

为什么要四次挥手?

试想一下,假如现在你是客户端你想断开跟Server的所有连接该怎么做?第一步,你自己先停止向Server端发送数据,并等待Server的回复。但事情还没有完,虽然你自身不往Server发送数据了,但是因为你们之前已经建立好平等的连接了,所以此时他也有主动权向你发送数据;故Server端还得终止主动向你发送数据,并等待你的确认。其实,说白了就是保证双方的一个合约的完整执行!

使用TCP的协议:FTP(文件传输协议)、Telnet(远程登录协议)、SMTP(简单邮件传输协议)、POP3(和SMTP相对,用于接收邮件)、HTTP协议等。

三、总结

计算机网络之前没有系统学习过,刚开始学习,接下来我会从以下几个方面在系统的学习

1. 入门基础:了解计算机网络的基本概念、网络拓扑结构、OSI七层模型等。

2. 网络协议:学习常见的网络协议,如TCP/IP、HTTP、FTP等,掌握它们的特点、作用和应用场景。 

 3. 网络设备:了解网络设备的种类、功能和工作原理,如路由器、交换机、防火墙等。 

 4. 网络安全:学习网络安全知识,包括网络攻击与防御、加密技术、身份认证等。 

 5. 应用开发:学习网络应用开发的基础知识,如Web开发、网络编程等,掌握相关技术和工具,实践项目。