计算机网络--基础知识总结

知道的越多,不知道的越多。

学习计算机网络比想象中难,晦涩难懂,概念模糊不清,理论知识众多,没有实际操作,大多还是不清楚,我想任何的学习都要建立一个框架,任何的学习都要从好奇开始,从发问开始,不管问的问题多幼稚那都是知识系统形成的开始。

a. 网络是什么?由什么组成?
网络指“三网”,即电信网络、有线电视网路、计算机网络
简单的说,网络就是一群通过一定形式连接起来的计算机

网络由若干结点(node)和连接这些结点的链路(link)组成

b. 因特网又是什么?
因特网是“网络的网络”
因特网是一个世界范围的计算机网络,即它是一个互联了遍及全世界的数以亿计的计算设备的网络。

连接在因特网上的计算机都被称为主机
其存在的意义是让大家可以互相通信,这也是计算机网络所解决的根本问题。

c. 如何通信?
想象人是如何交流的呢?我们通过语言,国际上我们使用英语,在中国我们使用普通话,你可以发现交流的前提是要有一个标准,网络中的“交流”也是一样的,它们主要通过信息交换进行通信,主要通过网络协议实现通信(具体通信我们后续再讲)。

而协议也就是计算机网络学习的主要内容

d. 网络协议是什么呢?
协议:是对等实体之间交换数据或通信时所必须的遵守的规则或标准的集合。
网络协议指网络中的数据交换而建立的规则、标准或约定
也就是说网络协议规定了通信双方具体的通信规则。
协议的三个要素:语法、语义、同步。
目前TCP/IP协议已经成为Internet中的“通用语言”。

e.具体有哪些协议,用来干什么的?

f.计算机网络有怎样的层次,分工是什么呢
……

现在我们即将走进计算机网络大门,当然你肯定还会有很多很多问题,要做的就是推开门进去慢慢寻找答案。

首先,计算机网络是一个复杂的系统,就像人的社会一样,复杂但有序,有法律法规,有择业操守,有各个服务部门等等一系列要素构建了一步步完善的社会。计算机网络是为了解决通信的问题,它同样有分层,各层次有各自的职责。
为什么要分层呢?
因为网络异质性问题的解决,各自厂家生产的计算机无法直接通信,而网络体系结构就是是这些用不同媒介连接起来的不同设备和网络系统在不同的应用环境下实现互操作性。
解决异质性问题采用的是分层方法。即把复杂庞大的网络互联问题划分为若干个较小的、单一的问题,然后在不同层次上解决 。

怎么分层呢?
因特网协议栈(TCP/IP)分为五层,除此外,国际标准化组织(ISO)在1978年提出了“开放系统互联参考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)。它将计算机网络体系结构的通信协议划分为七层,自下而上依次为:物理层(Physics Layer)、数据链路层(Data Link Layer)、网络层(Network Layer)、传输层(Transport Layer)、会话层(Session Layer)、表示层(Presentation Layer)、应用层(Application Layer)。其中第四层完成数据传送服务,上面三层面向用户。
它们的关系如下图:
这里写图片描述

下面以五层因特网协议栈浅述分工:

OSI体系结构 TCP/IP体系结构 各层次作用 协议数据单元(PDU) 主要协议
应用层
表示层 应用层 负责各种网络应用、进程与进程之间的逻辑通信 报文 HTTP FTP SMTP DNS Telent
会话层
传输层 传输层 负责端到端数据的逻辑通信 报文段 TCP UDP
网络层 网络层 将运输层报文段从源主机传送到目的主机 数据报 IP ICMP
数据链路层 数据链路层 将网络层数据报从一个结点传送到下一个结点 ARP

端系统:主机
应用层 进程 :一台主机上运行的程序
链路层 结点:将运行链路层协议的任何设备均称为结点,包括主机、路由器、交换机等

例:
你想要访问CSDN官网 https://www.csdn.net/
简单讲就是 先向web浏览器输入www.csdn.net的网页地址URL,web浏览器通过生成一个TCP套接字开始该进程(应用层),套接字向www.csdn.net 发送HTTP请求,TCP通过三次握手建立连接,生成HTTP端口号的TCP SYN报文段(传输层),主机通过DNS协议从主机名和端口号获得IP地址(网络层),主机通过ARP协议从IP地址获得网关路由器的MAC地址(链路层),最后你的web浏览器从TCP套接字中得到HTTP GET 报文,生成HTTP响应报文,你的浏览器读取HTTP响应,从HTTP中抽取web网页的HTML,最后显示网页。

知识点

TCP/IP 协议

TCP三次握手

这里写图片描述

TCP四次挥手
这里写图片描述

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连接就这样关闭了!
  

转发与路由选择

网络层的作用从表面上看是将一台发送主机移动到一台接收主机,主要涉及转发和路由选择两大功能
路由器三层协议:网络层、链路层、物理层
路由器的作用是将数据报(网络层数据单元)从入链路转发到出链路

转发涉及分组在单一的路由器中从一条入链路到一条出链路的传送
转发指将分组从一个输入链路接口转移到适当的输出链路接口的路由器本地动作。

路由选择涉及一个网络的所有路由器,它们经路由选择协议共同交互,已决定分组从源目的地结点所采用的路径。
路由选择是指网络范围的过程,以决定分组从源目的地地所采取的端到端路径

以爬山为例,你想要从山底爬到山顶看日落,东南西北门等入口很多,每条路有很多岔道,每个岔道都有许多景点,转发就像通过一个景点的过程:你进入景点入口,沿路观赏,然后决定继续向前直径上山,还是向右看个瀑布离开该景点,还是向左绕道去另一个景点;
路由选择就像是规划从山底到达山顶的过程:根据时间、观看的景点等情况你查看地图选择一条从山底到达山顶的路径,其中每条路径都有一系列景点连接的路段组成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章