计算机网络知识总结

一 OSI与TCP/IP各层的结构与功能,都有哪些协议

OSI的七层体系结构概念清楚,理论也很完整,但是它比较复杂而且不实用。在这里顺带提一下之前一直被一些大公司甚至一些国家政府支持的OSI失败的原因:

  1. OSI的专家缺乏实际经验,他们在完成OSI标准时缺乏商业驱动力
  2. OSI的协议实现起来过分复杂,而且运行效率很低
  3. OSI制定标准的周期太长,因而使得按OSI标准生产的设备无法及时进入市场(20世纪90年代初期,虽然整套的OSI国际标准都已经制定出来,但基于TCP/IP的互联网已经抢先在全球相当大的范围成功运行了)
  4. OSI的层次划分不太合理,有些功能在多个层次中重复出现

五层协议的体系结构

学习计算机网络时我们一般采用折中的办法,也就是中和OSI和TCP/IP的有点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚。

结合互联网的情况,自上而下地,非常简要的介绍一下各层的作用。

1 应用层(application layer)

应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议等等。我们把应用层交互的数据单元称为报文。

域名系统(Domain Name System缩写DNS,Domain Name被译为域名)

域名系统是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。(百度百科)例如:一个公司的Web网站可看作是它在网上的门户,而域名就相当于其门牌地址,通常域名都使用该公司的名称或简称。例如上面提到的微软公司的域名,类似的还有:IBM公司的域名是www.ibm.com、Oracle公司的域名是www.oracle.com、Cisco公司的域名是www.cisco.com等。

HTTP协议

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。(百度百科)

2 运输层(transport layer)

运输层的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。“通用的”是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个运输层服务。由于一台主机可同时运行多个线程,因此运输层有复用和分用的功能。所谓复用就是指多个应用层进程可同时使用下面运输层的服务,分用和复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。

运输层主要使用以下两种协议:

  1. 传输控制协议TCP(Transmisson Control Protocol)--提供面向连接的,可靠的数据传输服务。
  2. 用户数据协议UDP(User Datagram Protocol)--提供无连接的,尽最大努力的数据传输服务(不保证数据传输的可靠性)。

UDP的主要特点:

  1. UDP是无连接的;
  2. UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态(这里面有许多参数);
  3. UDP是面向报文的;
  4. UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等);
  5. UDP支持一对一、一对多、多对一和多对多的交互通信;
  6. UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。

TCP的主要特点:

  1. TCP是面向连接的。(就好像打电话一样,通话前需要先拨号建立连接,通话结束后要挂机释放连接);
  2. 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的(一对一);
  3. TCP提供可靠交付的服务。通过TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达;
  4. TCP提供全双工通信。TCP允许通信双方的应用进程在任何时候都能发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双方通信的数据;
  5. 面向字节流。TCP中的“流”(stream)指的是流入进程或从进程流出的字节序列。“面向字节流”的含义是:虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。

3 网络层(network layer)

网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在TCP/IP体系结构中,由于网络层使用IP协议,因此分组也叫IP数据报,简称数据报

这里要注意:不要把运输层的“用户数据报UDP”和网络层的“IP数据报”弄混。另外,无论是哪一层的数据单元,都可笼统地用“分组”来表示。

网络层的另一个任务就是选择合适的路由,使源主机运输层所传下来的分株,能通过网络层中的路由器找到目的主机。

这里强调指出,网络层中的“网络”二字已经不是我们通常谈到的具体网络,而是指计算机网络体系结构模型中第三层的名称.

互联网是由大量的异构(heterogeneous)网络通过路由器(router)相互连接起来的。互联网使用的网络层协议是无连接的网际协议(Intert Prococol)和许多路由选择协议,因此互联网的网络层也叫做网际层IP层

4 数据链路层(data link layer)

数据链路层通常简称为链路层。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。 在两个相邻节点之间传送数据时,数据链路层将网络层交下来的IP数据报组装程帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。

在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提出数据部分,上交给网络层。
控制信息还使接收端能够检测到所收到的帧中有误差错。如果发现差错,数据链路层就简单地丢弃这个出了差错的帧,以避免继续在网络中传送下去白白浪费网络资源。如果需要改正数据在链路层传输时出现差错(这就是说,数据链路层不仅要检错,而且还要纠错),那么就要采用可靠性传输协议来纠正出现的差错。这种方法会使链路层的协议复杂些。

5 物理层(physical layer)

在物理层上所传送的数据单位是比特。
物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。

在互联网使用的各种协中最重要和最著名的就是TCP/IP两个协议。现在人们经常提到的TCP/IP并不一定单指TCP和IP这两个具体的协议,而往往表示互联网所使用的整个TCP/IP协议族。

