欢迎来到TB体育·(中国)手机客户端下载
网络基础知识(仅学习)TB体育
栏目:行业动态 发布时间:2022-12-21 15:11:43

  OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。ISO为了更好的使网络应用更为普及,推出了OSI参考模型。其目的就是推荐所有公司使用这个规范来控制网络,这样所有公司都有相同的规范,就能实现互联了。

  OSI定义了网络互联的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO开放互联系统参考模型,如下图1-1所示。每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI的服务定义详细说明了各层所提供的服务。某一层的服务就是该层及其下各层的一种能力,它通过接口提供给更高一层。各层所提供的服务与这些服务是怎么实现的无关。

  这里我们只对OSI各层进行功能上的大概阐述,不详细深究,因为每一层实际都是一个复杂的层。我们从最顶层——应用层开始介绍,整个过程以公司A和公司B的一次商业报价单发送为例子进行讲解。

  OSI参考模型中最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3,SMTP等。

  Eg: 实际公司A的老板就是我们所述的用户,而他要发送的商业报价单,就是应用层提供的一种网络服务,当然,老板也可以选择其他服务,比如说,发一份商业合同,发一份询价单,等等。

  表示层提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。

  Eg: 由于公司A和公司B是不同国家的公司,他们之间的商定统一用英语作为交流的语言,所以此时表示层(公司的文秘),就是将应用层的传递信息转翻译成英语。同时为了防止别的公司看到,公司A的人也会对这份报价单做一些加密的处理。这就是表示的作用,将应用层的数据转换翻译等。

  会话层就是负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。

  Eg: 会话层的同事拿到表示层的同事转换后资料,(会话层的同事类似公司的外联部),会话层的同事那里可能会掌握本公司与其他好多公司的联系方式,这里公司就是实际传递过程中的实体。他们要管理本公司与外界好多公司的联系会话。当接收到表示层的数据后,会话层将会建立并记录本次会话,他首先要找到公司B的地址信息,然后将整份资料放进信封,并写上地址和联系方式。准备将资料寄出。等到确定公司B接收到此份报价单后,此次会话就算结束了,外联部的同事就会终止此次会线 传输层

  传输层建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。我们通常说的,TCP/UDP就是在这一层。端口号即是这里的“端”。

  本层通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。这一层就是我们经常说的IP协议层。IP协议是Internet的基础。

  将比特组合成字节,再将字节组合成帧,使用链路层地址 (以太网使用MAC地址)来访问介质,并进行差错检测。

  物理层实际最终信号的传输是通过物理层实现的。通过物理介质传输比特流。规定了电平、速度和电缆针脚。常用设备有(各种物理设备)集线器、中继器、调制解调器、网线、双绞线、同轴电缆。这些都是物理层的传输介质。

  Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。

  TCP/IP协议四层网络模型中的前三层释义与ISO一致。网络接口层释义如下:

  网络接口层包括用于协作IP数据在已有网络介质上传输的协议。实际上TCP/IP标准并不定义与ISO数据链路层和物理层相对应的功能。相反,它定义像地址解析协议(Address Resolution Protocol,ARP)这样的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。

  数据封装/解封装成帧(frame)。为了保证可靠传输,网络层传过来的数据在这里被加工成了可被物理层传输的结构包——帧。帧中除了包括需要传输的数据外,还包括发送方和接收方的物理地址以及检错和控制信息。其中的物理地址确定了帧将发送到何处,检错和控制信息则是用来保证数据的无差错到达。数据帧结构如下(Address均为mac地址):

  控制帧传输。控制帧的传输主要体现在反馈重发、计时器、帧序号方面。接收方通过对帧的差错编码(奇偶校验码或 CRC 码)的检查,来判断帧在传输过程中是否出错,并向发送方进行反馈,如果传输发生差错,则需要重发纠正。作为发送方,如果在发送帧后,会同时启动定时器,如果帧发送后在一定时间内没有收到反馈,为了避免传输停滞不前,则在计时器TimeOut后认为帧传输出错,自动重发。为了避免多次收到同一帧并将其递交给网络层的情况发生,则需要对每个发送的帧进行编号,接收方以此来判断该帧是否重复接受了。

  流量控制。由于收发双方各自使用的设备工作速率和缓冲存储空间的差异,可能出现发送方的发送能力大于接收方接收能力的现象,此时若不对发送方的发送速率做适当的限制,前面来不及接收的帧将被后面不断发送来的帧“淹没”,从而造成帧的丢失而出错。由此可见,流量控制实际上是对发送方数据流量的控制,使其发送速率不超过接收方的速率。所以需要一些规则使得发送方知道在什么情况下可以接着发送下一帧,而在什么情况下必须暂停发送,以等待收到某种反馈信息后再继续发送。

  IP地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围内惟一的标识符。一个IP地址主要由两部分组成:一部分是用于标识该地址所从属的网络号,另一部分用于指明该网络上某个特定主机的主机号。网络号由因特网权力机构分配,主机地址由各个网络的管理员统一分配。因此,网络地址的惟一性与网络内主机地址的惟一性确保了IP 地址的全球惟一性。

  目前,大多数 IP 编址方案仍采用 IPv4 编址方案,即使用 32 位的二进制地址进行识别,我们常见的形式是将32位的IP地址分成4 个字节,然后把4个字节分别用十进制表示,中间用圆点分开,这种方法叫做点分十进制表示法。另外一种编址方案为IPv6,IPv6地址是由16个字节的八组16进制的数字表示的,中间用冒号隔开,这种方法叫做冒分十六进制表示法。

  在网络技术中,端口大致有两种意思:一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器上连接其他网络设备的接口,如 RJ-45 端口、SC端口等等。二是逻辑意义上的端口,一般是指 TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。我们这里介绍的是逻辑意义上的端口。定义端口是为了解决与多个应用程序同时进行通信的问题;它主要扩充了IP地址的概念。假设一台计算机正在同时运行多个应用程序,并通过网络接收到了一个数据包,这时就可以利用一个独有的端口号(该端口号在建立连接时确定)来标识目标进程。因此,如果客户端A要与服务器B相互通信,客户端A不仅要知道服务器B的IP地址,而且要知道服务器B提供具体服务的端口号。端口号可分为3大类:

  周知端口是众所周知的端口号,范围从0到1023,其中80端口分配给务,21端口分配给FTP服务等。我们在IE的地址栏里输入一个网址的时候是不必指定端口号的,因为在默认情况下WWW服务的端口是“80”。

  动态端口的范围是从49152到65535。之所以称为动态端口,是因为它一般不固定分配某种服务,而是动态分配。

  端口1024到49151,分配给用户进程或应用程序。这些进程主要是用户选择安装的一些应用程序,而不是已经分配好了公认端口的常用程序。这些端口在没有被服务器资源占用的时候,可以被用户端动态选用为源端口。

  长连接,指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。

  长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况。每个TCP连接都需要三次握手,这需要时间,如果每个操作都是短连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,下次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。

  TB体育

  长连接可以省去较多的TCP建立和关闭的操作,减少浪费,节约时间。对于频繁请求资源的客户来说,较适用长连接。不过这里存在一个问题,存活功能的探测周期太长,还有就是它只是探测TCP连接的存活,属于比较斯文的做法,遇到恶意的连接时,保活功能就不够使了。在长连接的应用场景下,client端一般不会主动关闭它们之间的连接,Client与server之间的连接如果一直不关闭的话,会存在一个问题,随着客户端连接越来越多,server早晚有扛不住的时候,这时候server端需要采取一些策略,如关闭一些长时间没有读写事件发生的连接,这样可 以避免一些恶意连接导致server端服务受损;如果条件再允许就可以以客户端机器为颗粒度,限制每个客户端的最大长连接数,这样可以完全避免某个客户端连累后端服务。