上面我们对计算机网络的五层体系结构有了初步的了解,下面附送一张七层体系结构图总结一下。图片来源:https://blog.csdn.net/yaopeng_2005/article/details/7064869

二 TCP三次握手和四次挥手(面试常客)

为了准确无误地把数据送达目标处,TCP协议采用了三次握手策略。

漫画图解:

图片来源:《图解HTTP》

简单示意图:

  • 客户端–发送带有SYN标志的数据包–一次握手–服务端
  • 服务端–发送带有SYN/ACK标志的数据包–二次握手–客户端
  • 客户端–发送带有带有ACK标志的数据包–三次握手–服务端

为什么要传回SYN(发起一个新链接)?

接收端传回发送端所发送的SYN是为了告诉发送端,我接收到的信息确实就是你所发送的信号了。

传了SYN,为啥还要传ACK(确认序号有效)?

双方通信无误必须是两者互相发送信息都无误。传了SYN,证明发送方到接收方的通道没有问题,但是接收方到发送方的通道还需要ACK信号来进行验证。

断开一个TCP连接则需要“四次挥手”:

  • 客户端-发送一个FIN,用来关闭客户端到服务器的数据传送
  • 服务器-收到这个FIN,它发回一个ACK,确认序号为收到的序号加1 。和SYN一样,一个FIN将占用一个序号
  • 服务器-关闭与客户端的连接,发送一个FIN给客户端
  • 客户端-发回ACK报文确认,并将确认序号设置为收到序号加1

上面讲的比较概括,推荐一篇讲的比较细致的文章:https://blog.csdn.net/qzcsu/article/details/72861891

三 TCP、UDP协议的区别

UDP在传送数据之前不需要先建立连接,远地主机在收到UDP报文后,不需要给出任何确认。虽然UDP不提供可靠交付,但在某些情况下UDP确是一种最有效的工作方式(一般用于即时通信),比如: QQ语音 QQ视频 、直播等等

TCP提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP不提供广播或多播服务。由于TCP要提供可靠的,面向连接的运输服务(TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源),这一难以避免增加了许多开销,如确认,流量控制,计时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多处理机资源。TCP一般用于文件传输、发送和接收邮件、远程登录等场景。

四 在浏览器中输入url地址 ->> 显示主页的过程(面试常客)

百度好像最喜欢问这个问题。

打开一个网页,整个过程会使用哪些协议

图片来源:《图解HTTP》

五 状态码

六 各种协议与HTTP协议之间的关系

一般面试官会通过这样的问题来考察你对计算机网络知识体系的理解。

图片来源:《图解HTTP》

七 HTTP长连接、短连接

在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web资源(如JavaScript文件、图像文件、CSS文件等),每遇到这样一个Web资源,浏览器就会重新建立一个HTTP会话。

而从HTTP/1.1起,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头加入这行代码:

Connection:keep-alive

在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接需要客户端和服务端都支持长连接。

HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接。

—— 《HTTP长连接、短连接究竟是什么?》

写在最后

计算机网络常见问题回顾

计算机网络最常见的问题我觉得应该是这5个了:

  • ①TCP三次握手和四次挥手、
  • ②在浏览器中输入url地址->>显示主页的过程
  • ③HTTP和HTTPS的区别
  • ④TCP、UDP协议的区别
  • ⑤常见的状态码。

建议

非常推荐大家看一下 《图解HTTP》 这本书,这本书页数不多,但是内容很是充实,不管是用来系统的掌握网络方面的一些知识还是说纯粹为了应付面试都有很大帮助。下面的一些文章只是参考。大二学习这门课程的时候,我们使用的教材是 《计算机网络第七版》(谢希仁编著),不推荐大家看这本教材,书非常厚而且知识偏理论,不确定大家能不能心平气和的读完。

原文地址:https://www.cnblogs.com/LexMoon/p/jsjwl.html

时间: 2024-10-07 05:22:41

计算机网络知识总结的相关文章

你应该知道的计算机网络知识

前言 作为一名程序员, 不可能不与网络打交道. 现在我们的手机, 电脑, 不夸张地说, 离开了网络就是一块’废铁’, 它们的作用将大打折扣.. 本文的作用呢, 主要是针对不是非网络专业开发的人员准备的, 以’最短的时间, 了解计网最多的知识’为前提起笔. 目录 概述 物理层 数据链路层 网络层 传输层 应用层 概述 先来了解下各种我们知道, 但是不太了解的专业名词的意思 因特网 因特网 因特网是当今世界上最大的网络, 是”网络的网络”. 即因特网是所有网络互连起来的一个巨型网络. 因特网的组成

计算机网络知识—(TCP)

计算机网络在IT行业的重要性 IT即互联网技术,从事的工作和网络有很大的关系,前端要负责和后台(服务器)进行交互,其必然得经过网络,所以懂点网络知识有很大的帮助. 网络模型数据处理过程 传输层协议的作用 提供了一种端到端(end to end)的连接,一般为前端和后台服务器的连接 由于网络层只管传递数据,并不关心成功与否,TCP协议在数据丢失.损坏的情况下保证数据的可靠性 传输层协议的分类 传输控制协议TCP(Transimision Control Protocal): 可靠的.面向连接的协议

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

1.3 计算机网络 计算机之间通过物理连接介质(网络设备)连接到一起 计算机之间基于网络协议通信(网络协议相当于计算机)界的通用语言 开发需要了解的: ip地址确定目标机器的局域网 mac地址确定目标机器的具体地址 tcp/udp确定目标机器的软件端口 什么是互联网协议及为何要有互联网协议 osi五层模型 我们将应用层.表示层.会话层并作应用层,从tcp/ip五层(应用层.传输层.网络层.数据链路层.物理层)协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议就理解了整个互联网通信的原理.

测试人员需要掌握的计算机网络知识

一:网络分类 电信网络(电话网),有线电视网络,计算机网络(着重讲的这个) 二:计算机网络分类之按照覆盖范围:城域网.局域网.广域网(其它分类用的不多,不再讲解) 1.城域网(MAN) 城域网(Metropolitan Area Network)是作用范围在广域网与局域网之间的网络,其网络覆盖范围通常可以延伸到整个城市,借助通信光纤将多个局域网联通公用城市网络形成大型网络,使得不仅局域网内的资源可以共享,局域网之间的资源也可以共享. 2.局域网(LAN,内网) 局域网(Local Area Ne

如何评价一个软件工程师的计算机网络知识水平与网络编程技能水平?

网络工程师是通过学习和训练,掌握网络技术的理论知识和操作技能的网络技术人员.网络工程师能够从事计算机信息系统的设计.建设.运行和维护工作.网络工程师是指基于硬.软件两方面的工程师,根据硬件和软件的不同.认证的不同,将网络工程师划分成很多种类.网络工程师分硬件网络工程师和软件网络工程师两大类,硬件网络工程师以负责网络硬件等物理设备的维护和通信:软件网络工程师负责系统软件,应用软件等的维护和应用. 本张试卷主要就是结合了历年408真题里面的经典题目,具体如下: 一.选择 1. HDLC 协议对 01

软件工程师的计算机网络知识水平与网络编程技能水平评测

课程总结 1.Linux socket协议分析 2.TCP协议栈 网络程序设计课程试卷 一.选择题(10题) 1. 在OSI参考模型中,直接为会话层提供服务的是 (C)A.应用层       B.表示层         C.传输层      D.网络层 2.路由选择协议位于(C).  A. 物理层     B. 数据链路层       C. 网络层          D. 应用层   3.三次握手方法用于( A).  A. 传输层连接的建立  B. 数据链路层的流量控制   C. 传输层的重复检

计算机网络知识

连接层 地址解析协议:ARP协议(ARP介于连接层和网络层之间,ARP包需要包裹在一个帧中)的工作方式如下:主机会发出一个ARP包,该ARP包中包含有自己的IP地址和MAC地址.通过ARP包,主机以广播的形式询问局域网上所有的主机和路由:我是IP地址xxxx,我的MAC地址是xxxx,有人知道199.165.146.4的MAC地址吗?拥有该IP地址的主机会回复发出请求的主机:哦,我知道,这个IP地址属于我的一个NIC,它的MAC地址是xxxxxx.由于发送ARP请求的主机采取的是广播形式,并附带

计算机网络知识小结

(1)网络的各个层 物理层: RJ45 . CLOCK . IEEE802.3 (中继器,集线器,网关) - 数据链路: PPP . FR . HDLC . VLAN . MAC (网桥,交换机) - 网络层: IP . ICMP . ARP . RARP . OSPF . IPX . RIP . IGRP . (路由器) - 传输层: TCP . UDP . SPX - 会话层: NFS . SQL . NETBIOS . RPC - 表示层: JPEG . MPEG . ASII - 应用层

计算机网络知识(二)

一.IP地址                                            IP地址的定义是网络号+主机号.但是现在所有的主机都要求子网编址,也就是说,把主机号在细分成子网号+主机号.最终一个IP地址就成为 网络号码+子网号+主机号.